Skip to content

Releases: ferus-web/bali

Bali 0.3.3

17 Oct 07:16
Compare
Choose a tag to compare

This release of Bali cleans up a lot of the code, brings more compliance (2% of the entire Test262 suite now passes successfully) and brings while loops.

This release also fixes up a compilation error that was occuring with Nim 2.2.0, so Bali can be used with the Nim 2.2.x line now.

The Nim API remains the same, meaning you'll have to do next to nothing to update to this release.

Changelog

  • Modularize the parser code
  • Various parser improvements
  • Add support for increment statements, like i++
  • Add support for while loops

Bali 0.3.1

28 Sep 09:05
Compare
Choose a tag to compare

This is the first published release of Bali, because I believe that it is stable enough to be used as a showcase.

Features

  • Basic arithmetic operations on integers (add, subtract, multiply, divide)
  • Basic boolean operations (equal, not equal) - the truthy equal operator is not implemented yet.
  • Web Math API (mostly implemented and mostly compliant)
  • Web Console API (mostly implemented)
  • Some builtins like parseInt
  • URL parsing API
  • Exceptions (No exception catching yet, though.)
  • Proper type coercion system
  • Web DOM specification helpers (namely, atob and btoa)

Compliance

As of dc89dae, Bali successfully runs 1.72% of the entire Test262 suite.

Dependencies

Building

Run this command:

$ nimble balde

You can then use Balde to run JavaScript samples. There are plenty in tests/data.

Running the Test262 benchmarks

$ nimble test262
$ ./test262.out run-all-tests-rec .

If you want to run a particular test category (say, language/comments)

$ ./test262.out run-all-tests-rec language/comments

Reporting Bugs

Please use the correct tags when reporting issues, alongside providing the JavaScript sample if the issue is a bug.

Extra Notes

  • The base64 encoder and decoder is SIMD accelerated, meaning that you need a CPU that has those instruction sets in order to use Bali. This shouldn't affect anyone with hardware made after 2010. ARM and RISC-V CPUs should work fine as well. (Not tested on those two)