Perl 6 Design Minutes for 24 September 2008

chromatic on 2008-10-13T06:27:55

The Perl 6 design team met by phone on 24 September 2008. Larry, Patrick, Jerry, Nicholas, and chromatic attended.

Larry:

  • spent most of the week hacking
  • neither golf nor computers
  • haven't had much brain to think about anything other than work
  • made a few comments on IRC
  • thinking that the direction I need to head now is turning the standard grammar into a Cfront for Perl 5
  • get rid of gimme5 by taking the standard parse tree
  • use that instead of the faked up parse
  • spit out the same thing
  • then I can translate some subset of Perl 6 back to Perl 5
  • then I can think about rewriting other things
  • Cursor.pm in Perl 6
  • getting ready to go to a conference in Urbana in a week and a half
  • ACM-ish thing called Reflections Projection
  • giving two talks there
  • most of my discretionary time is getting my video output suitable for running Firefox and OpenOffice.org Impress

Patrick:

  • not a lot of actual code
  • lots of design work and shepherding other code
  • getting container design right in Rakudo
  • Jonathan and I talked about it
  • won't require major Parrot rework
  • plan to start implementing that in the next week or so
  • will solve some problems with array, hash, and object references
  • Moritz has been working like crazy on spec tests
  • finding things that Rakudo will pass
  • we pass well over 3700 tests
  • that's 400 more than last week
  • over 200 yesterday alone
  • few of these tests are really changes to Rakudo itself
  • have about five new contributors to Rakudo in the past two weeks
  • spent Monday rethinking how lexicals should work in Parrot
  • that's blocking a lot of things in Rakudo
  • re-read S04 and various threads on the Parrot lists
  • wrote a draft of how I think things ought to work
  • awaiting feedback on that
  • the more I think about it, the more I think it's the way things ought to go
  • ought to simplify things and get rid of a lot of ugly code in Parrot
  • unless I'm overlooking things
  • might try implementing it myself in a branch unless someone (hint, chromatic) wants to do it instead
  • not a lot of changes to PIR itself
  • seems to work pretty well in all of the mental cases I've thrown at it thus far

Jerry:

  • setting travel plans for fall conferences and meetings
  • patched a few HLLs today
  • someone added SMOP to the #perl6 eval bot

Nicholas:

  • Jesse's going to the Beijing Perl Workshop to talk about Perl 6
  • they found a sponsor for him

c:

  • fixed Parrot's float output precision
  • makes test output different in some cases, so it's a big patch there
  • want to get testing on Cygwin, Darwin, and MSVC
  • it's a well-understood and well-supported part of sprintf
  • also looking at Patrick's lexicals proposal
  • had some clarifications and questions
  • will get that out tonight
  • one question is about an enclosing lexical scope for multiple globally-visible subs
  • initialization time is tricky

Patrick:

  • I explicitly disclaimed that for now
  • I'll look at S04 and take examples from there

c:

  • also had a question about recursion
  • that can get tricky

Patrick:

  • I had that thought too
  • I think it works

c:

  • I'll definitely send my thoughts
  • want to make sure they get in the archives

Nicholas:

  • is a Cfront to STD.pm another bootstrap to get Perl 6 running on Perl 5?
  • or does it only bootstrap the parser, not the runtime?

Larry:

  • you have to have a runtime, or you can't bootstrap
  • it just uses Perl 5 for the runtime
  • that set of semantics which are easy to do in Perl 5
  • or at least possible
  • it won't easily do all of Perl 6 semantics
  • including lazy lists and such
  • not without internal hacking to the regex engine

Nicholas:

  • the first thing I thought about was continuations, which Perl 5 won't be doing

c:

  • that's not too hard

Larry:

  • I'd settle for lazy lists

Patrick:

  • I'm looking forward to a Cursor rewritten in Perl 6
  • Perl 6 implementations make it easier to bootstrap on whatever implementation we have