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)

Thursday March 12, 2009
08:53 PM

Perl 6 Design Minutes for 11 March 2009

[ #38634 ]

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

Allison:

  • mainly release preparation
  • the usual ticket closing, patch applying, test failure investigation
  • lots of document cleaning, especially on docs.parrot.org
  • that'll help people find useful information when they go there
  • the big thing for me now is Debian and Ubuntu packaging
  • doing that on a fake release tarball, so I know that the release process will work
  • 0.9.1 wasn't packagable, due to some failing tests
  • thinking about release names
  • could use some help from a Parrot test harness expert

Larry:

  • more outcomes of the Capture and Match simplifying in the specs
  • the Result object is available via the .rob method
  • the .text method is gone; it's now a coercion of the object to a string
  • numification now not related to the result object
  • it just numifies the string that .Str would return
  • exported methods clarified that generated multi has to check the type of its first argument consistent with the class in which it was declared, by default
  • overridable by an explicit type declaration
  • promotion of Lists all the way to a mutable Array type in Item context is overkill
  • in most situations where you want that, there are other hints you want to do that
  • such as assignments to an array
  • no longer does that promotion; that introduces unoptimizibility
  • method declarations used to be mixed up with other declarators
  • my used to be the private method declaration
  • now a method declaration simply puts the method into the current class, via the MOP
  • does not by default put it into any package or lexical scope
  • if you add my or our, it produces an alias which can be called as a subroutine
  • disallowed a bare <STDIN> and <>, either of which indicates thinking in Perl 5
  • put error messages for that in the standard grammar
  • now gives a decent error message if you forget a semicolon between two statements on a single line
  • when it can detect that at least
  • a placeholder argument that conflicts with a signature now gives a decent error message
  • the .parse and .parsefile methods now take an action argument, instead of using a global variable
  • package named variables all canonicalized into the standard form (package name at front)
  • can now recognize $?CALLER::CALLER::foo, recognize the package, and delay it until runtime
  • fixed a nasty bug where metaoperators with their own precedence levels were transparent
  • all of the other bugs are minor

Patrick:

  • primarily answered questions
  • working on the Rakudo patch process
  • fixed a PGE bug with the goal operator
  • otherwise, cleaning things up in the Settings and fixing small things in Rakudo

c:

  • revised the Parrot bug reporting and triaging policy

Allison:

  • in the Squaak tests, it's trying to open and run a test file it thinks is named -le

Patrick:

  • this is a Test::Harness problem
  • when Rakudo starts, it detects an argument of -le and exits quietly
  • it's in Test::Harness::Straps, if you're running T::H prior to version 3
  • it's in TAP::Harness, if you're using a newer version
  • Nicholas fixed it so that it's -e if you're using the most recent version
  • that's a problem if you're running something that isn't Perl

Nicholas:

  • they changed something in the T::H distribution where if you use Test::Harness::runtests(), your Perl 5 environment passes through
  • if you use TAP::Harness, it doesn't
  • may force you to check the version and gyrate through it
  • there's documentation somewhere about running a Ruby example without parsing the shebang line
  • see TAP::Harness::Source::Perl

Allison:

  • is there a ticket about that somewhere?

Patrick:

  • it's probably easier to add a workaround to PCT
  • it could detect that it's being called from a harness
  • I'll just put in the straight hack for now
  • that'll let other language use the Perl 5 test harness

Nicholas:

  • an option is to require a new enough version of TAP::Harness; I think 3.16
  • that does introduce a build dependency on a test version

c:

  • any chance we can get time on Google's mind control lasers to wipe out some old code?

Nicholas:

  • or a time machine
  • I read the message about subroutines and methods
  • methods, by default, go into classes
  • subroutines go into packages
  • are they in different namespaces?
  • does that mean classes and packages are distinct?

Larry:

  • classes and modules have packages
  • they're packages with separate keywords
  • when it sees a sub declaration in a class, it puts it in the package and defaults to our, just like Perl 5
  • when it sees a method declaration, it tells the class MOP to add a method
  • to add an alias to the package or lexical symbol table, declare it explicitly with our or my
  • that is not the default anymore
  • seems to simplify things
  • we're also trying to unify the calling mechanism for both
  • when you're in the dispatcher, calling a method, it's the same as calling a subroutine
  • we have to distinguish methods from subs, if we want is export aliasing, by which namespace they're in, not any property

Nicholas:

  • if I declare class Foo;, does a Foo package exist?
  • if I declare a sub bar in Foo
  • and a method bar in my class Foo, are they two different things?

Larry:

  • unless you declare the method with our, in which case you'll have a collision
  • that's like exporting it to your own package as a multi
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.