--- Nikodemus Siivola <nikodemus@...> wrote:
> C Y <smustudent1@...> writes:
> > Is there any current or planned work on this feature? How
> > difficult would it be to implement (or rather, port over from
> > CMUCL in a form that makes it viable for inclusion?)
> AFAIK Juho made an initial port / reimplementation, but never
> finished it -- having other and better things to do. I recall him
> saying that his implementation differed rather strongly in the way
> the XREF information is stored -- in FDEFs, IIRC, but I believe the
> way it was collected was pretty much the same. Juho?
Is that code available somewhere? Even incomplete, it could be a very
useful starting point.
> The work is not particularly difficult given a reasonable familiarity
> with SBCL internals, but it does take some time (on the order of a
> 3-6 days of full-time work, at a guess). For someone unfamiliar with
> the territory it should still be quite doable, but take maybe 2-5
> times as long.
> Theoretically it _is_ on my TODO at least, but I'm unlikely to get to
> it within this year, unless someone is willing to pay for the work.
> I cannot speak for others, but assuming that no-one else is doing it,
> and assuming that no-one needs it badly enough to pony up some
> cash, I'd say that XREF support is likely to happen before the end of
> 2007 -- no promises, though.
No problem. In case anyone cares, the reason I was curious about it
was mainly that I'm looking for a way to map the inter-relatedness of
Axiom. It doesn't currently run on SBCL, but once it reaches ANSI it
should be workable. Some XREF goodness and a few tools like cl-pdf
might just allow for some really nifty abilities.
For those who might have forgotten, some years back there was a map
made of the Linux kernel. The code is at fcgp.sf.net, but is quite
specific to the Linux kernel. The style of presentation, however, is
In theory, the "circles within circles" idea might be used to identify
more "critical" or heavily used parts of Axiom. My first thought was
to do something like the following:
1. Build an xref database for Axiom. I'm not quite sure how the
SPAD/Aldor code would fit into that but there might be a way.
2. Rank the first order relations (calls and called by) and assume as
a first working guess that the most called functions with the least
number of functions they in turn call are more "central".
3. Rank some second order relations (check, for each function called
by a function, how many calls that function makes.) Add a "weighting"
function - calls to more "central" functions mean a function is more
"central" itself, but if no-one calls that function then it is
presumably less "central" since it is not used elsewhere.
4. Define "rings" into which more and less central functions are put.
Within the rings, find some organizational algorithm (fcgp may be
useful here.) The idea would be that everything inside a particular
ring calls only functions either also in that ring or from a more
5. Use the cl-pdf library or some other such capability to output
figures based on the databases.
6. If XREF supports some kind of "per-file" identification, individual
maps could also be created for individual "pamphlets" or papers
pertaining to individual concepts.
> SB-INTROSPECT also offers some rudimentary XREF-like functionality,
> but no WHO-BINDS, etc.
> (If someone starts working on XREF, remind me to explain my idea
> about callee-instrumentation + XREF, and the goodness they might
Just in case I start feeling stupidly optimistic, what goodness would
they bring? ;-)
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around