Hi,
The return value of FIND-DEFINITIONS isn't specified as rigorously as
I'd like; I'm referring to its DSPEC part specially.
For instance, on CMUCL:
(find-definitions #'car) ==> (((FUNCTION CAR) ..location..) ...)
whereas on SBCL
(find-definitions #'car) ==> (((DEFUN CAR) ..location..) ...)
Similiarly, CMUCL returns a dspec (VARIABLE :SPECIAL *FOO*) whereas SBCL
returns (DEFVAR *FOO*).
I'd like to specify that a DSPEC is either
a symbol, or
a list
where the CAR is the defining symbol (DEFVAR for variables, DEFUN
for function, &c.) that resulted in the respective definition, the
CADR is the name of the thing, and optionally there's an extra
description as the rest argument (specializing arglist for methods,
for instance.)
Furthermore, I'd like to explicitly validate this with a
DESTRUCTURE-CASE such that each backend implementator can directly see
what's expected.
Opinions?
-T.