Skip to content

0.8.1

Choose a tag to compare

@xTrayambak xTrayambak released this 22 Sep 10:33
· 83 commits to master since this release

Bali 0.8.1 is out with 17 commits in total, bringing various improvements and optimizations.

Fixes

niche

  • Immediate expressions to call should have their output owned by the call statement, fixes an invalid bytecode generation case
  • Arguments-register reset guards are now emitted around constructor calls, fixes an argument-clobbering bug.
  • INVK <str> is now being phased out for CALL <str> for better separation of concerns

runtime

  • newRuntime() now initializes the context's HeapManager instead of run()

vm

  • Fixed a regression where a crash would occur if function x(a) was called with no arguments
  • Removed uncompliant old (from July 2024-ish!) builtins that were implemented to simply test the waters
  • INVK on non-callables now throws a TypeError instead of a Nim exception, meaning it is now a catchable exception in JavaScript code.

bridge

  • Implemented callNoRetval(), which prevents any unnecessary heap allocations if a JavaScript function returns nothing. Useful for realtime applications wishing to embed Bali but are wary of the heap churn.

Additions

madhyasthal

  • Implemented x64 code generation path for CALL opcode
  • Implemented IR symbol and x64 code generation path for RARG opcode
  • Implemented IR symbol for JMP opcode
  • Implemented IR symbol for JavaScript semantics-compliant equation
  • Implemented jump patching for IR
  • Implemented jump patching for translating IR jumps to x64 code offsets