категории | RSS

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

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 полностью помещается на трёхдюймовой дискете.



Источник новости: habr.com

DimonVideo
2025-06-22T14:50:01Z

Здесь находятся
всего 0. За сутки здесь было 0 человек
Яндекс.Метрика