Day 65: Toward 6.2.0.

autrijus on 2005-04-06T16:42:24

Today the post-conference syndrome kicked in, and I slept a lot. Nevertheless, we still got many things done on #perl6, in preparation of the upcoming 6.2.0 release this weekend. My personal todo list this week is:

  • Implement multidimensional data structure.
  • Generalise that into ITypes, so %*ENV can be properly tied.
  • Fix the remaining parsefail bugs.
  • Get 6.2.0 out of door.
  • Publish an outline for Pugs Apocryphon 2, "Design of Pugs" (working name; better suggestions welcome)

After that, I'll proceed to integrate the OO subsystem and GADT-driven IMC subsystem in. Of course, Pugs being an anarchistic project, the other 60 people all have their own priorities, so lots of other things may happen inbetween. For example, shapr is threatening to add spec-based testing for Pugs, using the excellent QuickCheck toolkit (that's Test::LectroTest for camelfolks). I'm quite excited by the possibilities.

shapr also posted a nice writeup on the Lambda the Ultimate blog, entitled Pugs, Practicing the Theories. I'm reminded of the Obi-Wan quote: "What is a magician but a practicing theorist?"

Tim Bunce suggested that we start porting Perl Cookbook to Perl 6, thus raising Perl 6's status on the PLEAC test (cf. this chart). This sounds fun; any takers on creating examples/pleac/?

On the code front, todays saw another 50ish commits, which seems to be a nice sustainable pace for Pugs:

  • nothingmuch, schwern and theorbtwo convinced me that 2 ** 64 should not stringify to 1.8446744073709552e19 (as is the case in Perl 5), but into 18446744073709551616, citing bignum.pm as the precedent. I dutifully implemented it, and nothingmuch added in a test.
  • iblech keeps adding tests for primitives, ranging from math functions, array/hash accessors, file tests, and more.
  • theorbtwo continues to make progress on the Inline Haskell front. He discovered a potential GHC core issue triggered by using -O on Parser.hs; since it is no longer a performance bottleneck, we removed it and all went well.
  • stevan added more tests for multidim, so that my implementation can be totally test-driven.
  • stevan and I both tweaked hangman.p6 some more. I removed hangman.dic and make it read from the AUTHORS file directly...
  • ...which causes us to yearn for FindBin.pm, lib.pm. Luckily, stevan proceeds to start implementing them.
  • stevan also reported that invocants in the param list would cause incorrect error message when actually bound; this is a bug caused by the .assuming refactoring, and I checked in a fix.
  • corion noticed that last; is no longer a TODO, so it's now marked as a real test.
  • corion also tweaked Win32 detection in tests to accomodate mingw and cygwin.
  • asavige noted that corion's tweak is a bit overzealous, and fixed the syntax a bit.
  • tobez reported the bug that prevents one of lc $x, $y and lc, $y from parsing correctly; I added OptionalPrefix mode to Rule.hs so now both works.
  • gaal cleaned up tests and fixed another mis-include that made Eclipse unhappy.
  • putter implemented various file-test operators, and kluged a way to make them stack.
  • ninereasons added tests for the currently misbehaving for @list -> $_ syntax, due to the explicit use of $_.
  • rootmj hacked in many fixes and improvements for the test-based synopsis annotator.
  • Thanks to matt fowles's Perl 6 summary, I discovered that Adam Preble has failed to build Pugs on a machine with less than 200 mb of memory. I attempted a fix to remove this memory requirement.
  • I also implemented .kv and .pairs, as well as making exit() trigger END {} as it should.

That's it for today. Tomorrow is yet another $work day, so I better sleep now. See you!