Hare 0.25.2 Programming Language Released

Drew Devault, the creator behind the SWAY user environment, ARC postal client, and a collaborative project on Sourcehut, has recently released version 0.25.2 of the programming language Hare. This new version follows a naming convention of 0.yy.q, where YY represents the last two digits of the year, and Q signifies the quarter number. The previous release, Hare 0.24.2, came out a year ago. Hare is positioned as a programming language that closely resembles the SI language but offers simpler syntax. The source code for the compiler and tools is available under the GPLV3 license, while the standard library is covered by the MPL license (mozilla public license).

Hare is specifically designed to handle low-level tasks such as operating system development, compilers, network applications, and system utilities, requiring both high performance and full control over implementation. The language incorporates manual memory management and a static type system that mandates explicit type declarations for variables.

The language includes a minimal runtime for application execution and a standard library with functions that provide access to standard algorithms, protocols, and formats. This includes support for typical algorithms, regular expressions, and encryption. Additionally, tools like hare-wayland are being developed for graphic applications, alongside links for leveraging capabilities in interfaces like gtk, vulkan, opengl, sdl2, and libui.

In this new version, enhancements have been made to the buffering/output capabilities of Hare. Features such as the “Nonblocking” mode in the “Memio ::” module, end-of-file handling in bufio :: scanner, flow control in bufio :: Stream, os :: open_buffhed, and os :: Create_buffhed have been added. Haredoc utility now allows for the extraction of brief module descriptions and their display in module lists. Support for UNIX/Posix APIs like IO :: fsync, IO :: fdatasync, unix :: getrlimit, unix :: setrlimit, Fcntl (via OS :: Getflags and OS :: setflags), and a port for separated memory in OS NetBSD have also been incorporated.

/Reports, release notes, official announcements.