Can anyone tell me what is going on when Emacs starts up? As I understand, Emacs has a "base," a "foundation" of code written in C, but then supposedly a great Lisp "program" takes flight. And from then on you are interacting with one big live Lisp "program," which is supposedly different than running a regular compiled C/C++ program.
But then I've never really fully understood what that really means, i.e., what the difference is between a compiled program running in live memory and a Lisp program running in, what?, a Lisp virtual world, perhaps? One specific question would be, when the elisp part of Emacs starts up, is it just like a huge tree of one initial function calling other functions that in turn call other functions? I also understand that the
*scratch* and the ielm REPL allow you not only to do calculator stuff, but to actually change the running instance of Emacs, at least the running elisp code. Some explanation of this process would be illuminating.