Skip to content

&environment not recognized by deftype

deftype seems to not recognize &environment. It says that it is an invalid lambda-list. I thought I would try to move the &environment before the &rest. That makes the compile error go away, but it still isn't right; ECL just thinks that &environment and e are required parameters and gives a style warning that &environment is defined but not used.

(deftype illegal-env (&rest r &environment e)
  (declare (ignore r e))
  t)

(deftype env-is-required (&environment e &rest r)
  (declare (ignore r e))
  t)

In both cases, I expect e to be an &environment parameter as described by ANSI spec section 3.4.4.

I'm using the 23.9.9 tarball release compiled on Guix system.

     version "23.9.9"
      vcs-id "UNKNOWN"
          os "Linux"
  os-version "6.9.3"
machine-type "x86_64"
    features (:html-template :cl-fad :bordeaux-threads :64-bit :x86-64 :global-vars :thread-support
              :slynk :serve-event :asdf3.3 :asdf3.2 :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)
Edited by Charles Jackson