Reimplementing GNU Emacs, with backward compatibility, was one of the original intents of Guile, but that never happened. (I won't get into the reasons I know of, but a big indirect one was not due to any fault of Guile or its people, IMHO, nor were they likely even aware of it.)

Implementing Emacs Lisp as a transformation to `racket/base` (as opposed to a bytecode interpreter) seems doable, but nontrivial. You have to handle dynamically-scoped variables, you have to implement the buffer primitives efficiently, and (ideally) you need to permit the same debugging interface (the Emacs stepper was way ahead of Racket, but relies on a simple interpretation model). Emacs is built upon a core of "primitives", some of them impressive, some kludgey, and then tons of often-kludgey Emacs Lisp atop the primitives.

An alternative is to forget about Emacs Lisp backward-compatibility, and just reimplement an Emacs-like editor/framework in Racket. DrRacket has a little bit of Emacs nature, but that was not the goal of DrRacket (nee DrScheme); if you implemented a Racket Emacs-like editor/framework from scratch, I think it would end up very different than DrRacket, and more nimble. The result of a non-backwards-compatible implemented in Racket could also be less-kludgey. You might also think of it not as an editor, but as an alternative GUI framework (and build in an HTML5 option from the start, while you're thinking at that level).

Neil V.

Greg Davidson wrote on 07/02/2015 03:36 PM:
Is there interest in creating a Gnu Emacs Lisp Racket Language, along with the 
underlying APIs (perhaps tied to DrRacket) sufficient to compile and run Gnu 
Emacs Lisp extension packages?  Is there prior or ongoing work for such a 
project?

For some years there has been an attempt to port Gnu Emacs to run under Guile 
Scheme.  A big stumbling block is the vast amount of extensions written in 
Emacs Lisp and continuing development thereof.  Racket seems to be a *much* 
better platform for such a project than Guile, don't you think?

_Greg (a long-time ambivalent Emacs user tired of Emacs Lisp)


--
You received this message because you are subscribed to the Google Groups "Racket 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to