[Ecls-list] Kemacs ?

Juan Jose Garcia-Ripoll worm at arrakis.es
Wed Feb 4 01:46:06 UTC 2004


On Tuesday 03 February 2004 23:54, joel vennin wrote:
> Few days ago, i'm asking how create a Kemacs (or a Kpart). So i've decided
> to fine a good project which support lisp. I've found ecls :p.
> I've a little question: is it a good way to create a Kemacs from scratch
> using ecls ?

Actually, I worked long ago on replacing the elisp interpreter with ecl on 
Xemacs and Emacs. I finally opted to work with the first one, which has a 
more structured code base, and got so far as removing its garbage collector 
and core dumper, and replacing it with the Boehm-Weiser garbage collector. 
That was ok: the editor was working with more or less 30% overhead in the 
amount of memory, but was responsive enough. Two things kept me from going 
furhter: money (I was promised some that never arrived) and the complexity of 
the editor (The *emacs have a lot of data structures for metadata regarding 
faces, cut & paste regions, etc).

If I were to do it once again I would be on a safer side and:

* Either add ECL as a scripting language to a simpler editor with a good 
interface (Zemacs, Zed, Kwrite/Kate..)

* Or work on the portable version of Hemlock (I think this is already an 
ongoing project) and fix or complain about anything in ECL that prevents you 
from implementing the terminal version of it (The XWindows library in ECL is 
crappy and needs fixing).

> In the near future do you think that ecls support (SETF (VALUES ...) ...)
> and 'format ?

Porting the pretty printer and and (SETF VALUES) from other lisps (I am 
thinking about CMUCL right now), should be easy for somebody with good skills 
in lisp.

The pretty printer is probably the most difficult part, because in CMUCL (and 
maybe in the original implementation in the CMU arxive) it uses custom 
streams. But ECL also allows creating custom streams using CLOS, even though 
they do not inherit from the STREAM class: basically you need to create the 
methods  STREAM-CLEAR-INPUT, STREAM-CLEAR-OUTPUT, STREAM-CLOSE, 
STREAM-FORCE-OUTPUT, STREAM-INPUT-P, STREAM-INTERACTIVE-P, STREAM-LISTEN, 
STREAM-OUTPUT-P, STREAM-READ-CHAR, STREAM-UNREAD-CHAR, and STREAM-WRITE-CHAR.

Regards,

Juanjo





More information about the ecl-devel mailing list