Skip to content

v0.3.1

Compare
Choose a tag to compare
@qsctr qsctr released this 26 Jul 04:38
· 9 commits to master since this release

New features:

  • The compiler now avoids recompiling any modules which do not need to be recompiled, both in the same run (if a module is depended on by multiple modules) and across runs (if a module hasn't changed and neither have any modules that it depends on).
  • In addition to JS output, the compiler now also generates interface files (with extension .dtfpli) containing the exported identifiers of each module, which is necessary for recompilation avoidance to work. The format is currently just the output of the default Show instance for the internal Haskell data structures, but this may change in the future.
  • A basic command-line interface was added, with options to enable/disable internal debug mode, set output verbosity, and show the compiler version. There is also a help option and nicer error messages when parsing options fails.
  • The compiler now prints the filenames of the modules being compiled. To disable this you can set verbosity to 0. Otherwise, no output means no recompilation was necessary.
  • Compilation errors are now written to standard error instead of standard output.
  • The compiler now exits with exit status 1 if there is a compilation error (or an error parsing command-line arguments).
  • JavaScript parsing errors in native expressions are now handled nicely and error locations are reported.
  • The compiler now reports an error if parameter names (i.e. variable patterns) in native function definitions are named in such a way that their corresponding generated JavaScript name is different, which means that they cannot be referenced in the native expression.

Bug fixes:

  • The compiler now reports an error when native expressions contain more input after an expression rather than failing silently and just using the first expression in the output.

Other:

  • Internal optimizations.