Как стать автором
Обновить

Релиз языка программирования Hare 0.25.2

Время на прочтение3 мин
Количество просмотров11K

21 июня 2025 года состоялся релиз языка программирования Hare 0.25.2 от команды под руководством Дрю ДеВолта (создателя платформы SourceHut и mail-клиента Aerc). Выпуск Hare 0.24.0 состоялся в феврале 2024 года, релиз Hare 0.24.2 произошёл в июле 2024 года.

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

Разработчики проекта пояснили, что работа над Hare находится в активной стадии, а между выпусками могут быть некоторые критические изменения. Идей и наработок у них так много, что код проекта быстро меняется. Команда проекта решила выпускать ежеквартальные выпуски Hare с номерами версии типа 0.YY.Q, где YY — двузначный год выпуска, а Q — квартал (с нулевым индексом), в котором она была выпущена. Для каждого выпуска будет подготовлен журнал изменений (включая краткое описание критических изменений и необходимых действий для затронутых пользователей) в рамках развития портала hare-announce.

«В будущем мы будем вносить кардинальные изменения, некоторые из которых могут быть даже драматичными (серьёзными/существенными). Мы планируем заморозить версию языка Hare 1.0, поэтому нам необходимо иметь возможность исправлять ошибки проектирования на этом этапе жизненного цикла Hare. Однако мы признаём, что Hare сегодня является относительно сложным и полезным, и мы хотим найти баланс, который поможет людям использовать его сегодня, имея при этом инструменты, позволяющие справляться с этими изменениями по мере их появления», — уточнил разработчики проекта.

Hare — системный язык программирования, заточенный под написание компиляторов и сетевого ПО. В основу языка положена идея ручного управления памятью, статическая типизация и быстрая скорость выполнения. Исполняемые файлы генерируются на бэкенде компилятора qbe. В стандартную библиотеку Hare входят модули для работы с сетью, криптографические реализации, парсеры и лексические инструменты для POSIX. Есть привязки к OpenGL и SDL2, а также библиотеке libui для построения кроссплатформенных GUI.

По информации OpenNET, доработки и изменения в Hare 0.25.2 включают в себя:

  • расширение возможностей буферизированного ввода/вывода. В модуль «memio::» добавлен режим потоков «nonblocking». Предложены опции для настройки поведения при обработке конца файла в bufio::scanner и режимы управления потоками bufio::stream. Добавлены функции os::open_buffered и os::create_buffered;

  • в утилите «haredoc» реализована возможность извлечения из README‑файлов краткого описания модулей и его отображения при выводе списка модулей;

  • реализована поддержка Unix/POSIX API: io::fsync, io::fdatasync, unix::getrlimit, unix::setrlimit и fcntl (через os::getflags и os::setflags). Для ОС NetBSD портирована поддержка разделяемой памяти;

  • в утилиту hare добавлена поддержка встраивания внешних обработчиков, вызываемых при помощи подкоманды «hare tool». Например, при помощи подобного обработчика обеспечена интеграция с инструментом «hare‑update»;

  • в разряд обязательных переведена обработка ошибок в ситуациях нехватки памяти. Добавлен новый примитивный тип «nomem», возвращаемый функциями выделения памяти при невозможности выделить требуемый объём памяти;

  • улучшен API для работы с датами и временем. Расширены возможности работы с часовыми поясами и добавлена поддержка правил PETZ (POSIX Extending TZ). Многие функции перенесены из модуля time::chrono в time::date;

  • добавлена поддержка семантических аннотаций кода, позволяющий прикрепить к коду дополнительные метаданные, которые игнорируются компилятором, но могут учитываться лексическим анализатором в стандартной библиотеке;

  • добавлена утилита hare‑update для упрощения миграции кода на новые версии инструментария Hare, содержащие изменения, нарушающие обратную совместимость. Например, утилита может использоваться для адаптации существующего кода к применению обязательной обработки ошибок выделения памяти, появившейся в текущем выпуске.

Разработчики проекта подготовили документацию и руководство по использованию Hare.

На Hare уже написаны микроядро Helios, менеджер паролей Himitsu, инструмент для шифрования box, торрент‑демон btqd, scheduled (альтернатива cron) и система трассировки лучей raytracing.

Отмечается, что Hare очень сильно похож на C, и почти все программы на C могут быть переписаны на Hare. Однако Hare выглядит проще и удобнее. Разработчики отмечают, что Hare доверяет программисту и явно выполняет написанный код без скрытых манипуляций.

Дистрибутив и библиотеки языка Hare полностью помещается на трёхдюймовой дискете.

Теги:
Хабы:
+13
Комментарии44

Другие новости

Работа

Ближайшие события