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 December 09, 2009
06:57 PM

Perl 6 Design Minutes for 02 December 2009

[ #39995 ]

The Perl 6 design team met by phone on 02 December 2009. Larry, Allison, Patrick, Will, and chromatic attended.

Allison:

  • mostly mailing list talk
  • finishing up course work before the break

Larry:

  • renamed void context to sink context
  • appears to have worked
  • working out the semantics of higher-level abstract conversions with the lower-level ones
  • the method conversions .Num, .Str, .Bool are low-level
  • the abstract ones are conversions to roles, like + to Numeric
  • the generic role is in charge of which conversion to use
  • seems to map better to what people expect
  • started to straighten out .true versus .Bool
  • renamed is ref to is parcel
  • made it synonymous with backslash
  • did more work on the Rat semantics to separate out what we originally called Ratio
  • now called FatRat
  • looked at all of the mentions of context in the spec
  • removed overloaded meanings
  • dynamic contexts are now call frames
  • contextual variables are now dynamic variables
  • context means two things now, the old list versus scalar notion and some notion of a thread's context (left those alone)

Allison:

  • "call frame" makes a lot of sense
  • we may kidnap that

Larry:

  • Damian has sent in various spec tweaks, as we gear up to do a Perl 6 book
  • kicked the p5=> out of the core into something supplied as a macro by a translator
  • ranges now preserve interval semantics when you do math on ranges
  • renamed blorst to blast so we can talk about phaser blasts
  • worked on the nature of constants
  • constant declaration is now in the same category as the subset keyword and othe declarators
  • now have an anon declarator
  • it confused people to misuse my or our in a situation without a name
  • had added an else to go with also, as Damian suggested
  • removed both of those in favor of a new metaoperator which guarantees sequential evaluation of the arguments
  • the S metaoperator
  • after deciding that undef is a lousy concept in Perl 6 -- it turns out to mean five or six different things -- we decided to untangle all of them
  • temporarily renamed Object to U, for the most generic undefined
  • then revised, per Damian's suggestion, to Mu
  • that represents the most generic undefined value and the type from which all other classes derive
  • one use of undef was in smart matching
  • added a .notdef method for the convenience of testing definedness
  • possible to write longer versions which work with smart match
  • a convenience method felt nicer
  • used heavily in the test suite
  • can test something directly with the method without having to use smartmatch
  • worked on the Rats of unusual precision (not ROUSes)
  • some confusion as to when things get limited to 64-bit denominators
  • clarified that only the user-visible results use that limit
  • intermediate calculations performed by an operator which can and must exceed that limit temporarily
  • added a scaling option to the round function
  • easy to round to a particular rational value
  • after lots of carping about how ill-defined enums are, I rewrote that spec
  • they're no longer roles
  • the but and does infix operators still can intuit an attribute property mixin
  • that's a function of operator DWIMmery though
  • enums, to the first approximation, are simply collections of constants
  • they also supply a method, .mapping, which returns a hashlike mapping
  • that takes care of most of the special cases
  • STD now forces the symbols it matches into strings
  • lots of hacking to track spec changes, such as renames
  • complex number literals now parse the initial plus or minus as part of the complex
  • prevents tragedy in negating the wrong part of the number
  • need to nail down pure versus impure ideas to move that into constant folding
  • infix operators couldn't accept assignment operator forms for baseops with square bracket or hyperoperator forms; fixed that
  • worked on error messages, especially the Borg forms
  • removed some redundant rules and the term lexer decreased in size by two-thirds
  • added a warning about the use of undef; gives a long list of things you might mean instead
  • if you use ** in a range in a regex, but you mess it up where it parses .. as matching anything, you now get a malformed range warning
  • added a few missing things to the CORE setting, such as range iterator
  • now trims pi and e to fit in to a Rat64
  • tweaked viv to support code production of infix operators
  • don't have to grovel around to find the operator

Patrick:

  • not a lot of direct Rakudo coding
  • working in the ng branch
  • have eval working; it doesn't poke in the middle of the compiler guts
  • also provides a cleaner interface that other HLLs can reuse from PCT
  • added regular expression matching
  • still needs some work
  • added array push and unshift
  • fixed a few bugs
  • otherwise working on some design issues, such as lazy lists
  • answering questions for the branch
  • lots of syntax improvements in NQP
  • improved error messages
  • adding a few features
  • added :c($x) (continue) and :p($x) (position) options for regex matching in NQP and ng
  • those didn't exist in PGE or the previous Rakudo
  • cleaned up the abstract match handling (.ast) to match the new spec
  • reviewed Stephen Weeks's work to add try and catch blocks, and it was fine
  • updated a few things in NQP to make it easier to write built-in operators
  • enables the Perl 6 operator syntax directly
  • also working on Partcl
  • handles quite a bit already, but not enough
  • keep plugging away
  • the parsing works closely to what the language spec requires
  • I like that
  • throughout the implementation, we've focused on doing most of it in NQP itself, not PIR
  • seems to work out fine
  • adding lots of different commands
  • that's fed back into improvements for NQP
  • working out very well
  • started a regex syntax for Partcl which matches what Tcl requires
  • previously used the P5 syntax, which isn't an exact match
  • an example for other people of how to do it
  • mostly doing Parrot fixes to support the other tasks
  • a few small updates to PAST
  • improving code generation
  • enabling features that other languages need
  • bugfix for handling self attribute access in method calls
  • adding methods and interfaces for the compiler objects
  • will refocus on Rakudo's ng branch
  • lots of work fleshing out HLL interop interfaces
  • necessary to handle module imports
  • also a roadmap item and the last piece on my Hague grant
  • posted an interim report recently
  • that report marks the halfway point, but I'm much further than that
  • should finish the grant this week

Will:

  • have a version of Partcl mostly written in NQP
  • putting some energy into a discussion about reexamining our roadmap priorities
  • been doing that incrementally, but never had a specific meeting just to talk about that
  • trying to focus some energy on the list

c:

  • fixed a bug or two
  • profiled and optimized a bit

Allison:

  • how long would it take to migrate Pynie to the new NQP?

Patrick:

  • shouldn't take too long at all

Allison:

  • have a month off between classes starting in a week
  • might work on that

Patrick:

  • glad to help wherever I can
  • might be an area where you run into a problem and I need to write documentation

Will:

  • you can look at the NQP version of Partcl to start

Allison:

  • examples have been most helpful in the past

Will:

  • Stephen's also converting Squaak and abc to NQP
  • might be helpful to look at those too
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.