|
|
Log in / Subscribe / Register

The Emacs dumper dispute

The Emacs dumper dispute

Posted Nov 30, 2016 19:43 UTC (Wed) by vadim (subscriber, #35271)
Parent article: The Emacs dumper dispute

I don't see the concern about turning off developers -- it seems to be at the same or better level as what there is already.

I haven't worked on the Emacs code, but if I was going to be turned off by something, it would be by some weird black magic that relies on the obscure innards of the implementation of malloc(), and not on a mechanism that serializes data. Walking a data structure and dumping stuff to disk is standard C fare. It might be a complicated instance of it, but unlike something that digs around in the innards of malloc it would be something I could expect to reasonably understand given a normal amount of time and effort. Not so with the unexec stuff.

Besides, we're talking about what amounts to an optimization. If I was going to start working on Emacs now, I don't see myself getting scared off by what is effectively a completely optional piece of code.


to post comments

The Emacs dumper dispute

Posted Dec 1, 2016 0:03 UTC (Thu) by nix (subscriber, #2304) [Link]

Quite. What's more, we already *have* most of this sort of chase-everything machinery in place for the garbage collector, and we can serialize most types thanks to print-forms. This form of it *is* somewhat different because of the relocation/pointer-fixup stuff, but it's not really difficult stuff, just deeply fiddly, and is by any measure drastically less horrifying than the tar pit of crawling horrors that is unexec(). It's also what almost every other Lisp implementation in existence does (back in the era of my parents' parents' parents, they all used unexec()-like tricks too, but nothing still in use does, as far as I know: they've all moved to serialization or their own allocators with built-in dumping/serialization long ago; nothing else depends on special support from libc's malloc like Emacs does. Emacs is literally decades behind the times here.)

Also, anything that makes Emacs more portable is good in my book, and unexec() was a major impediment to Emacs porting. Congratulations, Daniel!


Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds