In src/parse/html-parser.lisp, there's this form:
(make-pathname :directory '(:relative "resources") :type :unspecific)
19.2.2.2.3 says this:
Whether a value of :unspecific is permitted for any component on any given file system accessible to the implementation is implementation-defined. A conforming program must never unconditionally use a :unspecific as the value of a pathname component because such a value is not guaranteed to be permissible in all implementations.
CLISP signals an error on the form.
What's the :type :unspecific for? It seems to work on CLISP (and all other implementations I tried) without it; is it a precaution against a *default-pathname-defaults* that apparently has a value for :type?
Zach
Quoting Zach Beane (xach@xach.com): [...]
What's the :type :unspecific for? It seems to work on CLISP (and all other implementations I tried) without it; is it a precaution against a *default-pathname-defaults* that apparently has a value for :type?
I don't know. Here's the snippet from the patch submitter, can you make sense of it? Perhaps only very old asdf2 has this problem?
* Slava Gorbunov wrote on 20 Sep 2010: | And, finally, here is patch which makes possible to load closure-html | with asdf2 (included in recent versions of SBCL, for example): | | --- a/src/parse/html-parser.lisp | +++ b/src/parse/html-parser.lisp | @@ -34,7 +34,7 @@ | (defparameter sgml::*simple-catalog* | (let ((base | (merge-pathnames | - "resources/" | + (make-pathname :directory '(:relative "resources") :type :unspecific) | (asdf:component-relative-pathname | (asdf:find-system :closure-html))))) | (loop | | asdf:component-relative-pathname in ASDF2 returns pathname with .asd | extension appended, so open-public-resource tries to open files with | .asd extension appended, too, and, obviously, fails.
d.
David Lichteblau david@lichteblau.com writes:
Quoting Zach Beane (xach@xach.com): [...]
What's the :type :unspecific for? It seems to work on CLISP (and all other implementations I tried) without it; is it a precaution against a *default-pathname-defaults* that apparently has a value for :type?
I don't know. Here's the snippet from the patch submitter, can you make sense of it? Perhaps only very old asdf2 has this problem?
Yes, that looks like it's the case to me. ASDF2 no longer behaves like he describes.
Zach
- Slava Gorbunov wrote on 20 Sep 2010:
| And, finally, here is patch which makes possible to load closure-html | with asdf2 (included in recent versions of SBCL, for example): | | --- a/src/parse/html-parser.lisp | +++ b/src/parse/html-parser.lisp | @@ -34,7 +34,7 @@ | (defparameter sgml::*simple-catalog* | (let ((base | (merge-pathnames | - "resources/" | + (make-pathname :directory '(:relative "resources") :type :unspecific) | (asdf:component-relative-pathname | (asdf:find-system :closure-html))))) | (loop | | asdf:component-relative-pathname in ASDF2 returns pathname with .asd | extension appended, so open-public-resource tries to open files with | .asd extension appended, too, and, obviously, fails.
d.
Quoting Zach Beane (xach@xach.com):
David Lichteblau david@lichteblau.com writes:
Quoting Zach Beane (xach@xach.com): [...]
What's the :type :unspecific for? It seems to work on CLISP (and all other implementations I tried) without it; is it a precaution against a *default-pathname-defaults* that apparently has a value for :type?
I don't know. Here's the snippet from the patch submitter, can you make sense of it? Perhaps only very old asdf2 has this problem?
Yes, that looks like it's the case to me. ASDF2 no longer behaves like he describes.
Does this change work for you on clisp?
--- a/src/parse/html-parser.lisp +++ b/src/parse/html-parser.lisp @@ -33,10 +33,13 @@
(defparameter sgml::*simple-catalog* (let ((base - (merge-pathnames - (make-pathname :directory '(:relative "resources") :type :unspecific) - (asdf:component-relative-pathname - (asdf:find-system :closure-html))))) + (make-pathname + :name nil + :type nil + :defaults (merge-pathnames + "resources/" + (asdf:component-relative-pathname + (asdf:find-system :closure-html)))))) (loop :for (name . filename) :in '(("-//W3O//DTD W3 HTML 3.0//EN" . "dtd/HTML-3.0")
David Lichteblau david@lichteblau.com writes:
Quoting Zach Beane (xach@xach.com):
David Lichteblau david@lichteblau.com writes:
Quoting Zach Beane (xach@xach.com): [...]
What's the :type :unspecific for? It seems to work on CLISP (and all other implementations I tried) without it; is it a precaution against a *default-pathname-defaults* that apparently has a value for :type?
I don't know. Here's the snippet from the patch submitter, can you make sense of it? Perhaps only very old asdf2 has this problem?
Yes, that looks like it's the case to me. ASDF2 no longer behaves like he describes.
Does this change work for you on clisp?
[snip]
CLISP compiles it without complaint with that change.
Zach
Thanks for committing the update. An unrelated update introduces an implicit dependency on CXML by way of CXML::VALID-NAME-P; I get "No package named CXML" as an error now unless CXML is coincidentally already loaded.
Zach