I'm a little confused by this. I can understand why someone might want to preserve a repl env across invocations however the main reason given is startup time.
Given emacs daemon, which allows connecting with a thin client, how much startup time are we talking here? Can they not start once and connect like the rest of us?
My understanding is that this dumping of state is done during the Emacs build process. You build Emacs, initialize it and then dump out it's state. Every time you launch Emacs, your instance is starting from the dumped state.
Emacs has two init stages, you only see the latter.
The first is what gets it to the dump file.
The second is where your personal .emacs file gets loaded and executed.
The first is the one that takes too long and motivated them to create the dumper system to begin with, and needs some resolution (elimination and making that first init process faster, switching to a serialization of the objects rather than the C program memory, or something else).
So am I using this dumper system every time I launch emacs? I start emacs "normally" in that I simply launch it from the cmd line with the daemon flag.
In a sense, yes. You're using the product of the dumper. It's used to create an image of the state of the running system during the emacs build, and then delivered to end users like us as part of the emacs installation. That executable image state is loaded, and then your .emacs is called.
For a comparable model, check out the way Smalltalk images (particularly with Squeak and now Pharo) are distributed.
For kicks, try running "emacs-undumped". It's the base version without everything loaded (the dump-file), and part of what's used for creating the dump file during the emacs build process. At least for me it's pretty much unusable thanks to the terminal colors that it seems to insist on using for plain text.
That was on OS X. No idea if it shows up on other systems. The man page says it's not meant for end users like us, and that it's to be used with dumpemacs.
The concern about startup time seems a bit odd to me too. I use Emacs in the way it was originally designed to be used: I start an Emacs process and keep it running for weeks. I don't even use the client; when I want to edit a new file, I select the Emacs window and pull up the file from within that. The idea that I would type a shell command every time I want to edit a new file is foreign to me -- I mean, I know that's how dinky little single-buffer editors like nano and pico work, but I would never use a sophisticated multi-buffer editor like Emacs (or IntelliJ IDEA or Eclipse or Visual Studio or ...) in that mode.
Given emacs daemon, which allows connecting with a thin client, how much startup time are we talking here? Can they not start once and connect like the rest of us?