Repository navigation
0.8.1
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 forCALL <str>for better separation of concerns
runtime
newRuntime()now initializes the context'sHeapManagerinstead ofrun()
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
INVKon non-callables now throws aTypeErrorinstead 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
CALLopcode - Implemented IR symbol and x64 code generation path for
RARGopcode - Implemented IR symbol for
JMPopcode - Implemented IR symbol for JavaScript semantics-compliant equation
- Implemented jump patching for IR
- Implemented jump patching for translating IR jumps to x64 code offsets