December 13, 2009

Seven Days between the Parrot and the Camel

from Monday, December 7 to Sunday, December 13 in the year 2009

Considering the Language:

Role composition rules changed so the collision of has attributes with the same name will always be considered a conflict, even if their types happen to match.

The p{...} quoting construct for filenames has been removed in favour of the :p modifier, so paths will be written as q:p{...}, or qp{...} in short.

Bare say and print were reduced from errors to warnings. Upon a question about useful defaults, Larry Wall explained that Perl 6 will free the programmer from memorizing arbitrary lists of special cases. He also pointed out the concise forms .say and .print for printing the topic.

Considering Rakudo:

On the Rakudo ng branch, Jonathan Worthington continued work on the meta-object protocol, filling in more parts of role composition. Attributes are now properly composed into packages by calling the compose method on the meta-attribute. For initialized attributes, a build closure is passed along. The RoleHOW meta-class moved towards independence from Parrot's Role PMC.

Notably, the does and but operators for mixing in roles are now written entirely in Perl 6, and the role appliers are NQP classes with only a little Parrot-specific code.

Jonathan Worthington also added a first sketch of an implementation of enumeration types.

Solomon Foster, Moritz Lenz, and Stephen Weeks did more work on the core setting. As of this writing, the ng branch passes over 2400 spectests.

In the nqp-rx repository, Patrick Michaud started to rewrite the HLL::Compiler class in NQP.

Considering Parrot:

Christoph Otto refactored the profiling runcore to allow multiple output formats. Currently it supports the human-readable pprof format and the silent none format (for profiling the runcore itself). Plans are to add binary output and output in callgrind format. The updated runcore also supports recording annotations in pprof files. Environment variables are used to control these features.

Working on the last part of his Hague grant, Patrick Michaud committed a new draft for PDD 31 on HLL compilers and interoperability.

The running of :immediate, non-:anon subs is now delayed when writing PBC bytecode, so the subs can run during reading PBC, which should make .const more usable for HLLs (as :immediate subs may set up things for creating the constant data from the bytecode).

Vasily Chekalkin created the context_unify3 branch in the third attempt to merge the CallSignature and Context PMC types. The unified PMC will be known as CallContext.

Bob Rogers posted a proof-of-concept patch for unwinding nested runloops upon the invocation of an exception handler.

Peter Lobsinger is looking into merging the PBC bytecode format and the freeze/thaw serialization format for PMCs.

The December 12 pre-release hackathon focused on removing uses of the strstart field outside the string internals. However, many occurrences cannot be replaced easily, and Andy Dougherty and Patrick Michaud warned about breaking code for cases of substrings that may not be tested.

A lot of cage cleaning happened this week: JimmyZ contributed many patches to make PMC code use GET_ATTR and SET_ATTR macros. Bubaflub converted further tests to PIR. Fran├žois Perrad improved C code indentation in areas not yet tested by codingstd.t. Michael H. Hind fixed g++ build failures.

Geoffrey Broadwell added Mercurial support to plumage and documented how to add new build tools to the system.

No comments:

Post a Comment