perl-unicode

Encode::HanExtra takes too much memory to build

2003-05-17 12:30:06
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

<Prev in Thread] Current Thread [Next in Thread>