"Stephen J. Turnbull" <turnbull(a)sk.tsukuba.ac.jp> writes:
1. Do the respective standards specify things (like behavior of
text
objects) that we would prefer to specify ourselves? (Neither camp has
said anything about this AFAIK.) If so, this is harmful to ease of
migration.
Neither CL nor Scheme contain descriptions of "text objects", I think.
2. What constructs in one dialect would be difficult or impossible
to
implement efficiently in the other?
Why is this an issue? I don't *want* to implement Scheme in CL, nor
do I want to implement CL in Scheme.
3. Where will it be hard to emulate current elisp efficiently?
It is my hope that it will be possible to evaluate Emacs Lisp from
Common Lisp "directly", within a specific package, without the need
for a translator. I have not delved into this further, but Erik
Naggum proposed some interesting ideas in his articles.
An example of Erik's idea is to use the CL package system for our
advantage. For example, in `.el' files, `elisp' would be the current
package, and elisp::mapcar would grok strings and vectors. Also,
within these files, the reader would grok [] as vector syntax. Etc.
4. Where the semantics of common constructs differ among elisp,
Common Lisp, and Scheme, how hard is it going to be for casual elisp
programmers to make the switchover?
Lars expanded on this nicely. It is much easier for elisp programmers
to switch to CL than to Scheme.
5. Do we or CLisp or any of the suggested Scheme variants have an
API
that will allow us to separate the Lisp engine proper from extensions,
like the C-level support for fontification?
I'm not sure about clisp. Michael claims that there are Scheme
variants with excellent FFI's, and I believe him.
This is especially important if we hope to offload Lisp engine
maintenance, as Bruno has offered to do for CLisp.
Bruno already maintains clisp, no matter what we do. What he offered
to do is help us implement the additional Emacs-specific stuff within
clisp, such as `DEFINE_LRECORD_IMPLEMENTATION' lookalikes.
mb> Scheme has been designed for programming language
research,
mb> rather than practical use. It has such a history of
mb> minimalism that all scheme implementations had to provide
mb> extensions to be useful.
Hmm. Sounds like Common Lisp is going to require lots of extensions
to be useful to us, to me. CLtL1, at least, makes no reference to
editing buffers or multilingual text processing, frames or extents.
True, but the same goes for Scheme. What Martin really meant was more
clearly explained in Lars' messages.
Minimal is good, if we want to support different extension
languages.
I don't think we want to do that, with the single exception of Emacs
Lisp. At least I would argue against that.
Minimal is good, if we are going to end up having to maintain the
Lisp
engine ourselves. Yes, Bruno says that he will help maintain a Common
Lisp engine specific to XEmacs. Does he understand that that will
possibly include things like C-level support for fontification?
C-level support for fontification has nothing to do with the Lisp
engine, and will surely not be maintained by Bruno.
mb> It still is missing many things. For example, my beloved
mb> (when ...) is missing (from the standard). Hashtables are
mb> missing.
(when ...) is a trivial macro, isn't it? ("Very useful" and now
"beloved"! What loyalty a trivial extension can engender!)
Hashtables, we can do.
Why would having these (and many similar items, I'm sure) _in the
standard_ be useful to us?
Because then you don't have to rely on incompatible extensions.
Again, see Lars' DELETE-IF example.
mb> (call-with-current-continuation) is a very interesting
mb> function, but one cannot expect ordinary humans to understand
mb> it. It is only a tool for system implementors.
XEmacs is a system, is it not? _We_ are system implementors. (Sorry
for the implicit self-aggrandizement.) However, I will leave call/cc's
serious usage to Michael and the Mark II version of Karl Hegbloom ;-)
I imagine most package writers and so on will do so, too.
If we can get coroutines and threads as cheaply as Michael suggests,
that is a _big_ deal.
I'm afraid we can't.
--
Hrvoje Niksic <hniksic(a)srce.hr> | Student at FER Zagreb, Croatia
--------------------------------+--------------------------------
4. Thou shalt not warlorde a sig if it bee the sig of Kibo, nor if
it bee the sig of the Inner Circle.