Files
stationeers_lang/Changelog.md

2.1 KiB

Changelog

[0.3.4]

  • Added support for loadReagent, which maps to the lr IC10 instruction
    • Shorthand is lr
    • Longform is loadReagent
  • Update various Rust dependencies
  • Added more optimizations, prioritizing pop instead of get when available when backing up / restoring registers for function invocations. This should save approximately 2 lines per backed up register

[0.3.3]

  • Fixed bug where negative temperature literals were converted to Kelvin first before applying the negative

[0.3.2]

  • Fixed stack overflow due to incorrect optimization of 'leaf' functions

[0.3.1]

  • Fixed possible KeyNotFoundException in C# code due to invalid dictionary access when an IC housing has an error

[0.3.0]

  • Implemented a multi-pass optimizer
    • This should significantly reduce line count in the final output
  • Fixed source map to line up with newly optimized code

[0.2.4]

  • Groundwork laid to collect and track source maps
  • IC Housing will now display the Slang source error line (if available) instead of the IC10 source error line

[0.2.3]

  • Fixed stack underflow with function invocations
    • They are still "heavy", but they should work as expected now
  • Fixed issue where syscall functions were not allowed as infix operators

[0.2.2]

  • Fixed some formatting issues when converting Markdown to Text Mesh Pro for Stationpedia
  • Added support for ternary expressions
    • let i = someValue ? 4 : 5;
    • i = someValue ? 4 : 5;
    • This greedily evaluates both sides, so side effects like calling functions is not recommended i.e.
      • i = someValue : doSomething() : doSomethingElse();
      • Both sides will be evaluated before calling the select instruction

[0.2.1]

  • Added support for loadSlot and setSlot
  • Fixed bug where syscalls like max(1, 2) were not allowed in assignment expressions

[0.2.0]

  • Completely re-wrote the tokenizer to use logos
  • Changed AST and Token data structures to use Cow instead of String
  • Updated error reporting to use thiserror instead of quickerror

[0.1.2]

  • Removed references to Unitask