Skip to content

0.7.7

Choose a tag to compare

@xTrayambak xTrayambak released this 22 Aug 15:09
· 144 commits to master since this release

Bali 0.7.7 is a new release that brings various fixes, additions and performance improvements, as always. :^)
Bali is now licensed under the BSD3 license to make it easier for you to integrate it into your programs.

Fixes

Balde

  • --dump-allocation-metrics now works in REPL mode and prints memory usage per evaluation
  • Removed old license

Niche

  • AST-based dead code elimination has been disabled, since the midtier JIT can perform it much more reliably without breaking the semantics of a program.
  • The bytecode generator now uses a cache pointer to save lookup time, resulting in faster bytecode generation.

Parser

  • Fixed a few sanity bugs

Madhyasthal / Midtier JIT

  • Removed a faulty assertion in the algebraic simplification pass.
  • Made DCE pass code more understandable
  • Madhyasthal has been moved out of the x64 codegen backend so that it can be used in an architecture-agnostic way for other backends as well (pretty much plug-and-play)
  • The Catnip x64 assembler has been moved in-tree as I want to make certain patches to it in the future

Misc

  • The assert.success() function no longer uses the red color to mark successful outputs. Yikes.

Additions

Madhyasthal / Midtier JIT

  • The dead code elimination algorithm has been improved as it can now perform look-aheads to see whether an output is actually used, eliminating it with full confidence if not. This means certain cases where the DCE pass was too conservative are now fully optimized.
  • The DCE pass now stores its collected heuristics in a DCEPassInfo struct for future passes to use.

Runtime

  • A new traceback viewer has been implemented. It's still a work in progress, but it properly shows the source view of where an exception occurred instead of a bytecode instruction view. Finally.
  • Basic groundwork for Windows x64 support for the JIT compilers has been laid down with a new cross-platform assembler buffer allocator, however the codegen routines themselves are still tailored to the SystemV ABI for now.

Parser

  • The parser now parses anonymous functions properly now. Finally.

ECMAScript

  • The Date parser is now stricter about certain edge cases to be more compliant.