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