From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Emanuel Berg Newsgroups: gmane.emacs.help Subject: Re: Where can I find some documents about the architecture of emacs? Date: Mon, 24 Aug 2015 22:23:08 +0200 Message-ID: <87y4h0jv0z.fsf@nl106-137-147.student.uu.se> References: <20150824151757.GA8023@debian> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1440447927 2017 80.91.229.3 (24 Aug 2015 20:25:27 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 24 Aug 2015 20:25:27 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Mon Aug 24 22:25:18 2015 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ZTyIv-0007gB-Bg for geh-help-gnu-emacs@m.gmane.org; Mon, 24 Aug 2015 22:25:17 +0200 Original-Received: from localhost ([::1]:56615 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZTyIu-0003ku-OR for geh-help-gnu-emacs@m.gmane.org; Mon, 24 Aug 2015 16:25:16 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:38790) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZTyIh-0003jy-SK for help-gnu-emacs@gnu.org; Mon, 24 Aug 2015 16:25:04 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZTyIe-0005An-H4 for help-gnu-emacs@gnu.org; Mon, 24 Aug 2015 16:25:03 -0400 Original-Received: from plane.gmane.org ([80.91.229.3]:49379) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZTyIe-0005AV-Af for help-gnu-emacs@gnu.org; Mon, 24 Aug 2015 16:25:00 -0400 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1ZTyIb-0007SJ-O8 for help-gnu-emacs@gnu.org; Mon, 24 Aug 2015 22:24:57 +0200 Original-Received: from nl106-137-190.student.uu.se ([130.243.137.190]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 24 Aug 2015 22:24:57 +0200 Original-Received: from embe8573 by nl106-137-190.student.uu.se with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 24 Aug 2015 22:24:57 +0200 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: help-gnu-emacs@gnu.org Original-Lines: 48 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: nl106-137-190.student.uu.se Mail-Copies-To: never User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux) Cancel-Lock: sha1:rc0qAcvhh8md/vE/LlGDZCtg1sE= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:106816 Archived-At: Navy Cheng writes: > I want to learn something about the desgin of emacs > and want to find the elisp interpretor part of > emacs. Now, I know the C part is in ./src, but > I don't know which file/files is about > the interpretor. > > I find that many of the documents in the source tree > is about *how to use emacs* other than *the > architecture of emacs*. Is there any docs I want? First there is C, then there is Lisp. The C is an ordinary compiled binary. In Emacs, there is a kernel "process" that runs all the time. When you don't do anything, the idle-timer executes stuff that needs to be done, for example font locking (or "syntax highlighting"). So Emacs is an OS tho not a POSIX style OS (e.g., Unix, Linux). Those OSs (the Unixes) are preemptive where processes compete for CPU time - the kernel is basically a scheduler - based on process metadata, e.g., an integer to express priority, the scheduler controls what process should gain access to computer resources, including the very CPU for execution. In Emacs there is no such competition as stuff gets done when the user don't do anything - *idle*-timer, remember? But, doesn't that mean you can stall the whole thing by just doing stuff all the time? Yes! But this odd form of stalling doesn't happen in practice. Because of the lack of competition (and preemption in particular), the Emacs architecture is sometimes called collaborative, which is a good word. (Contrary to what some people think, collaborating does not imply the people doing it being soft-spoken aristocrats.) There are people on this list that can tell you more, but it is a start. -- underground experts united http://user.it.uu.se/~embe8573