From: Eli Zaretskii <eliz@gnu.org>
To: Fren Zeee <frenzeee@gmail.com>
Cc: emacs-devel@gnu.org
Subject: Re: What is emacs architecture ?
Date: Thu, 08 Jul 2010 10:06:00 +0300 [thread overview]
Message-ID: <83ocei78rr.fsf@gnu.org> (raw)
In-Reply-To: <AANLkTimjug0gsOd9vRYtk3b9DFp-NgyS_O8S3TwA3Ql4@mail.gmail.com>
> Date: Wed, 7 Jul 2010 15:28:42 -0700
> From: Fren Zeee <frenzeee@gmail.com>
> Cc: Stephen Berman <stephen.berman@gmx.net>, emacs-devel@gnu.org
>
> Where do you get the very minimal of the emacs code ? For anyone to
> contribute to emacs, there has to be some very minimal code to be read
> and understood and also documenting the journey for future reference
> when the person starts forgetting.
As you probably already understood, there's no single document that
includes what you want. Here's some stuff that does exist and can be
used instead:
. The top-level Emacs processing loop is described in the "Command
Loop" chapter of the ELisp manual.
. Some information about the internals and the Emacs build system is
in the "GNU Emacs Internals" appendix of the ELisp manual. This
includes sections about writing Emacs primitives, garbage
collection, object internals, etc.
. The basic building blocks of the Emacs architecture are spelled out
as names of the chapters you see in the top-level menu of the ELisp
manual (when you read it on-line). If you _really_ want a thorough
understanding of the architecture, you will have to read at least
the introductory portions of each of these chapters, as preparation
for the next step (below). Without a good understanding of each of
the basic objects used by Emacs, you will have hard time studying
the code.
. "Use the source, Luc!" Basic parts of the Emacs architecture are
roughly represented by its C source files. In a few cases, several
files constitute one part; a notable example is the display engine
(which takes 3 files, not counting the bidi reordering engine and
terminal-specific back ends). Each of these source files has a
large commentary at the beginning which documents its top-level
design. Read those comments, then decide whether you want to read
the rest of the module.
I agree with a few people here who told you not to bite too much at
once, lest you'll be unable to chew that. It is best to concentrate
on some specific aspect of the design, after getting some general idea
by reading the "Command Loop" chapter. What you select depends on
your interests. After selecting the aspect you want to study, read
everything related to it in the ELisp manual, and only after that read
the corresponding C code. You can easily find which C code to read by
looking up the implementation of the primitives described in the ELisp
manual.
next prev parent reply other threads:[~2010-07-08 7:06 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-07 5:50 What is emacs architecture ? Fren Zeee
2010-07-07 6:07 ` Masatake YAMATO
2010-07-07 15:26 ` Karl Fogel
2010-07-07 15:36 ` Drew Adams
2010-07-07 17:30 ` Stephen Berman
2010-07-07 20:02 ` Karl Fogel
2010-07-07 22:28 ` Fren Zeee
2010-07-07 22:32 ` Karl Fogel
2010-07-08 3:27 ` Stephen J. Turnbull
2010-07-08 4:16 ` Jeff Clough
2010-07-19 4:49 ` Fren Zeee
2010-07-08 7:06 ` Eli Zaretskii [this message]
2010-07-08 7:40 ` Thien-Thi Nguyen
2010-07-08 17:37 ` Karl Fogel
2010-07-19 4:35 ` Fren Zeee
2010-07-19 14:43 ` Óscar Fuentes
2010-07-19 17:12 ` Chad Brown
2010-07-19 22:04 ` Fren Zeee
2010-07-19 22:39 ` Chad Brown
2010-07-20 2:10 ` Stephen J. Turnbull
2010-07-20 2:58 ` Óscar Fuentes
2010-07-20 5:19 ` Stephen J. Turnbull
2010-07-20 12:53 ` Óscar Fuentes
2010-07-20 3:00 ` Miles Bader
2010-07-20 3:24 ` Óscar Fuentes
2010-07-20 5:13 ` Miles Bader
2010-07-20 12:42 ` Óscar Fuentes
2010-07-20 5:21 ` Stephen J. Turnbull
2010-07-20 6:21 ` Fren Zeee
2010-07-20 8:23 ` Stephen J. Turnbull
2010-07-20 8:59 ` Andreas Schwab
2010-07-21 3:25 ` Fren Zeee
2010-07-21 7:51 ` Andreas Schwab
2010-07-21 3:28 ` Fren Zeee
2010-07-21 14:49 ` David Robinow
2010-07-20 8:48 ` Andreas Schwab
2010-07-07 18:15 ` Fren Zeee
2010-07-08 0:09 ` Stephen J. Turnbull
2010-07-08 6:42 ` Eli Zaretskii
2010-07-08 8:22 ` Stephen J. Turnbull
2010-07-08 9:44 ` Eli Zaretskii
2010-07-07 18:51 ` Fren Zeee
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=83ocei78rr.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=frenzeee@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.