Autrijus,
I tried to compile Encode::HanExtra 0.07 and found that it takes too
much memory to build. On my FreeBSD box it took over 200 MB RAM to
build one.
The reason is that Encode::HanExtra attempts to aggregate all
mappings into one single giant *.c file.
Makefile.PL
my $name = 'HanExtra';
my %tables = (
HanExtra_t => [
qw(big5ext.ucm big5plus.ucm cccii.ucm euc-tw.ucm gb18030.ucm
unisys.ucm)
,
map "cns11643-$_.ucm", (1 .. 7, 'f'),
],
);
Encode::JP and other came accross the same problem during the
development of Perl 5.8.0. I made Encode::(CN|JP|KR|TW) so that it
generates *.c for each mapping. Though this increases the size of
resulting *.so, it saves memory during the build significantly.
Here is the patch. Same as what I did for Encode::(CN|JP|KR|TW).
--- Makefile.PL Sun May 18 03:28:11 2003
+++ Makefile.PL.dist Thu Oct 17 20:13:44 2002
@@ -20,20 +20,6 @@
],
);
-unless ($ENV{AGGREGATE_TABLES}){
- my @ucm;
- for my $k (keys %tables){
- push @ucm, @{$tables{$k}};
- }
- %tables = ();
- my $seq = 0;
- for my $ucm (sort @ucm){
- # 8.3 compliance !
- my $t = sprintf ("%s_%02d_t", substr($ucm, 0, 2), $seq++);
- $tables{$t} = [ $ucm ];
- }
-}
-
# add 'enc2xs -C' to the 'install' target
END {
local $/;
Dan the Encode Maintainier