The OpenNET Project / Index page

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

Выпуск языка программирования Hare 0.26

13.02.2026 23:25 (MSK)

Дрю ДеВолт (Drew DeVault), автор пользовательского окружения Sway, почтового клиента Aerc и платформы совместной разработки SourceHut, опубликовал выпуск языка программирования Hare 0.26.0. Hare преподносится как язык системного программирования, близкий к языку Си, но проще, чем Си. Исходный код компилятора и инструментария распространяются под лицензией GPLv3, а код стандартной библиотеки под лицензией MPL (Mozilla Public License).

Язык оптимизирован для решения низкоуровневых задач, таких как разработка операционных систем, компиляторов, сетевых приложений и системных утилит, для которых требуется достижение максимальной производительности и полный контроль над выполнением. В языке применяется ручное управление памятью и статическая система типов, при которой каждой переменной явно должен быть присвоен определённый тип.

Для выполнения приложения поставляется минимальный runtime, а для разработки распространяется стандартная библиотека функций, предоставляющая доступ к базовым интерфейсам операционной системы, а также предлагающая функции для работы с типовыми алгоритмами, протоколами и форматами, включая средства для использования регулярных выражений и шифрования. Для разработки графических приложений развивается инструментарий hare-wayland, а также привязки для доступа к возможностям GTK, Vulkan, OpenGL, SDL3 и libui.

