The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Дискуссия об использовании языка C++ для разработки ядра Linux, opennews (??), 14-Янв-24, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


247. "Дискуссия об использовании языка C++ для разработки ядра Lin..."  +/
Сообщение от nc (ok), 15-Янв-24, 11:47 
Лучше уж Rust. C++ это нагромождение костылей, если все это (особенно метапрограммирование на шаблонах) попадет в ядро то туши свет. Rust хоть и имеет более непривычный синтаксис чем С++, но все же разработан с учетом опыта многих других языков.
Ответить | Правка | Наверх | Cообщить модератору

254. "Дискуссия об использовании языка C++ для разработки ядра Lin..."  +/
Сообщение от Аноним (253), 15-Янв-24, 12:39 
Да, только раст спасёт ведро линукс!
Ответить | Правка | Наверх | Cообщить модератору

262. "Дискуссия об использовании языка C++ для разработки ядра Lin..."  +1 +/
Сообщение от nc (ok), 15-Янв-24, 12:53 
Да дело не в том что кто-то чего-то спасет. Языки программирования объективно развиваются. Когда создавали Си, многих возможностей просто не было. Си получился очень удачным, но все-же есть у него и недостатки, и чем сложнее проект тем чаще они вылезают.
А вот тащить С++ я бы не стал. Именно потому, что он развивался эволюционно. Добавляли фичи, потом оказывалось что добавили не совсем удачно - добавляли поверх новые, а старые не совсем удачные оставляли... в результате получилось некое нагромождение всякого разного.
Постоянное беспокойство за "обратную совместимость" до добра не доводит никогда.
А все что нужно было сделать - что-то вроде pragma version в начале каждого сpp файла. И для новых версий можно было бы не бояться ломающих изменений в языке. Компиляторы бы поддерживали сразу несколько версий, в результате программисты бы спокойно переходили на новые версии и по мере возможностей подтягивали бы старый код.
Ответить | Правка | Наверх | Cообщить модератору

294. "Дискуссия об использовании языка C++ для разработки ядра Lin..."  –1 +/
Сообщение от Серб (ok), 15-Янв-24, 13:57 
> А все что нужно было сделать - что-то вроде pragma version в начале каждого сpp файла.

А опция --std компилятору не подойдет? :)

Ответить | Правка | Наверх | Cообщить модератору

331. "Дискуссия об использовании языка C++ для разработки ядра Lin..."  +/
Сообщение от nc (ok), 15-Янв-24, 15:40 
Для реализации ломающих изменений и сохранения возможности компиляции старых файлов - не подойдет. Кроме того, хранение версии языка отдельно от исходника само по себе плохо.
Ответить | Правка | Наверх | Cообщить модератору

337. "Дискуссия об использовании языка C++ для разработки ядра Lin..."  +/
Сообщение от Аноним (115), 15-Янв-24, 15:56 
Это само по себе хорошо т.к. не нужно править дохринилиард прагм во всём репозитории при переходах на новые стандарты. Дерьмовее предложения, чем помечать каждый исходник версией, просто невозможно придуамать.
Ответить | Правка | Наверх | Cообщить модератору

561. "Дискуссия об использовании языка C++ для разработки ядра Lin..."  +/
Сообщение от _oleg_ (ok), 16-Янв-24, 16:56 
> Это само по себе хорошо т.к. не нужно править дохринилиард прагм во
> всём репозитории при переходах на новые стандарты. Дерьмовее предложения, чем помечать
> каждый исходник версией, просто невозможно придуамать.

Да нет. Наоборот. Если захочется применить в исходнике новые возможности, то ты туда _уже_ пойдёшь редактором. И поменять при этом pragma - не проблема. Исходник должен сообщать сам о себе версию стандарта. Это правильно и логично.

Ответить | Правка | Наверх | Cообщить модератору

563. "Дискуссия об использовании языка C++ для разработки ядра Lin..."  +/
Сообщение от Серб (ok), 16-Янв-24, 17:14 
>> Это само по себе хорошо т.к. не нужно править дохринилиард прагм во
>> всём репозитории при переходах на новые стандарты. Дерьмовее предложения, чем помечать
>> каждый исходник версией, просто невозможно придуамать.
> Да нет. Наоборот. Если захочется применить в исходнике новые возможности, то ты
> туда _уже_ пойдёшь редактором. И поменять при этом pragma - не
> проблема. Исходник должен сообщать сам о себе версию стандарта. Это правильно
> и логично.

Правильно и логично - когда не надо менять код под каждый новый стандарт.

Любая необходимость менять должна быть исключением из правил.

Вот эти исключения из правил и надо выявлять. Компилятор это делает.

Можно было бы создавать отдельную утилиту, но зачем?

Ответить | Правка | Наверх | Cообщить модератору

568. "Дискуссия об использовании языка C++ для разработки ядра Lin..."  +/
Сообщение от _oleg_ (ok), 16-Янв-24, 18:06 
> Правильно и логично - когда не надо менять код под каждый новый
> стандарт.

А зачем его менять, если как предлагается выше, компиляторы поддерживают разные версии? Есть у тебя исходик с pragma version 2014 и на здоровье.

Ответить | Правка | Наверх | Cообщить модератору

571. "Дискуссия об использовании языка C++ для разработки ядра Lin..."  +/
Сообщение от Серб (ok), 16-Янв-24, 18:18 
>> Правильно и логично - когда не надо менять код под каждый новый
>> стандарт.
> А зачем его менять, если как предлагается выше, компиляторы поддерживают разные версии?
> Есть у тебя исходик с pragma version 2014 и на здоровье.

