Circumstance leading up to removal of perl from base?

Garance A Drosehn gad at FreeBSD.org
Sun Jun 22 05:45:41 UTC 2008


At 7:02 PM -0400 6/20/08, Dan Mahoney, System Admin wrote:
>Hello all,
>
>I know it was a long time ago, but I was talking with a co-worker
>about why perl was removed from the base in v5 -- I seem to recall
>a discussion on some mailing list about either the number of
>arguments or the format of the arguments and/or output of a base
>perl function having changed between 5.005 and 5.6.1.

There were a lot of changes between perl 5.005 and later versions
of perl.  Those issues were changes to perl itself, so check the
history of perl for details.  I don't remember the details myself,
but I do know that I had to change a few of my own perl scripts
to get them to work with whatever changes there were.

When it comes to FreeBSD, those incompatible changes meant we were
reluctant to upgrade perl in the base system, because we might
break the scripts for lots of sysadmins.  On the other hand, most
sysadmins *wanted* all the newer features in the newer versions of
perl, so most people were installing it from ports even though we
had the older version in the base system.  And when people had two
versions of perl installed (one from the base-OS, one from ports),
then they often ran into problems with perl scripts which would
get the wrong version.  There were also programs which would have
configure scripts that would pick up one version of perl, make
decisions based on that, but then build scripts and those scripts
would actually get the *other* version of perl.

Remember also this was back when the FreeBSD project was putting
a lot of energy into the great FreeBSD 5.x branch -- which for
awhile seemed like it would never get truly stable.  And we could
not make a major change (such as upgrading perl) in any stable
branch -- a change like that would break too many things.  In
that context, it was clear that FreeBSD was a project which had
its release schedule, and Perl was a big and important project
which had *its* own release schedule.  And we were always going
to be in trouble if our release schedule did not match perl's
schedule.

The final straw for perl in the base system was when the project
was trying to bring up new hardware platforms (sparc64, or ia64,
or maybe something else.  I forget which one).  In order to do
that, you have to be able to *cross-build* the base system on one
hardware platform while you're trying to get the new hardware
platform to the point that it is self-hosting.  And trying to
take all the source code for the perl project, and re-organize
it so it would correctly cross-build in the "proper way for the
FreeBSD base system" was a lot of extra headaches.

There were plenty of other arguments to remove perl from the base
system, but cross-platform builds were the issue which actually
triggered it's removal.

-- 
Garance Alistair Drosehn     =               drosehn at rpi.edu
Senior Systems Programmer               or   gad at FreeBSD.org
Rensselaer Polytechnic Institute;             Troy, NY;  USA


More information about the freebsd-questions mailing list