Day 22: Many hackings

autrijus on 2005-02-22T19:51:29

I think I'll cease to say "today is the most productive day since Day 1", because today is, again, the most productive day ever. ;-)

Many thanks for people who've sent me questions via various channels; the Perl Monks thread is especially helpful; in it sleepingsquirrel pointed out a wonderful technique that can generate a compiler for free with quasiquoting, while reusing all current interpreter infrastructures. Now I'd need to read "targetting parrot" in the near future...

Also, in #perl6 we have solved many problems in interpreting Synopses, namely:

  • The effect of "return" in parameter defaults has been determined; it returns to the caller and defeats autothreading.
  • Literal syntax has been clarified as 0d1234, 0o123, \d1234, \o123, etc.
  • Signature of a hypothetical call_cc specified as &code<Code>.
  • Bare block as the last statement in a subroutine is always evaluated.
  • CALLER:: sees global variables in caller's scope too.

There is nearly 30 checkins in the repository today. Some highlights include:

  • eval and reduce are merged into a single pass that always return a Val.
  • Parsec imported as Rule.hs; work has begun to integrate inside the Eval monad.
  • Steve Peter provided a test case for right-associate => that creates linked lists; it's promptly implemented.
  • CALLER:: in toplevel is now caught as an error. Also it sees global variables as specified above.
  • &BLOCK and &CALLER_CONTINUATION (escape-only) implemented.
  • An optional dot is allowed in function application syntax.
  • ingy added subversion revision info to the banner.
  • rgs added read-only %ENV support to Posix platforms.
  • Various things (notably Code) are numified as NaN now; this is pending discussion.

See you tomorrow!