
Continuing the work to port Xindy to Allegro Common-Lisp I have found
the following "bugs":
- "markup.lsp"
(defvar lisp::*xindy-bin-version*)
(defparameter *xindy-bin-version* lisp::*xindy-bin-version*)
is wrong, because Allegro CL has ``locked'' the symbol table of the
"lisp" package to avoid user redefinitions of important functions.
Incomplete fix: changed the above lines to
;;(defvar lisp::*xindy-bin-version*)
(defparameter *xindy-bin-version* *xindy-version*)
- "markup.lsp", "base.lsp", shell script "xindy"
(exit <opt-arg>) is non standard,
Allegro CL has an (excl:exit ...) function.
Incomplete fix: changed all
(exit <opt-arg>)
to
(#+ALLEGRO excl:exit #-ALLEGRO exit <opt-arg>)
- "idxstyle.lsp", "markup.lsp"
Function (simple-condition-format-string ...) undefined.
The Allegro CL manuals says in Appendix A "Allegro Cl and the CL
standard":
X3J13 clarified that [...blablabla ...]. The [...]
\symbol{simple-condition-format-string} accessor is renamed
\symbol{simple-condition-format-control}, and both may be either a
format string or a format function. Allegro CL conforms to these
changes.
Incomplete Fix: changed
(simple-condition-format-string ...)
to
(#+ALLEGRO simple-condition-format-control
#-ALLEGRO simple-condition-format-string
...)
- "idxstyle.lsp"
(open ... :direction :input-immutable ...)
is non-standard, only :input, :output, :io, and :probe are allowed.
Fix: changed :input-immutable to :input.
- "idxstyle.lsp"
(open ... :element-type 'string-char ...)
The type \symbol{string-char} (and predicate \symbol{string-char-p})
of CLtL1 is replaced by the new types \symbol{base-char} and
\symbol{extended-char}.
Allegro CL moved \symbol{string-char} to the package \symbol{cltl1}.
Fix: changed 'string-char to 'base-char
Additionally I have rewritten the shell script "xindy" to call Allegro
CL instead of CLISP. "xindy -v" works, and the first test with
"attr1.xdy/.raw" gives the following result:
This is `xindy' version 1.2 (sun4-solaris binary version 1.2).
Opening logfile "attr1.xlg" (done)
Reading indexstyle...
Loading module "attr1.xdy"...
Loading module "testbed.xdy"...
Finished loading module "testbed.xdy".
Error in line 11:
;;;;;;;;;;;;
;;
;; The rest
(require "class/pagenums.xdy")
ERROR: Could not find file "class/pagenums.xdy" !
If I have time to do further tests I will try to find this one
remaining, I hope.
Testing with
USER(23): IDXSTYLE::*LOAD-PATHS*
(#p"/" #p"/home/raichle/xindy/lib/modules/")
USER(24): (idxstyle::find-file "class/pagenums.xdy")
#p"/home/raichle/xindy/lib/modules/class/pagenums.xdy"
which is the correct file. The other files which are found are linked
to my local test directory.
Mmmh, if I trace
USER(3): (trace idxstyle::find-file idxstyle::append-pathnames probe-file)
(PROBE-FILE IDXSTYLE::APPEND-PATHNAMES IDXSTYLE::FIND-FILE)
USER(4): (searchpath ".:/home/raichle/xindy/lib/modules")
(#p"/" #p"/home/raichle/xindy/lib/modules/")
USER(5): USER(5): (xindy:startup :idxstyle "attr1.xdy"
:rawindex "attr1.raw"
:output "attr1.ind"
:logfile "attr1.xlg" :trace-level 1)
T
This is `xindy' version 1.2 (sun4-solaris binary version 1.2).
[... blablabla ...]
Finished loading module "testbed.xdy".
0: (IDXSTYLE::FIND-FILE "class/pagenums.xdy")
1: (IDXSTYLE::APPEND-PATHNAMES #p"/" #p"class/pagenums.xdy")
1: returned #p"/class/pagenums.xdy"
1: (PROBE-FILE #p"/class/pagenums.xdy")
1: returned NIL
1: (IDXSTYLE::APPEND-PATHNAMES #p"../modules/" #p"class/pagenums.xdy")
1: returned #p"../modules/class/pagenums.xdy"
1: (PROBE-FILE #p"../modules/class/pagenums.xdy")
1: returned NIL
Error in line 11:
[... error message above ...]
*load-paths* seems to be set to a different value. Grmbl.
Roger, any hints?
-bernd