Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

autrijus (1505)

autrijus
  (email not shown publicly)
http://pugs.blogs.com/

Journal of autrijus (1505)

Thursday June 16, 2005
04:48 PM

Day 133: Sixth day at Leo's: Call-by-need and call-by-name!

[ #25242 ]
Pugs's (new, shiny, GADT-powered) AST is confusingly declared in source code as the PAST type; but it is actually the Perl6 semantics, not Parrot semantics -- the PIR abstract syntax is of the PIR type. Neither of them are related to the other past which doesn't do anything useful currently.

Anyway, this PAST thing now has call-by-need (PThunk) and call-by-name (PBlock) semantics. That should handle both lvalue and rvalue thunking, for example:

    my ($x, $y); (0 ?? $x :: (0 ?? $x :: $y)) = 3; say $y;

Sorry that I didn't get cycles to fix Darren (and other people)'s reported bugs about Pugs's List/OO breakage. Hopefully my currently work on a sane compiler and also sane-enough PIR level primitives will clear up Perl 6's operational semantics enough, so we can run into less of runtime-only container-type-and-context-mismatch bugs.

That's it for today I think... Didn't have enough time to get aggregates working, so PIR doesn't exactly run Test.pm yet, but it's dangerously close.

Oh, and I really like the new L33T interpreter.

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.