On May 19, 2009, at 12:21 PM, Eduardo Cavazos wrote:
Aziz,
Jose Ortega Ruiz recently announced his geiser project; a SLIME-
like Emacs package for Scheme hacking.
Good for Emacs people! :-)
In order for him to hook it up to an implementation, he needs a
certain level of introspective capabilities. Awhile back I asked
him for what he needs. This is what he listed:
- Source location information (file (at least) and line/column) for
procedures, variables and modules.
- List of symbols bound in a given module/environment, preferably with
their kind (procedure, macro, variable...) and visibility (exported,
private, imported...)
- List of callers/callees of a given procedure.
- If the system supports generic functions, list of methods for a
given
generic, preferably accompanied by their location.
- Procedure/generic/macro arities, with the actual names of the
parameters if possible (not just a number).
- Docstrings (if supported) or any other output of a help-like
command.
Based on the error messages I've seen from Ikarus, the first one
seems good to go. Given R6RS libraries, it seems like the second
point is a natural given. The rest I'm not sure of. I know that
both Ikarus and Ypsilon support an 'apropos'.
I need more information about how he hooks things up. I presume that
geiser would be communicating with an inferior ikarus process (how?)
to ask about these things. I think it would be a great service to
all R6RS implementors if it's formally specified what the
implementation needs to provide. Maybe Ikarus has to provide a
(geiser prerequisites) library exporting the required procedures?
Would that work? If so, then I'm up for it. And if it works, other
R6RS implementations can provide a similar library and geiser would
work for them automagically. But only if I know exactly what I need
to do.
Aziz,,,