2016.11 JS Fueling Up

In the beginning of the year, Paweł Murias applied for a grant to develop the Javascript backend for Rakudo Perl 6. And just after closing of last week’s Perl 6 Weekly, he got confirmation that the grant was accepted! The deliverables are:

  • Upload rakudo-js to npm and CPAN.
  • Have this rakudo-js be able to compile our chosen subset of the 6.c roast (official Perl 6 test suite) to JavaScript and pass them in a modern browser.
  • Write a simple REPL in Perl 6 that will run in a modern browser.
  • Write a tutorial showing how to use the JavaScript backend.

This is all very exciting! I can’t wait to write my UI’s for browsers in Perl 6! Of course, any help in this project will be greatly appreciated by all!

REPL6 Branch

Rob Hoelz is at it again. After making the Perl 6 REPL (Read EVAL Print Loop) much better while it was written in NQP, he is now working on an implementation written in Perl 6! Find out about the what, where, how and when.

Perl 6 at the German Perl Workshop

The German Perl Workshop happened again last Wednesday, Thursday and Friday. I tried to make the links to the actual slides as near as possible.

One can hope that some of these presentations would actually make it into an excellent blog post!

FOSDEM Videos Improved!

Somebody++ made the FOSDEM videos from the Perl DevRoom a lot better. They actually play directly in my browser now, and are watchable! (Well, apart from the one where I’m in, of course 🙂

Core Developments

  • Generated attribute methods with is rw now properly show the is rw property on introspection.
  • Exceptions are no longer silently eaten when coercing a Channel to a Supply and vice-versa.
  • On entry to the REPL, tell the naive user how to exit.
  • Values in environment variables now follow val() semantics, allowing for FOO=0 to become False in if %*ENV<FOO>.
  • Modules in the home repo are no longer tied to the Rakudo version, allowing for a much smoother path for core developers.
  • Version objects got streamlined and between 10% and 36x faster, and also became really immutable. A strange precomp related bug that was the result of this refactor, was fixed by FROGGS++ after much debugging.
  • Allow Pointers to be cast to is native subroutines.
  • Rearrange the use of use lib in roast and sanity tests: the NativeCall tests now run 3x as fast, and the spectest appears to be about 10% faster now.
  • The dynamic variable &*EXIT can now be set to a Callable that will be run when an exit is done. This is important when embedding Rakudo Perl 6 in another application, like Inline::Perl6 from within Perl 5.
  • Directory entries now also follow utf8-c8 semantics, meaning that if they’re badly encoded, Rakudo Perl 6 will just simply create synthetic codepoints for them, instead of failing.
  • use lib without any parameters now gives a more awesome error message.
  • Several other speedups, like List.join (20%) and assigning to a Hash (10%).
  • A JIT bug was fixed that affected string comparison operations in loops.

Blog Posts

Ecosystem Additions

Winding down

Alas, due to travel, there wasn’t enough time to scan the backlog for gems. So they will remain hidden until the next time I have time to look for them!

Got something to note?