After working out the way to implement &last
and &return
using exceptions, iblech succeeded in getting mandel.p6 compiled to JS. It now works across Gecko, Opera and Internet Explorer, thanks to feedback from Arathorn and castaway,
Currently, it is likely to trigger a script running for too long warning, but Alias from #jsan suggested that we can use a trick employed by jsan:Test.Builder, namely using setTimeOut
to fork off a separate thread and handle output by modifying the DOM instead of document.write
.
iblech also hacked in support for array dereferencing and named parameters for PIL/JS. I think soon it will make sense to have a make jstest
, using SpiderMonkey's bin/js
as the runtime.
Continuing the metamodel work, stevan implemented C3 as the canonical method resolution order, and tweaked the constructor/destructor to use it. leo burned it into the Parrot ROM -- I mean VM -- for maximal performance.
Stevan is working on bootstrapping the metamodel, i.e. defining the Perl6::Object
class itself as a Perl6::Object
. This is analogous to our Prelude.pm
work of defining as many Perl 6 builtins in Perl 6 as possible; ultimately, there will only be a handful of true primitives that absolutely has to be provided by the runtime. This ensures an identical semantics on Haskell, Perl5, Parrot and JavaScript backends, and is ultimately what the 6.28.0 milestone is about.
Two common Makefile.PL
gotchas got remedied today: rkhill made sure that VC++ on Win32 would not try to build with PUGS_EMBED=perl5
, and kolibrie added detection for missing libperl-dev on Debian systems.
After some handholding on p6c, our new committer philcrow added a test for a surprising behaviour:
Arathorn and I discussed the various confusing semantics of qualified variable names on #perl6, culminating in a p6l post. I didn't realized that the
fglock fixed the misuse of
kolibrie added some new test for the not-yet-supported
The sub foo (?$x = expr) {...}
did not execute expr
in the subroutine's scope, but rather in caller's scope. I fixed it promptly, so philcrow can commit his newton's method root finder into the examples directory.
main
package is renamed to Main
now (in S10). The Synopses indeed have a fractal structure; the more you read into them, the more there is to read...
$^x
inside Prelude.pm
's &ceil
and &floor
-- implicit variables is only allowed in bare blocks now. He also made Span::Code
pass all its tests in span-code.t.
\x{ABCD}
notation; eric256 helpfully moved out fixed tests in t/pugsbugs/
into more sensible subdirectories, and tested for misparses in nested hash literals; tobez added a test for "string".reverse
misbehaving under list context.
wizard.p6
RPG was briefly broken by the new namespace handling code. eric256 and I repaired it today, so epic battles with the army of frogs can go on as usual...