29 Jan 2010 chromatic   » (Master)

Perl 6 Design Minutes for 27 January 2010

The Perl 6 design team met by phone on 27 January 2010. Larry, Allison, Patrick, and chromatic attended.

Larry:

  • tweaked definition of when a series operator is considered infinite
  • nailed down more list assignment semantics with respect to interators
  • clarified how ($a, $b, @a) = 1..* works
  • KeyWeight deletion criterion kept consistent with other KeyHash types
  • negative keyweights are allowed to fail at pick time
  • "mostly eager" now assumes unknown closure generators are probably infinite
  • random whackage on List, Seq, Parcel, Capture, Iterator, Nil etc.
  • List is now simply the iterator role, and doesn't do Positional
  • Seq takes over Positional duties for reified (or reifiable) value lists
  • think of Seq now as a constant Array (but also lazy like Array)
  • Iterable now means you can ask for an iterator, but doesn't do List
  • Array, Seq, etc do Iterable, but not List
  • only actual iterators do List
  • Nil is defined as a suitable sentinel for both list and slice iterators
  • continued to rethink that with pmichaud++ et al
  • we'll probably end up with an EMPTY special exception object to be the iterator sentinal
  • proposed an E operator to go with it to make testing for EMPTY across multiple iterators very fast
  • other than that, mostly just bug whacking, no major refactors
  • still thinking about doing real LTM for STD
  • did lazify Cursor's fnum->fate translations for shorter LTM candidates in preparation for smarter LTM
  • we don't need special objects for the items that get matches
  • we do need to think more about the hyper cases
  • how to do list processing using balanced trees of delegated sub refs
  • don't want to build in serial assumptions where we don't need them

Patrick:

  • made the Rakudo #25 release last week
  • it was much easier to make the release than explain what we were planning to do instead
  • also working on iterators and lists
  • NG branch is blocking on that
  • worked on the design in my head for three weeks
  • realized that we were doing iterators completely wrong the other night
  • Larry's making some useful changes to the spec in response
  • there are still some unclear spots in the spec
  • we need an implementation to figure those out
  • my biggest question is the relationship between List, Parcel, Itertor, and array
  • as of this morning, I think I have it
  • that code seems to be working and efficient
  • so far it's working well
  • continuing with that
  • wrote a very short range iterator prototype that colomon has used
  • also write a map iterator that works
  • coming up with examples for the zip operator was nice
  • good ideas for what we need to be able to do
  • objects that can iterate have a.iterator() method
  • to interpolate that into a list,.list() returns a flat Parcel for that iterator
  • Parcels know how to generate Iterators
  • those know how to handle Iterators of Iterators
  • I suspect that's how we do hyper iteration
  • change Parcels to understand that
  • adding pieces back into the ng branch
  • next I have to fix slurpy parameters
  • many of our builtins need that
  • need to figure out Jonathan's code to do that
  • after that, I'll do arrays
  • that should remove the blockers on the ng branch

Allison:

  • working on Pynie
  • Francois has helped greatly to update it for Plumage

c:

  • still working on the TT #389 fix
  • think I have the right design, just need time to implement it
  • working on a potential new time for #parrotsketch

Allison:

  • thinking about hackathons
  • would be nice to have a Rakudo hackathon at YAPC::NA

c:

  • Parrot will come up; didn't it come up about half the time last year?

Patrick:

  • it was all Parrot

Allison:

  • you'll have an influx of Rakudo interest two months after Rakudo Star

Patrick:

  • probably will have one before then
  • but can tell people "Go to YAPC; we'll show you how to help in person there"

Syndicated 2010-01-29 21:00:38 from pudge

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!