Version 0.2.0 consists of a few critical bug fixes, numerous usability improvements such as prettier printing of types and auto completion in the REPL as well as two additions to the language itself.
Row-polymorphic records are added to the type system (albeit in a slightly limited capacity) as well as type holes. More additions building on these features will be added in a backwards compatible way in upcoming versions.
In addition to the user visible changes listed here the internals have seen a lot of legacy cruft removed, in major part thanks to @brendanzab.
- Use InFile to display source information for parse errors (7026d8a3)
- Use starts_with and ends_with from Rust instead of gluon (5144ee29)
- Rename io.print to io.println and add io.print (0a6b65bd)
- Implement unification of row polymorphic records (df007c6e)
- Improve readability of large types by splitting them onto multiple lines (1c296ac9)
- Add holes to the type syntax, and use them when building the AST (fb9bd82c)
- Rename (*) to Type (8a3e1945)
- Repl UX improvements (2ed0a35b)
- base: Use quick-error for instantiate::Error (96a8c631)
- check:
- Attempt to generate variable starting with a unique letter (f3c2e625)
- parser:
- repl: Add completion to the repl (ee4d0b60)
- vm:
- Don't gluon panic when writing only a colon (
:
) in the repl (7864c449) - Only print a Stacktrace on panics (c059bfd3)
- Surround operators with parens when pretty-printing (7ccc6f22, closes #60)
- Rename windows file separators characters ('\') to '.' as well (207bfc9a)
- Add a space before : when pretty printing types (a9b160c3)
- Print ',' as separator between each type of a record (d72d3e1b)
- Don't return None from Source::location when byte is at end of file (5aee09a5)
- check:
- completion:
- Give completion for local variables when pointing to whitespace (5c59a795)
- repl: