Subsections
   
  * 2.1 Requirements
  * 2.2 Obtaining
  * 2.3 Support
  * 2.4 Helping Out
  * 2.5 Compiling & Installing
      + 2.5.1 Generic Install Instructions
      + 2.5.2 General Problems
      + 2.5.3 Win32 Notes
      + 2.5.4 Compiling with Egcs and Gcc 2.8
      + 2.5.5 Upgrading from version .32.6
      + 2.5.6 Upgrading from version .32.1
      + 2.5.7 Upgrading from version .31.1
      + 2.5.8 Upgrading from version .30
      + 2.5.9 Upgrading from version .29.1
      + 2.5.10 Upgrading from version .29
      + 2.5.11 Upgrading from version .28.3
      + 2.5.12 Upgrading from version .28.2.1
      + 2.5.13 Upgrading from version .27.2
      + 2.5.14 Upgrading from version .25
      + 2.5.15 Upgrading from version .24

--------------------------------------------------------------------------

2. Getting Started

2.1 Requirements

Aspell requires egcs 1.1, or gcc 2.95 (or better), as the C++ compiler.
Other standard complaint C++ might work however it will take some work as
gcc is not fully complaint yet; at very least you will need to install
Sgi's STL or STLPort. Unless you are using version 3.11 of SGI's STL you
will need to apply a patch to fix a bug in the rope container. (See
section 2.5.4 for what to do) That latest version of SGI's STL (http://
www.sgi.com/Technology/STL/), version 3.11, fixes the bugs in rope and
thus does not need to be fixed. All versions of egcs and any version of
gcc before 2.95 will need this patch applied. Gcc 2.95 and latter uses
version 3.11 (or better) and thus does not need the patch applied.

Aspell also requires the Portable Spell Checker Interface Library,
otherwise known as Pspell, to be installed on your system before it will
compile. Aspell requires version .11 or better. You can obtain the latest
version of Pspell from http://pspell.sourceforge.net/

2.2 Obtaining

The latest version can always be found at Aspell's home page at http://
aspell.sourceforge.net.

2.3 Support

Support for Aspell can be found on the Aspell mailing list. Instructions
for joining the mailing list (and an archive of the mailing list) can be
found off the Aspell home page at http://aspell.sourceforge.net.

2.4 Helping Out

The easiest thing you can do to help out it is too send me your .aspell.«
lang».prepl file located in your home directory every so often. (Email
kevina at users sourceforge net) The file contains data on which word
pairs aspell is unable to come up with the proper suggestion. If the file
does not exist is simply means that you were only using aspell in a
program such as emacs which does not communicate the replacement pairs
back to aspell. Sending me the file would help me improve aspell accuracy
as right now I don't have very much real data to work with.

Another thing you can do to help out is to try Aspell out on a different
language as the Language support system is not very well tested.

2.5 Compiling & Installing

2.5.1 Generic Install Instructions

Before aspell is compiled Pspell must be installed. You can obtain the
latest version of Pspell from http://pspell.sourceforge.net/.

Once Pspell is installed and you have read the sections below to take care
of any special requirements for you system simply type

    ./configure && make

or

    ./configure --disable-static && make

to avoid making the static libraries on a system that supports shared
libraries. For additional configure options type ./configure --help.

Aspell should then compile with out any additional user intervention. If
you run into problems please first check the sections below as that might
solve your problem. If it doesn't please send me a note at kevina at users
sourceforge net with the compiler, system you are using and any error
messages that were produced.

To install the program simply type

    make install

And that's all there is too it for a basic instualltion.

If you do not have Ispell or the traditional unix "spell" utility
installed on your system than you should also copy the compatibly scripts
"ispell" and "spell" located in the scripts/ directory into your
binary directory which is usually /usr/local/bin so that programs that
expect ispell or spell command will work correctly.

2.5.2 General Problems

If aspell core dumps when spell checking files but seams OK otherwise
please see section 2.5.4 as there is a good change that that will fix your
problem.

If you get an unresolved symbol to "rope<char, allocator<char> >::
_S_min_len" or anything with rope somewhere in the name (it might be
mangled) try changing the line

    //template crope;

to

    template crope;

in aspell.cc located in the src/ directory.

2.5.3 Win32 Notes

Aspell is now able to compile on Win32 platforms using the Win32 version
of gcc. Aspell .30.1 can either be compiled with Cgiwin or Mingw version
of gcc 2.95 using Cgiwin development environment. Unfortunately the latest
version of Aspell will not compile with Mingw. I was hoping to have this
fixed by in this version of Aspell (.33) but I ran out of time. Getting
Aspell to work under Mingw is one of the goals for the Aspell .33.1.

The default paths for Aspell are designed for a Unix system and not a
Win32 system so you might want to specify different ones when compiling
Aspell. Also if the HOME environmental variable is not set aspell will
assume it is the current working directly. This may lead to your personal
word lists being saved in unpredictable locations. To solve this specify
the complete path of the personal and replacement word lists in
aspell.conf. For example the Win32 binary version of Aspell .30 had the
following aspell.conf:

    personal /aspell/dict/english.pws  
    repl     /aspell/dict/english.prepl


2.5.4 Compiling with Egcs and Gcc 2.8

