Skip to content

`**` not permitted as a pathname `:name`

Paths like #p"/foo/bar/**.json" bring up the debugger, citing:

:WILD-INFERIORS is not a valid pathname-NAME component

which is technically spec conformant according to: https://cl-community-spec.github.io/pages/Restrictions-on-Examining-a-Pathname-Name-Component.html

However, as a matter of interacting with modern OSs:

  • sbcl stores ** as sb-impl::pattern<...>.
  • abcl and ccl store ** as a string, as-is.

Could ECL be extended to support ** in :name position?

Note also that this means #p"**", semantically "all files", cannot currently be constructed.

     VERSION "23.9.9"
      VCS-ID "UNKNOWN"
          OS "Linux"
  OS-VERSION "6.9.3-arch1-1"
MACHINE-TYPE "x86_64"
    FEATURES (:QUICKLISP :ASDF-PACKAGE-SYSTEM :ASDF3.1 :ASDF3 :ASDF2 :ASDF
              :OS-UNIX :NON-BASE-CHARS-EXIST-P :ASDF-UNICODE :WALKER :CDR-6
              :CDR-1 :CDR-5 :LINUX :FORMATTER :CDR-7 :ECL-WEAK-HASH
              :LITTLE-ENDIAN :ECL-READ-WRITE-LOCK :LONG-LONG :UINT64-T
              :UINT32-T :UINT16-T :COMPLEX-FLOAT :LONG-FLOAT :UNICODE :DFFI
              :CLOS-STREAMS :CMU-FORMAT :UNIX :ECL-PDE :DLOPEN :CLOS :THREADS
              :BOEHM-GC :ANSI-CL :COMMON-LISP :FLOATING-POINT-EXCEPTIONS
              :IEEE-FLOATING-POINT :PACKAGE-LOCAL-NICKNAMES :CDR-14
              :PREFIXED-API :FFI :X86_64 :COMMON :ECL)

See also https://github.com/clasp-developers/clasp/issues/1594

Edited by Colin Woodbury