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

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

#

Выпуск языка программирования Hare 0.24.2
Дата публикации:Tue, 16 Jul 2024 12:03:41 +0300




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



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



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



В новой версии:
  • Добавлена поддержка операционной системы NetBSD (в дополнение к ранее поддерживаемым OpenBSD, FreeBSD и Linux).

    Добавлен синтаксис для определения циклов "for-each", упрощающих перебор элементов массивов и срезов.

    let items = [1, 2, 3, 4, 5];
    for (let item .. items) {
    fmt::println(item)!;
    };


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

    fn example(x: int, y: int = 34) void = {
    // ...
    };
    example(12); //эквивалентно вызову example(12, 34);

    Повышена производительность модуля bufio и связанных с ним API, использующих буферизированный ввод/вывод, таких как unix::resolvconf, unix::hosts и unix::passwd.

    В модуле "regex::" в регулярных выражениях предоставлена возможность использование шаблонов вида "(ha|py|sh)" для перечисления нескольких вариантов выбора.

    Добавлена поддержка разделяемой памяти (shm_open) и механизма memfd, позволяющего идентифицировать область памяти через передаваемый между процессами файловый дескриптор. Разделяемая память, которая может использоваться для межпроцессного и внутрипроцессного взаимодействия, например, уже задействована в реализации клиента и сервера Wayland hare-wayland.

    Добавлены криптографические функции crypto::ec,
    crypto::ecdh и crypto::ecdsa.


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

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

Ответить