Alien::Base Perl Foundation Grant Report Month 3
This month’s work on Alien::Base started really exciting. I had tracked down several bugs and was honing in on full Linux compatibiliy. Turns out much of my testing problems had been in the test suite, wherein I mimiced make/Makefile with a perl script (in the name of Xplatform) but made some incorrect assumptions.
The problem came when I went to look at OS X. The problem I have found is that Mac bakes the full path to the library into the library itself during compiling/linking. It can be changed manually as long as the new path is shorter than the old one! Yes there are work-arounds but they would involve delving into the library’s Makefile, which I have been ardently trying to avoid (opens a pandoras box). The other mechanism would be to target the library to install in the final place directly, but this breaks the usual workflow of installing a Perl module, in which perl Build.PL
and ./Build
do not do anything permenant, waiting until ./Build install
to move the files to their final places.
This problem cropped up a few weeks ago and since then my work on Alien::Base has been residing in the grey-matter, hoping a solution would present itself. I don’t want to say “forget Mac” because the whole point of Alien
is to be as cross-platform as possible, still I keep coming back to thinking that perhaps an early release might have to forgo Mac initially.
My research has picked up, some of you may have seen my PerlGSL
and related modules arrive this month; these modules are not purely a diversion from Alien::Base
but rather they have been critical in some simulations I am developing. These and my thesis have taken some time from Alien::Base
but I knew that (and disclosed it) going into the grant.
I am targeting a Linux release before next month’s grant report as most of the API seems sufficient, though I am reluctant to release while the Mac issue is outstanding like this. Hopefully the Perl Foundation will be patient with me as I deal with these pressing matters both inside and outside of the Alien::Base
project.
Presumably Alien::Base unpacks the library into some temporary directory before building it, right? Why not just detect when running on a Mac, and in those cases ensure that the temporary directory has a really, really long name?
Interestingly, David Mertens just suggested that very thought. Perhaps I should have posted this quandary earlier!