Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

chromatic (983)

chromatic
  (email not shown publicly)
http://wgz.org/chromatic/

Blog Information [technorati.com] Profile for chr0matic [technorati.com]

Journal of chromatic (983)

Wednesday August 12, 2009
02:43 PM

Perl 6 Design Minutes for 29 July 2009

[ #39453 ]

The Perl 6 design team met by phone on 29 July 2009. Larry, Allison, Patrick, Nicholas, and chromatic attended.

Larry:

  • decided to reserve semicolon in regexp as a non-metacharacter
  • it's a sequence point
  • it's either quoted or misparsed and have run off the end of the regexp
  • it's too easy to get out of sync otherwise
  • it's like disallowing two terms in a row as a guaranteed sequence point
  • a parsing sanity spot
  • renamed non-chaining infix to structural infix
  • not that much better a description, but it's better than an inaccurate, negative word
  • pulled off the :trig tag
  • we always include the trig and numeric functions
  • removed their string argument modes; they're enums now
  • lexically scoped, defaults to the trig base you want
  • if someone backslashes a space or a pound sign in a regexp, we can't decide whether it's an unspace or a quoted character
  • disallowed that
  • you must use the single-quote form of quoting for space or pound sign
  • removed inadvertent backtracking from parse failures in regexps
  • semicolons now analyzed per earlier discussion
  • fixed a bunch of error messages related to the old Perl 5 form of sigils plus curlies
  • more humanization of error messages to make them less computer sciencey
  • instead of "parsefail" it now says "Sorry!"
  • people won't feel like they're turning into a robot as they're learning to program

Patrick:

  • will people say that Perl 6 is a sorry language?

Larry:

  • instead of a message complaining "couldn't find a MultiSig", whatever that is, it says "Signature failure"
  • looked for token names that'd be confusing to the novice user
  • gave them DBAs to produce more recognizable error messages
  • infix hypers had a misleading message on missing RHS; fixed that
  • put a yellow marker at the transition between the red/green parts of error messages
  • assignment op used on something too fiddly gave an error about "multiplication too fiddly"
  • fixed that to say that the assignment was too fiddly
  • error messages at the beginning or end of the line now marked
  • you can have an infix where you expect a term where it's not confusable as a prefix
  • ~~ could be two string prefix operators, but that's useless
  • parser can now tell it's out of sync there
  • say ~~$something, for example
  • fixed an infinite recursion bug in LTM
  • reorganized the perl6-projects.org page to make it more community oriented
  • the community aspects were in the miscellaneous section
  • that didn't seem right
  • other minor tweaks

Allison:

  • gave a last-minute Parrot talk, scheduled the night before
  • filled up the room
  • lots of good comments

Patrick:

  • brought a lot of people to my talk

Allison:

  • talked to a couple of businesses about running dynamic languages in small, embedded environments

c:

  • going to be a couple of years

Allison:

  • they know that

c:

  • gives the technology a couple of years to catch up

Allison:

  • build Debian and Ubuntu packages for Parrot 1.4
  • includes a working pbc_to_exe
  • we can build installable packages for Pynie
  • Rakudo will be able to do that soon
  • Parrot 1.4 is in Ubuntu Karmic, will be in the 9.10 release
  • the Parrot PIR book is now available in online stores, including Scribd

Patrick:

  • Rakudo #19 released last Thursday
  • I was busy doing other things
  • Moritz Lenz did the release; it worked out really well
  • our bus number increased on releases
  • I've decided not to do any releases myself in 2009
  • I've done four; that's my quota
  • we already have release managers for September, October, and November
  • may be able to recruit someone at YAPC::EU or online
  • Moritz can tell you that it's pretty straightforward
  • I didn't even know when the release occurred on Thursday
  • I reviewed the announcement and changelog on Wednesday night
  • didn't hear anything about it until someone congratulated me in person
  • that was really nice
  • Saturday before the release I had to do some quick changes due to a Parrot hashing order change
  • quick fix there
  • attended Damian Conway's Perl 6 Tutorial
  • very enjoyable
  • pleased to see how much Rakudo implements that he covered
  • not sure if he did that on purpose; had the impression he covered what he thought necessary
  • noticed a place where Rakudo doesn't handle nested comments correctly and fixed that
  • fixed several other string bugs here and there
  • correct smart matching on Code blocks
  • finally have a plan to migrate PGE to the STD model without breaking the existing PGE codebase today
  • simultaneously adding new features to NQP
  • NQP will get regexp support
  • the specialized Perl 6 grammar tool will likely disappear over the next few releases
  • people who want new and fancy regexps will use NQP
  • people who want compatibility with the old stuff will continue to use it
  • compiler writers will be able to write their entire compiler (with the possible exception of builtin functions) in NQP
  • it will also be much faster
  • NQP will also become register aware
  • can declare lexicals which correspond to Parrot registers within a block
  • can write register-aware code using NQP
  • the idea is that either PCT or the grammar engine could be written in NQP
  • may not do it as an official source
  • being able to point to equivalent NQP code would be helpful
  • that'll push me a long way on my Hague grant
  • should be able to do those in the near future
  • Jonathan and I have worked out some changes to Rakudo's lexical handling
  • we plan to work on that this weekend in Lisbon
  • writing in my journal and planning for Lisbon
  • planning a major Rakudo release sometime over the next eight months
  • plan to hold BOFs and various other discussions with heavy Rakudo contributors to make a detailed plan
  • similar to the Parrot Developer Summit last November
  • that work has begun and is going well online
  • I have make working from an installed Parrot
  • can build Rakudo from an installed Parrot
  • think it even works on Sun environments, which Andy Dougherty is looking at now
  • there's also a simple make install target in the ins2 branch
  • want to merge that to trunk
  • should be able to build and install Rakudo by the next release

c:

  • fixed a blocker for Rakudo's lexical handling
  • going through Coverity scans; happy to see those again
  • cotto and I are still working on the design and implementation of the profiling runloop

Nicholas:

  • Rafael did smart match in blead for 5.10.1
  • Paul Fenwick found the revised RHS semantics difficult to train
  • Rafael reverted some of it
  • Ricardo Signes didn't like some of its semantics either
  • people found it a bit too smart
  • has this bit people in Rakudo yet or at all?

Patrick:

  • there are people who've said that it's too smart in Perl 6
  • the DWIMminess has been too high for them
  • there haven't been enough people saying that for us to dial it down
  • plenty of us like it as it is

Larry:

  • also Perl 6 has a type system that supports it
  • the places of difficulty is where we don't distinguish between defined and undefined versions of the same type

Patrick:

  • from the implementation side
  • if Jonathan or I removed the right-handedness of the dispatch, we'd both choke
  • we rely on that operator for more than just smartmatch
  • MMD and grep rely on it
  • any place we rely on dispatch to the right-hand operator needs it
  • removing it would mess up our dispatching

Larry:

  • it's impossible to optimize otherwise
  • if you have a switch statement with when 1, when 2, when 3... it's matching numerically
  • it's not a lookup in an array because the lhs is an array
  • that'd be unacceptable

Nicholas:

  • in Perl 5, I think it calls code refs when it finds them in places
  • what does Perl 6 do?

Patrick:

  • it calls them with the lhs as the argument
  • there are some special cases like regexes I mentioned

Larry:

  • that's what grep is doing
  • its first argument is one of those smart match blocks

Patrick:

  • that's how we implemented it in Rakudo

Larry:

  • grep's first argument doesn't have to be a block then

c:

  • we could override grep in Perl 5 if the implementation were similar

Nicholas:

  • it's cleverer than I think
  • also simpler than I think
  • it's nice to find
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.