axiom-developer
[Top][All Lists]
Advanced

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

[Axiom-developer] hypertex and uses info


From: Waldek Hebisch
Subject: [Axiom-developer] hypertex and uses info
Date: Wed, 1 Nov 2006 23:20:30 +0100 (CET)

All versions of hypertex that I used crashed (or maybe showed nothing)
when I clicked "Uses" or "Dependants" field in a description of a constructor.

AFAICS recent versions of Axiom have two problems here:

1) databases which contain corresponding information (USERS.DAASE
   and DEPENDENTS.DAASE) were not installed
2) infamous 'probe-file' problem

The patch below correct both problems. It also fixes the
"Cannot rename the file erlib to NRLIB" problem. I also added
sensible dependency in database rule, so that all databses
are re-made when one get out of date. And 'RDEFIOSTREAM' is
now called in error-checking mode (old code happily passed
bad pathnames and supressed error checking).


diff -ru build-improvements.pp/src/etc/Makefile.in 
build-improvements/src/etc/Makefile.in
--- build-improvements.pp/src/etc/Makefile.in   2006-11-01 19:33:11.000000000 
+0100
+++ build-improvements/src/etc/Makefile.in      2006-11-01 19:36:00.000000000 
+0100
@@ -2,6 +2,10 @@
 MID=${OBJ}/${SYS}/etc
 DOC=${INT}/doc/src/etc
 INTERPSYS=$(axiom_build_bindir)/interpsys
+DATABASES_SHORT=compress.daase interp.daase browse.daase category.daase \
+                operation.daase libdb.text comdb.text USERS.DAASE/index.KAF \
+                DEPENDENTS.DAASE/index.KAF
+DATABASES=$(addprefix $(axiom_targetdir)/algebra/, $(DATABASES_SHORT))
 
 subdir = src/etc/
 
@@ -10,7 +14,7 @@
 
 all: all-ax
 
