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.
- Domain modeling and the real world by Carl Mäsak
- Perl 6 – Eine Einführung by Tobias Leich
- Perl 5 and Perl 6 – a great team by Stefan Seifert
- Big hairy yaks by Carl Mäsak
- A look behind the curtains – module loading in Perl 6 by Stefan Seifert
- The Beauty Of Perl 6 by Bernhard Specht
- Simple Perl 6 Fractals and Concurrency by Steve Mynott
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 theis rw
property on introspection. - Exceptions are no longer silently eaten when coercing a
Channel
to aSupply
and vice-versa. - On entry to the REPL, tell the naive user how to exit.
- Values in environment variables now follow
val()
semantics, allowing forFOO=0
to becomeFalse
inif %*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
Pointer
s to be cast tois native
subroutines. - Rearrange the use of
use lib
in roast and sanity tests: theNativeCall
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 aCallable
that will be run when anexit
is done. This is important when embedding Rakudo Perl 6 in another application, likeInline::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 aHash
(10%). - A JIT bug was fixed that affected string comparison operations in loops.
Blog Posts
- Running Mixed Perl 5 And Perl 6 tests by Pawel bbkr Pabian
- FOSDEM And The Future by Bart Wiegmans
- Can’t Forget About Memory Issues by Jonathan Worthington
Ecosystem Additions
- RPi::GpioDirect by Donald Hunter
- Audio::Hydrogen by Jonathan Stowe
- Algorithm::MinMaxHeap by okaoka
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!