The Perl 6 Summary for the six days ending 2004-08-06
Another short week and the rollover point is now set to Friday nights in
preparation for September when I'll almost certainly not have weeknights
free. (Of course, I don't expect the summary will be coming out any
earlier in the week through August, what with Saltburn Folk Festival
this coming weekend, EuroFoo the weekend after and Towersey Folk
Festival the weekend after that.
Just for a change, we'll start with the discussions in perl6-language.
Meanwhile, in perl6-internals
ICU Outdated
Unicode is evil I tell you. Necessary, but evil. If ever there was an
essential piece of technology that was absolutely guaranteed to annoy
everyone then Unicode is probably it.
The Unicode issue this week was the ongoing discussion of what to do
about ICU. It's huge, it's in C++ and Dan maintains we can't do without
it (unless some kind soul were to implement a Unicode library with all
of ICU's features and fewer of its annoyances -- now there's a
postgraduate task for the interested).
Dan's plan is:
1 Make Configure detect and use a system ICU, if available
2 Dan will spec out encoding and charset APIs for loadable encoding
and charset modules
3 Parrot gets fixed to use those APIs
4 Add support for non-Unicode encodings and charsets
5 Make ICU a loadable module tied into the encodings and charset API
6 Profit!
This puts Dan smack on the Critical Path, but what's new?
http://xrl.us/cob9
Span!
Matt Kennedy announced the initial release of a new Parrot based
language called Span. And very lovely it looks too (Think Smalltalk
meats Block structured languages and wins), if only I could get it to
compile on my Panther installation.
http://xrl.us/coca
http://xrl.us/cocb
Executable AST
In an intriguing post, Leo announced that Parrot's now running code
directly from a (Python) Abstract Syntax Tree description. The post is
light on details, but big on potential.
http://xrl.us/cocc
Roadmaps
Dan announced that he'd committed a DESIGN_TODO file to the repository
with brief details of what he thinks needs working on. He also posted a
short term roadmap of things to deal with in the near future and very
interesting it looks too (he reckons we should be able to get
serializable continuations working, which would be rather cool).
http://xrl.us/cocd
PMC Basics
Leo posted a list of issues with how PMCs work. Warnock applies.
http://xrl.us/coce
Starting to make things final
Dan pointed at the efforts of Piethon and the 'PHP on Parrot' people and
at Span and declared that we're at the point where things that are in
and implemented should be documented and fixed and that things that are
in flux should 'un-flux and get fixed'. He sketched the road to 0.2.0,
0.2.1 and thence to 0.3.0. The idea is that 0.2.0 (or 0.2.1) will be a
'complete' stable, good enough platform for language developers. Which
will be nice.
Oh, there's going to be a compiler writer's list (probably
parrot-compilers) spun off from perl6-internals (which will probably
become parrot-internals). Names are slightly undecided at present (but I
will aim to cover both lists in my summaries).
http://xrl.us/cocf
Declaring MMD subs from PASM/PIR
He who must not be capitalized, chromatic, wondered about declaring
parrot subroutines that participate in multiple dispatch. He outlined a
scheme that Dan had suggested (presumably at OSCON) and asked for
comments. Leo and Dan discussed it further, but I don't think anything's
final yet.
http://xrl.us/cocg
Everything Parrot
Documents maestro Michael Scott posted the beginnings of a subject
overview for Parrot. He asked people to point out any bits and pieces
he'd missed.
http://xrl.us/coch
A testimonial and a question
Andrew Rodland delurked to say nice things about Parrot ("pretty smooth
stuff") and to ask if there was a handy list 'It Would Be Nice If...'
tasks that newcomers could get started on without having to dive
straight into hacking the core. Simon Glover pointed at the TODO list.
He suggested that you can't have too many tests and that writing tests
can be a good way of getting a handle on what the core does (or is
supposed to do).
Reading tests can be a good way of getting a handle on what the core
does too, of course.
http://xrl.us/coci
The new Perl 6 Compiler pumpking
Dan announced that Patrick Michaud stepped up to the plate and taken
charge of getting the Perl 6 compiler module written. Welcome Patrick,
and the very best of luck.
Leon Brocard asked Patrick what his plan of attack was. No reply so far.
http://xrl.us/cocj
Spilling problems
The thing about writing naive compilers for naive languages is you end
up with rather large Parrot subroutines. Dan's work project is
generating ~6000 line subs. Which shouldn't be a problem, but it seems
that IMCC's register spilling algorithm is getting itself into a
horrible tangle. Dan suggested thumping the register spilling code to
fall back to a fairly stupid scheme when the 'optimal' algorithm runs
into problems. Leo's working on it, but it's not easy. Any help
gratefully received.
http://xrl.us/cocm
http://xrl.us/cocn
http://xrl.us/coco
Anyone up for a big challenge?
Dan pointed everyone at TinyCOBOL, a GNU COBOL compiler. He suggested
that using Parrot as a way to migrate legacy COBOL apps would qualify as
a Good Thing. So, if anyone would care to rejig TinyCOBOL to target
parrot for a grateful world...
Anyone? Bueller?
Actually, it looks like Tim Howell is working on it.
http://xrl.us/cocp
http://tiny-cobol.sourceforge.net/
Syntax highlighting
Taking the bit well and truly between his teeth, former lurker Andrew
Rodland posted a bunch of patches to improve syntax highlighting of
Parrot code in vi. Of course, I use Emacs, so it's no good to me, but
still, it's good to see.
http://xrl.us/cocq
"spawn", meet "exec"
Possibly because there's no superhero called Exec, Dan overlooked it
when he added a "spawn" opcode. So he's fixed that. It works like you'd
expect. He asked for help to make it work nicely in Windows. Brent
Royal-Gordon, Aaron Sherman and Jonathan Worthington rallied round.
http://xrl.us/cocr
Looking for a hardware donation
If you've been reading this summary for any length of time, you'll be
aware that Leo writes rather a lot of code. But he writes it on an x86
Linux system with GCC which, as Dan pointed out, is 'possibly the most
forgiving development environment on the planet, even with full
warnings', which can be problematic when people with other systems do a
"cvs update".
So, the Perl Foundation is organizing a drive to get Leo something nice
and Unixy but less forgiving to use for local portability testing. If
you can help, either Leo or The Perl Foundation would be very pleased to
hear from you.
http://xrl.us/cocs
Announcements, Apologies, Acknowledgements
Tcha! Wouldn't you know it, as soon as I decide that Luke Palmer will
join the ranks of the monomonikered, he clams up. Bah!
If you find these summaries useful or enjoyable, please consider
contributing to the Perl Foundation to help support the development of
Perl. You might also like to send feedback or contributions to a
'getting Piers to OSCON 2005' fund to mailto:[EMAIL PROTECTED]
http://donate.perl-foundation.org/ -- The Perl Foundation
http://dev.perl.org/perl6/ -- Perl 6 Development site