Hello Bernd, > 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*) Already fixed. > - "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>) Already fixed. BTW: I have installed ACL for Linux last weekend and thus I was able to check some of the errors you already reported. But you have actually found more than me. Can you think of any reasons (compiler settings?) for this. > - "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 > ...) (defmacro simple-condition-format-string (&rest) `(simple-condition-format-control ,@rest)) is my current solution. It seems that CLISP doesn't understand this. Maybe I should ask on the mailing-list, why not. > - "idxstyle.lsp" > > (open ... :direction :input-immutable ...) > > is non-standard, only :input, :output, :io, and :probe are allowed. > > Fix: changed :input-immutable to :input. Ok. This is new to me. Wonder why I didn't find it? > - "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 I see. As well new to me. > > 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: Great! > This is `xindy' version 1.2 (sun4-solaris binary version 1.2). > [...] > 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/") ^^^ This should be #"./". At least this is not as expected. --- sponsor:~ $ xindy -i > *load-paths* (#S(PATHNAME :HOST NIL :DEVICE NIL :DIRECTORY (:RELATIVE) :NAME "." :TYPE NIL :VERSION NIL ) #"/usr/local/lib/xindy" ) > (trace idxstyle::find-file idxstyle::append-pathnames probe-file) ;; Tracing function IDXSTYLE::FIND-FILE. ;; Tracing function IDXSTYLE::APPEND-PATHNAMES. ;; Tracing function PROBE-FILE. (IDXSTYLE::FIND-FILE IDXSTYLE::APPEND-PATHNAMES PROBE-FILE) > (searchpath ".:/home/raichle/xindy/lib/modules") (#"./" #"/home/raichle/xindy/lib/modules/") "xindy -i" is for developers only :) --- As you can see, here it works fine. I had some trouble with different (merge-pathnames)-conventions. I already asked the CLISP-Mailing list about this last year. Probably there is a different implementation. > 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. Yes, indeed! There is something really going wrong. I'll try to tackle the error further down. > Roger, any hints? Not yet :-( I'll tell you, if I find more about it. Bye. P.S: I'll put an inofficial relase of xindy on the ftp-server. With your changes incorporated. -- ====================================================================== Roger Kehr kehr@iti.informatik.th-darmstadt.de Computer Science Department Technical University of Darmstadt