• ram's avatar
    Improved integration of logical pathname support with the rest of pathnames. · 21bdedc6
    ram authored
    Generalized TRANSLATE-PATHNAME to work on logical pathnames and
    :WILD-INFERIORS, and used this to implement TRANSLATE-LOGICAL-PATHNAME.
    Generalized PARSE-NAMESTRING to be able to parse logical namestrings, and use
    it to implement LOGICAL-PATHNAME.  Fixed some type declarations that didn't
    allow :UNSPECIFIC or :WILD when they should.  Fixed PATH-DESIGNATOR type to
    allow complex strings.  Added utilities for canonicalizing logical hosts.
    Fixed pattern matching code to consistently accept :WILD and :WILD-INFERIORS.
    Changed namestring-parse-error to inherit from PARSE-ERROR, and made logical
    namestring parsing use it so that :JUNK-ALLOWED T works.  Mostly rewrote
    logical namestring parsing.  Fixed some erroneous simple-string assumptions.
    Changed namestring parsing in general to give preference to parsing as a
    physical pathname with a search-list, since we can (and must be able to) parse
    undefined search-lists, but we can't parse logical pathnames with undefined
    hosts.  Reinterpreted the spec for logical pathname parsing somewhat more
    liberally.  Changed WILD-PATHNAME-P to recognize :WILD and :WILD-INFERIORS.
    Fixed argument order to COMPONENTS-MATCH in PATHNAME-MATCH-P.  Generalized
    xxxCOMPONENTxxx matching operations to handle integer and keyword versions,
    replacing inline special-casing of versions.  Signal an error if the TO pattern
    has more wildcards than the FROM pattern.  Fixed out-of-bounds errors in
    Simplified search-list hackery in LOAD-LOGICAL-PATHNAME-TRANSLATIONS.
    Moved COMPILE-FILE-PATHNAME to compiler/main.