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

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 4292
Зарегистрирован: 20.08.2022

#

Выпуск языка программирования Hare 0.25.2
Дата публикации:Sun, 22 Jun 2025 10:21:19 +0300




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



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



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



В новой версии:
  • Расширены возможности буферизированного ввода/вывода. В модуль "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.

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

    #[json::gen]
    export type player = struct {
    name: str,
    #[json::field(name = "X", omit_null=true)]
    x: *f64,
    #[json::field(name = "Y", omit_null=true)]
    y: *f64,
    };


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


Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=63441

Жизнь за Нер'зула!

Ответить