zeolite-lang v0.6.0.0 Release Notes

Release Date: 2020-05-14 // over 1 year ago
  • Compiler CLI

    • [behavior] Improves error messages for type mismatches and return-count mismatches.

    • [behavior] Improves the efficiency of loading metadata for dependencies.

    • [breaking] Fixes module-staleness check when running tests (-t).

    • [breaking] Prevents binaries from being created from main categories that are defined in $TestsOnly$ sources. (This was the original intention, but it was missed the first time around.)

    Language

    • [new] Allows @category members in concrete categories to refer to each other during initialization.

    • [new] Adds the $ExprLookup[MACRO_NAME]$ pragma, which allows the user to define expression substitutions in .zeolite-module.

    • [new] Adds the $NoTrace$ pragma, which skips generating stack-trace information for specific functions. This is useful for deeply-recursive functions whose full trace would not be useful.

    • [new] Adds the $TraceCreation$ pragma, which appends a trace for the creation of a value when there is a crash in one of its functions. This is useful when the crash stems from value initialization.

    • [fix] Fixes parsing of the '"' Char-literal.

    Libraries

    • [new] Adds the ErrorOr<#x> category to lib/util. This allows functions to return either the expected type or an error message.

    • [new] Adds the Void category to lib/util. This can be used to ignore type parameters when a value still needs to be instantiated.

    • [new] Adds the readAll function to TextReader (in lib/util) to support reading an entire file at once.

    • [breaking] Adds crashes when attempting to read RawFileReader or write RawFileWriter if there is a preexisting file error.