Aspell requires gcc 2.8/egcs as the C++ compiler or a reasonable C++ standard compliment compiler with 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. To fix gcc 2.8/egcs (which included SGI's STL 3.0) apply the patch file stl_rope-30.diff to the file stl_rope.h (found in the g++ library directory) and to fix STLport 3.0 apply the patch file stl_rope-port.diff to the same file. No recompiling of gcc/egcs is needed. 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. If it is impossible for you to modify the file stl_rope.h simply copy the file to the current directly and then apply the patch.
The latest version can always be found at Aspell's home page at http://metalab.unc.edu/kevina/aspell.
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://metalab.unc.edu/kevina/aspell.
The easiest thing you can do to help out it is too send me your .aspell.rpl file located in your home directory every so often. (Email kevinatk@home.com) This file is used to store the replacement pairs. Unless you specifically use programs that take advantage of this the learning from users mistake feature this file will be empty so there is no point in sending it.
I will then merge your misspelling with the rest of the data in the test kernel which will be used to help improve Aspell's suggestion intelligence.
Another thing you can do to help out is to try Aspell out on a diffrent langauge as the Langauge support system is compiletly untested.
After you have read the sections below and have taken care of any special requirements for you system simply type
./configure && makeor
./configure -disable-static && maketo avoid making the static libraries on a system that supports shared libraries.
And Aspell should compile with out any additional user intervention. If you run into problems please send me a note at kevinatk@home.com with the compiler, system you are using and any error messages that were produced.
The default extra C++ flags are ``-g -O2'' if you wish to specify other ones simply set the environmental variable CXXFLAGS to the extra C++ flags you wish to use. For example to reduce code size set CXXFLAGS to ``-O2''.
To install the program simply type
make installAnd thats all there is too it.
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.
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.
The only thing special you have to do with Gcc 2.8 and above and Egcs is to apply the patch file stl_rope-30.diff. To do that cd over to the g++ include (normally a subdirectory in the normal include directory) and type in the command
patch < stl_rope-30.diffto patch the necessary file. If it is impossible for you to do this copy the file stl_rope.h to the Aspell directory and type in the same command.
Then proceed as normal.
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 support the basic features of Ispell however it does not currently have a Latex or 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 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 that is impossible than the run-with-aspell script can be used. 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.
Becuase Ispell does not have this feature most all programs that expect Ispell as the spell checker will not be able to take advantage of this becuase they do not communcate back the replasments 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 communcate back to Aspell the replasment pairs. See section 3.1.1 for more information.
The easiest way to use Aspell with Emacs or Xemacs is to add this line:
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:
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.
The 1.0 branch of the CVS version of LyX had both an option to change the ispell command via a resource file and I believe prerelease 6 also has this option which is available at.ftp://ftp.lyx.org/pub/lyx/stable/. If you are using a version that does not have this option simply use the run-with-aspell utility.
The 1.0 branch will also communicate replacement pairs back to Aspell if it detects that Aspell is really being used. Unfortunately, this feature is not present in prerelease 6. So for now you can either get the CVS version or if you don't wish mess with CVS you can use simply apply the patch file lyx-aspell.diff to the file spellchecker.C in the src directory if you wish to take advantage of this feature. The patch was made against prerelease 2 but it should also work fine with prerelease 6.
If you experience trouble starting the spellchecker you might also need increase the timeout value by changing the value of the tv.tv_sec second variable located around line number 330 in spellchecker.C.