Tuesday April 26, 2005
01:12 PM
Day 85: BEGIN, use, Eval for Rule
Today is another productive day, with the
Eval in Rule problem finally resolved. Now we can finally do compilation and evaluation inside the parser, all these things are suddenly working:
-
BEGIN { ... } as both a rhs term and statement level block
-
use Module;
- Calling
foo() before defining sub foo { ... }
- Room for compile-time AST analysis, such as
use strict, use warnings and macros.
There are many other new developments today as well:
- Stevan tweaked dragonchild's tic-tac-toe game example some more, with a nice-looking game board.
- Stevan also helped me changing all the
require Test to use Test in test files.
- Corion noted that on Win32, an
async { system(...) } blocks other threads as well. That does not happen on FreeBSD here, so it may well be a Win32-specific issue. He added tests for it.
- Limbic_Region, our new committer on board, checked in a wonderfully written progressive power set generator, which exercises some missing Pugs features...
- ...mugwump promptly implemented the first,
@elem.end.
- ...I also implemented the second one: correct parsing for
last if defined $foo.
- ninereasons repaired the MOTD.pm module used in the motd demo example.
- bsb added
$ENV{HASKTAGS} override for our make tags target.
- I improved the error reporting; now it always come with a source code position, including the file name, line and column number.
That's quite good for a day... See you tomorrow!
Day 85: BEGIN, use, Eval for Rule 0 Comments More | Login | Reply /