2003 Grants - Second Quarter
PROJECT: Perl threads maturity and POE-thread extension.
DURATION: 5 months
It has been almost a year since the release of Perl threads. Bugs have been found and fixed and soon 5.8.1 will be released. However, no big project or module has used threads extensively so it is still hard to judge how many problems are left.
The leading event loop / async project with the most public support is POE. There has been discussion ongoing for over 2 years about adding thread support to POE, but no-one has had the time to implement it all the way. Those who tried found bugs in threads that made it harder and thus postponed it.
This grant will be matched by $2000 from DynDNS.org and $1000 from Stas Bekman.
Integrating threading in POE will enhance stability in threads and further POE with a multithreaded, SMP-aware, event-loop environment. I will fix the threading issues that crop up, essentially using POE as a testcase and testbed for threading from the Perl interface. At the same time I will also help the mod_perl2 project by identifying and fixing thread related issues. (My belief is that the thread problems are similar between the two projects).
- SMP aware threaded POE with speed boosts
- More mature threaded mod_perl2 mpm support
- More mature thread support
- Possibly a PerlInterpreter.pm that opens up the threading core to the Perl world
PROJECT: Extend the Parrot JIT to emit an executable
DURATION: 5 months (starting June 1st 2003)
Parrot will be able to emit an executable on linux and *BSD. It will generate an object file for the program and then link it with libparrot using the system linker.
- A compiler will allow Parrot programs to run faster since the runtime optimizations will no longer be necessary.
- The Parrot bytecode of the programs will be hard to disassemble, thus protecting the programmer code.
- The Parrot virtual machine will no longer have to be installed on the machine where the program runs.
- Modify the JIT and add a new subsystem to use it.
- Replace the hardcoded addresses of the Parrot registers in the JITed code to be able to use that code in an executable.
Daniel Grunblatt is the original developer of Parrot's JIT subsystem.
PROJECT: Public key support for CPAN.pm, Module::Build and PAR
Since my pubkey work in CPAN::Checksum/Module::Signature/CPANPLUS works reasonably well, various parties have been encouraging me to hack it into CPAN.pm, Module::Build and PAR.
But the guts for the first two modules are tricky to get into, and nobody from the PAR community has volunteered to do the latter either, so they have also been postponed indefinitely. Here a grant can also help me to get an undisrupted period of time to concentrate.
- Allow users to protect themselves against malicious trojans on CPAN mirrors, which is a gaping hole in the current distribution mechanism.
- Implement a "trusted code" environment to run arbitrary script/module/PARs that are signed, and reject those that are not. (aka Java; see Penguin for an old attempt at this.)
- Enable peer-to-peer distribution networks as a means to ship precompiled module binaries (aka PPM). This also allows other non-PAUSE sources (eg. FreePAN) to join the module publishing infrastructure. See my "evil plan" journal for an overview.
Modifications to these modules:
Autrijus has a history of valuable work with pubkeys and PAR.
PROJECT: Send Leopold TÃ¶tsch to YAPC::EU
YAPC::EU in Paris is a major opportunity to get in personal contact with other Parrot developers and coordinate future development goals.
- I'd like to allow the community to participate in my thorough knowledge of the Parrot interpreter and the Intermediate Code Compiler (IMCC).
- Coordination with Dan and other core Parrot developers.
- To get a deeper insight into Perl 6, especially the needs for the Parrot interpreter and the Perl 6 interface.
A talk about Parrot internals at the conference.
In the last 9 months Leopold TÃ¶tsch has has been one of the major contributors to Parrot development -- or as Piers Cawley, the Perl 6 summarizer, has described it, "The Patch Monster". There is a history and summary of his work with Parrot on his
As the author and original creator of Perl, this grant is in appreciation of Larry's continuing contributions to the language and the community.