December 22, 2009

Seven Days between the Parrot and the Camel

from Monday, December 14 to Sunday, December 20 in the year 2009

Considering the Language:

The Cool class appears, an ancestor for all classes that are willing to convert their values in order to support the "culturally universal" methods defined in Cool (for example .abs or .substr). The mutable Cool namespace will also contain the multi methods of last resort that are searched if normal multiple dispatch does not find a viable candidate. All built-in classes except junctions and Whatever derive from Cool. User-defined classes do not derive from Cool by default.

The verbs for leaving a when block early will be proceed and succeed (instead of the false friends continue and break). proceed resumes execution after the closing curly of the when block. succeed immediately leaves the surrounding topicalizer block.

The loose prefix operator for testing truth has been renamed from true to so in order to make it more distinct from True and shorter than not.

The REJECTS method has been removed. The negated smart match operator !~~ will use !foo.ACCEPTS instead.

Picking from baggy containers has been refined. A separate .grab method will do a mutating .pick which removes the selected element (once) from the container. When used without replacement, .pick will keep a private temporary copy of the Bag and .grab from that. The .pickpairs and .grabpairs methods will treat each key/replication count pair as a single item to pick (and remove).

Considering Rakudo:

Shortly after Parrot's 1.9.0 release, the Rakudo master branch was released as development release #24 ("Seoul"). Due to spectest changes, this release passes fewer tests than #23, but the relative percentage of passed tests has increased. The most visible changes in #24 are the switch from Object to Mu and the removal of undef.

In the ng branch, Jonathan Worthington reimplemented does in terms of the meta-model, not relying on Parrot's primitives. Work continued to make more spectest pass with the ng branch.

Considering Parrot:

Gerd Pokorra released Parrot 1.9.0 "Blue-fronted Amazon" on December 15. Among the most notable changes are the greatly improved nqp-rx compiler and the extensible profiling runcore.

The Parrot developers held a roadmap meeting, identifying priorities for upcoming Parrot milestones. An important outcome was the change to a shorter 3-month support cycle. Parrot development for 2.0 and 2.3 will focus on the needs of Rakudo *.

The context_unify3_simple branch by Vasily Chekalkin landed and merged the Context and CallSignature PMCs into CallContext. The branch is a descendant of context_unify3 that omits some more involved changes to context creation.

In the pmc_freeze_cleanup branch created by Peter Lobsinger, the Parrot developers are busily cleaning up and merging freeze/thaw serialization and the PBC bytecode format. The new code uses the visit_info struct as its pivot and keeps out of string internals.

Fran├žois Perrad continued to improve distutils and languages infrastructure.

Bob Kuo, a.k.a. bubaflub, celebrated his new commit bit with a firework of changes, converting many further tests to PIR among other things.

No comments:

Post a Comment