X-Git-Url: http://git.chise.org/gitweb/?p=chise%2Fxemacs-chise.git.1;a=blobdiff_plain;f=info%2Finternals.info-1;h=f57d28daeff6f770d4392893a61a29a28e8261bf;hp=5768b91d05cccdac0d9ecf55748876f5dd218d4f;hb=59eec5f21669e81977b5b1fe9bf717cab49cf7fb;hpb=afa9772e3fcbb4e80e3e4cfd1a40b4fccc6d08b8 diff --git a/info/internals.info-1 b/info/internals.info-1 index 5768b91..f57d28d 100644 --- a/info/internals.info-1 +++ b/info/internals.info-1 @@ -3,7 +3,7 @@ internals/internals.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY -* Internals: (internals). XEmacs Internals Manual. +* Internals: (internals). XEmacs Internals Manual. END-INFO-DIR-ENTRY Copyright (C) 1992 - 1996 Ben Wing. Copyright (C) 1996, 1997 Sun @@ -54,6 +54,7 @@ File: internals.info, Node: Top, Next: A History of Emacs, Prev: (dir), Up: * Rules When Writing New C Code:: * A Summary of the Various XEmacs Modules:: * Allocation of Objects in XEmacs Lisp:: +* Dumping:: * Events and the Event Loop:: * Evaluation; Stack Frames; Bindings:: * Symbols and Variables:: @@ -70,19 +71,17 @@ File: internals.info, Node: Top, Next: A History of Emacs, Prev: (dir), Up: * Menus:: * Subprocesses:: * Interface to X Windows:: -* Index:: Index including concepts, functions, variables, - and other terms. +* Index:: - --- The Detailed Node Listing --- -Here are other nodes that are inferiors of those already listed, -mentioned here so you can get to them in one step: +--- The Detailed Node Listing --- A History of Emacs * Through Version 18:: Unification prevails. * Lucid Emacs:: One version 19 Emacs. * GNU Emacs 19:: The other version 19 Emacs. +* GNU Emacs 20:: The other version 20 Emacs. * XEmacs:: The continuation of Lucid Emacs. Rules When Writing New C Code @@ -90,8 +89,17 @@ Rules When Writing New C Code * General Coding Rules:: * Writing Lisp Primitives:: * Adding Global Lisp Variables:: +* Coding for Mule:: * Techniques for XEmacs Developers:: +Coding for Mule + +* Character-Related Data Types:: +* Working With Character and Byte Positions:: +* Conversion to and from External Data:: +* General Guidelines for Writing Mule-Aware Code:: +* An Example of Mule-Aware Code:: + A Summary of the Various XEmacs Modules * Low-Level Modules:: @@ -117,7 +125,6 @@ Allocation of Objects in XEmacs Lisp * Allocation from Frob Blocks:: * lrecords:: * Low-level allocation:: -* Pure Space:: * Cons:: * Vector:: * Bit Vector:: @@ -126,6 +133,32 @@ Allocation of Objects in XEmacs Lisp * String:: * Compiled Function:: +Garbage Collection - Step by Step + +* Invocation:: +* garbage_collect_1:: +* mark_object:: +* gc_sweep:: +* sweep_lcrecords_1:: +* compact_string_chars:: +* sweep_strings:: +* sweep_bit_vectors_1:: + +Dumping + +* Overview:: +* Data descriptions:: +* Dumping phase:: +* Reloading phase:: + +Dumping phase + +* Object inventory:: +* Address allocation:: +* The header:: +* Data dumping:: +* Pointers dumping:: + Events and the Event Loop * Introduction to Events:: @@ -164,6 +197,7 @@ MULE Character Sets and Encodings * Character Sets:: * Encodings:: * Internal Mule Encodings:: +* CCL:: Encodings @@ -175,20 +209,25 @@ Internal Mule Encodings * Internal String Encoding:: * Internal Character Encoding:: -The Lisp Reader and Compiler - Lstreams +* Creating an Lstream:: Creating an lstream object. +* Lstream Types:: Different sorts of things that are streamed. +* Lstream Functions:: Functions for working with lstreams. +* Lstream Methods:: Creating new lstream types. + Consoles; Devices; Frames; Windows * Introduction to Consoles; Devices; Frames; Windows:: * Point:: * Window Hierarchy:: +* The Window Object:: The Redisplay Mechanism * Critical Redisplay Sections:: * Line Start Cache:: +* Redisplay Piece by Piece:: Extents @@ -196,21 +235,9 @@ Extents * Extent Ordering:: How extents are ordered internally. * Format of the Extent Info:: The extent information in a buffer or string. * Zero-Length Extents:: A weird special case. -* Mathematics of Extent Ordering:: A rigorous foundation. +* Mathematics of Extent Ordering:: A rigorous foundation. * Extent Fragments:: Cached information useful for redisplay. -Faces - -Glyphs - -Specifiers - -Menus - -Subprocesses - -Interface to X Windows -  File: internals.info, Node: A History of Emacs, Next: XEmacs From the Outside, Prev: Top, Up: Top @@ -243,7 +270,7 @@ language developed at MIT that underlies Emacs.) * XEmacs:: The continuation of Lucid Emacs.  -File: internals.info, Node: Through Version 18, Next: Lucid Emacs, Up: A History of Emacs +File: internals.info, Node: Through Version 18, Next: Lucid Emacs, Prev: A History of Emacs, Up: A History of Emacs Through Version 18 ================== @@ -595,8 +622,8 @@ Some of these objects (in particular windows and frames) have displayable representations, and XEmacs provides a function `redisplay()' that ensures that the display of all such objects matches their internal state. Most of the time, a standard Lisp environment is -in a "read-eval-print" loop - i.e. "read some Lisp code, execute it, -and print the results". XEmacs has a similar loop: +in a "read-eval-print" loop--i.e. "read some Lisp code, execute it, and +print the results". XEmacs has a similar loop: * read an event @@ -739,7 +766,7 @@ between C and Lisp: installed by the top-level event loop, is executed; this prints out the error and continues.) Routines can also specify cleanup code (called an "unwind-protect") that will be called when control - exits from a block of code, no matter how that exit occurs - i.e. + exits from a block of code, no matter how that exit occurs--i.e. even if a function deeply nested below it causes a non-local exit back to the top level. @@ -753,8 +780,8 @@ between C and Lisp: "see" the local variable you declared. This is actually considered a bug in Emacs Lisp and in all other early dialects of Lisp, and was corrected in Common Lisp. (In Common Lisp, you can - still declare dynamically scoped variables if you want to - they - are sometimes useful - but variables by default are "lexically + still declare dynamically scoped variables if you want to--they + are sometimes useful--but variables by default are "lexically scoped" as in C.) For those familiar with Lisp, Emacs Lisp is modelled after MacLisp, @@ -796,13 +823,13 @@ different from C): Unfortunately, there is no perfect language. Static typing allows a compiler to catch programmer errors and produce more efficient code, but -makes programming more tedious and less fun. For the forseeable future, -an Ideal Editing and Programming Environment (and that is what XEmacs -aspires to) will be programmable in multiple languages: high level ones -like Lisp for user customization and prototyping, and lower level ones -for infrastructure and industrial strength applications. If I had my -way, XEmacs would be friendly towards the Python, Scheme, C++, ML, -etc... communities. But there are serious technical difficulties to +makes programming more tedious and less fun. For the foreseeable +future, an Ideal Editing and Programming Environment (and that is what +XEmacs aspires to) will be programmable in multiple languages: high +level ones like Lisp for user customization and prototyping, and lower +level ones for infrastructure and industrial strength applications. If +I had my way, XEmacs would be friendly towards the Python, Scheme, C++, +ML, etc... communities. But there are serious technical difficulties to achieving that goal. The word "application" in the previous paragraph was used @@ -1042,7 +1069,7 @@ function by setting its name as the value of the Lisp variable When the Lisp initialization code is done, the C code enters the event loop, and stays there for the duration of the XEmacs process. -The code for the event loop is contained in `keyboard.c', and is called +The code for the event loop is contained in `cmdloop.c', and is called `Fcommand_loop_1()'. Note that this event loop could very well be written in Lisp, and in fact a Lisp version exists; but apparently, doing this makes XEmacs run noticeably slower.