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,