Thanks to visit codestin.com
Credit goes to github.com

Skip to content

1.0.0-1

Latest

Choose a tag to compare

@bsuth bsuth released this 11 Aug 05:46
· 5 commits to master since this release

Changed

  • No longer allow keywords as index fields (generated invalid Lua code)
  • Loaded compiled Lua chunks now have their source names embedded in their chunkname
  • Operator assignments no longer cause unnecessary duplicate indexing
    • #29
    • ex) my_expensive_function().x += 1 will now only call my_expensive_function once.
    • ex) a.b.c += 1 will only cause a to be indexed once.
  • Erde now transforms variable names based on the scope they were declared with.
    • The most recently declared scope will always take precedence
    • ex) local x = 0; global x = 1; assert(x == 1)
  • Erde now throws a parsing error when declaring a destructured variable with no value (ex. local { a };)
  • Erde now throws a parsing error when using goto with an undefined label (same behavior as Lua)

Fixed

  • Fixed allowing keywords as variable names
  • Fixed compilation error for interpolation strings with only an escaped brace
  • Fixed return list failing to parse surround chars in strings
  • Fixed not being able to assign to the index of a function call result
  • Fixed parsing table string entry with only =
  • Fixed compilation of function declarations with Lua keywords
  • Fixed operator precedence fighting in operator assignments
  • Fixed erde compile failing when parent directories are not present
    • parent directories are now created recursively as needed
  • Fixed mismatched names for Lua keywords when accessing _G or _MODULE
  • Fixed module declarations not updating _MODULE
  • Fixed continue generating invalid code when targeting 5.1(+)
  • Fixed return lists incorrectly interpreting expression commas as list commas
    • For example, returning an iife with a comma in the function body
  • Fixed mangled stacktrace for bit library tail calls

Added

  • Erde will now throw a compiler error when targeting 5.1, 5.1+, or jit, and there are additional statements following a break.
    • Lua 5.1 / LuaJIT do not support statements following break (parsing error, similar to return)
    • #34
  • Compiled files now include the Lua target at the bottom of the compiled file.
  • Added specific error checks for common mistakes
    • ~= vs !=
    • elseif vs else if
  • The Erde version is available via the API using erde.version