[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [Axiom-developer] hypertex and uses info
From: |
Vanuxem Grégory |
Subject: |
RE: [Axiom-developer] hypertex and uses info |
Date: |
Fri, 03 Nov 2006 23:13:27 +0100 |
Waldek,
> 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).
I'm in the process of applying these patches. Do you know a situation where
readLibPathFast is used on a non existent file ? Since you prefer to remove
some assumptions, I want to know :-)
And again, thanks a lot,
Greg
PS : It was suggested to change the behavior of directoryp, I understand that
but I have seen code that relies on its actual behavior (for example in
RDEFIOSTREAM).
I have seen too what can be considered duplicate code (directory?).
===============================================================================
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
- RE: [Axiom-developer] hypertex and uses info,
Vanuxem Grégory <=
- Re: [Axiom-developer] hypertex and uses info, Waldek Hebisch, 2006/11/03
- Re: [Axiom-developer] hypertex and uses info, root, 2006/11/03
- Re: [Axiom-developer] Maintainers, Waldek Hebisch, 2006/11/03
- Re: [Axiom-developer] Maintainers, root, 2006/11/03
- Re: [Axiom-developer] Maintainers, Gabriel Dos Reis, 2006/11/03
- Re: [Axiom-developer] Maintainers, root, 2006/11/04
- Re: [Axiom-developer] Maintainers, Gabriel Dos Reis, 2006/11/04
- Re: [Axiom-developer] Maintainers, root, 2006/11/04
- Re: [Axiom-developer] Maintainers, Gabriel Dos Reis, 2006/11/04
- Re: [Axiom-developer] Maintainers, root, 2006/11/04