Hare is a work-in-progress. The following goals are prioritized.
The scope of the language and standard library are essentially fixed. Once complete, we will release 1.0 and thenceforth make only minor improvements, bug fixes, and add new supported platforms. Once all of these goals are met, Hare will be “done”.
- Matching against pointers to tagged unions
- Match and switch exhaustivity analysis
- Improvements to const
- Defers which execute when propagating errors (e.g. to free obsolete objects)
- More robust error handling for OOM scenarios
- Cryptography: TLS support
- More comprehensive Unix support (e.g. termios)
- Raw IP sockets
- dirfd abstraction
- Graphics (image support, pixel format conversions, vector drawing)
- Mail support (envelope parser, net::smtp, etc)
- SQL (generic interface + dialect drivers)
- Build driver rewrite (w/parallel builds, better flags, etc)
- Better +libc support, hare.ini
- A better test driver
- Cross compiling
- 32-bit: i486 family, 32-bit ARM, riscv32
- PowerPC (incl. big endian)
- OpenBSD, NetBSD
- Plan 9
- What are you going to port Hare to?
- Needs review, editing, and consensus.
- 8- and 16-bit sub-specification
- ABI specification