Rakudo.js update - passes 64.65% roast test

Recently I have been working mostly on fixing bugs and making rakudo.js pass more roast tests.
While most of the fixed bugs affected one or a couple of tests recently fixing a longstanding closure deserialization bug and porting over a closure hack fixed a whole bunch of tests (as well us uncovered a bunch of easier to fix bug)
Some of the tests require implementing new features. A lot of them are fairly straightforward (like making a integer division by zero raise an exception).
An interesting/tricky one to implement where the native int8 and int16 types.
We emulate them by using a normal js number but for to emulate the overflow we use shifts.
For example for int8 we use:
($store_this_in_an_int8 << 24 >> 24).

I now plan to continue to work on fixing more bugs as there are still loads left (and maybe look into profiling and optimizing stuff as there are bunch of glaring inefficiencies

Leave a comment

About Paweł Murias

user-pic This is my JavaScript backend for Rakudo/NQP blog.