Parsing non-standard clauses for defpackage in package inferred systems
When using package inferred systems, if the defpackage
form has a non-standard clause that is not one of uiop:define-package
clauses, an error is signaled. This doesn't seems to be useful, especially since such extensions to defpackage seem to be explicitly allowed by the standard.
Example:
;;; test.asd
(defsystem "test"
:class :package-inferred-system
:depends-on ("test/test"))
;;; test.lisp
(defpackage #:test/test
#+sbcl (:lock t) ; this is sbcl specific extension
(:use #:cl))
Trying to load the system:
$ sbcl --noinform --load test.asd
* (asdf:test-system :test)
debugger invoked on a SB-KERNEL:CASE-FAILURE @53540A5D in thread
#<THREAD tid=2102596 "main thread" RUNNING {10047A0113}>:
:LOCK fell through ECASE expression.
Wanted one of (:USE :MIX :REEXPORT :USE-REEXPORT :MIX-REEXPORT :IMPORT-FROM
:SHADOWING-IMPORT-FROM :NICKNAMES :DOCUMENTATION :SHADOW
:EXPORT :INTERN ...).
;; behavior doesn't change when using ASDF:LOAD-ASD instead of LOAD