-all-ax: $(axiom_targetdir)/algebra/*.daase $(axiom_target_bindir)/asq \
+all-ax: $(DATABASES) $(axiom_target_bindir)/asq \
                $(axiom_target_libdir)/summary \
                $(axiom_target_libdir)/copyright \
                $(axiom_target_bindir)/axiom
@@ -18,8 +22,8 @@
        -rm -f stamp
        $(STAMP) stamp
 
-$(axiom_targetdir)/algebra/*.daase: ${INT}/algebra/*.NRLIB/code.o
-       @ echo 4 rebuilding databases...
+$(DATABASES): ${INT}/algebra/*.NRLIB/code.o
+       @ echo 4 rebuilding databases ...
        @ cp $(axiom_src_docdir)/gloss.text ${INT}/algebra
        @ cp $(axiom_src_docdir)/gloss.text ${INT}/algebra
        @ cp $(axiom_src_docdir)/topics.data ${INT}/algebra
@@ -29,6 +33,12 @@
        @ $(INSTALL_DATA) ${INT}/algebra/*.daase $(axiom_targetdir)/algebra
        @ $(INSTALL_DATA) ${INT}/algebra/libdb.text $(axiom_targetdir)/algebra
        @ $(INSTALL_DATA) ${INT}/algebra/comdb.text $(axiom_targetdir)/algebra
+       @ $(mkinstalldirs) $(axiom_targetdir)/algebra/USERS.DAASE \
+             $(axiom_targetdir)/algebra/DEPENDENTS.DAASE
+       @ $(INSTALL_DATA) ${INT}/algebra/USERS.DAASE/index.KAF \
+                   $(axiom_targetdir)/algebra/USERS.DAASE
+       @ $(INSTALL_DATA) ${INT}/algebra/DEPENDENTS.DAASE/index.KAF \
+                   $(axiom_targetdir)/algebra/DEPENDENTS.DAASE
 
 asq_sources = asq.c
 asq_SOURCES = $(addsuffix .pamphlet, $(asq_sources))
Tylko w build-improvements/src/etc: Makefile.in.orig
diff -ru build-improvements.pp/src/etc/Makefile.pamphlet 
build-improvements/src/etc/Makefile.pamphlet
--- build-improvements.pp/src/etc/Makefile.pamphlet     2006-11-01 
19:33:11.000000000 +0100
+++ build-improvements/src/etc/Makefile.pamphlet        2006-11-01 
19:36:00.000000000 +0100
@@ -26,8 +26,8 @@
 the databases. If any if any of these are changed, the databases must
 be re-built.
 <<dbcomplete>>=
-$(axiom_targetdir)/algebra/*.daase: ${INT}/algebra/*.NRLIB/code.o
-       @ echo 4 rebuilding databases...
+$(DATABASES): ${INT}/algebra/*.NRLIB/code.o
+       @ echo 4 rebuilding databases ...
        @ cp $(axiom_src_docdir)/gloss.text ${INT}/algebra
        @ cp $(axiom_src_docdir)/gloss.text ${INT}/algebra
        @ cp $(axiom_src_docdir)/topics.data ${INT}/algebra
@@ -37,6 +37,12 @@
        @ $(INSTALL_DATA) ${INT}/algebra/*.daase $(axiom_targetdir)/algebra
        @ $(INSTALL_DATA) ${INT}/algebra/libdb.text $(axiom_targetdir)/algebra
        @ $(INSTALL_DATA) ${INT}/algebra/comdb.text $(axiom_targetdir)/algebra
+       @ $(mkinstalldirs) $(axiom_targetdir)/algebra/USERS.DAASE \
+             $(axiom_targetdir)/algebra/DEPENDENTS.DAASE
+       @ $(INSTALL_DATA) ${INT}/algebra/USERS.DAASE/index.KAF \
+                   $(axiom_targetdir)/algebra/USERS.DAASE
+       @ $(INSTALL_DATA) ${INT}/algebra/DEPENDENTS.DAASE/index.KAF \
+                   $(axiom_targetdir)/algebra/DEPENDENTS.DAASE
 
 @
 \section{summary}
@@ -90,6 +96,10 @@
 MID=${OBJ}/${SYS}/etc
 DOC=${INT}/doc/src/etc
 INTERPSYS=$(axiom_build_bindir)/interpsys
+DATABASES_SHORT=compress.daase interp.daase browse.daase category.daase \
+                operation.daase libdb.text comdb.text USERS.DAASE/index.KAF \
+                DEPENDENTS.DAASE/index.KAF
+DATABASES=$(addprefix $(axiom_targetdir)/algebra/, $(DATABASES_SHORT))
 
 subdir = src/etc/
 
@@ -98,7 +108,7 @@
 
 all: all-ax
 
-all-ax: $(axiom_targetdir)/algebra/*.daase $(axiom_target_bindir)/asq \
+all-ax: $(DATABASES) $(axiom_target_bindir)/asq \
                $(axiom_target_libdir)/summary \
                $(axiom_target_libdir)/copyright \
                $(axiom_target_bindir)/axiom
Tylko w build-improvements/src/etc: Makefile.pamphlet.orig
diff -ru build-improvements.pp/src/interp/lisplib.boot.pamphlet 
build-improvements/src/interp/lisplib.boot.pamphlet
--- build-improvements.pp/src/interp/lisplib.boot.pamphlet      2006-11-01 
19:33:09.000000000 +0100
+++ build-improvements/src/interp/lisplib.boot.pamphlet 2006-11-01 
19:36:52.000000000 +0100
@@ -56,9 +56,8 @@
   readLibPathFast p
  
 readLibPathFast p ==
-  -- assumes 1) p is a valid pathname
-  --         2) file has already been checked for existence
-  RDEFIOSTREAM([['FILE,:p], '(MODE . INPUT)],false)
+  -- DO NOT assume that p is a valid pathname
+  RDEFIOSTREAM([['FILE,:p], '(MODE . INPUT)])
  
 writeLib(fn,ft) == writeLib1(fn,ft,"*")
  
diff -ru build-improvements.pp/src/interp/nlib.lisp.pamphlet 
build-improvements/src/interp/nlib.lisp.pamphlet
--- build-improvements.pp/src/interp/nlib.lisp.pamphlet 2006-11-01 
19:33:09.000000000 +0100
+++ build-improvements/src/interp/nlib.lisp.pamphlet    2006-11-01 
19:36:00.000000000 +0100
@@ -448,17 +448,23 @@
                       :test #'string=) 
               :test #'string=))))
 
+(defun axiom-probe-file (file)
+    (if (equal (|directoryp| file) -1)
+         nil
+         (truename file))
+)
+
 (defun make-input-filename (filearg &optional (filetype nil))
    (let*
      ((filename  (make-filename filearg filetype))
       (dirname (pathname-directory filename))
       (ft (pathname-type filename))
       (dirs (get-directory-list ft))
-      (newfn nil))   
+      (newfn nil))
     (if (or (null dirname) (eqcar dirname :relative))
        (dolist (dir dirs (probe-name filename))
                (when 
-                (probe-file 
+                (axiom-probe-file 
                  (setq newfn (concatenate 'string dir filename)))
                 (return newfn)))
       (probe-name filename))))
@@ -476,7 +482,7 @@
 ;; ($ERASE filearg) -> 0 if succeeds else 1
 (defun $erase (&rest filearg)
   (setq filearg (make-full-namestring filearg))
-  (if (probe-file filearg)
+  (if (axiom-probe-file filearg)
 #+:CCL (delete-file filearg)
 #+:AKCL
       (if (library-file filearg)

-- 
                              Waldek Hebisch
address@hidden 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]