|
Download Source
| |
|
You are in a maze of twisty little passages, all alike...
-- Adventure
If you are looking for a standard Source distribution with
configure; make; make install - this is not your project.
But if you are willing to plunge into a challenge, xindy is
something for you.
Full source for xindy is available, but currently it is
quite hard to build xindy from source. This page was
written by Joachim Schrod. It
shall report what's available and shall provide information how to
create xindy from source.
xindy is written in Common Lisp. CLISP has been used for
development.
|
xindy Structure
|
xindy consists of (1) a run time engine, made up of a
Common Lisp system with xindy-specific plugins,
(2) Common Lisp code that makes up the xindy kernel, and
(3) xindy modules.
To create the xindy run time engine, one needs to integrate
the plugins into a Common Lisp system. We did this for CLISP, the result is in the
binary distributions or in the platform-specific archives of older
releases.
Then, the xindy kernel source code is compiled, and a final
executable is created. In the case of CLISP, the executable
consists of two files, a virtual machine and a memory image.
xindy module code is interpreted at run time.
|
|
Download
|
The Download
Area is at SourceForge.
Fetch
-
xindy-2.1.tar.gz
-
xindy-clisp-modules-2001-04-10.tar.bz2
That is the kernel source and xindy plugins.
Module sources are in the binary
distribution, in the modules subdirectory.
If you want to work on xindy, we recommend the CVS source,
though.
|
|
CVS: the real source
|
The real source is available by anonymous CVS, as explained on our
SourceForge
project CVS page. We welcome new developers and will give out
commit rights quickly.
Four top-level CVS modules exist: xindy is the kernel
source code, make-rules is used to create xindy
language modules, modules are the xindy standard
modules, and www is the XML source code for this Web
Site.
The CVS module xindy also has source code of the
documentation and the reports. The documentation is written in
SGML, with linuxdoc. It shall be migrated to DocBook. The
reports are written in LaTeX, of course.
|
|
Common Lisp plugins
|
There are two plugins: ordrules which implements string
ordering rules, and regexp which implements regular
expressions. The plugins have been introduced for reuse
(ordrules comes from a predecessor project,
International MakeIndex) and for performance reasons
(remember, xindy was written in 1995).
The plugin sources are in the CVS module xindy/rx.
Frankly, today I consider the usage of plugins as a very big
error. They should be replaced by ``pure'' Lisp solutions as soon
as possible - currently, they are the big porting nightmare of
xindy.
We use CLISP as the Common
Lisp system for development. It is reported that it is not
possible any more to build a current CLISP including those
plugins. (The current builds use CLISP 2.24, as of March 2000.)
Once, I suspected that it's due to a change in the CLISP foreign
function interface; but now I assume that it's more a problem of
Lisp package definitions. Of course, we would welcome a
contribution that improves this situation.
If you're proficient enough in Common Lisp, rewriting the plugins
in Lisp might not be difficult, and would be very welcome.
Roger Kehr reported a succesful xindy port to Allegro
Common Lisp (ACL) and to CMU Common Lisp. More information on
these ports are unknown.
|
|
Source access, revisited
|
Ignore the CVS module xindy/src, that's a relict that is
explained below.
xindy was written with the help of noweb, a
Literate Programming System. Imake was
used for abstract dependency descriptions. The test suite is
realized by DejaGnu.
You need to get these systems before you start. You need only the
imake executable, not the dreaded MIT X configuration
files. Use tools/imkmf as command line interface for
Imake.
xindy/xindy/intro.nw has an introduction into code
structure and conventions.
|
|
Ancient version
|
xindy was written first in 1995, as student project by
Roger Kehr, under supervision of Joachim Schrod. The source of
this student project is in the CVS module xindy/src. I
don't know if this code does still run at all.
Starting in 1996, Roger did a rewrite of the sorting rules, to add
support for sorting phases. You'll find more information on this
in the technical reports. At this time, he also restructured the
source and placed each module in its own directory. Furthermore,
he added the test suite.
The ancient version will be relegated to a CVS branch, and shall
be removed from the main trunk.
|
|
Build recipes
|
I have found two Web pages with information how to build
xindy. Due to the changes in CLISP, the
information from these pages does not work any more; but
the basic process is described correctly.
|
|
|
» SourceForge
Download Area |
|
« Binary Distributions |
|