Kyle Jones <kyle_jones(a)wonderworks.com> writes:
We'll have to publish an API before anyone will be willing to
write
and support non-trivial modules.
We might want to begin this by reconsidering what we really want the
modules modules to be able to do. So far the majority of the people
asking for module functionality in fact want interface to foreign
functions, or interface to fairly simple stuff coded in C for
efficiency. Virtually all else can be achieved by Lisp code in the
first place.
Thus a good first step for creating an API would be to *keep* the
distinction of C/Lisp as the line between the implementation and the
interface. For instance, we can say that the modules are allowed to:
* Define Lisp functions, symbols, and variables using DEFUN,
defsymbol, and friends;
* Call existing Lisp functions using call* and Ffuncall(). For
instance, call2 (Qfoo, make_int (1), Qbar);
* Call a small set of C functions directly -- stuff like Fcons() and
Fget(). Given that all the needed functionality is available under
the previous item, the initial number of functions in this set could
be kept minimal.
Comments?