Perl 6 Design Minutes for 29 October 2008

chromatic on 2008-10-30T22:13:27

The Perl 6 design team met by phone on 29 October 2008. Larry, Allison, Patrick, Jerry, Will, Jesse, Nicholas, and chromatic attended.

Allison:

  • slowed down on MMD bug fixing
  • cleaning up the last bugs now
  • started the IO branch
  • getting the code in much cleaner working order
  • eliminated the old pseudo-object system we had
  • changing that to use the current, existing object system
  • it looks like it will work cleanly
  • mostly can keep most of the old code
  • just change it to use objects, not just function pointers
  • the initial FileHandle PMC
  • moved the Unix, Windows, and Standard IO functions into a single set of functions loaded by Configure
  • moving the UTF-8 stuff into utility functions, instead of layering it on top in a difficult-to-maintain fashion
  • looks like we won't use roles at all for IO
  • I thought we might need them to emulate layers
  • it turns out that most layers weren't composed behavior at all
  • you need this set of functions on one OS and this set on another
  • roles don't really solve that

Jerry:

  • delegation, not composition

Allison:

  • it's really a lower level than that
  • operating system utility libraries
  • an interface to the OS
  • you don't want to interact with the OS directly
  • behind the interface, you compile it to do a different thing on a different OS

Nicholas:

  • Daniel Ruoso asked me on IRC about adding pointers to every SV
  • he's looking at that for SMOP
  • hope to have the release out on the weekend

Larry:

  • still in the middle of doing the doctor thing on my shoulder
  • going in for an MRI this afternoon
  • making arrangements for my December trip to Australia
  • maybe or maybe not Amsterdam, depending if we can work it out
  • most of my work has been responding to various things that the SMOP folks and the syntax highlighter folks have found difficult in the STD parser
  • refactoring some of that
  • parameter parsing was not right in various ways
  • the parsing for things like POD comments was suboptimal
  • tended to attach it to the previous block where it ought to be independent
  • parsed better now
  • there were difficulties parsing assignment operators
  • tended to parse a <== as less-than equal turned into an assignment operator
  • nipping and tucking on trying to cut down memory usage and the amount of cursor construction that has to go own
  • figuring out which cursors can be treated as mutable
  • and when we have to do copy-on-write
  • in general thinking about how I can make the parser faster
  • hopefully get rid of TRE over the next month or so

Jerry:

  • things are going well
  • just returned from the Google Summer of Code mentor summit
  • Jonathan Leto and I represented TPF
  • had a good time
  • I plan to write something about it, when I have the time
  • mostly devoting tuits to the Parrot Developer's Summit, coming up in the middle of November
  • expect that to be the case for the forseeable future
  • unfortunately lost the tuits I had to do namespace importation in Rakudo
  • it's very close to being done

Patrick:

  • worked more on fixing lexicals in Parrot
  • getting them to work the way we need them in Rakudo
  • down to 16 failing core tests
  • most of those have to do with relying on autoclosing called subroutines
  • working on a design and implementation for that
  • shouldn't take too long
  • it's going cleaner than I thought, assuming I haven't made gross errors
  • have worked on cleaning up exception handling from the PIR perspective
  • trying to get us caught up to date on that
  • published a lengthy note to the list last night describing how we should write exception handlers
  • otherwise, responding to the Rakudo ticket queue
  • either applying patches or describing why they won't work
  • getting feedback to people submitting patches

c:

  • I've been fixing a lot of bugs
  • wrote up how I fixed autoboxing primitives in MMD
  • fixed at least one segfault for Will, have more to look at
  • also fixed a couple of memory leaks
  • the default PIR programs now should never leak any memory
  • but IMCC still leaks memory in some cases
  • will continue to fix any segfault reproduced as nicely as Will has done

Will:

  • the lead-in to that
  • spent most of this week trying to reduce several thousand lines of Tcl into a small PIR program so I could get past a segfault

Jerry:

  • one nit in the exception handler API
  • when you mark it as not having handled something, you set it to zero

Allison:

  • you rethrow it

Patrick:

  • that's going away
  • at the moment, because exception handlers are automatically disabled, you re-enable it by setting it to zero

Allison:

  • that was a hack for backwards compatibility
  • it's going away

Jerry:

  • I hate magic numbers

Patrick:

  • I hate the fact that 0 re-enables it
  • I'm about to run the tests that turn off the auto-disable feature
  • I have everything that the pops are where they should be
  • I'll see what breaks

Allison:

  • any failures should be updated pretty quickly