The Perl 6 design team met by phone on 03 February 2010. Larry, Patrick,
and chromatic attended.
Larry:
- more cleanup of iteration semantics
- no longer signal end with
Nil, but with special EMPTY failure
- this can support either unthrown or thrown exception styles
- added in batching iterator interface
- proposed new
E operator for efficient list end detection; gathering feedback
- detangling of sigils from contexts; for example,
@ no longer implies flattening
- coercions all defined to take parcels so they don't flatten accidentally
- more cleanup of various types (captures,lists) that should be considered parcels
- forcibly amputated the
@@ sigil; have fixed up most of the bloody stumps
- instead of *@@ parameters, we now have a
** slice marker on parameters
- removed references to
[;] reduction since it wouldn't work (because of return parcel embedding)
- new
**() interpolator instead
- clarified that function calls in a list are called eagerly, but their results are potentially lazy
- (also mentioned ways to make the call lazy too)
- renamed iterator methods for more clarity, removing contradictory usages of "item"
- iterators now iterated with
get, getobj, batch, and batchobj
- specced that a missing maximum allows the iterator to decide batch size.
get and getobj must be atomic under multi-threading so message queues work (but maybe that's backwards, and push should be atomic)
- slice now defined to turn subparcels into
Seq objects
- spec that most of the work of
flat and slice are done by binding to *@ or **@
- new
flat operator detangles flattening semantics from normal unmarked list semantics
- for all specced functions,
*@@ parameters changed to **@
- multiple dimensions now defined in terms of nested parcels, not feeds, to avoid implying multithreading on every subscript
- either range or series iterator now autotruncates in a subscript
- no autotruncation on left end of a subscript anymore
- did some cleanup of feeds; more is needed to have clearer target semantics
- feeds no longer take a whatever target with implicit semantics; just use an explicit target
- not much hacking, but edited tests to change
@@ to something else appropriate
- tracked name changes in CORE
- wrote a long screed on why Perl 6 has one-pass parsing and why typenames must be pre-declared
Patrick:
- working on interators and lists in the -ng branch
- brought up a few issues with Larry as appropriate
- took issue with others, as appropriate
- happy with our progress there
- expect to make this branch the new master in the next day or so
- will be some regressions, but it's time to do it
- there's no development taking place on other branches, so let's commit and do it
- people will be comfortable about doing their own work and not having it lost on some other branch
c:
- looking into GC tuning and ideas
- still working on getting methods out of namespaces
- need four uninterrupted hours