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,,,

Reply via email to