YA Perl Advent Calendar 2005-12-10

Today I bring thee, PPT. Perl Power Tools: the spatula, apple corer, and Ginsu knife attachments for your swiss army chainsaw. Roncopocketfishermannotincluded.


PPT: The Unix Reconstruction Project was spawned by a thread on perl5-porters in February 1999. On February 24th Tom Christiansen announced a new project, which ended up at http://language.perl.com/ppt/. Unfortunately, development seems to have stalled by August 1999. In late 2001 perl.com underwent a restructuring and eventually the old URI ceased to work; although the contents were available at http://perl.com/language/ppt/ for sometime.

Meanwhile, inn mid May 2001 Sean Dague and Casey West picked up the ball creating the ppt project on Source Forge where it quickly faltered :-) As early as November 2001 people were unable to access the project content. In a spurt of activity last summer, Casey officially moved the project to it's current home on perl.org and uploaded a bundle to CPAN so that it would never be lost to Perldom again.


For a full list see the distribution on CPAN. Some notable inclusions are the original par (a perl analogue of shar), several flavors of grep, a yacc, wumpus, and of particular interest to me... make. This make seems a little long in the tooth, is it unmaintained or just that good? My interest in pmake (as it is technically known) stems from two areas:
  1. Traditionally Solaris has had an awful make and I've had to manually install modules with an available GNU make. Recently the GNU make broke.
  2. Could pmake help all those poor souls stuck on Win32? Might this, a portable make in our language of choice be more palatable than nmake?

Festina lente

For the past week I've been trying to use pmake exclusively, testing it on several platforms: solaris wwith 5.8.0 & 5.8.4, linux with 5.8.0, win32 with Siemens 5.8.0 and ActiveState 5.8.7. Thus far I've successfully installed the following modules on the eunices: Win32 has been a bit more of a problem :-/ With the Seimens build a make install typically prints something like:
Ignore '$(PM_TO_BLIB)'
Ignore '<<'
Ignore '@$(TOUCH) $@'
Writing c:\usr\site\lib\auto\Win32\FileTime\.packlist
Appending installation info to c:\usr\lib/perllocal.pod
And in those ignores it overlooks actually installing the module. It updates the local installed module list fine, touches the packlist, it even installs any included scripts and pl2bats them. But no module.

ActiveState's distribution fairs even worse with a simple:

Cannot recurse Make - no target C:\Perl\lib^ in C:/Documents and Settings/Jerrad/Desktop/Make-1.00 at C:/Perl/site/lib/Make.pm line 454.
Of course, making perl modules oughtn't be that hard–be they MakeMaker or Module::Build based–Perl does all the work. I mean, the invoked perl does all the work. So, just for fun I tried building a couple of C applications with pmake. Both perl 1.0.16 and boggle built without a hitch. I had various levels of success (mostly spectacular failures) with emacs 21.3, zephyr 1.5, statist and GCC 4.02. Although, GCC 3.23 was promising until it began carping about ar.

Finally, I also noticed that pmake will ocassionally rebuild things. For instance after make test, make install forced another make all. However, the circumstances have not been reproducible.

So go ahead, take a peek and maybe hunt the wumpus. If you've got tuits fix make or add a missing tool... and give a chrismahannakawanzasolstice present to the community.