ispell for Alpha (was Re: AbiSource, Ispell, Aspell and beyond...)


Subject: ispell for Alpha (was Re: AbiSource, Ispell, Aspell and beyond...)
From: Paul Rohr (paul@abisource.com)
Date: Tue Feb 22 2000 - 19:47:23 CST


At 12:59 AM 2/19/00 -0800, Darren O. Benham wrote:
>Personal opinion... you'd be better off pointing abiword at a ispell
>dictionary generated by someone on the arch.. for example, there are ispell
>dictionaries available for the Debian distro.
>
>On Sat, Feb 19, 2000 at 02:40:42AM -0500, abnay@altavista.net wrote:
>> Darren O. Benham wrote:
>>
>> > Abiword ships with it's own ispell dictionary.
>> > That ispell dictionary is made on an i386 arch.
>> > That makes the endianess an issue.
>>
>> Aha.. Could that be the reason of the dictionary
>> loading problem I see on my Linux/Alpha box? I spent
>> the whole night debugging code in lookup.c oblivious
>> of this :-( I wonder if the data size differences are the responsible
for the read beyond the EOF. All I see
>> is junk in the dent structures in hashtbl.
>>
>> If so, shouldn't the hash table be rebuilt for a
>> non-32-bit (read 64-bit) architecture (and hence be
>> part of the build process)? How can I do
>> re-build the hash table?
>>
>> Thanks,
>>
>> Bharadwaj

Darren's suggestion sounds like a very good first step. The existing code
may work just fine if you can locate a prebuilt hash table for your
architecture.

Unfortunately, the much-maligned ispell code seems to be riddled with
assumptions about endianness and data sizes. This is a Bad Thing,
especially since we seem to have no true ispell experts on this list who
*like* grovelling through hash file permutations.

Still, it's a problem we're stuck with (although for 32-bit platforms it
seems to have settled down). Removing those assumptions from the existing
codebase is likely to be ugly work (swapping int for int32 is a lot easier
if you've been doing it all along, but the original ispell code is very,
very old). However, this would allow folks on 64-bit platforms to use the
many, many 32-bit dictionaries that already exist.

Likewise, "fixing" it by rebuilding lots of permutations of the same
datafile gets pretty tedious. However, if you'd like to go down that route,
take a look at the "make canonical" target here:

  abi/src/Makefile

which is in turn driven by the OS_ENDIAN flags set here:

  abi/src/config/platforms/*.mk

I suppose that if someone could locate or generate the requisite 64-bit
dictionaries, we could include them in abidistfiles via this mechanism.

Paul



This archive was generated by hypermail 2b25 : Tue Feb 22 2000 - 19:41:54 CST