Friday January 29, 2010
04:00 PM
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:
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"
YAPC::NA (Score:1)
Re: (Score:1)
YAPC::NA 2010 is June 21-23 [yapc2010.com] in Columbus, Ohio.
Re: (Score:1)