I know there has been a lot of discussion about splitting up perl into chunks, and we too have had to do this for Solaris. The reason is that perl is included in the Solaris boot image, and 5.6.1 (included in Solaris 9) is far too big to fit. It is in there in the first place to allow people to customise their Jumpstart (OS auto-install) environment using perl. 5.005_03 fitted fine into the Solaris 8 boot image, so continuing growth (I'm carefully avoiding the 'bloat' word ;-) is a real problem.
My approach was to split perl into 'core' and 'everything-else'. The miniroot (OS boot image) includes just the core bits, but when you have actually installed the OS you will end up with both the core and everything-else bits installed. Here are the bits I removed and put into the 'everything-else' package: a2p, c2ph, h2XXX, pod2XXX, B::, CGI::, CPAN::, Devel::, ExtUtils::, all PODs, all lib/*.pl files, all of lib/unicode and all .h files under CORE. Because there only has to be enough there to run during OS install, it is reasonable to assume that all this stuff won't be used, although it is obviously too drastic to be considered as a standard cut-down version of perl. I have done some experimentation, and the absolute minimum required for a functioning perl interpreter (picoperl? is): ../bin/perl ../lib/perl5/5.6.1/sun4-solaris-64int/auto/DynaLoader/autosplit.ix ../lib/perl5/5.6.1/sun4-solaris-64int/auto/DynaLoader/dl_expandspec.al ../lib/perl5/5.6.1/sun4-solaris-64int/auto/DynaLoader/dl_find_symbol_anywhere.al ../lib/perl5/5.6.1/sun4-solaris-64int/auto/DynaLoader/dl_findfile.al ../lib/perl5/5.6.1/sun4-solaris-64int/auto/File/Glob/Glob.so ../lib/perl5/5.6.1/sun4-solaris-64int/auto/File/Glob/autosplit.ix ../lib/perl5/5.6.1/sun4-solaris-64int/Config.pm ../lib/perl5/5.6.1/sun4-solaris-64int/XSLoader.pm ../lib/perl5/5.6.1/sun4-solaris-64int/DynaLoader.pm ../lib/perl5/5.6.1/sun4-solaris-64int/CORE/libperl.so ../lib/perl5/5.6.1/strict.pm ../lib/perl5/5.6.1/warnings.pm ../lib/perl5/5.6.1/Carp.pm ../lib/perl5/5.6.1/Exporter.pm ../lib/perl5/5.6.1/File/Glob.pm ../lib/perl5/5.6.1/AutoLoader.pm ../lib/perl5/5.6.1/vars.pm ../lib/perl5/5.6.1/warnings/register.pm ../lib/perl5/5.6.1/Carp/Heavy.pm ../lib/perl5/5.6.1/Exporter/Heavy.pm On Solaris this comes to 1692K Anything else is just jam ;-) -- Alan Burlison -- $ head -1 /dev/bollocks adaptively characterize back-end meta-architectures, going forwards