In order for aspell to function properly under egcs or gcc 2.8.* you will
need to apply the patch file stl_rope-30.diff. (Gcc 2.95 uses version 3.11
of SGI's STL and thus does not need this patch applied.) To apply the
patch cd over to the g++ include directory (normally a subdirectory in the
normal include directory) and type in the command

    patch < «path»/misc/stl_rope-30.diff

(where path is the full patch to the location where aspell was unpacked)
to patch the necessary file. If it is impossible for you to do this copy
the file stl_rope.h to the the directory src/ in the aspell distribution
and then type the command:

    patch < ../misc/stl_rope-30.diff

Then proceed as normal.

If you do not apply this command aspell will crash when used interactively
to spell check files. "aspell -a" and all other aspell modes will work
fine however.

2.5.5 Upgrading from version .32.6

I have expanded the medium (*-med) word lists and decided to eliminate the
large word lists (*-lrg) for now. However, the installing process will not
automatically remove the large word lists so if you don't want them
hanging around you should delete them your self. To remove all the files
remove the following files from «library dir»/aspell:

    american-lrg-only british-lrg-only canadian-lrg-only english-lrg-only
    american-lrg.multi british-lrg.multi canadian-lrg.multi

and the following files from «share dir»/pspell:

    en-american-lrg-aspell.pwli en-canadian-lrg-aspell.pwli
    en-british-lrg-aspell.pwli

2.5.6 Upgrading from version .32.1

Even though .32.5 is a minor release it breaks binary compatibly which
means applications such as Gaspell will need to be recompiled.

2.5.7 Upgrading from version .31.1

The format and name of the main dictionary has changed yet again. The
install process will over write the old version, so unless you are using
dictionaries other than the one provided with aspell or want to have
multiple versions of aspell installed you should not have to worry about
this.

The apostrophe (') is no longer considered part of the word if it appears
at the end of a word. This means that you may have to manually remove
words from your personal word list if you get a message similar to:

    Invalid word "dogs'": The character "' may not appear at the end of a
    word.

To remove the word simply delete the line containing the word form the
personal word list ( normally called ".aspell.english.pws" ).

Aspell now uses a completely new word list. This means that same words
that were in the original word list may no longer appear in the current
one. You may now also chose from American, British, and Canadian spelling
and from two sizes medium and large. See section 5.4.1 for more
information on choosing among the different choices. The original source
that the word lists were created from is now found under the scowl/
directory.

2.5.8 Upgrading from version .30

The format of the main dictionary file has changed a bit. If you were able
to use Aspell .30 then the old format should work. The only time the old
format will NOT work is in the rare case the mmap fails. Previous version
of aspell will just abort with an error when the mmap fails but the new
version will attempt to read in the file using fread. Fread will fail with
the old version of the main word list.

2.5.9 Upgrading from version .29.1

The format (but not the name) of the main dictionary has changed yet
again. The install process will over write the old version, so unless you
are using dictionaries other than the one provided with aspell or want to
have multiple versions of aspell installed you should not have to worry
about this.

Aspell also now depends on Portable Spell Checker Interface Library
otherwise known as Pspell. Pspell must be installed before aspell will
compile, you can find it at http://pspell.sourceforge.net/.

2.5.10 Upgrading from version .29

The format and name of the main dictionary has changed which means it will
need to be recompiled. The install process will remove the old files for
you, so unless you are using dictionaries other than the one provided with
aspell or want to have multiple versions of aspell installed you should
not have to worry about this.

2.5.11 Upgrading from version .28.3

Aspell now uses namespaces which means egcs 1.0 and gcc 2.8 will no longer
cut it. If this becomes a serious problem let me know as it should not be
to difficult to get it working again with egcs 1.0 and gcc 2.8.

Due to the new soundslike code the the main dictionary will need to be
recompiled. The build process does this automatically so unless you want
to have more than one version of aspell around you should not need to
worry about this.

The format and file name of the personal dictionaries has also changed. In
most cases aspell will automatically detect this and convert it for you by
using the following algorithm.

 1. If no file exist of *.pws (for the personal word list) or *.prepl (for
    the personal replacement list) aspell will look for *.per or *.rpl
    respectfully. If that file is found it will read in the data using the
    old format.
 2. When saving the dictionary it will save is as *.pws or *.prepl
    respectfully.
 3. Once saved as the new format it will delete the old file.

If you have an older version of aspell around you can restore the old
dictionaries by using these command

    aspell.new dump personal | aspell.old create personal

    aspell.new dump repl | aspell.old create repl

The new version of aspell will then leave the old files alone as long as
*.pws and *.prepl exist.

Also, if the file does not end in .pws or .prepl it will try to read it in
using the new format and if that fails it will read in the old format.
When the file is saved it will be saved as the new format.

I am hopping I will not have to change the format of the personal
dictionaries again. However, the main word list however is very likely to
change in format.

2.5.12 Upgrading from version .28.2.1

The behavior of "aspell check" changed so that it will now over right
the original file as creating new file was creating too many problems when
used with programs like pine and vi.

2.5.13 Upgrading from version .27.2

The name of the personal word lists have changes from .aspell.per and
.aspell.rpl to .aspell.«lang».per and .aspell.«lang».rpl respectively. «
lang» is is the language name which will generally be "english". If you
wish to use your old word lists you will need to rename those files.

2.5.14 Upgrading from version .25

The format of the personal replacement dictionary has changed. So, you
will either need to rename or remove the file .aspell.rpl located in your
home directory. If you have information in this file you would like to
preserve please send me an email.

2.5.15 Upgrading from version .24

Because the location of the main word list moved you should probably do a
make uninstall (with the old version of a Aspell) before upgrading to
remove the old word lists. A make uninstall will not remove any personal
word lists.

--------------------------------------------------------------------------

