Skip to content

Release v1.1.0

Compare
Choose a tag to compare
@ArgosOfIthica ArgosOfIthica released this 30 Jan 05:06
· 76 commits to master since this release
87e3571

This release features the following major changes to scalu:

  • Improved temporary variable allocation strategy applied to sandboxes. A less greedy strategy is used for allocating temporary variables used in expressions.

  • Reduced compute cost of instructions targeting constant values. This was done at the instruction generation level by having instructions construct themselves based on what type of value they work on.

  • Added peephole deduplication for cfg output. A deduplication algorithm is run on the cfg output to deduplicate aliases with identical tails.

  • Add dot notation. Sandboxes can now read the state of variables in other sandboxes; my_sandbox.my_variable

  • Add bitshift operators. Constant bitshifts can be computed between two values. a = b >> c

  • Remove mebibyte limitation. In cases where the output file will exceed the Source engine's mebibyte limit, the compiler will employ a chaining strategy to split the output across multiple files.

-Add several examples, including files used in creation of scalu hangman game.

NOTE: The optimizations included in this release, combined, approximately halved the code size and doubled the speed of test workloads from last release.