Oslo Perl 6 Hackathon Notes

As some of you are aware, this week is the Nordic Perl Workshop, and in the days immediately following the workshop we will have the Oslo Perl 6 Hackathon. During the first day of the hackathon Gabor Szabo will be doing a "Hands-on Perl 6 training" course, the other two days will be for various hacking tasks (both Perl 6 and Perl 5).

I personally have three goals for my participation at the workshop and hackathon:

Lexical Subs In Rakudo

The big bit of progress today was that I got lexical subs working.

{
    my sub foo() { say "pes" }
    foo(); # pes
}
foo(); # An error; sub is lexically scoped in the block

Actually, getting that far was the easy bit. The harder bit was making leixcally scoped multi subs work, which is a good deal more interesting. That's because rather than a wholesale replacement, you have to clone the set of outer candidates and then add the new ones. That is:

Perl 6 importing, and soon sockets

For a while now there's been a kind of longing for socket I/O in Rakudo. The ever-creative users of Rakudo have even managed to get a HTTP server running in Rakudo without them anyway, using netcat! However, a few days back I started trying to make sockets happen. I'm really not a network I/O guy, so I've been very happy that all I've had to do so far is encourage bacek++ to work on getting socket I/O sorted out in Parrot, take his (large - bacek++ again) patch, write the Win32 port of it and apply it.

Fixes and the start of import

This is a report for my Rakudo day last week, which finished up pretty late and thus I didn't get around to writing up and posting a report. Much of the day saw me headachey and not really feeling up to working on big stuff, so I did small stuff instead - mostly bug fixes. Those were:

Some Rakudo Logo Ideas

A few people have discussed ideas for a Rakudo logo, but there hasn't been much to look at. I'm guessing that not many people involved with Rakudo have graphic design skills. Ideally a logo would be developed by a professional graphic designer with logo expertise (ie. by someone with better skills than me - or you).

Most discussion has been about symbolism but I thought I would provide some actual visual ideas that are based on typography rather than symbols (except one includes a palm tree).

Here goes...

Idea 1.

Rakudo Perl development release #15 ("Oslo")

On behalf of the Rakudo development team, I'm pleased to announce the March 2009 development release of Rakudo Perl #15 "Oslo". Rakudo is an implementation of Perl 6 on the Parrot Virtual Machine [1]. The tarball for the March 2009 release is available from http://www.pmichaud.com/perl6/rakudo-2009-03.tar.gz.

However, because of the rapid pace of Rakudo development and addition of new features, we still recommend that people wanting to use or work with Rakudo obtain the latest version directly from the main repository at github -- more on this in a bit.

Rakudo gets state variables

I spent most of my Rakudo day today adding state variables to Rakudo. Perl 5.10 supports them, so it's nice that they can now be used in Perl 6 - which first specified the feature - under Rakudo. As often happens, it took a first not-quite-right implementation to do one that I'm now reasonably happy with. I'm sure it can be improved in various ways, but for now it seems to get the right answers for everything we've thrown at it. So, a quick example.

'eval' can see lexicals and other fixes

Back from my conference and vacation trip (travel tip: Lviv is very pretty and cheap), I did a Vienna.pm Rakudo Day yesterday. There's one main new thing to shout about: eval can now see outer lexical variables. So this:

my $x = 42;
eval('say $x');

Will now print 42. This not only made the spectest for this particular feature pass, but also there were a bunch todo'd and skipped that needed this feature. So I reckon we'll have gained a double-figure number of tests with this, plus it should help the Web.pm effort a bit.

Todo list for rakudo.org

Unordered to-do items

  • Get a logo of some kind for Rakudo and for the site.
  • Fix the RSS feed links -- the feed contains only articles from the "old" rakudo.org site
  • Converted blog entries
  • FAQ
    • Where I can get packaged versions?
    • When is Perl 6 coming out?
    • What does Rakudo mean?
    • Where do I get Perl 6? What is the relationship between Perl 6 and Rakudo?
    • Where do I file a bug? (dev end of this is already in developers-guide)
    • Why use Perl 6 if I am using Perl 5 already?
    • How do I contribute to Rakudo?
    • How do I contribute to Rakudo.org?
  • How to do basic stuff: Bring over perl101.org onto Rakudo.org
  • Blog entries about development status.
  • Pointers to Perl 6 / Rakudo projects. (http://www.perl6-projects.org/)
  • A live REPL like http://tryruby.hobix.com/
  • Perl 6 in Twenty Minutes
  • Perl 6 from Other Languages
  • Glossary of terms: When to say Perl 6, when to say Rakudo.
  • Development roadmap (eg. http://github.com/rakudo/rakudo/blob/ea3283983825a3adc46e5e2e04e286f8ebf... )
  • Committer's guide to Rakudo
  • Add more fields to the user records so we can know more about each other.

Completed tasks

  • Allow people to create accounts for making comments on blog entries.
  • Download + build instructions
  • Eliminate the "Submitted by" headline, because any number of people may have modified it along the way.
  • Current test results: Graph, build status (maybe even build status on the front page)
  • What is the state of Rakudo: What works, what doesn't.
  • How to get the source from github?
  • To-do list for the site.
  • Add some "permanent" content/description about Rakudo on the main page, above the list of recent articles. [wayland/alester did something slightly different]
  • http://wiki.github.com/rakudo/rakudo/steps-to-create-a-patch [frew++]
  • Add git.rakudo.org redirect to http://github.com/rakudo/rakudo

How to get Rakudo Perl 6

Rakudo is made available through a series of distributions that contain the compiler, documentation, and some modules--things that we think might be useful to some one wanting to write Perl 6 programs. These distributions are called Rakudo * or Rakudo Star.

Rakudo Star is currently available from github at http://github.com/rakudo/star/downloads/ .

(There is no MSI for the 2010.08 release yet; contributions welcome!)

Building the compiler from source

Syndicate content