Skip to content

v0.1.4

Choose a tag to compare

@JanSharp JanSharp released this 10 Feb 06:43
· 8 commits to 0.1.x since this release

Release Types

  • Phobos for <platform> contains all files required to run Phobos as a command line tool.
    This includes built binaries for Lua and LuaFileSystem which are required to run Phobos.
  • Phobos Raw contains the same as above, except built Lua and LuaFileSystem binaries.
    This is useful when you wish to use your own build of Lua and LuaFileSystem,
    or when you wish to use Phobos as a library for your project.
    (Note: Library package might be its own package in the future.)
  • Phobos Factorio Mod is the same package which is uploaded to the Factorio Mod Portal.
    In short, it is the library equivalent of Phobos within Factorio, but see the README for more info.

Changelog

Minor Features

  • Add --version argument
  • Add a human readable header stating the Phobos version in output files with --use-load
  • Add --custom-header to include a little extra description in the header mentioned above
  • Support files with a shebang
  • Handle invalid nodes in the formatter
  • Implement parsing and compiling as 32 bit signed integer numbers instead of doubles

Changes

  • Change output of --use-load making it 40-50% smaller, a little bit bigger than raw bytecode
  • Cleanup, improve and update the README and add a docs folder
  • Emit null strings in bytecode wherever null is valid instead of falling back to ""
  • Replace stat_elem internally everywhere by using intrusive linked lists
  • Parse malformed numbers just like Lua parses them resulting in more useful syntax errors

Bugfixes

  • Fix 'lua.exe' not finding 'lua52.dll' because it was called 'lua.dll'
  • Fix (foo()) being a valid statement
  • Fix strings in invalid contexts generating invalid AstTokenNodes or failing assertions
  • Fix the local variable for 'fornum' being in the parent scope in the AST
  • Fix unterminated block strings with leading newlines missing said newline in the invalid node
  • Fix unterminated block comments not emitting invalid nodes, so no syntax errors
  • Fix potentially invalid or broken bytecode in functions with more than 256 constants
  • Fix hexadecimal numbers with hex letters in their exponent (malformed) failing assertions