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)

Saturday August 25, 2007
02:31 PM

Perl 6 Design Minutes for 22 August 2007

[ #34217 ]

The Perl 6 design team met by phone on 22 August 2007. Larry, Patrick, Jesse, Nicholas, and chromatic attended.

c:

  • fixed several Parrot bugs
  • we now have Tcl, Lua, and Perl 6 all which can work at the same time
  • I want to make sure they stay working

Jesse:

  • are you having fun in GC land?

c:

  • I think a good refactoring is in order
  • I despair of anyone understanding it well without that anyway
  • so hopefully making it cleaner and not throwing away metadata will help find or fix the bugs
  • my immediate goal is to fix any blockers that people run into
  • also work in the HLL system for Parrot; that's the source of the Lua, Perl 6, Tcl bug

Patrick:

  • I'm blocking on time
  • it's been quite a week this past week
  • just released Parrot 0.4.15
  • just a few cleanups necessary
  • NQP has come along extremely well
  • it's nearing completion for its use as a tool in other compilers
  • may be able to write some example applications in NQP probably within the next 24 hours
  • we can interface to libraries such as the SDL bindings
  • I already have the transformation for the abc language written in NQP
  • NQP parses it
  • it just needs a few extra pieces to compile or run
  • that could happen within the next 24 to 48 hours as well
  • then I'll start on Perl 6
  • a side benefit is that I've had a good chance to readdress some of the Perl 6 blockers and solve them for NQP
  • they're trivial now in Perl 6
  • they're now part of the AST nodes
  • lots of features will just start to work for Perl 6 once it moves to NQP
  • Larry's work on the standard grammar has been extremely helpful
  • NQP has followed it as much as possible
  • that's helped find missing spots in the standard grammar
  • Larry's revised it based on that feedback
  • some of the tough things in the Perl 6 grammar are now easier there

Jesse:

  • I get people asking how they can help with NQP
  • can you break off a few chunks of 20 minutes or so for people to help?

Patrick:

  • there's not much left with NQP
  • with Perl 6, there are a few
  • people who want to help need to look at what it would take to help
  • Colin's driven a lot of the updates
  • adding various updates and statements
  • usually he'll say, "I want to add an operator"
  • he wants one to look at to cargo-cult
  • I've had to write one, then he goes from there and writes the others
  • he's added most of the fundamental pieces to NQP
  • I've done more architectural work and work on the compiler toolkit
  • I'll make an effort to make list tasks on NQP, Perl 6, or abc
  • another interesting task for a PIR hacker is to make the other SDL examples work with NQP

Larry:

  • I wrote a little program last week which processes the standard grammar
  • Pugs can process and run it
  • it can parse rudimentary expressions
  • it supports most of the constructs used in the standard grammar so far
  • just hacked in a first whack at bindings
  • let us produce an AST
  • that's still a work in progress
  • that flushed out a few more issues with the standard grammar
  • takes about a minute for Pugs to compile the standard grammar after post-processing
  • not exactly speedy
  • the actual pattern matching it does right now isn't optimized
  • parses everything to use gather and take
  • lazy lists already give you basically continuations underneath
  • this parser can have many different simultaneous backtracks held in reserve in a list
  • for a minimal match, just read your lazy list in order
  • to be greedy, reverse that list and read it in the opposite order
  • seems to work out nicely
  • conceptually pretty
  • avoids throwing continuations directly at the reader of the code
  • for a ratcheting grammar, it could be faster by getting rid of the gather/take

Nicholas:

  • could someone else work on that particular pass?

Larry:

  • someone else is helping me... rhr... Ryan Richter
  • I'm concentrating on correctness now
  • because each of these possibilities gets generated on the fly, each has to keep its own match object

Jesse:

  • how memory intensive is that?

Larry:

  • it depends on how many matches you have in the air simultaneously
  • in theory, if it's lazy enough, "no more than you need"
  • when it tries to be greedy when you didn't want it to be greedy, you use a lot of memory
  • sweeping that under the carpet of laziness fixes that issue nicely
  • that means I don't have to think about backtracking
  • just attach the state to the right continuation going forward
  • probably reinventing a packrat parser
  • I figure out I need something and do it, then find out someone already has a name for it
  • I don't know if this will ever be used for a real bootstrap, but it's definitely flushing a lot of issues out
  • exactly what objects do we need
  • we have current language, current continuation, match object...
  • are they the same or different?
  • exactly how many objects do we pass down through it
  • also trying to do a better parsing of embedded sublanguages such as double-quoted variants
  • there's a kludge for finding terminators
  • I don't think that's very clean
  • I think the grammar will clean up in a few places because of this
  • don't know how much time I'll have, as we leave for Vienna on Saturday

Jesse:

  • how much have you followed what Flavio's been doing as of late?

Larry:

  • keeping half an eye on it
  • they can pass parameters to methods in kp6 and are working on subroutines
  • they seem to whack on it frequently

Jesse:

  • I talked to Steve Peters
  • he's had more time free up recently

c:

  • I checked in a couple of patches and have a couple more to review from him

Patrick:

  • STD.pm looks like a problem if you have a subroutine followed by a bare block
  • it parses as if it's postcircumfix braces after the sub

Larry:

  • even with whitespaces?

Patrick:

  • the <routine_def>rule eats up the trailing whitespace
  • in NQP, I created an <afterws> assertion that determines if the current position follows a memoized <?ws>
  • the <postop> only goes if it's not after whitespace, that is, token postop { <!afterws> ... }
  • it seemed to work pretty well
  • that's an advantage of the tests that Colin's putting in
  • putting in the explicit "did I just eat whitespace?" test works pretty well

Jesse:

  • I presume we're off next week because of YAPC::EU
  • we'll pick up the following week
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.