
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