Book logo xindy

A Flexible Indexing System


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Xindy and Allegro Common-Lisp




	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