LINUX.ORG.RU

История изменений

Исправление vbr, (текущая версия) :

Rust это в другую сторону от того, что я хочу.

Что я хочу в отличие от C:

  1. Тщательно отобранные оптимизации, которые не приносят удивления. К примеру запретить перестановку операций записи в память в сгенерированном коде, если они в разных инструкциях. Убрать весь бред с тем, что разыменование нуля это UB. Если я хочу разыменовать нуль, значит надо сгенерировать инструкцию чтения нулевого адреса. В том же ARM это абсолютно валидная инструция.

  2. Убрать UB с тех вещей, где это неуместно. Вот прям этот топик - живая иллюстрация. Не должно быть никаких проблем при касте u8* в u32*. Просто компилируй это. Если будет hardfault при выполнении, то и ладно. Может быть я того и хочу? Убрать бред вроде запрета на переполнение signed integer. Просто компилируй плюс в ADD и не морочь мне голову.

  3. Убрать кучу этих тупых типов. short, int, long, long long и тд. Просто i8, u8 и тд. Конкретные типы конкретного размера и всё.

  4. Убрать тупую стандартную библиотеку. Вообще и полностью. Она отстой и не нужна.

  5. Убрать кучу лишнего синтаксиса. Все эти 3 типа циклов, break, continue - зачем всё это? Есть же if и goto. Зачем нужны static переменные в функции, если их можно вынести за пределы функции? Абсолютно ненужная фича. Зачем нужна инициализация глобальных переменных нулями по умолчанию? Моему процессору есть чем заняться и без этого. Вот лучше бы добавили возврат нескольких значений, ей-богу.

Так можно долго продолжать.

А фичи раста прикольные, не спорю, но они не решают тех проблем, с которыми я сталкиваюсь. Ну типа - да, можно писать код без проблем с памятью. Но мне это не нужно. Я и так пишу код без проблем с памятью. Неимоверное усложнение языка ради избавления от редких багов мне не интересно. Может тем, кто пишет софт для марсоходов и интересно.

Исправление vbr, :

Rust это в другую сторону от того, что я хочу.

Что я хочу в отличие от C:

  1. Тщательно отобранные оптимизации, которые не приносят удивления. К примеру запретить перестановку операций записи в память в сгенерированном коде, если они в разных инструкциях. Убрать весь бред с тем, что разыменование нуля это UB. Если я хочу разыменовать нуль, значит надо сгенерировать инструкцию чтения нулевого адреса. В том же ARM это абсолютно валидная инструция.

  2. Убрать UB с тех вещей, где это неуместно. Вот прям этот топик - живая иллюстрация. Не должно быть никаких проблем при касте u8* в u32*. Просто компилируй это. Если будет hardfault при выполнении, то и ладно. Может быть я того и хочу? Убрать бред вроде запрета на переполнение signed integer. Просто компилируй плюс в ADD и не морочь мне голову.

  3. Убрать кучу этих тупых типов. short, int, long, long long и тд. Просто i8, u8 и тд. Конкретные типы конкретного размера и всё.

  4. Убрать тупую стандартную библиотеку. Вообще и полностью. Она отстой и не нужна.

  5. Убрать кучу лишнего синтаксиса. Все эти 3 типа циклов, break, continue - зачем всё это? Есть же if и goto. Зачем нужны static переменные в функции, если их можно вынести за пределы функции? Абсолютно ненужная фича. Зачем нужна инициализация глобальных переменных нулями по умолчанию? Моему процессору есть чем заняться и без этого. Вот лучше бы добавили возврат нескольких значений, ей-богу.

Так можно долго продолжать.

А фичи раста прикольные, не спорю, но они не решают тех проблем, с которыми я сталкиваюсь. Ну типа - да, можно писать код без проблем с памятью. Но мне это не нужно. Я и так пишу код без проблем с памятью. Неимоверное усложнение языка ради избавления от редких багов мне не интересно.

Исходная версия vbr, :

Rust это в другую сторону от того, что я хочу.

Что я хочу в отличие от C:

  1. Тщательно отобранные оптимизации, которые не приносят удивления. К примеру запретить перестановку операций записи в память в сгенерированном коде, если они в разных инструкциях. Убрать весь бред с тем, что разыменование нуля это UB. Если я хочу разыменовать нуль, значит надо сгенерировать инструкцию чтения нулевого адреса. В том же ARM это абсолютно валидная инструция.

  2. Убрать UB с тех вещей, где это неуместно. Вот прям этот топик - живая иллюстрация. Не должно быть никаких проблем при касте u8* в u32*. Просто компилируй это. Если будет hardfault при выполнении, то и ладно. Может быть я того и хочу? Убрать бред вроде запрета на переполнение signed integer. Просто компилируй плюс в ADD и не морочь мне голову.

  3. Убрать кучу этих тупых типов. short, int, long, long long и тд. Просто i8, u8 и тд. Конкретные типы конкретного размера и всё.

  4. Убрать тупую стандартную библиотеку. Вообще и полностью. Она отстой и не нужна.

  5. Убрать кучу лишнего синтаксиса. Все эти 3 типа циклов, break, continue - зачем всё это? Есть же if и goto. Зачем нужны static переменные в функции, если их можно вынести за пределы функции? Абсолютно ненужная фича. Зачем нужна инициализация глобальных переменных нулями по умолчанию? Моему процессору есть чем заняться и без этого.

Так можно долго продолжать.

А фичи раста прикольные, не спорю, но они не решают тех проблем, с которыми я сталкиваюсь. Ну типа - да, можно писать код без проблем с памятью. Но мне это не нужно. Я и так пишу код без проблем с памятью. Неимоверное усложнение языка ради избавления от редких багов мне не интересно.