* is Emacs completely written in lisp @ 2007-11-20 11:30 arunmib 2007-11-20 12:04 ` Marc Tfardy 0 siblings, 1 reply; 10+ messages in thread From: arunmib @ 2007-11-20 11:30 UTC (permalink / raw) To: help-gnu-emacs Hi all, Is Emacs completely written in Lisp or is written in combination with some other language. What I am trying to ask is the UI and other OS dependent stuff (if any, I don't know this thing) is also written in Lisp or some other language, like C is also used.... ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: is Emacs completely written in lisp 2007-11-20 11:30 is Emacs completely written in lisp arunmib @ 2007-11-20 12:04 ` Marc Tfardy 2007-11-20 16:58 ` arunmib 0 siblings, 1 reply; 10+ messages in thread From: Marc Tfardy @ 2007-11-20 12:04 UTC (permalink / raw) To: help-gnu-emacs arunmib schrieb: > Hi all, > Is Emacs completely written in Lisp or is written in combination > with some other language. What I am trying to ask is the UI and other > OS dependent stuff (if any, I don't know this thing) is also written > in Lisp or some other language, like C is also used.... C + ELisp Marc ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: is Emacs completely written in lisp 2007-11-20 12:04 ` Marc Tfardy @ 2007-11-20 16:58 ` arunmib 2007-11-20 17:14 ` B. T. Raven 2007-11-20 18:42 ` is Emacs completely written in lisp Joel J. Adamson 0 siblings, 2 replies; 10+ messages in thread From: arunmib @ 2007-11-20 16:58 UTC (permalink / raw) To: help-gnu-emacs On Nov 20, 5:04 pm, Marc Tfardy <m-t-o___CUT__IT...@web.de> wrote: > arunmib schrieb: > > > Hi all, > > Is Emacs completely written in Lisp or is written in combination > > with some other language. What I am trying to ask is the UI and other > > OS dependent stuff (if any, I don't know this thing) is also written > > in Lisp or some other language, like C is also used.... > > C + ELisp > > Marc Out of curiosity, can you tell me how? just a general overview or some place where I can read, how this is done? ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: is Emacs completely written in lisp 2007-11-20 16:58 ` arunmib @ 2007-11-20 17:14 ` B. T. Raven 2007-11-20 18:01 ` rustom 2007-11-20 18:42 ` is Emacs completely written in lisp Joel J. Adamson 1 sibling, 1 reply; 10+ messages in thread From: B. T. Raven @ 2007-11-20 17:14 UTC (permalink / raw) To: help-gnu-emacs arunmib wrote: > On Nov 20, 5:04 pm, Marc Tfardy <m-t-o___CUT__IT...@web.de> wrote: >> arunmib schrieb: >> >>> Hi all, >>> Is Emacs completely written in Lisp or is written in combination >>> with some other language. What I am trying to ask is the UI and other >>> OS dependent stuff (if any, I don't know this thing) is also written >>> in Lisp or some other language, like C is also used.... >> C + ELisp >> >> Marc > > Out of curiosity, can you tell me how? just a general overview or some > place where I can read, how this is done? Here is a readable summary: http://en.wikipedia.org/wiki/Elisp ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: is Emacs completely written in lisp 2007-11-20 17:14 ` B. T. Raven @ 2007-11-20 18:01 ` rustom 2007-11-20 18:47 ` The Lisp High (was: is Emacs completely written in lisp) Joel J. Adamson 0 siblings, 1 reply; 10+ messages in thread From: rustom @ 2007-11-20 18:01 UTC (permalink / raw) To: help-gnu-emacs > > Out of curiosity, can you tell me how? just a general overview or some > > place where I can read, how this is done? > > Here is a readable summary: > > http://en.wikipedia.org/wiki/Elisp Well I looked it up and did not find anything much on the C-lisp interface. The lisp article: http://en.wikipedia.org/wiki/Lisp_programming_language is a bit more detailed. Anyhow let me try in ever so brief: We start with some of the most basic editor-y things, say buffers and windows -- which respectively manipulate and show text. Now as a C programmer you will think of this essentially as two types, struct buffer {...}; and struct window {...}; and along with that an API to do the things you want to to them. Now a C++ programmer goes one step further and binds the the API with the struct (and struts about calling this an object :-) ) Stallman went one step further and asked What would it take to embed this API+type fully embedded in its own dedicated language? And you get elisp. Well... That emphasised the e part of elisp more than the lisp. For the lisp part you should study some of the model scheme implementations -- a bit different from lisp but better for study. But before that you will also have to study lisp as a language. The bible today is SICP http://mitpress.mit.edu/sicp/ I myself prefer older books like Allens anatomy of lisp and Henderson's Functional Programming but these are hard to get nowadays. Last: Dont give up. The high from lisp cannot be easily replicated. ^ permalink raw reply [flat|nested] 10+ messages in thread
* The Lisp High (was: is Emacs completely written in lisp) 2007-11-20 18:01 ` rustom @ 2007-11-20 18:47 ` Joel J. Adamson 2007-12-16 17:52 ` David Combs 0 siblings, 1 reply; 10+ messages in thread From: Joel J. Adamson @ 2007-11-20 18:47 UTC (permalink / raw) To: help-gnu-emacs rustom <rustompmody@gmail.com> writes: >> > Out of curiosity, can you tell me how? just a general overview or some >> > place where I can read, how this is done? >> >> Here is a readable summary: >> >> http://en.wikipedia.org/wiki/Elisp [...] > Last: Dont give up. The high from lisp cannot be easily replicated. What I tell people when they ask me about Scheme: "It's a programming language that brainwashes people into believing it's the best language, and makes it impossible to code in anything else. I love it." I got a wicked Scheme buzz off some namespace manipulation this weekend. I can stop any time I want, but right now I'm doing everything in Scheme and Elisp. Joel -- Joel J. Adamson Biostatistician Pediatric Psychopharmacology Research Unit Massachusetts General Hospital Boston, MA 02114 (617) 643-1432 (303) 880-3109 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: The Lisp High (was: is Emacs completely written in lisp) 2007-11-20 18:47 ` The Lisp High (was: is Emacs completely written in lisp) Joel J. Adamson @ 2007-12-16 17:52 ` David Combs 0 siblings, 0 replies; 10+ messages in thread From: David Combs @ 2007-12-16 17:52 UTC (permalink / raw) To: help-gnu-emacs In article <87sl30bvp4.fsf_-_@W0053328.mgh.harvard.edu>, Joel J. Adamson <jadamson@partners.org> wrote: ... >What I tell people when they ask me about Scheme: "It's a programming >language that brainwashes people into believing it's the best language, >and makes it impossible to code in anything else. I love it." > >I got a wicked Scheme buzz off some namespace manipulation this weekend. >I can stop any time I want, but right now I'm doing everything in Scheme >and Elisp. > >Joel > >-- >Joel J. Adamson >Biostatistician >Pediatric Psychopharmacology Research Unit >Massachusetts General Hospital >Boston, MA 02114 >(617) 643-1432 >(303) 880-3109 If you, a non-academic user of it, don't mind, how about a bit on *why* you prefer Scheme to eg common lisp? I mean, what kinds of things does it enable you to do, either at all or (just) (much) more easily? Thanks, David PS: to avoid a mass of flames on "don't discuss this here!! Take your stupid discussion to a *lisp* or *Scheme* group (-- you ASSHOLES!)", , simply add "elisp" to the "common lisp" up above. :-) ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: is Emacs completely written in lisp 2007-11-20 16:58 ` arunmib 2007-11-20 17:14 ` B. T. Raven @ 2007-11-20 18:42 ` Joel J. Adamson 2007-11-21 4:00 ` arunmib 1 sibling, 1 reply; 10+ messages in thread From: Joel J. Adamson @ 2007-11-20 18:42 UTC (permalink / raw) To: help-gnu-emacs arunmib <arunmib@gmail.com> writes: > On Nov 20, 5:04 pm, Marc Tfardy <m-t-o___CUT__IT...@web.de> wrote: >> arunmib schrieb: >> >> > Hi all, >> > Is Emacs completely written in Lisp or is written in combination >> > with some other language. What I am trying to ask is the UI and other >> > OS dependent stuff (if any, I don't know this thing) is also written >> > in Lisp or some other language, like C is also used.... >> >> C + ELisp >> >> Marc > > Out of curiosity, can you tell me how? just a general overview or some > place where I can read, how this is done? Stallman's article is a good place to hear about the why and how: http://www.gnu.org/gnu/rms-lisp.html. My understanding is that the functions that really need to work fast and often, as well as the Emacs Lisp interpreter are in C. Basically the backbone is C and the Lisp interpreter (a full-on REPL) takes care of the rest. If you `M-x apropos' and look up a function name, it will tell you if it's in C or Lisp, along with a link to the file where you can find the function. For example `self-insert-command', which is invoked every time I press a key is in C: **************************************** DEFUN ("self-insert-command", Fself_insert_command, Sself_insert_command, 1, 1, "p", doc: /* Insert the character you type. Whichever character you type to run this command is inserted. */) (n) Lisp_Object n; { CHECK_NUMBER (n); /* Barf if the key that invoked this was not a character. */ if (!CHARACTERP (last_command_char)) bitch_at_user (); { int character = translate_char (Vtranslation_table_for_input, XINT (last_command_char)); if (XINT (n) >= 2 && NILP (current_buffer->overwrite_mode)) { int modified_char = character; /* Add the offset to the character, for Finsert_char. We pass internal_self_insert the unmodified character because it itself does this offsetting. */ if (! NILP (current_buffer->enable_multibyte_characters)) modified_char = unibyte_char_to_multibyte (modified_char); XSETFASTINT (n, XFASTINT (n) - 2); /* The first one might want to expand an abbrev. */ internal_self_insert (character, 1); /* The bulk of the copies of this char can be inserted simply. We don't have to handle a user-specified face specially because it will get inherited from the first char inserted. */ Finsert_char (make_number (modified_char), n, Qt); /* The last one might want to auto-fill. */ internal_self_insert (character, 0); } else while (XINT (n) > 0) { /* Ok since old and new vals both nonneg */ XSETFASTINT (n, XFASTINT (n) - 1); internal_self_insert (character, XFASTINT (n) != 0); } } return Qnil; } **************************************** (a function called bitch_at_user() --- that's a good one) I learn a lot by using apropos. Joel -- Joel J. Adamson Biostatistician Pediatric Psychopharmacology Research Unit Massachusetts General Hospital Boston, MA 02114 (617) 643-1432 (303) 880-3109 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: is Emacs completely written in lisp 2007-11-20 18:42 ` is Emacs completely written in lisp Joel J. Adamson @ 2007-11-21 4:00 ` arunmib 2007-11-21 14:58 ` Joel J. Adamson 0 siblings, 1 reply; 10+ messages in thread From: arunmib @ 2007-11-21 4:00 UTC (permalink / raw) To: help-gnu-emacs On Nov 20, 11:42 pm, jadam...@partners.org (Joel J. Adamson) wrote: > arunmib <arun...@gmail.com> writes: > > On Nov 20, 5:04 pm, Marc Tfardy <m-t-o___CUT__IT...@web.de> wrote: > >> arunmib schrieb: > > >> > Hi all, > >> > Is Emacs completely written in Lisp or is written in combination > >> > with some other language. What I am trying to ask is the UI and other > >> > OS dependent stuff (if any, I don't know this thing) is also written > >> > in Lisp or some other language, like C is also used.... > > >> C + ELisp > > >> Marc > > > Out of curiosity, can you tell me how? just a general overview or some > > place where I can read, how this is done? > > Stallman's article is a good place to hear about the why and how:http://www.gnu.org/gnu/rms-lisp.html. My understanding is that the > functions that really need to work fast and often, as well as > the Emacs Lisp interpreter are in C. Basically the backbone is C and > the Lisp interpreter (a full-on REPL) takes care of the rest. If you > `M-x apropos' and look up a function name, it will tell you if it's in C > or Lisp, along with a link to the file where you can find the function. > > - Show quoted text - Thanks a lot for the useful disucssion ppl. I will go through the links. But before that by reading these posts as a crude form of understanding, can I say that what ever I type in as command is parsed through the Lisp interpreter and the appropriate C or Lisp function is called. Is my understanding correct or ? ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: is Emacs completely written in lisp 2007-11-21 4:00 ` arunmib @ 2007-11-21 14:58 ` Joel J. Adamson 0 siblings, 0 replies; 10+ messages in thread From: Joel J. Adamson @ 2007-11-21 14:58 UTC (permalink / raw) To: help-gnu-emacs arunmib <arunmib@gmail.com> writes: > On Nov 20, 11:42 pm, jadam...@partners.org (Joel J. Adamson) wrote: >> arunmib <arun...@gmail.com> writes: >> > On Nov 20, 5:04 pm, Marc Tfardy <m-t-o___CUT__IT...@web.de> wrote: >> >> arunmib schrieb: >> >> >> > Hi all, >> >> > Is Emacs completely written in Lisp or is written in combination >> >> > with some other language. What I am trying to ask is the UI and other >> >> > OS dependent stuff (if any, I don't know this thing) is also written >> >> > in Lisp or some other language, like C is also used.... >> >> >> C + ELisp >> >> >> Marc >> >> > Out of curiosity, can you tell me how? just a general overview or some >> > place where I can read, how this is done? >> >> Stallman's article is a good place to hear about the why and how:http://www.gnu.org/gnu/rms-lisp.html. My understanding is that the >> functions that really need to work fast and often, as well as >> the Emacs Lisp interpreter are in C. Basically the backbone is C and >> the Lisp interpreter (a full-on REPL) takes care of the rest. If you >> `M-x apropos' and look up a function name, it will tell you if it's in C >> or Lisp, along with a link to the file where you can find the function. >> >> - Show quoted text - > > Thanks a lot for the useful disucssion ppl. > I will go through the links. But before that by reading these posts as > a crude form of understanding, can I say that what ever I type in as > command is parsed through the Lisp interpreter and the appropriate C > or Lisp function is called. Is my understanding correct or ? AFAIK, yes. But those Lisp commands are written in C --- this is the angle that Marc et al. explained. For example, in the C I quoted from the documentation, the function is a DEFUN. Joel -- Joel J. Adamson Biostatistician Pediatric Psychopharmacology Research Unit Massachusetts General Hospital Boston, MA 02114 (617) 643-1432 (303) 880-3109 ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2007-12-16 17:52 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2007-11-20 11:30 is Emacs completely written in lisp arunmib 2007-11-20 12:04 ` Marc Tfardy 2007-11-20 16:58 ` arunmib 2007-11-20 17:14 ` B. T. Raven 2007-11-20 18:01 ` rustom 2007-11-20 18:47 ` The Lisp High (was: is Emacs completely written in lisp) Joel J. Adamson 2007-12-16 17:52 ` David Combs 2007-11-20 18:42 ` is Emacs completely written in lisp Joel J. Adamson 2007-11-21 4:00 ` arunmib 2007-11-21 14:58 ` Joel J. Adamson
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).