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 ]

masak (6289)

masak
  (email not shown publicly)
http://masak.org/carl

Been programming Perl since 2001. Found Perl 6 somewhere around 2004, and fell in love. Now developing November (a Perl 6 wiki), Druid (a Perl 6 board game), pls (a Perl 6 project installer), GGE (a regex engine), and Yapsi (a Perl 6 implementation). Heavy user of and irregular committer to Rakudo.

Journal of masak (6289)

Saturday April 25, 2009
04:30 PM

Week 5 of Web.pm -- more tinkering everywhere

[ #38871 ]
U iz so cute!
U iz so hawt!
Ur eyez iz liek birdz,
an ur hair iz liek goatz
comin down teh mountin. Datz hawt.
 
Ur teefz iz liek sheep
dat just hadded a baff.
Liek twin sheep,
bcz non of ur teefz iz missin.
      — Song of Solomon 4:1-2

This week, inspired by jnthn, I'll switch summary style and go point-by-point instead of in free discourse mode. Just to try it out.

I would like you to note, reading this, how many different names of people appear among the different items. This is definitely no longer a three-man effort, but significant parts of the Perl 6 community pushing towards a point where we can build awesome (or at the very least slightly above average) web apps on top of Rakudo and Parrot.

  • Renamed the Lobster into the Nibbler, like I said I would. mpeters++ for the ASCII image.
  • mberends++ insisted that we spend the hackathon putting bacek++ and Tene++'s socket work into Rakudo itself, continuing on cosimo++'s work. This, for various reasons, took an evening and a day, but it was very much worth it. Seeing the Nibbler being served fairly rapidly was a significant reward.
  • One thing that had to be fixed before we could get sockets to work was that non-Rakudo objects couldn't be passed as return values any more. (There was some type checking going on which assumed that the object in question was a Rakudo object.) Passing non-Rakudo objects is vital in the long term, when we expect Parrot to be a platform for many languages communicating freely with each other. jnthn++ and pmichaud++ fixed.
  • Next slight problem that turned up was that IO::Socket::INET turned out to be the first setting module with those double colons in it, and the underlying setting magic choked a bit on them. jnthn++ showed me how and where to fix.
  • Wanting to port November over to the Request/Response model of Web.pm, I took a look at November for the first time in a while. Turns out it has bitrotted somewhat, so I had to take care of that.
  • Bitrot issue #1: join no longer accepted only one argument. This was a new restriction accidentally added to Rakudo. I reverted the change; moritz++ added the appropriate spectest.
  • Bitrot issue #2: In order to prevent autothreading, one of the loops in Dispatcher.pm was spelled for @rules -> Object @pattern, $action { ... }. This had stopped working in Rakudo due to a combination of stricter type matching in signatures and a failure to handle this particular case — the case where an Array is typed as containing Object elements. Fortunately, a workaround turned out to be simply removing the typing for now.
  • Still didn't get started on porting November over. I've created the branch "web" locally, and now that the tests pass, I can start moving things over. Will probably be a while before we merge this one back into master. But being rid of CGI.pm, if only in a branch, will be nice.
  • As a surprise bonus, azawawi++ came to me on #perl6 with a number of STD.pm parsefails that he discovered while parsing November in Padre. Hm, maybe it's time for a Perl 6 module that tests Perl 6 projects against STD.pm?
  • After discussing the Genshi clone with Tene on #november-wiki, I started writing a simple prototype with a grammar that would pick apart an XML string and put it together depending on the values of pe: attributes. I failed, and spectacularly. On the plus side, we discovered quite a number of .perl bugs in bleeding Rakudo.
  • Even though the prototype never did what it was supposed to demonstrate, it did give me direction to start writing some tests and a small module. This module doesn't yet do what the prototype almost did.
  • Working name for the Genshi clone: Hitomi. I've understood this means "doubly beautiful". That is, once for being based on Genshi, and once for being written in Perl 6. ☺

I wish to thank The Perl Foundation for sponsoring the Web.pm effort.

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.