Например, что бы оптимизации сработали. Смотри lto.

Ответить | Правка | Наверх | Cообщить модератору

572. "Дискуссия об использовании языка C++ для разработки ядра Lin..."  +/
Сообщение от _oleg_ (ok), 16-Янв-24, 18:51 
>>> Правильно и логично - когда не надо менять код под каждый новый
>>> стандарт.
>> А зачем его менять, если как предлагается выше, компиляторы поддерживают разные версии?
>> Есть у тебя исходик с pragma version 2014 и на здоровье.
> Например, что бы оптимизации сработали. Смотри lto.

Если pragma version относится только к синтаксической части, то оптимизации здесь ни при чём и их можно рулить параметрами командной строки компилятора.

Ответить | Правка | Наверх | Cообщить модератору

617. "Дискуссия об использовании языка C++ для разработки ядра Lin..."  +/
Сообщение от Серб (ok), 17-Янв-24, 12:46 
>>>> Правильно и логично - когда не надо менять код под каждый новый
>>>> стандарт.
>>> А зачем его менять, если как предлагается выше, компиляторы поддерживают разные версии?
>>> Есть у тебя исходик с pragma version 2014 и на здоровье.
>> Например, что бы оптимизации сработали. Смотри lto.
> Если pragma version относится только к синтаксической части, то оптимизации здесь ни
> при чём и их можно рулить параметрами командной строки компилятора.

Стандарты очень часто вводят для включения возможности оптимизации. На старых стандартах возможностей оптимизации меньше. Или в вашем любимом языке это не так?

Ответить | Правка | Наверх | Cообщить модератору

618. "Дискуссия об использовании языка C++ для разработки ядра Lin..."  +/
Сообщение от _oleg_ (ok), 17-Янв-24, 13:20 

> Стандарты очень часто вводят для включения возможности оптимизации. На старых стандартах
> возможностей оптимизации меньше. Или в вашем любимом языке это не так?

Оптимизации - расплывчатое понятие. Что я вижу в новых стандартах C и C++ это не какие-то скрытые оптимизации поверх старого синтаксиса, а как раз изменения в синтаксисе, добавление чего-то нового с целью упрощения чего-то старого. И для того, что бы повившиеся анонимные структуры, инициализация по именам полей структуры и т.п. работало, надо сделать таки изменения в исходном коде. Для этого туда надо зайти. И заодно поменять pragma version. Не вижу проблем.

Ответить | Правка | Наверх | Cообщить модератору

619. "Дискуссия об использовании языка C++ для разработки ядра Lin..."  +/
Сообщение от Серб (ok), 17-Янв-24, 13:43 
На изменение обработки volatile смотрел?
Ответить | Правка | К родителю #618 | Наверх | Cообщить модератору

620. "Дискуссия об использовании языка C++ для разработки ядра Lin..."  +/
Сообщение от Серб (ok), 17-Янв-24, 13:48 
На расширение того, что при constexpr уйдет в компиле тайм смотрел?
Ответить | Правка | К родителю #618 | Наверх | Cообщить модератору

346. "Дискуссия об использовании языка C++ для разработки ядра Lin..."  +/
Сообщение от Серб (ok), 15-Янв-24, 16:49 
> Для реализации ломающих изменений и сохранения возможности компиляции старых файлов - не
> подойдет.

Странно, но именно для этого его и используют. Конечно там включается до.. гхм... очень много дефайнов, которые можно учесть в исходниках.

> Кроме того, хранение версии языка отдельно от исходника само по себе плохо.

Чем? Вносимые в язык изменения продуманы так, что если что-то работает - то будет работать. Если что-то не работает - то оно не соберётся и ты вынужден будешь внести изменения.

Ответить | Правка | К родителю #331 | Наверх | Cообщить модератору

338. "Дискуссия об использовании языка C++ для разработки ядра Lin..."  +1 +/
Сообщение от Аноним (115), 15-Янв-24, 15:58 
> Компиляторы бы поддерживали сразу несколько версий, в результате программисты бы спокойно переходили на новые версии и по мере возможностей подтягивали бы старый код.

В результате программисты просто бы никуда не переходили. Совместимость со старыми стандартами и так достаточно глубокая по вермени. Проблемы обычно возникают с некорректным использованием поюсов.

Ответить | Правка | К родителю #262 | Наверх | Cообщить модератору

335. "Дискуссия об использовании языка C++ для разработки ядра Lin..."  +3 +/
Сообщение от Аноним (115), 15-Янв-24, 15:52 
rust разработан с учётом надёргивания из маргинальных ЯП фич, которые очень хотелось подёргать хипстерам из команды разработчиков. Другими словами, разработан с учётом опыта языков с низким практическим применением.
Ответить | Правка | К родителю #247 | Наверх | Cообщить модератору

559. "Дискуссия об использовании языка C++ для разработки ядра Lin..."  +/
Сообщение от _oleg_ (ok), 16-Янв-24, 16:48 
> Лучше уж Rust. C++ это нагромождение костылей, если все это (особенно метапрограммирование
> на шаблонах) попадет в ядро то туши свет. Rust хоть и
> имеет более непривычный синтаксис чем С++, но все же разработан с
> учетом опыта многих других языков.

Про C++ согласен. Но и rust не нужен. Пусть пишут свои проекты. Зачем в ядро лезть. Там всё норм.

Ответить | Правка | К родителю #247 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру