Today I bring thee, PPT.
Perl Power Tools: the spatula, apple corer, and Ginsu knife attachments for
your swiss army chainsaw. Roncopocketfishermannotincluded.
History
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.
Ingredients
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:
- 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.
- 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:
- Class::Accessor
- Class::Accessor::Chained
- DBI
- Devel::StackTrace
- Encode
- Error
- Interpolation
- MIME::Tools
- Make
- Math::BigFloat
- Math::BigInt
- Math::BigRat
- Module::Build
- Module::Pluggable
- Pod::POM
- Pod::POM::View::HTML::Filter
- Proc::Background
- SOAP::Lite
- SQL::Statement
- String::Koremutake
- Sub::Uplevel
- Template
- Test::Exception
- Test::Expect
- Test::Simple
- YAML
- bignum
- spod5
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.