Releases: ArgosOfIthica/scalu
Release v1.2.0
Compiler will optimize much more aggressively using a variety of metrics. Dramatically reduced script sizes.
Add XOR operator
Add the elif condition statement
Make project pip friendly (getchoo)
Add macro system. Use --enablemacros to enable. Experimental.
Add "standard library" of mathematical functions written in scalu. Can be enabled with macros. Experimental. (tmob03)
Release v1.1.1
- Adds important patch related to bug in jump generation
Release v1.1.0
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.
Initial Release
This is the initial release of scalu. This release features the core language and compiler.
(Deprecated) Scalu "Cycle" Framework
This is the latest version of the Scalu backend that was being worked on before the "flat" backend format was discovered. "flat" is around 10 times as fast as "cycle", so this format is considered deprecated. This format has some archival benefit, as the opcode algorithms are implemented in a human readable form. This is NOT an official release of Scalu.