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 Upgrading from version .29
      + 2.5.3 Upgrading from version .28.3
      + 2.5.4 Upgrading from version .28.2.1
      + 2.5.5 Upgrading from version .27.2
      + 2.5.6 Upgrading from version .25
      + 2.5.7 Upgrading from version .24
      + 2.5.8 Compiling with Egcs and Gcc 2.8
      + 2.5.9 Compiling with Solaris
   
  * 2.6 Using as a replacement for Ispell
       
      + 2.6.1 Notes on the Learning from Users Mistakes feature
      + 2.6.2 Emacs and Xemacs Notes
      + 2.6.3 LyX Notes
      + 2.6.4 VIM Notes
      + 2.6.5 Pine Notes
   
---------------------------------------------------------------------------

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.8 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.

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
kevinatk@home.com) 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

After you have read the sections below and have taken 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
kevinatk@home.com with the compiler, system you are using and any error
messages that were produced.

To install the program simply type

    make install

And thats all there is too it.

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

2.5.2 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.3 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.4 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.5 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.6 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.7 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.


2.5.8 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.9 Compiling with Solaris

For some reason aspell does not work when linked as a shared library on
Solaris. If you notice the build process failing during the creation of the
dictionary try this:

    ./configure --disable-shared && make clean && make

And aspell should compile OK. If not let me know.


2.6 Using as a replacement for Ispell

Aspell can currently function as a drop in replacement for Ispell for
programs that use Ispell through a pipe such as Emacs and LyX. It can also
be used with programs that use simple call the ispell command and expect
the original file to be overwritten with the corrected version. It support
the basic features of Ispell however it does not currently have a Nroff
mode so there may be situations in which you still wish to use Ispell.
Nevertheless, I have been using Aspell for Xemacs and LyX since the middle
of September of 1998 with out any problems.

The recommended way to use Aspell as a replacement for ispell is to change
the Ispell command from within the program being uses. If the program uses
ispell in pipe mode simple change ispell to aspell. If the program calls
the ispell command to check the file change ``ispell'' with ``aspell
check''.

If that is impossible than the run-with-aspell script can be used for
programs using ispell in pipe mode. The format of the script is:

    run-with-aspell  command 

where  command  is the name of the program with any optional arguments.

The old method of mapping Ispell to Aspell is discouraged because it can
create compatibility problems with programs that actually require Ispell
such as Ispell's own scripts.

2.6.1 Notes on the Learning from Users Mistakes feature

Because Ispell does not have this feature most all programs that use ispell
through a pipe will not be able to take advantage of this because they do
not communicate back the replacement pairs.

If you want to add support for this feature in your program the best way to
do it is to scan the version string for the string ``Aspell'' and if found
use the ``$$ra'' command to communicate back to Aspell the replacement
pairs. See section 3.1.1 for more information.

2.6.2 Emacs and Xemacs Notes

The easiest way to use Aspell with Emacs or Xemacs is to add this line:

    (setq-default ispell-program-name "aspell")

to the end of your .emacs file.

For some reason version 3.0 of ispell.el (the lisp program that (x)emacs
uses) want to reverse the suggestion list. To fix this add this line:

    (setq-default ispell-extra-args '("--reverse"))

after the previous line in your .emacs file and it should solve the
problem.

The latest version of ispell.el, version 3.1 (December 1, 1998), has the
list reversing problem fixed. You can find it at http://www.kdstevens.com/
~stevens/ispell-page.html.

2.6.3 LyX Notes

Version 1.0 of LyX provides support for Aspell learning for users mistake
feature.

To use aspell with LyX 1.0 either change the spell_command option in the
lyxrc file or use the run-with-aspell utility.

2.6.4 VIM Notes

(The following section was written by "R. Marc" <rmarc@copacetic.net>.)

To use aspell in vim you simply need to add the following line to your
.vimrc file:

    map ^T :w!<CR>:!aspell check %<CR>:e! %<CR>

I use <Ctrl-T> since that's the way you spell check in pico. In order to
add a control character to your .vimrc you must type <Ctrl-v> first. In
this case <Ctrl-v><Ctrl-t>.

A more useful way to use Aspell, IMHO, is in combination with newsbody (
http://www.image.dk/~byrial/newsbody/) which is how I use it since vim is
my editor for my mailer and my news reader.

    map ^T \1\2<CR>:e! %<CR>
   
    map \1 :w!<CR>
   
    map \2 :!newsbody -qs -n % -p aspell check \%f<CR>

2.6.5 Pine Notes

To use aspell in pine simply change the option speller to

    aspell --mode=email check

To change the speller option go to the main menu. Type S for setup, C for
config, then W for where is. Type in speller as the word to find. The
speller option should be highlighted now. Hit enter, type in the above
line, and hit enter again. Then type E for exit setup and Y to save the
change.

If you have a strong desire to check other peoples comments change speller
to

    aspell check

instead which will avoid switching aspell into email mode.

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

