Skip to content

0.5.2

Latest
Compare
Choose a tag to compare
@ExpHP ExpHP released this 18 Aug 07:40

Added

  • Support for TH18.5 100th Black Market.
  • Debug info. The --output-debug-info JSONFILE flag has been added to all compile subcommands. This file can be used by debuggers to relate source-level concepts (e.g. function names and variable names) to runtime concepts (e.g. registers and const values).
    Perfect name resolution of locals in a debugger might not be possible yet as truth currently does not explicitly construct the tree used for name resolution (it is only implicitly constructed), so scope information is not yet available.
  • Bitwise negation. The unary ~ (bitwise not) operator has been added. No language natively provides it, but even when unavailable, it can be used (and will compile as -1 - x).
  • --no-builtin-mapfiles option for both compilation and decompilation. This will disable the core mapfiles which provide the builtin signatures and intrinsic mappings for all games, which can be useful if you are trying to design a comprehensive mapfile from scratch.

Other changes

  • The ternary operator a ? b : c can now be used in any expression, not just const expressions.
  • Relative time labels and interrupts now accept expressions, so you can use consts. Technically this also makes negative relative time labels possible; whether you choose to write them as +(-15): or (gasp) +-15: is up to you...
  • Unary - now can be directly provided by an intrinsic, and will otherwise fall back to -1 * x. (formerly, it would always produce 0 - x, which is not correct for all floats)