[Openmcl-devel] Cross-Referencing facility for OpenMCL
entrox at entrox.org
Mon Dec 8 20:35:04 UTC 2003
Attached is a patch which adds cross-referencing abilities to OpenMCL.
API is basically the same as the one in Allegro with a few small changes
(GET-RELATION returns structures, not symbols and there's a new keyword
get a little more output).
This is something I whipped up on a boring weekend after I got jealous
CMUCL users and their nice xref facility for SLIME, so I'm sure
there are a
lot of improvements possible, since I'm totally new to the compiler
Here's a short example:
Welcome to OpenMCL Version (Alpha: Darwin) 0.14-031108!
? (require :xref)
? (compile-file "lib/xref.lisp")
? (who-calls 'get-relation)
GET-RELATION is directly called by:
No indirect callers of GET-RELATION were found in the database
No macro callers of GET-RELATION were found in the database
? (who-uses '*standard-output*)
No bindings of *STANDARD-OUTPUT* were found in the database
*STANDARD-OUTPUT* is referenced by:
No settings of *STANDARD-OUTPUT* were found in the database
? (who-calls 'get-relation :inverse t)
GET-RELATION directly calls:
No indirect callees of GET-RELATION were found in the database
GET-RELATION macro calls:
Two major things are missing: it doesn't detect indirect calls i.e.
like (let ((func #'foo)) (funcall func)) and the xref information isn't
saved. I briefly
looked at the FASL loading/dumping code, but quickly concluded that I
understand enough to try something like this.
I will also send patches to the SLIME people, if this should get
merged, so we
could lift the OpenMCL port to nearly-fully-supported state :-)
The patch is against the 0.14-031108 release.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 30006 bytes
Desc: not available
More information about the Openmcl-devel