Book logo xindy

A Flexible Indexing System


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

Xindy and Allegro Common-Lisp



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