[Top] [Contents] [Index] [ ? ]

Table of Contents

1. Introduction
2. Authorship of XEmacs
3. A History of Emacs
3.1 Through Version 18
3.2 Epoch
3.3 Lucid Emacs
3.4 GNU Emacs 19
3.5 GNU Emacs 20
3.6 XEmacs
4. The XEmacs Split
5. XEmacs from the Outside
6. The Lisp Language
7. XEmacs from the Perspective of Building
8. Build-Time Dependencies
9. The Modules of XEmacs
9.1 A Summary of the Various XEmacs Modules
9.2 Modules for Building XEmacs
9.2.1 Modules for Build Configuration
9.2.2 Modules for Compiling XEmacs
9.2.3 Modules for Preloading Lisp
9.3 Low-Level Modules
9.4 Basic Lisp Modules
9.5 Modules for Standard Editing Operations
9.6 Modules for Interfacing with the File System
9.7 Modules for Other Aspects of the Lisp Interpreter and Object System
9.8 Modules for Interfacing with the Operating System
10. The Build Configuration System
10.1 The version.sh Script
10.2 Adding Configurable Features
10.3 The configure Script
10.4 The Makefile Precursors
11. Rules When Writing New C Code
11.1 Introduction to Writing C Code
11.2 Writing New Modules
11.3 Working with Lisp Objects
11.4 Writing Lisp Primitives
11.5 Writing Good Comments
11.6 Adding Global Lisp Variables
11.7 Writing Macros
11.8 Proper Use of Unsigned Types
11.9 Major Textual Changes
11.9.1 Great Integral Type Renaming
11.9.2 Text/Char Type Renaming
11.10 Debugging and Testing
12. Regression Testing XEmacs
12.1 How to Regression-Test
12.2 Modules for Regression Testing
13. Mercurial Techniques
13.1 Preserving Existing Changes with Mercurial Queues
14. CVS Techniques
14.1 Creating a Branch
14.2 Merging a Branch into the Trunk
15. XEmacs from the Inside
16. Basic Types
17. Low-Level Allocation
17.1 Basic Heap Allocation
17.2 Stack Allocation
17.3 Dynamic Arrays
17.4 Allocation by Blocks
17.5 Modules for Allocation
18. The XEmacs Object System (Abstractly Speaking)
19. How Lisp Objects Are Represented in C
20. Allocation of Objects in XEmacs Lisp
20.1 Introduction to Allocation
20.2 Garbage Collection
20.3 GCPROing
20.4 Garbage Collection - Step by Step
20.4.1 Invocation
20.4.2 garbage_collect_1
20.4.3 mark_object
20.4.4 gc_sweep
20.4.5 sweep_lcrecords_1
20.4.6 compact_string_chars
20.4.7 sweep_strings
20.4.8 sweep_bit_vectors_1
20.5 Fixnums and Characters
20.6 Allocation from Frob Blocks
20.7 lrecords
20.8 Low-level allocation
20.9 Cons
20.10 Vector
20.11 Bit Vector
20.12 Symbol
20.13 Marker
20.14 String
20.15 Compiled Function
21. The Lisp Reader and Compiler
22. Evaluation; Stack Frames; Bindings
22.1 Evaluation
22.2 Dynamic Binding; The specbinding Stack; Unwind-Protects
22.3 Simple Special Operators
22.4 Catch and Throw
22.5 Error Trapping
23. Symbols and Variables
23.1 Introduction to Symbols
23.2 Obarrays
23.3 Symbol Values
24. Buffers
24.1 Introduction to Buffers
24.2 Buffer Lists
24.3 Markers and Extents
24.4 The Buffer Object
25. Text
25.1 The Text in a Buffer
25.2 Ibytes and Ichars
25.3 Byte-Char Position Conversion
25.4 Searching and Matching
26. Multilingual Support
26.1 Introduction to Multilingual Issues #1
26.2 Introduction to Multilingual Issues #2
26.3 Introduction to Multilingual Issues #3
26.4 Introduction to Multilingual Issues #4
26.5 Character Sets
26.6 Encodings
26.6.1 Japanese EUC (Extended Unix Code)
26.6.2 JIS7
26.7 Internal Mule Encodings
26.7.1 Internal String Encoding
26.7.2 Internal Character Encoding
26.8 Byte/Character Types; Buffer Positions; Other Typedefs
26.8.1 Byte Types
26.8.2 Different Ways of Seeing Internal Text
26.8.3 Buffer Positions
26.8.4 Other Typedefs
26.8.5 Usage of the Various Representations
26.8.6 Working With the Various Representations
26.9 Internal Text APIs
26.9.1 Basic internal-format APIs
26.9.2 The DFC API
26.9.3 The Eistring API
26.10 Coding for Mule
26.10.1 Character-Related Data Types
26.10.2 Working With Character and Byte Positions
26.10.3 Conversion to and from External Data
26.10.4 General Guidelines for Writing Mule-Aware Code
26.10.5 An Example of Mule-Aware Code
26.10.6 Mule-izing Code
26.11 CCL
26.12 Microsoft Windows-Related Multilingual Issues
26.12.1 Microsoft Documentation
26.12.2 Locales, code pages, and other concepts of "language"
26.12.3 More about code pages
26.12.4 More about locales
26.12.5 Unicode support under Windows
26.12.6 The golden rules of writing Unicode-safe code
26.12.7 The format of the locale in setlocale()
26.12.8 Random other Windows I18N docs
26.13 Modules for Internationalization
26.14 The Great Mule Merge of March 2002
26.14.1 List of changed files in new Mule workspace
26.14.2 Changes to the MULE subsystems
26.14.3 Pervasive changes throughout XEmacs sources
26.14.4 Changes to specific subsystems
26.14.5 Mule changes by theme
26.14.6 File-coding rewrite
26.14.7 General User-Visible Changes
26.14.8 General Lisp-Visible Changes
26.14.9 User documentation
26.14.10 General internal changes
26.14.11 Ben's TODO list (probably obsolete)
26.14.12 Ben's README (probably obsolete)
27. Consoles; Devices; Frames; Windows
27.1 Introduction to Consoles; Devices; Frames; Windows
27.2 Point
27.3 Window Hierarchy
27.4 The Window Object
27.5 Modules for the Basic Displayable Lisp Objects
28. Window-System Support
28.1 Creating a Window-System Type
29. Window and Frame Geometry
29.1 Intro to Window and Frame Geometry
29.2 The Frame
29.3 The Non-Client Area
29.4 The Client Area
29.5 The Paned Area
29.6 Text Areas, Fringes, Margins
29.7 The Displayable Area
29.8 Which Functions Use Which?
30. The Redisplay Mechanism
30.1 Critical Redisplay Sections
30.1.1 Nasty Bugs due to Reentrancy in Redisplay Structures handling QUIT
30.2 Line Start Cache
30.3 Redisplay Piece by Piece
30.4 Modules for the Redisplay Mechanism
30.5 Modules for other Display-Related Lisp Objects
31. Extents
31.1 Introduction to Extents
31.2 Extent Ordering
31.3 Format of the Extent Info
31.4 Zero-Length Extents
31.5 Mathematics of Extent Ordering
31.6 Extent Fragments
32. Faces
33. Glyphs
33.1 Glyph Instantiation
33.2 Widget-Glyphs
33.3 Widget-Glyphs in the MS-Windows Environment
33.4 Widget-Glyphs in the X Environment
34. Specifiers
35. Menus
36. Events and the Event Loop
36.1 Introduction to Events
36.2 Main Loop
36.3 Specifics of the Event Gathering Mechanism
36.4 Specifics About the Emacs Event
36.5 Event Queues
36.6 Event Stream Callback Routines
36.7 Other Event Loop Functions
36.8 Stream Pairs
36.9 Converting Events
36.10 Dispatching Events; The Command Builder
36.11 Focus Handling
36.12 Editor-Level Control Flow Modules
37. Asynchronous Events; Quit Checking
37.1 Signal Handling
37.2 Control-G (Quit) Checking
37.2.1 Reentrancy Problems due to QUIT Checking
37.3 Profiling
37.4 Asynchronous Timeouts
37.5 Exiting
38. Lstreams
38.1 Creating an Lstream
38.2 Lstream Types
38.3 Lstream Functions
38.4 Lstream Methods
39. Subprocesses
39.0.1 Ben's separate stderr notes (probably obsolete)
40. Interface to MS Windows
40.1 Different kinds of Windows environments
40.2 Windows Build Flags
40.3 Windows I18N Introduction
40.4 Modules for Interfacing with MS Windows
40.5 CHANGES from 21.4-windows branch (probably obsolete)
41. Interface to the X Window System
41.1 Lucid Widget Library
41.1.1 Generic Widget Interface
41.1.2 Scrollbars
41.1.3 Menubars
41.1.4 Checkboxes and Radio Buttons
41.1.5 Progress Bars
41.1.6 Tab Controls
41.2 Modules for Interfacing with X Windows
42. Dumping
42.1 Dumping Justification
42.2 Overview
42.3 Data descriptions
42.4 Dumping phase
42.4.1 Object inventory
42.4.2 Address allocation
42.4.3 The header
42.4.4 Data dumping
42.4.5 Pointers dumping
42.5 Reloading phase
42.5.1 File loading
42.5.2 Putting back the pdump_opaques
42.5.3 Putting back the pdump_root_block_ptrs
42.5.4 Object relocation
42.5.5 Putting back the pdump_root_objects and pdump_weak_object_chains
42.5.6 Reorganize the hash tables
42.6 Remaining issues
43. Future Work
43.1 Future Work -- General Suggestions
43.2 Future Work -- Elisp Compatibility Package
43.3 Future Work -- Drag-n-Drop
43.4 Future Work -- Standard Interface for Enabling Extensions
43.5 Future Work -- Better Initialization File Scheme
43.6 Future Work -- Keyword Parameters
43.7 Future Work -- Property Interface Changes
43.8 Future Work -- Toolbars
43.8.1 Future Work -- Easier Toolbar Customization
43.8.2 Future Work -- Toolbar Interface Changes
43.9 Future Work -- Menu API Changes
43.10 Future Work -- Removal of Misc-User Event Type
43.11 Future Work -- Mouse Pointer
43.11.1 Future Work -- Abstracted Mouse Pointer Interface
43.11.2 Future Work -- Busy Pointer
43.12 Future Work -- Extents
43.12.1 Future Work -- Everything should obey duplicable extents
43.13 Future Work -- Version Number and Development Tree Organization
43.14 Future Work -- Improvements to the xemacs.org Website
43.15 Future Work -- Keybindings
43.15.1 Future Work -- Keybinding Schemes
43.15.2 Future Work -- Better Support for Windows Style Key Bindings
43.15.3 Future Work -- Misc Key Binding Ideas
43.16 Future Work -- Byte Code Snippets
43.16.1 Future Work -- Autodetection
43.16.2 Future Work -- Conversion Error Detection
43.16.3 Future Work -- Unicode
43.16.4 Future Work -- BIDI Support
43.16.5 Future Work -- Localized Text/Messages
43.16.6 Proposal for How This All Ought to Work
43.17 Future Work -- Lisp Stream API
43.18 Future Work -- Multiple Values
43.19 Future Work -- Macros
43.20 Future Work -- Specifiers
43.21 Future Work -- Display Tables
43.22 Future Work -- Making Elisp Function Calls Faster
43.23 Future Work -- Lisp Engine Replacement
43.23.1 Future Work -- Lisp Engine Discussion
43.23.2 Future Work -- Lisp Engine Replacement -- Implementation
43.23.3 Future Work -- Startup File Modification by Packages
43.24 Future Work -- Better Rendering Support
43.24.1 Better Rendering Support -- Review Criteria
43.24.2 Better Rendering Support -- Implementation
43.24.3 Better Rendering Support -- Current Status
43.24.3.1 Bugs Reported in sjt-xft
43.24.4 Better Rendering Support -- Configuration with the Interim Patches
43.24.5 Better Rendering Support -- Modern Font Support
43.24.5.1 Modern Font Support -- Font Concepts
43.24.5.2 Modern Font Support -- fontconfig
43.24.5.3 Modern Font Support -- fontconfig
44. Future Work Discussion
44.1 Discussion -- Garbage Collection
44.1.1 Discussion -- KKCC
44.1.2 Discussion -- Incremental Collector
44.1.3 Discussion -- Pure Space
44.1.4 Discussion -- Hashtable-Based Marking and Cleanup
44.1.5 Discussion -- The Anti-Cons
44.2 Discussion -- Glyphs
44.3 Discussion -- Dialog Boxes
44.4 Discussion -- Multilingual Issues
44.5 Discussion -- Instantiators and Generic Property Accessors
44.6 Discussion -- Switching to C++
44.7 Discussion -- Windows External Widget
44.8 Discussion -- Packages
44.9 Discussion -- Distribution Layout
45. Old Future Work
45.1 Old Future Work -- A Portable Unexec Replacement
45.2 Old Future Work -- Indirect Buffers
45.3 Old Future Work -- Improvements in support for non-ASCII (European) keysyms under X
45.4 Old Future Work -- RTF Clipboard Support
45.5 Old Future Work -- xemacs.org Mailing Address Changes
45.6 Old Future Work -- Lisp callbacks from critical areas of the C code
Index


This document was generated by XEmacs Webmaster on August, 3 2012 using texi2html