Новости Hare 0.24.2: BSD, Linux и мощь C в одном флаконе

NewsMaker

I'm just a script
Премиум
13,856
20
8 Ноя 2022
Новый релиз переопределяет системное программирование.


mw36w1w8lhkfo4wfp6gboc6maxpf49vp.jpg


Дрю ДеВолт объявил о выпуске новой версии языка программирования Для просмотра ссылки Войди или Зарегистрируйся . ДеВолт является создателем пользовательского окружения Sway, почтового клиента Aerc и платформы совместной разработки SourceHut.

Hare позиционируется как язык системного программирования, который по сложности близок к C, но значительно проще. Исходный код компилятора и инструментов распространяется под лицензией GPLv3, а код стандартной библиотеки – под лицензией MPL (Mozilla Public License).

Вот основные изменения:

  • Теперь Hare поддерживает платформу NetBSD, что расширяет поддержку платформ Hare до всех трех основных BSD-дистрибутивов: NetBSD, OpenBSD и FreeBSD, а также Linux.
  • Важным дополнением в Hare 0.24.2 стали циклы for-each. Функция позволяет более удобно и проще перебирать элементы массивов и срезов. Теперь можно итерировать как по самим элементам, так и по указателям на них.
Пример итерирования по элементам массива:

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

  • Теперь функции в Hare могут определять значения по умолчанию для опциональных параметров. Это сделано для удобства и гибкости при вызове функций. Например, функция example теперь может принимать второй параметр с дефолтным значением:

<pre> fn example(x: int, y: int = 34) void = { // ... }; example(12); // Эквивалентно вызову example(12, 34); </pre>
  • Модуль bufio, предназначенный для улучшения производительности ввода-вывода за счет буферизации, получил значительные улучшения. Устранены многие проблемы с копированием памяти, что значительно повысило производительность. Это особенно важно для I/O-зависимых программ на Hare.
  • Теперь модуль regex:: поддерживает множественную альтернативу, что завершает реализацию POSIX Extended Regular Expressions. Новшество позволяет использовать шаблоны вроде (ha|py|sh), делая работу с регулярными выражениями более гибкой.
  • Для улучшения многопоточности и взаимодействия между процессами на Unix была расширена поддержка конструкций общей памяти. Реализованы функции shm_open и совместимые с libc для всех поддерживаемых платформ, что позволяет программам на Hare использовать POSIX общую память для взаимодействия с программами на C. Поддержка memfd также добавлена для платформ FreeBSD и Linux.
  • В Hare 0.24.2 добавлены новые криптографические API, такие как crypto::ec, crypto::ecdh и crypto::ecdsa, что расширяет возможности разработчиков в области безопасного программирования.
Релиз включает ряд изменений, нарушающих обратную совместимость с версией 0.24.0. Среди них введение типа «done» для улучшения паттерна итераторов, обновление множества стандартных библиотек и изменения в API модулей unix:: и time::.

Для пользователей, чьи программы зависят от предыдущих версий, необходимо провести рефакторинг кода. Подробности всех изменений можно найти в Для просмотра ссылки Войди или Зарегистрируйся релиза.
 
Источник новости
www.securitylab.ru

Похожие темы