Didier Verna <verna(a)inf.enst.fr> writes:
Don't be so VH :-) There are far too many useless macros
in XEmacs,
notably the ones for just getting a structure field that takes longer to type
than directly `foo->bar'.
More importantly they make it close impossible to use the debugger.
(Here debugger is defined as me+gdb).
I whish we rewritte XEmacs in C++ someday.
I wish the same sometimes too. Some parts of XEmacs are a real good
argument for C++ (at least in theory, and some compilers are getting
pretty close to that now):
Modern compilers (gcc 2.95 with --new-abi) have all these
- One word overhead on RTTI[1]
- Templates to get rid of those huge macros in lrecord.h etc
- function pointer based OO replaced by language syntax support OO.
- Table based exception handling (basically the same as our specl*
stuff, I think).
Given that you can do a simple lisp in #!/bin/sh it is no surprise
that you can do it in C++, but I think that a bit of language support
couldn't hurt the readability of the code.
Dumping a C++ executable is going to be a pain though. I also am not
sure whether allows smarter elisp implementation than we have now
(i.e. one with a copying garbage collector and real closures).
Jan
Footnotes:
[1] If we are going to release 21.2 with LRECORD_CONS then we really
should consider reducing this overhead, 50% is simply too much.