Perl 5 Design Minutes for 06 January 2010
The Perl 6 design team met by phone on 06 January 2010. Larry, Allison, Patrick, Will, and chromatic attended.
Larry:
- in Spec Land, renamed
p{}
toqp{}
to avoid using up another common single letter - bare
say
/print
is now just a warning - Carl Mäsak dug up fossilized restriction on hash literals, which I removed
- since the insides of blocks are now parsed as statements, there is no longer an inconsistency in line-ending curlies
- refined the picking vs grabbing semantics with respect to immutable vs mutable bags and such
- to avoid legacy confusion, renamed
break
/continue
tosucceed
/proceed
- clarified that an implicit
succeed
returns the value of the wholewhen
block - it is not somehow magically inserted around the last statement
- renamed
true
toso
to avoid confusion of the predicate with theTrue
enum value - at the suggestion of moritz++, split
Any
up intoAny
andCool
types -
Cool
stands for Convenient OO Loopbacks, or any other acronym you'd like - the built-in types derived from
Cool
are the ones that do Perlish dwimmy coercions - user types still derive from
Any
by default, so aren't born with gazillions of methods - conjecturally, also keep "last-resort" multis in
Cool
package - responded non-explosively to a potentially explosive rant/twitter
- clarified various things in response
- it is not necessary that all implementations be equally good at everything
- there will be a minimal Perl 5ish grammar alongside STD that any VM can support as a well-behaved subset
- it is also acceptable to support bug-for-bug compatibility with Perl 5
- the language designer is neither omniscient nor omnipotent
- the design process is therefore convergent on the part of all parties involved
- the rate of convergence is an emergent property, and is to be forced
- convergence is deemed to be positive as long as anyone is still working on Perl 6
- the solidification of the spec is also part of the convergence, and depends on proven implementation
- unproven parts of the spec are to be considered implicitly conjectural
- as implementations converge on specs, we can throw out or delay parts of the spec that as yet unproven
- everyone is allowed to panic once.
- on to implementation, found fencepost precedence error inside list prefix
- moved the default initparse method from STD into Curso so other grammars don't have to define it
- added quote modifier
:p
(aka:path
) so we can form theqp{}
path literal - installed better warnings about bare
say
/print
- generalized the
say
/print
warning to anything a p5er might try that might be in p6 without the defaulting - STD and CORE now support recent renamings to
so
,succeed
, andproceed
- no longer reports "Bogus statement" when "Missing term" is more accurate
- now catches
/\b/
and advises to use an appropriate p6 word boundary assertion instead - emits better message when an intended reduce is interpreted as composer
- detects most attempts to use postfix after whitespace, and suggests omitting whitespace
- now parses tick-less embedded comment syntax as line-end comment (but still warns for now)
Patrick:
- took the last couple of weeks off
- keeping up with things, but not much writing code
- read the S01 changes with great interest
- glad to see them
- answered some PGE questions for Carl
Larry:
- we've talked about them all along
- they weren't written down in an obvious place
Will:
- working on Parrot
- trying to move as much out of the configure process into a Makefile as possible
- intended to improve the build
- attempting to remove recursive makes
- avoid unnecessary rebuilds
- improve dependency tracking in the build
- probably ready after 2.0
Patrick:
- I'm impressed
- thanks for taking that on; we needed it
Allison:
- working on deprecation notices
- we've talked about a lot of things over the past six months
- not sure they're all in the file appropriately
c:
- working on bugfixes
- also working on deprecations
Patrick:
- I intend to merge the ng branch before the January release
- some people are antsy, but I have a lot of confidence
- we'll probably pass about 70% of the test suite
- it looks like a regression, but we have different features added now
- lazy lists work, for example
- lots of things fudged in the previous version work now