Mercurial > hg > xemacs-beta
comparison man/internals/internals.texi @ 438:84b14dcb0985 r21-2-27
Import from CVS: tag r21-2-27
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:32:25 +0200 |
parents | 080151679be2 |
children | 8de8e3f6228a |
comparison
equal
deleted
inserted
replaced
437:e2a4e8b94b82 | 438:84b14dcb0985 |
---|---|
2648 | 2648 |
2649 Unfortunately, Emacs Lisp is slow, and is going to stay slow. Function | 2649 Unfortunately, Emacs Lisp is slow, and is going to stay slow. Function |
2650 calls in elisp are especially expensive. Iterating over a long list is | 2650 calls in elisp are especially expensive. Iterating over a long list is |
2651 going to be 30 times faster implemented in C than in Elisp. | 2651 going to be 30 times faster implemented in C than in Elisp. |
2652 | 2652 |
2653 To get started debugging XEmacs, take a look at the @file{gdbinit} and | 2653 To get started debugging XEmacs, take a look at the @file{.gdbinit} and |
2654 @file{dbxrc} files in the @file{src} directory. | 2654 @file{.dbxrc} files in the @file{src} directory. |
2655 @xref{Q2.1.15 - How to Debug an XEmacs problem with a debugger,,, | 2655 @xref{Q2.1.15 - How to Debug an XEmacs problem with a debugger,,, |
2656 xemacs-faq, XEmacs FAQ}. | 2656 xemacs-faq, XEmacs FAQ}. |
2657 | 2657 |
2658 After making source code changes, run @code{make check} to ensure that | 2658 After making source code changes, run @code{make check} to ensure that |
2659 you haven't introduced any regressions. If you're feeling ambitious, | 2659 you haven't introduced any regressions. If you're feeling ambitious, |
4991 | 4991 |
4992 The first thing that is checked while marking an object is whether the | 4992 The first thing that is checked while marking an object is whether the |
4993 object is a real Lisp object @code{Lisp_Type_Record} or just an integer | 4993 object is a real Lisp object @code{Lisp_Type_Record} or just an integer |
4994 or a character. Integers and characters are the only two types that are | 4994 or a character. Integers and characters are the only two types that are |
4995 stored directly - without another level of indirection, and therefore they | 4995 stored directly - without another level of indirection, and therefore they |
4996 donīt have to be marked and collected. | 4996 don't have to be marked and collected. |
4997 @xref{How Lisp Objects Are Represented in C}. | 4997 @xref{How Lisp Objects Are Represented in C}. |
4998 | 4998 |
4999 The second case is the one we have to handle. It is the one when we are | 4999 The second case is the one we have to handle. It is the one when we are |
5000 dealing with a pointer to a Lisp object. But, there exist also three | 5000 dealing with a pointer to a Lisp object. But, there exist also three |
5001 possibilities, that prevent us from doing anything while marking: The | 5001 possibilities, that prevent us from doing anything while marking: The |
5031 We start with all objects stored through @code{lcrecords}. All | 5031 We start with all objects stored through @code{lcrecords}. All |
5032 bulkier objects are allocated and handled using that scheme of | 5032 bulkier objects are allocated and handled using that scheme of |
5033 @code{lcrecords}. Each object is @code{malloc}ed separately | 5033 @code{lcrecords}. Each object is @code{malloc}ed separately |
5034 instead of placing it in one of the contiguous frob blocks. All types | 5034 instead of placing it in one of the contiguous frob blocks. All types |
5035 that are currently stored | 5035 that are currently stored |
5036 using @code{lcrecords}īs @code{alloc_lcrecord} and | 5036 using @code{lcrecords}'s @code{alloc_lcrecord} and |
5037 @code{make_lcrecord_list} are the types: vectors, buffers, | 5037 @code{make_lcrecord_list} are the types: vectors, buffers, |
5038 char-table, char-table-entry, console, weak-list, database, device, | 5038 char-table, char-table-entry, console, weak-list, database, device, |
5039 ldap, hash-table, command-builder, extent-auxiliary, extent-info, face, | 5039 ldap, hash-table, command-builder, extent-auxiliary, extent-info, face, |
5040 coding-system, frame, image-instance, glyph, popup-data, gui-item, | 5040 coding-system, frame, image-instance, glyph, popup-data, gui-item, |
5041 keymap, charset, color_instance, font_instance, opaque, opaque-list, | 5041 keymap, charset, color_instance, font_instance, opaque, opaque-list, |