Hare 0.26.0 released

55 points by runxiyu


achill

Aaaand upgraded in Alpine Linux edge

jakehamilton

I thoroughly enjoyed working with Hare when I played around with it last year. It is great to see progress being made and the UX being improved.

I do wonder if Linear types (or similar) will ever make their way in to Hare. As things are today, Hare feels quite close to its goal with error handling, but lacks a language-level construct for managing resources. It is usable as-is, but I wonder if it could be made even better.

typesanitizer

Hare is a systems programming language designed to be simple and robust

Maybe I'm missing something obvious, but it seems like two of the main features added in the release make the language more complex (explicit support for leaving memory uninitialized), and less robust (ignoring errors looks the same as ignoring any other return values).

Or is there a different POV from which these additions help make the language more simple or robust?

tomsmeding

Is there a concise language overview for someone well-versed in programming language theory/implementation jargon? Preferably no more than a couple of paragraphs. I envision something like: (disclaimer: don't know if this is accurate!) "Hare is a lexically scoped imperative, procedural language with product types (structs) and sum types (tagged unions), unrestricted (but guaranteed non-NULL) pointers, namespaces, and a Go-style defer statement. Functions are closed (i.e. top-level, no lambda functions). Memory management is manual without static memory soundness guarantees. The implementation is compatible with the C ABI and thus has a seamless C FFI."

Something like this would be very useful for a particular audience for evaluating the language!