Releases: jparoz/huck
Releases · jparoz/huck
Version 0.3.0
This release includes the following additions to the compiler:
- An intermediate representation type
ir::Module
, converted fromast::Module
before code generation. This simplifies the code generator, removing duplication where two Huck constructs compile to the same Lua; as well as forcing all errors to be caught before code generation. It will also form the basis of later optimisations. - A variety of ergonomic features including:
- Importing binops from another module
- Importing type constructors from another module
- Renaming imports using
as
- Using normal names as binops with backticks:
foo = 1 `plus` 2;
- Type arity checking: The compiler now checks for invalid type signatures such as
foo : Int Bool -> Bool Int;
- Fixes for many other typechecker bugs
- Many more tests and general robustness improvements
Full Changelog: 0.2.1...0.3.0
Version 0.2.1
The main changes in this version are to do with the module system. Previously it was basically ad-hoc shove everything into a file; now we have proper hygienic imports, name resolution, inline Lua, and a basic Prelude.
Version 0.1.1
This is the first time I've tried to clean up the project to a point that it might be vaguely understandable, so it seems like a good moment to mark. Lots of things probably still don't make sense, but I will continue to work on these in the next few versions.