Scalu Versions Save

scalu is an event-based programming language and compiler targeting config files in Valve's Source Engine

v1.2.0

8 months ago

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)

v1.1.1

3 years ago
  • Adds important patch related to bug in jump generation

v1.1.0

3 years ago

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.

v1.0.0

3 years ago

This is the initial release of scalu. This release features the core language and compiler.

v0.1-cycle-alpha

4 years ago

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.