Wednesday September 22, 2004 I spend an amount of my time making sure that perl works OK on Solaris, and I've done the same for other FLOSS packages as well - see my recent posts on MySQL. In the past if I'd wanted to help out it meant doing it myself, or arranging for a donation of kit, OS and compiler licenses to the appropriate people, which wasn't always possible in a timely fashion. In fact I spent quite some time on IRC today helping out someone else in the perl community (Hi Jos!) who needed some tests running on a Solaris box, and we shook out some bugs as a result.
Well, there may just be a better solution. As well as announcing that we are going to sell compute power at 1$/hour, we have also announced that you will be able to get free access to an Opteron box, running Solaris 10 and with the Forte compilers loaded up. It's not clear how long this will be free for - I'd hope that for FLOSS developers we would give permanent free access and possibly make gcc available too, as it's obviously in our interest to make it easy to get stuff to run well on Solaris 10 (Jonathan, are you there? ;-)
Anyway, I've signed up myself at http://www.sun.com/tech-center/, and if I'm successful I'll get the login details on October 4th - I'll let you know how I get on!
Posted by alanbur
( Sep 22 2004, 01:01:40 AM BST )
Permalink
Comments [2]
Monday September 20, 2004 Well, I'm back from from the YAPC::EU conference, so I should probably write up the rest of the happenings. On Thursday Tim Bunce arrived - I was hoping he was coming as he lives in Southern Ireland. Tim is the designer and author of the extremely widely used perl DBI module, and a really nice guy to boot. As usual, we spent time catching up with gossip and generally putting the world to rights.
On Thursday evening we all walked to the Odyssey Centre, and over dinner Tim explained a nasty UTF-8 related problem in the DBI interface. DBI allows you to bind variables to columns in a query, so that the values of each successive row are stored in the variables. The problem is if you bind a variable to one query that returns UTF-8 values, and then subsequently rebind it to another query that returns ASCII strings. The first bind/query sets the UTF-8 flag on the variable, and the subsequent bind/query doesn't clear it, so Bad Things Happen. Nick Clark (current perl pumpking) said that he thought that we'd gone about as far as we could retrofitting unicode support into the current perl5 interpreter, and that the 'Final Solution' would have to wait for parrot to be complete. Nick was saying that lots of the XS modules on CPAN aren't unicode-aware (I'm guilty of that!), not because people don't care but because as he explained "They didn't change, but perl changed underneath them".
We also talked some more about the ABI issues I mentioned in my last post. Not only does perl have the unfortunate habit of putting the libperl.so library in a different place for each micro release, it also doesn't actually have a well-defined ABI. Perl does have something that purports to define an ABI in the shape of the embed.fnc file and friends, and in fact on some platforms (e.g. Win32, AIX MacOS and others) it's used to produce files that define the interface provided by perl as it's mandatory to have such a thing to be able build perl on those particular platforms. The problem is that every platform uses a different set of exported symbols, and that's further permuted by the multitude of ways that you can build perl (threaded, multiple interpreters etc.) - see makedef.pl for the gory details - it's nasty. This makes it difficult to know exactly what symbols should be exported for Linux or Solaris - and the fact that virtually the whole of the documented interface consists of a mad macro mishmash makes this challenging to sort out, to say the least. On top of that there is nothing to actually stop XS modules using any old bit of the perl internals they choose, and some do so choose, so enforcing an ABI could well break an unknown number of CPAN XS modules. I did consider using a mapfile to version libperl.so on Solaris, but after looking at it I backed quietly away before turning on my heels and fleeing. Nick opined that we should probably fix this for perl 5.10 (that should please Rod), but it's a gnarly problem. On a brighter note, I asked Dan Sugalski on IRC this morning if parrot was going to suffer from the same problems, and he assured me it wouldn't. Yay for Dan :-)
Allison Randal was also at dinner with us on Thursday, and at one point Tim asked her "I hear you've just stared working for , what exactly are you doing for them?", to which the immediate riposte was "Well Tim, I'm your new editor!" Tim is currently writing the second revision of the perl DBI book, a process which he memorably described as "Like having your teeth drawn out with pliers, very slowly over the course of a year". Any distant thoughts I ever had of writing a book disappeared at that point!
After dinner we went and found the rest of the mob in the bar, and I had a bit more of a chat with Leo Toetsch about how I could help out with parrot. People have been trying to get hold of machines (including sparc) for Leo, and in fact he's just got a new iBook, courtesy of TPF. However it's clear what he actually needs is help with the other platforms - he just doesn't have time to test/build on all the variants. Leo told me that the threading support in parrot is pretty rudimentary at the moment, and Dan has also been saying that work needs to be done on making parrot less dependent on the perl5 that is already on the platform for configuration information. As I mentioned before, the Solaris sparc and x86 JITs needs work. plus it would be nice if it it worked with the Forte compilers as well. Both Dan and Leo said that dtrace looked interesting, especially as it is now possible to embed your own probes in an application, so there's some obvious synergy with Solaris 10 there as well. There's certainly a whole lot of stuff to be done, now all I have to do is to find the time and support to do it ;-)
On Friday the conference finished off with the traditional auction, where donated items are autcioned off to help fill the TPF coffers. The general idea is to see who can pay the most outrageous amount for the most worthless piece of tat. A set of fridge magnets with perl code statements printed on them went for 50 pounds, and a signed copy of the Perl 6 book went for something approaching 300 pounds, as far as I can remember. The very last item is the chance to choose the colour of the conference organiser's t-shirts for the next year's conference. This year with the conference being in Belfast, the colour was naturally orange. Next year it's in Portugal, and for some reason I still can't fathom, the winning bid was for black fishnet. Ewwwww....
Posted by alanbur
( Sep 20 2004, 06:39:44 PM BST )
Permalink
Comments [0]
Thursday September 16, 2004 Well, my talk yesterday on how we use perl to help in the development of Solaris went down OK - the only heckling was friendly (thanks, Nick ;-) and I was asked if I would release some of the bits I talked about as Open Source, specifically the stuff for allowing you to embed MySQL queries inside TWiki topics, and the mod_perl handler for doing SCCS history browsing. Something to do when I get back to the ranch.
The conference has wireless access, and by a fortunate coincidence my hotel room is directly across the street from one of the rooms we are using in the conference centre, which means I can get a wireless connection from my hotel room, which is a real boon!
I bumped into Abe Timmerman on tuesday evening in The Crown - the only pub I've ever been in that is owned by the National Trust! Abe looks after the Perl Smoke framework - this is a distributed set of machines that run daily regression tests on perl on as many different machines types as possible. After last's years YAPC::EU I scrounged together five old machines and installed Solaris 2.6 through to Solaris 10 on them to add to the smoke pool. I'd been kinda busy and not really paying attention to the test output, and one of the machines had wedged in the test suite back in June and had chewed up over 2000 hours of CPU - oops! The test framework was also in need of an upgrade, so we set to and upgraded it - hopefully by tomorrow we'll see the first sets of results from the new version of Test::Smoke.
I also had a quick chat with Leo Toetsch about what needs to be done on the Parrot front (Parrot is the new interpreter engine that Perl 6 will eventually sit on top of). The first things that would benefit from some attention are getting Parrot to build well with the Sun Forte compilers, and then there's a whole load of stuff to do related to threading support, making sure the x86 JIT works OK on Solaris x86 and improving the sparc JIT, which hasn't received very much attention. So, loads to do once Solaris 10 ships and I get clear of some of my current commitments on the Open Source Solaris project.
I also grabbed Nick Clark to discuss an issue that's been a bit of a pain for us when upgrading perl versions. Perl uses its version number as part of the path under which it stores libperl.so - for example, /usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE/libperl.so. The problem with this is that if you upgrade to a later but binary compatible version of perl, the version number component of the pathname changes as well. This means that anything that explicitly links against libperl can no longer find it. In general this is anything that embeds a perl interpreter within itself - an example being the Apache mod_perl plugin that we ship as part of Solaris. The obvious fix is to put a symlink somewhere and link against that, however some perl5-porters mailing list discussion will be required to sort this out.
And lastly I managed to get a nice new orange Fotango pen from Leon Brocard - the one I got from him during YAPC::EU 2000 had finally given up the ghost. Reason enough for coming to the conference :-)
Posted by alanbur
( Sep 16 2004, 04:59:44 PM BST )
Permalink
Comments [0]
Monday September 13, 2004 As part of my pennance (and my sins must have been many), I look after the perl we ship in Solaris (yes, I admit it, it's my fault - whatever it is). However along with the heavy responsibility comes the opportunity to go off on various high flying conferences and talk to lots of other Important Open Source People like myself.
However, I've given all that up, and instead I'm going to YAPC::EU tomorrow in glorious...
Belfast. I'm also singing for my supper, in that I'm giving a talk on how we use perl to help in the development of Solaris. My manager will be happy (Hi Allan!) as instead of an expensive flight to Portland to go to even more expensive OSCON he gets off with a 130 Pound air fare (57 Pounds less than it costs to go to Watford on the train) and a paltry 65 Pounds for the conference fee. The reason that it is so cheap is that it is a grass-roots conference, run by the perl hackerati, for the perl hackerati. It's also cheap so that we can spend the bulk of our money on beer (only joking - honest!)
Actually I'm really looking forward to it, the perl crowd are a great bunch and I'm really looking forward to meeting up with my friends (well most of them - Some of the Finnish contingent wimped out this year - you know who you are ;-) IRC is OK, but you can't beat 'facetime' as it is so inelegantly called. Hopefully I'll have caught up on all the scurrilous perl gossip by the time I come back!
Posted by alanbur
( Sep 13 2004, 11:01:01 PM BST )
Permalink
Comments [0]