В новой версии:

  • Добавлена конструкция цикла "for(...){...} else {...}" и возможность использования цикла как выражения для присвоения значения переменной "item = for(...){...}". Значение, которое будет присвоено переменной, может быть возвращено при прерывании цикла выражением "break значение" или через указание "yield значение_по_умолчанию" в прикреплённом к циклу блоке "else{...}", который вызывается, если цикл не был прерван через break.
    
       const item = for (let sample .. items) {
    	if (item.key == key) {
    		break item;
    	};
       } else {
            yield -1;
       };
    
  • Добавлена возможность использования присвоения значению "_" для игнорирования обработки ошибок (в случае возникновения ошибки не возникнет assertion).
    
       _ = os::remove("/some/file");
    
  • Добавлена возможность использования значения "_" для создания неименованных полей в структурах. Подобные поля могут применяться для добавочного заполнения.
    
       export type my_struct = struct @packed {
    	x: u32,		// offset: 0
    	_: u8,		// offset: 4
    	y: u64,		// offset: 5
       };
    
  • Реализована возможность явного оставления переменных и полей в структурах в неинициализированном состоянии, через присвоения им значения "@undefined". Ранее язык требовал чтобы все локальные и глобальные переменные были инициализированы во время создания. Оставление без инициализации может потребоваться, когда переменная должна быть инициализирована не во время объявления, а позднее, например, когда в функцию передаётся указатель на переменную, которую эта функция должна инициализировать.
    
       let x: my_object = @undefined;
    
  • Добавлена поддержка операционной системы Dragonfly BSD. Ранее поддерживались Linux, FreeBSD, NetBSD и OpenBSD.


  1. Главная ссылка к новости (https://harelang.org/blog/2026...)
  2. OpenNews: Выпуск языка программирования Hare 0.25.2
  3. OpenNews: Автор оболочки Sway и языка Hare развивает новое микроядро Helios и OC Ares
  4. OpenNews: Дрю ДеВолт представил язык системного программирования Hare
  5. OpenNews: Выпуск операционной системы DragonFly BSD 6.4.1
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/64794-hare
Ключевые слова: hare
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (90) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 23:34, 13/02/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +3 +/
     
  • 1.2, Аркагоблин (?), 23:44, 13/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Лицензия отвратительная для стандартных либов. Для них принято что-то пермиссивное ставить. И желательно без атрибуции, потому что никто нормальный не будет специально выискивать что там под какой лицензией и писать "Hello world написан на Hare. Hare под MPL и его написал Имя Автора". Люди воспринимают системные библиотеки как нечто базовое и фундаментальное, а не как произведение.
     
     
  • 2.12, Аноним (12), 01:26, 14/02/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ну вот стандартная GLibc как-то не пермиссивная.
     
     
  • 3.37, kusb (?), 11:47, 14/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Она обычно динамически подключается. Или я не разбираюсь, просто так кажется...
     
  • 2.32, Аноним (32), 10:39, 14/02/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    MPL - это не вирусная лицензия. Копилефтная, но не вирусная - код, использующий библиотеку под MPL, не обязан быть лицензирован под MPL. И Дрюша ещё тот копираст, у него в блоге высер есть на эту тему, что он теперь не дурачок, как раньше, и теперь объявляет всем конкурентам копирайтную войну.
     
     
  • 3.35, мелстрой (?), 11:17, 14/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну пусть тогда сам на своем зайце работает
     
     
  • 4.98, Аноним (98), 09:43, 16/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    В этом вся суть Дрюши. По сути всё, что он создал, годится почти исключительно для его личного пользования.
     
  • 3.45, Аноним (45), 14:30, 14/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Hare, лучший язык программирования.
     
  • 3.46, Аркагоблин (?), 14:41, 14/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Она то конечно не вирусная, но всё равно заставляет давать ссылки на исходный код языка. Будто каждый кто пишет на языке, модифицирует сам язык. Язык напротив практически никогда не модифицируется сторонними людьми, но копилефт стоит, и выглядит это как стрельба из пушки по воробьям.
     
     
  • 4.75, Аноним (75), 20:08, 15/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А тебе какое дело до этого?
     
     
  • 5.83, Аркагоблин (?), 00:51, 16/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Что значит "какое"? Она заставляет давать ссылку на исходный код и следить за его доступностью, даже если я ничего там не изменял, а если зеркало станет нерабочим - я стану нарушителем
     
     
  • 6.96, Аноним (75), 09:21, 16/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Каким образом ты станешь нарушителем, если не работает официальный репозиторий с кодом?
     
     
  • 7.101, Аркагоблин (?), 10:45, 16/02/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Нарушится обязанность предоставлять рабочую ссылку на исходный код. И не тыкай мне
     
     
  • 8.106, Аноним (75), 17:43, 16/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А в чем нарушение этой обязанности при неработающем репозитории ... текст свёрнут, показать
     
     
  • 9.107, Аркагоблин (?), 17:48, 16/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Вы какой-то тролль Не хочу тратить силы на общение с троллями... текст свёрнут, показать
     

  • 1.9, Аноним (9), 01:00, 14/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    > Добавлена возможность использования присвоения значению "_" для игнорирования обработки ошибок

    В то время как одни современные языки пытаются заставить кожаные мешки обрабатывать ошибки, другие облегчают задачу написания говнокода. Удачи автору языка.

     
     
  • 2.21, Смузихлеб забывший пароль (?), 07:17, 14/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Какими-то там ошибками отвлекать уважаемых программистов от написания ПО!
     
  • 2.34, пэпэ (?), 11:12, 14/02/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Слышал звон? _ используется для игнорирования значения, лучше мусорные переменные что ли плодить? К тому же в "современных языках" это тыщу лет есть.
     
  • 2.48, Аноним (48), 15:08, 14/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    В hare есть '?' и '!', можно ими пользоваться, какая великая разница?
     

  • 1.13, Аноним (13), 01:37, 14/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    > ручное управление памятью

    А УБ? УБ есть? Если УБ нет, опеннетовские анонимы будут страдать! Надо в стандарте УБ прописать!!!11

     
     
  • 2.20, Аноним (20), 07:15, 14/02/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Усли UB в стандарте, то это уже не UB.
     
     
  • 3.30, Аноним (30), 09:29, 14/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Отсюда делаем вывод шта, в чыстой сишке нет UB.
     

  • 1.16, Аноним (16), 03:22, 14/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Написано ж что он должен быть проще сей, а он по описанию сложнее сей.
     
     
  • 2.31, Аноним (30), 09:31, 14/02/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.56, Аноним (56), 20:33, 14/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Смесь Go и Rust (по синтаксису) разве может быть простой?
     

  • 1.17, Имя (?), 03:58, 14/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    нет в списке godbolt.org
     
  • 1.23, Смузихлеб забывший пароль (?), 07:26, 14/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >  возможность явного оставления переменных и полей в структурах
    > в неинициализированном состоянии,
    > через присвоения им значения "@undefined"

    Это однако перебор. Т.е в доработки изначально заложено что теперь в переменных может оказаться любой мусор вместо предполагаемых иными товарищами нулей

     
     
  • 2.24, Аноним (24), 07:53, 14/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Да, абсурд для новых языков
     
     
  • 3.49, nc (ok), 15:59, 14/02/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Почему абсурд? Наличие возможности всегда лучше чем ее отсутствие, мало ли для каких Хакерских целей это может пригодиться. Например если переменная каким-то образом отображена на регистр микроконтроллера, запись в который нулей приводит к какой-то аппаратной активности, которая просто при инициализации не нужна. Или например мы пишем некий код, в котором нужно экономить каждый байт кода, выделение памяти на стеке это одна команда, а обнуление - уже другая, которая возможно по логике кода и не нужна.
     
     
  • 4.51, Аноним (51), 16:36, 14/02/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Почему абсурд?

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

    Язык должен быть хорошо спроектирован, а не представлять из себя винегрет из возможностей, противоречащих дру другу.

     
     
  • 5.59, nc (ok), 21:19, 14/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    В отличие от сишечки, здесь опасный код (отказ от инициализации) требуется написать ЯВНО (и кстати достаточно многословно, я бы на месте разработчиков языка вместо @undefined использовал бы всё тот же подчерк)
    Для нормального программиста этого достаточно.
     
     
  • 6.65, Аноним (51), 23:54, 14/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Нет абсолютно никакой разницы, написан отказ от инициализации явно или неявно. Проблемы возникают, когда требуется состыковать один сишный код с другим сишным кодом. Никто не будет читать исходник от первой строки до последней, чтобы увидеть, где что инициализировано, а где - нет, на буквально каждую правку.
     
  • 4.68, Аноним (68), 00:54, 15/02/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Пха-ха-ха Сам же и подтвердил абсурдность такой возможности А ну как случа... большой текст свёрнут, показать
     
     
  • 5.70, Аноним (70), 10:16, 15/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Отображенные в память регистры устройств зачем обнулять? Это имелось ввиду.
     
  • 5.89, Александр (??), 07:09, 16/02/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Почитай для начала про аппаратную часть разных архитектур, особенно про маппинг регистров и перестань нести откровенную чушь
     

  • 1.25, Аноним (25), 08:39, 14/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > может быть возвращено при прерывании цикла выражением "break значение" или через указание "yield значение_по_умолчанию" в прикреплённом к циклу блоке "else{...}", который вызывается, если цикл не был прерван через break.

    И это всё, чтобы поизображать ограничения из функциональных языков (обойтись одним присваиванием), где нельзя написать лучше, если императивщины не хватает? Только там было бы ноль ключевых слов для return'а, а здесь уже три.

    Непонятно, откуда ещё item.key взялся.

    Чем-то похоже на изобретание новых циклов в 70-е, когда придумывали ключевые слова, чтобы от if в середине блока избавиться.
    https://en.wikipedia.org/wiki/Control_flow#Middle_test

     
  • 1.27, Аноним (27), 09:05, 14/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Hare преподносится как язык системного программирования, близкий к языку Си, но проще, чем Си.

    Ц когда то тоже был простым, но это исправили ;)
    И Харю исправят ;)

     
  • 1.38, LaunchWiskey (ok), 12:03, 14/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > Hare преподносится как язык системного программирования, близкий к языку Си, но проще, чем Си.

    Куда ж проще, чем классический C? Того, кто C освоить не может, и близко к программированию подпускать нельзя, а не упрощенные языки для него делать.

     
     
  • 2.40, Сладкая булочка (?), 12:56, 14/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Того, кто C освоить не может

    Он может, достаточно его проекты посмотреть.

     
     
  • 3.50, LaunchWiskey (ok), 16:04, 14/02/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я не про создателя Зайца, а про среднестатистического современного программиста, для которых создают Зайцев, Расты и прочие инструменты, понижающие планку входа и превратившие индустрию в индус-трию..
     
     
  • 4.54, Аноним (51), 16:50, 14/02/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Расты
    >понижающие планку входа

    В каком месте раст понижает планку входа?

     
  • 4.60, Сладкая булочка (?), 21:43, 14/02/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Я не про создателя Зайца, а про среднестатистического современного программиста, для которых
    > создают Зайцев, Расты и прочие инструменты, понижающие планку входа и превратившие
    > индустрию в индус-трию..

    Создают армию послушных хомячков, еще ИИ сюда со школ внедрять, чтобы совсем думать разучились.

     
  • 4.111, Аноним (111), 20:40, 16/02/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Расты и прочие инструменты, понижающие планку входа
    > и превратившие индустрию в индус-трию..

    То ли диды на dыpяxe писали шикарный код, прям вах!
    Как же высоченна была их планка, вот совсем не индус-трия.
    CVE в их копролитах вроде иксов находят даже сейчас))

     
  • 2.42, Facemaker (?), 13:37, 14/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Освоить Си надо (хотя бы чтоб Скиену читать), но программировать на нём уже не надо.
     
     
  • 3.43, Аноним (43), 13:45, 14/02/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Как раз наоборот. Осваивать можно, что нравится, а программировать на С.
     
  • 3.44, Сладкая булочка (?), 14:30, 14/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Освоить Си надо (хотя бы чтоб Скиену читать)

    Есть мнение, что Скиену не надо как раз читать.

     
  • 2.52, Аноним (51), 16:39, 14/02/2026 [^] [^^] [^^^] [ответить]  
  • –5 +/
    >Куда ж проще, чем классический C?

    В каком месте си прост? В порче памяти? В уродовании алгоритма в угоду UB? В негигиенических макросах? Вот ни разу ни один сишник не объяснил, зачем ему нужно 100500 способов попортить память.

     
     
  • 3.58, Аноним (56), 20:36, 14/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Плохому танцору партнёрша мешает.
     
  • 3.61, Сладкая булочка (?), 21:45, 14/02/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>Куда ж проще, чем классический C?
    > В каком месте си прост?

    Можно просто сравнить по кол-ву страниц стандарт Си и Раста (которого нет).

     
     
  • 4.63, Аноним (51), 23:51, 14/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Любая тьюринговая трясина, вроде brainfuck будет проще чем си, по вашему же критерию.
     
     
  • 5.67, Сладкая булочка (?), 00:54, 15/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Любая тьюринговая трясина, вроде brainfuck будет проще чем си, по вашему же
    > критерию.
    > вроде brainfuck

    Но у него нет стандарта)


     
     
  • 6.76, Аноним (51), 20:15, 15/02/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Во-первых, я говорю не про конкретный язык, а про подмножество языков Во-вторых... большой текст свёрнут, показать
     
     
  • 7.78, Сладкая булочка (?), 21:58, 15/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Во-вторых, а у си что, стандарт есть, настоящий, полноценный стандарт, а не фикция, дающая только игрушечный язык?

    Да, полноценный стандарт.

    > Это просто замечательно, что возможность сборки clang-ом добавлялась дважды, и не смотря
    > на это по прежнему остаётся экспериментальной и далеко не под все
    > архитектуры.

    clang - это конкретная реализация, ничего удивительного, что одна реализация не может собрать софт, который собирается другой.

    Проблема, когда есть только одна реализация, которая и определяет поведение.

     
     
  • 8.79, Аноним (51), 22:15, 15/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Полноценный мнимый стандарт Для того, чтобы стандарт был полноценным, нужна воз... большой текст свёрнут, показать
     
     
  • 9.80, Сладкая булочка (?), 22:30, 15/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Что значит мнимый Вы можете его скачать Реализации компиляторов его используют... текст свёрнут, показать
     
     
  • 10.81, Аноним (51), 23:33, 15/02/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это значит - не сущетсвующий, эфимерный Как мираж в пустыне Вот когда у вас бу... большой текст свёрнут, показать
     
     
  • 11.82, Сладкая булочка (?), 00:15, 16/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Есть много других программ Стандарт важен и почему выше уже ответ есть Зачем ... текст свёрнут, показать
     
     
  • 12.84, Аноним (51), 01:29, 16/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Например, hello world-ов Вы компилятором, соответствующим стандарту не сможете ... большой текст свёрнут, показать
     
     
  • 13.85, Сладкая булочка (?), 02:28, 16/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Это неверное утверждение В нем содержится логическое противоречие gcc соответс... текст свёрнут, показать
     
     
  • 14.86, Аноним (51), 04:02, 16/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Для того, чтобы соответствовать стандарту, нельзя добавлять ничего сверху Если ... большой текст свёрнут, показать
     
     
  • 15.97, Аноним (51), 09:43, 16/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Кстати да, почему у всех языков, у которых есть стандарт, со временем появляются... текст свёрнут, показать
     
  • 15.105, Сладкая булочка (?), 16:58, 16/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Это вы сейчас придумали и пытаетесь выдать за истину Это глупость В коде может... большой текст свёрнут, показать
     
     
  • 16.109, Аноним (51), 20:20, 16/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Стандарт нужен для переносимости Любые расширения сверх стандарта эту переносим... большой текст свёрнут, показать
     
     
  • 17.114, Сладкая булочка (?), 21:47, 16/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Это шутка Там же явно написано Примечание Этот раздел описывает поведение, ко... текст свёрнут, показать
     
     
  • 18.117, Аноним (51), 23:48, 16/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Вы хотите сказать, что в стандарте прописано, что если название бразуера firefox... большой текст свёрнут, показать
     
  • 16.112, Аноним (112), 20:45, 16/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    У него есть RFC Этого достаточно для создания весьма сложных систем таких как и... большой текст свёрнут, показать
     
     
  • 17.113, Сладкая булочка (?), 21:40, 16/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    rfc недостаточно Тут же все написано For 1, we currently have the incomplete ... большой текст свёрнут, показать
     
     
  • 18.120, Аноним (120), 23:56, 16/02/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 18.121, Аноним (51), 00:35, 17/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Для чего Какую практическую вещь вы хотите этим получить Благодаря тому, что к... большой текст свёрнут, показать
     
  • 4.73, Аноним (73), 17:55, 15/02/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > по кол-ву страниц стандарт Си

    Вы про тот кусок Г, в котором UB в несколько раз больше чем зарезервированных слов?
    В котором не определись как складывать два числа без UB?
    В котором даже нет строк, а для того чтобы добавить значения true и false без костылей в виде макросни понадобилось 50 лет?

    Отличный стандарт!
    Слава богу у раста такого нет)))

     
  • 3.91, Sm0ke85 (ok), 07:29, 16/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >В каком месте си прост? В порче памяти? В уродовании алгоритма в угоду UB? В негигиенических макросах? Вот ни разу ни один сишник не объяснил, зачем ему нужно 100500 способов попортить память.

    Потому что Си-шник пишет для железки, а не пытается написать поэму/стихи для компилятора и надеяться, что эта повесть/поэзия таки будет работать как задумано....

     
     
  • 4.99, Аноним (51), 09:48, 16/02/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >а не пытается написать поэму/стихи для компилятора

    Опять фантазии. Во-первых, сишный код не отображается на ассемблер напрямую, как минимум из-за UB, которая может в любой момент его исказить до неузнаваемости. Во-вторых, откуда вы придумали про поэму? Вы опять не понимаете, как раст с абстракиями работает?

     
     
  • 5.115, Сладкая булочка (?), 21:53, 16/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >>а не пытается написать поэму/стихи для компилятора
    > Опять фантазии. Во-первых, сишный код не отображается на ассемблер напрямую, как минимум
    > из-за UB, которая может в любой момент его исказить до неузнаваемости.

    Не делай UB, в чем проблема? Банально на дверце написано "не влезай, убьёт!", а ты такой "а, давай залезем и вот нас убило! Какая плохая дверца! Она должна была нас остановить!".

     
     
  • 6.118, Аноним (51), 23:54, 16/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >Не делай UB, в чем проблема?

    Я и не делаю, просто не используя си. А вы пойдите к настоящим сишникам и объясните, почему это нулевой указатель нельзя разыменновывать, а то они чуть ли не поголовно уверовали в то, что обязательно будет segfault. И таких примеров с ub чуть ли не на каждую сишную функцию.
    >Какая плохая дверца! Она должна была нас остановить!

    Какая дверца? Сишный компилятор код с UB компилирует без предупреждений. А если включать диагностику, то работает она нестабильно - вынесешь код в отдельную функцию, и всё диагностика отломалась.

     
     
  • 7.119, Сладкая булочка (?), 23:55, 16/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >>Не делай UB, в чем проблема?
    > А если включать диагностику, то работает она нестабильно - вынесешь код в отдельную функцию, и всё диагностика отломалась.

    А можно пример?


     
     
  • 8.122, Аноним (51), 00:52, 17/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Это напрямую вытекает из семантики си cat b h struct A int p ... большой текст свёрнут, показать
     
     
  • 9.123, Сладкая булочка (?), 01:09, 17/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    https stackoverflow com a 79766556 ... текст свёрнут, показать
     

  • 1.53, Аноним (51), 16:49, 14/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Разработка компиляторов низоуровневой задачей не является, для неё куда лучше по... большой текст свёрнут, показать
     
     
  • 2.62, Сладкая булочка (?), 21:46, 14/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > для неё куда лучше подойдёт Ocaml или Haskell

    Они подходят для прототипов, потом их обычно переписывают.

     
     
  • 3.64, Аноним (51), 23:51, 14/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Переписывают ради раскрутки компилятора. Будб оригинал написан на си, его точно также переписали бы.
     
  • 2.71, Аноним (71), 13:08, 15/02/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Разработка компиляторов низоуровневой задачей не является,

    Тупой вброс. Тот кто разрабатывает компиляторы обязан знать апаратную начинку.

     
     
  • 3.72, Аноним (51), 14:30, 15/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем вам в коде компилятора нужны указатели и ручное управление памятью?
     
     
  • 4.103, Аноним (103), 11:47, 16/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Указатели и ручное управление памятью в контексте компиляторов - это довольно высокоуровневые абстракции
     
     
  • 5.104, Аноним (51), 12:39, 16/02/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ни разу. Чем больше ручного жонглирования с указателями, тем сложнее получить требуемый результат.
     

  • 1.66, Аноним (66), 00:27, 15/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Когда хотят си упростить, все время джаваскрипт или перл получается ))
     
     
  • 2.94, mos87 (ok), 07:37, 16/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Вот именно что Perl уже давно получился.
     

  • 1.88, Аноним (88), 04:56, 16/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Drew DeVault

    И автор блога... смотрите сами - https://drewdevault.com/

     
  • 1.93, mos87 (ok), 07:36, 16/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Дрю ДеВолт (Drew DeVault), автор

    и очень интересная_личность

     
  • 1.102, Аноним (102), 11:07, 16/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    пока не вернут пример HelloWorld на русском языке - харе - не язык! :-Е
     
  • 1.110, enep (ok), 20:38, 16/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Hare преподносится как язык системного программирования, близкий к языку Си, но проще, чем Си

    простите куда еще проще?

     
  • 1.116, Аноним (116), 22:54, 16/02/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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