Новый релиз переопределяет системное программирование.
Дрю ДеВолт объявил о выпуске новой версии языка программирования Для просмотра ссылки Войдиили Зарегистрируйся . ДеВолт является создателем пользовательского окружения Sway, почтового клиента Aerc и платформы совместной разработки SourceHut.
Hare позиционируется как язык системного программирования, который по сложности близок к C, но значительно проще. Исходный код компилятора и инструментов распространяется под лицензией GPLv3, а код стандартной библиотеки – под лицензией MPL (Mozilla Public License).
Вот основные изменения:
<pre> let items = [1, 2, 3, 4, 5];for (let item .. items) { fmt:rintln(item)!; }; </pre>
<pre> fn example(x: int, y: int = 34) void = { // ... }; example(12); // Эквивалентно вызову example(12, 34); </pre>
Для пользователей, чьи программы зависят от предыдущих версий, необходимо провести рефакторинг кода. Подробности всех изменений можно найти в Для просмотра ссылки Войдиили Зарегистрируйся релиза.
Дрю ДеВолт объявил о выпуске новой версии языка программирования Для просмотра ссылки Войди
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:rintln(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, что расширяет возможности разработчиков в области безопасного программирования.
Для пользователей, чьи программы зависят от предыдущих версий, необходимо провести рефакторинг кода. Подробности всех изменений можно найти в Для просмотра ссылки Войди
- Источник новости
- www.securitylab.ru