Hare 0.25.2: новий випуск мови програмування

Hare 0.25.2: новий випуск мови програмування для системної розробки

Дрю ДеВолт, автор користувацького оточення Sway, поштового клієнта Aerc та платформи спільної розробки SourceHut, представив новий випуск мови програмування Hare 0.25.2. Номер версії формується як 0.YY.Q, де YY – дві останні цифри року, а Q – номер кварталу. Попередній випуск Hare 0.24.2 було опубліковано рік тому.

Hare позиціонується як мова системного програмування, близька до мови С, але простіша. Код компілятора та інструментарію поширюється під ліцензією GPLv3, а стандартна бібліотека – під ліцензією MPL.

Особливості мови Hare

Мова оптимізована для вирішення низькорівневих завдань, таких як розробка операційних систем, компіляторів, мережевих програм та системних утиліт. Вона забезпечує максимальну продуктивність і повний контроль над виконанням. Водночас, Hare використовує ручне управління пам’яттю та статичну систему типів.

Для виконання програм постачається мінімальний runtime, а для розробки надається стандартна бібліотека функцій. Вона забезпечує доступ до базових інтерфейсів операційної системи та пропонує функції для роботи з типовими алгоритмами, протоколами та форматами, включаючи засоби для використання регулярних виразів та шифрування.

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

Що нового в Hare 0.25.2

Новий випуск містить численні покращення та нові функції:

  • Розширено можливості буферизованого вводу/виводу. У модуль “memio::” додано режим потоків “nonblocking”. З’явилися нові опції для налаштування поведінки при обробці кінця файлу в bufio::scanner.
  • В утиліті “haredoc” реалізовано можливість витягування з README-файлів стислого опису модулів і його відображення під час виводу списку модулів.
  • Додано підтримку Unix/POSIX API, включаючи io::fsync, io::fdatasync, unix::getrlimit, unix::setrlimit та fcntl. Для NetBSD портовано підтримку розподіленої пам’яті.
  • В утиліту hare додано підтримку вбудовування зовнішніх обробників, що викликаються за допомогою підкоманди “hare tool”.
  • Обов’язковою стала обробка помилок у ситуаціях нестачі пам’яті. Доданий новий примітивний тип “nomem”, що повертається функціями виділення пам’яті.
  • Покращено API для роботи з датами та часом. Розширено можливості роботи з часовими поясами і додано підтримку правил PETZ.
  • Додано підтримку семантичних анотацій коду, що дозволяє додавати до коду метадані, які ігноруються компілятором, але можуть використовуватися лексичним аналізатором.
  • Представлено утиліту hare-update для спрощення міграції коду на нові версії інструментарію Hare, що містять зміни, які порушують зворотну сумісність.

Завдяки цим удосконаленням, Hare 0.25.2 стає ще більш потужним інструментом для системного програмування, зберігаючи при цьому свою простоту та ефективність.

Детальніше про новий випуск можна дізнатися у офіційному анонсі.