From: "Tim Van Holder" To: , "JT Williams" Subject: Re: gettext port Date: Tue, 31 Jul 2001 21:51:01 +0200 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0) In-Reply-To: <7458-Tue31Jul2001211847+0300-eliz@is.elta.co.il> X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 Importance: Normal Reply-To: djgpp-workers AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp-workers AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk > > Surely NLS support is a good thing, but I really was shocked at the > > resulting increase in size of the NLS-capable executable. E.g., > > sed 3.02.80 with NLS support---even stripped and UPX-compressed---is > > seven times larger than the corresponding 3.02 executable! I naively > > expected NLS support to involve a few hooks in the application itself, > > with the real nuts and bolts---and code overhead---of the support to > > reside elswhere (e.g., an optional app). > > NLS support requires translation between different character sets, > like between ISO-8859-1 and the corresponding DOS codepage 850 (to > pick an example that is relevant for DJGPP). Each such conversion > requires 2 tables: from the source charset to Unicode and from Unicode > to the target charset. Taking into consideration how many charsets > are supported, you can imagine the sheer volume of the tables this > requires. All of those tables are sitting inside the program. Exactly - I consider this a bad design decision, coming from the standpoint 'It's a shared library anyway', which simply doesn't hold true on all platforms (even though libiconv's configure.in tries to disable static builds IIRC). It seems to make much more sense to have data files in $prefix/share/iconv, with only those tables that are actually required loaded into memory. If none are found (as would be the case on systems without libiconv installed), this would mean no charset translation was possible, but that is a small drawback compared to wasting several megabytes of disk space.