Day 212 (r6817): cperl6-mode.el!

autrijus on 2005-09-06T19:11:19

As the title indicated, today Emacs Perl6 mode is checked in by renormalist, our new committer. According to the commit log, it implements these features:

  • Font-lock highlighting for class, has, say, returns, multi subs and methods, gather, take, try
  • Indentation recognizes extended sub syntax, especially traits
  • Rules, via rx// as quote operator
  • m// and s//, similiar to the new rx//
  • Recognize the parens-less form of if/elsif/unless conditionals

Feedback from emacs users and elisp hackers are most welcome; documentations and contact info are in the mode file.

Another new committer, dankogai, checked in the lambda-calculus.p6 example script we mentioned yesterday. He noted that:

# Shmuck.  This doesn't work yet
#our $VERSION = sprintf "%d.%02d", q$Revision: 0.1 $ =~ /(\d+)/g;
So I ported that line to Perl 6, which does work well:
our $VERSION = sprintf "%d.%02d", q$Revision: 0.1 $ ~~ m:P5:g/(\d+)/;
I also made some minor fixes to make the program more perl6ish, such as using [~] to join strings, .as() instead of sprintf(), and dropping parens around the list in for.

Stevan expanded MetaModel 2.0 to handle Perl6's notion that Class isa Module isa Package isa Object, moving attributes like $:name into the Module level. He posted on p6l to discuss some of its implications, and made another nice ASCII drawing to illustrate this model. I smell Visiolization (and T-shirt) opportunity...

Speaking of T-shirt, I'll bring several Pugs shirts to ICFP and EuroOSCON. I don't know how fast they will go out in ICFP, though, so if you are going to either conference and would like to reserve a Pugs shirt, please let me know of your size and long/short-sleeve preference on IRC or by email.

putter hacked Code object support into the perl5 runtime. Shortly after, fglock added higher-order function primitives such as map, grep and uniq based on it.

fglock continued to populate the perl5 runtime, implementing another dozen of primitives, as well as %*ENV that affects system() and exec(). It's not yet tied, though, so it can't interoperate with the native %ENV in perl5 yet. All in due time...

dduncan finished expanded tabs for the entire source tree. iblech and I then added the space-loving settings for Vim and Emacs into pugs::hack. He then replaced all is constant in Locale::KeyedText with its new name, is readonly; I did the same to other files in the source tree.

Lola Lee reported that the OO destruction test on OSX triggers a GHC GC bug, thereby failing installing from the default CPAN shell. I nullified the test for now, and look forward to re-test it once GHC 6.4.1 is released.

vkon cleaned up and found many corner cases in t/rules/rules.t, and remarked that there are still many things to do.

rafl continued integrating Pugs into Debian's build system, and added missing build-depends to the smoke system.

iblech landed multisub, .variants and .add_variant support to PIL2JS. He also confirmed the semantics of lexical constants (my constant $pi = 3) with luqui, and tested them accordingly.

Based on suggestion from putter, iblech added several new 07-* sanity tests to cover the gap between the previous sanit tests and features used by Test.pm itself.

That's it for today. See you tomorrow!