Hacker News new | past | comments | ask | show | jobs | submit login

I don't understand the performance argument. The core editing facilities of Emacs are written in C and I doubt how CL or Guile could outperform this. Maybe my perception of the work-distribution in Emacs is skewed: Is most of the work done in the core editing facilities or in the higher level elisp modules?

Some questions that remain: Is old elisp code going to benefit from a rebased Emacs: Is it going to be faster or maybe even slower? How should the longterm plan look? Is everybody supposed to port existing code to CL at some point or is old code going to be supported indefinitely?




Yes, most of it is done in higher level elisp modules.

I think you are right, however, in that it is not obvious that it would be faster in all situations. You would get the advantage of compiling the elisp modules to machine code, but you might loose some performance in the actual operations. However, there is no fundamental reason that the C sections couldn't be left in C and called (if the performance difference is really big).

There is no reason (that I can think of) you couldn't write a cross compiler from emacs lisp to CL. They are actually fairly similar (except for maybe some scoping rules).

I'm kind of torn on this because, honestly, it has already been done a couple of times... lisp machines, and mcclim emacs, are the ones that I can think of off the top of my head. Anyway.

On a 64 bit machine it should be very good, on a 32 bit machine possibly less so.


Editing is a part of GNU Emacs. But it is also a Mail, News, whatever client. It comes with a million lines of Lisp code.


I'm perfectly aware of that. But a lot of that code ends up shuffling and moving stuff around in buffers and that ends up as work in the C modules. I don't think the distribution of work is as obvious as you make it sound but I'm prone to believe it. As I said: I'm unsure, if my assumptions are true.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: