Comment le code source de GNU Emacs est-il organisé?

43

Comment le code source de GNU Emacs est-il organisé? Quels sont les modules principaux et leurs fonctionnalités? Où puis-je trouver une description officielle et à jour de l'architecture et de son code source?

Amelio Vazquez-Reina
la source

Réponses:

44

En tant que projet GNU officiel, il adhère étroitement aux normes de codage GNU et à la structure des répertoires. Cela dit, si vous explorez l’arborescence des sources, je commencerais, comme pour la plupart des projets, par le fichier README situé dans le répertoire racine.

A partir de ce fichier, il y a plusieurs sous-répertoires:

`src'       holds the C code for Emacs (the Emacs Lisp interpreter and
            its primitives, the redisplay code, and some basic editing
            functions).
`lisp'      holds the Emacs Lisp code for Emacs (almost everything else).
`leim'      holds the library of Emacs input methods, Lisp code and
            auxiliary data files required to type international characters
            which can't be directly produced by your keyboard.
`lib-src'   holds the source code for some utility programs for use by or
            with Emacs, like movemail and etags.
`etc'       holds miscellaneous architecture-independent data files
            Emacs uses, like the tutorial text and the Zippy, the Pinhead
            quote database. The contents of the `lisp', `leim', `info',
            `man', `lispref', and `lispintro' subdirectories are
            architecture-independent too.
`info'      holds the Info documentation tree for Emacs.
`doc/emacs' holds the source code for the Emacs Manual.  If you modify the
            manual sources, you will need the `makeinfo' program to produce
            an updated manual. `makeinfo' is part of the GNU Texinfo
            package; you need version 4.6 or later of Texinfo.
`doc/lispref'   holds the source code for the Emacs Lisp reference manual.
`doc/lispintro' holds the source code for the Introduction to Programming
                in Emacs Lisp manual.
`msdos'     holds configuration files for compiling Emacs under MS-DOS.
`nt'        holds various command files and documentation files that pertain
            to building and running Emacs on Windows 9X/ME/NT/2000/XP.
`test'      holds tests for various aspects of Emacs's functionality.
stsquad
la source
7
Consultez également le Guide des pirates
knarf
1
@knarf: cela explique au moins une partie de l'abominable abus de macro que je vois à chaque fois que je regarde le code C ;-)
stsquad le
1
Merci, existe-t-il un lien vers la dernière version du fichier README (vraisemblablement la référence HEAD de la branche master ou le conseil associé à la dernière version stable) que nous pourrions inclure dans cette réponse?
Amelio Vazquez-Reina
2
@ user815423426: la migration de git est maintenant terminée. Je l'ai liée à cette page.
Stsquad
1
Emacs peut toujours compiler l'utilisateur MSDOS !?
Edgar Aroutiounian