Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sun-barr!newstop!sundc!texsun!exodus!flam.Eng.Sun.COM!jpayne From: jpayne@flam.Eng.Sun.COM (Drummer Boy) Newsgroups: comp.emacs Subject: emacs's extensions language Message-ID: <1355@exodus.Eng.Sun.COM> Date: 12 Oct 90 22:10:32 GMT Sender: news@exodus.Eng.Sun.COM Lines: 30 Hi there, would some nice person be willing to explain to me the model for LISP execution inside GNU emacs? What do I mean? Well, is the editor always running inside a lisp context? Or is the main loop written in C, and does it sit there reading the keyboard, looking up the keys in the various keymaps, and checking on the type of the thing it's trying to execute? And when that thing is a piece of LISP code, it just fires up an interpreter to execute it? What happens if there is an error while executing a piece of LISP code? If the editor is running LISP the whole time, there must be some main loop that sits there reading and dispatching keystrokes, right? So when there's an error, is an error-handler fired up which read and dispatches more keystrokes, but also lets you look around at the state of the world? Does emacs have multiple LISP threads at any given time? Is there a way to arrange to have a piece of LISP code executed when output appears from a process? Does EMACS stop what it's doing and fire up that piece of LISP code, and if that piece of code sits there in an endless loop, is EMACS hung until some sort of timeout occurs? I'm just trying to get a feel for how this whole thing is put together. I never thought about it carefully before now. Thanks for any info. Jonathan Payne