The latest version of the Loci compiler is now available. See the release notes for detailed information about what’s included.
The main feature in this release is a brand new compiler diagnostics system with a rewritten lexer and parser. Here’s an example of errors from the old compiler:
Parser Error: Failed to parse file 'MultipleElse.loci' with 2 errors: Parser Error (at SourceLocation(filename = MultipleElse.loci, range = (line 11, column 4) to (line 11, column 8))): syntax error, unexpected ELSE Parser Error (at SourceLocation(filename = MultipleElse.loci, range = (line 11, column 4) to (line 11, column 8))): Invalid statement.
And here’s how it looks with the new diagnostics system:
MultipleElse.loci:11:4: error: 'else' without a previous 'if' } else { ^~~~ 1 error generated.
This release is therefore an enormous improvement in the usability of the compiler and the cause of errors/warnings should be very clear to the user.