Mercurial > hg > xemacs-beta
view man/lispref/errors.texi @ 939:025200a2163c
[xemacs-hg @ 2002-07-31 07:23:39 by michaels]
2002-07-17 Marcus Crestani <crestani@informatik.uni-tuebingen.de>
Markus Kaltenbach <makalten@informatik.uni-tuebingen.de>
Mike Sperber <mike@xemacs.org>
configure flag to turn these changes on: --use-kkcc
First we added a dumpable flag to lrecord_implementation. It shows,
if the object is dumpable and should be processed by the dumper.
* lrecord.h (struct lrecord_implementation): added dumpable flag
(MAKE_LRECORD_IMPLEMENTATION): fitted the different makro definitions
to the new lrecord_implementation and their calls.
Then we changed mark_object, that it no longer needs a mark method for
those types that have pdump descritions.
* alloc.c:
(mark_object): If the object has a description, the new mark algorithm
is called, and the object is marked according to its description.
Otherwise it uses the mark method like before.
These procedures mark objects according to their descriptions. They
are modeled on the corresponding pdumper procedures.
(mark_with_description):
(get_indirect_count):
(structure_size):
(mark_struct_contents):
These procedures still call mark_object, this is needed while there are
Lisp_Objects without descriptions left.
We added pdump descriptions for many Lisp_Objects:
* extents.c: extent_auxiliary_description
* database.c: database_description
* gui.c: gui_item_description
* scrollbar.c: scrollbar_instance_description
* toolbar.c: toolbar_button_description
* event-stream.c: command_builder_description
* mule-charset.c: charset_description
* device-msw.c: devmode_description
* dialog-msw.c: mswindows_dialog_id_description
* eldap.c: ldap_description
* postgresql.c: pgconn_description
pgresult_description
* tooltalk.c: tooltalk_message_description
tooltalk_pattern_description
* ui-gtk.c: emacs_ffi_description
emacs_gtk_object_description
* events.c:
* events.h:
* event-stream.c:
* event-Xt.c:
* event-gtk.c:
* event-tty.c:
To write a pdump description for Lisp_Event, we converted every struct
in the union event to a Lisp_Object. So we created nine new
Lisp_Objects: Lisp_Key_Data, Lisp_Button_Data, Lisp_Motion_Data,
Lisp_Process_Data, Lisp_Timeout_Data, Lisp_Eval_Data,
Lisp_Misc_User_Data, Lisp_Magic_Data, Lisp_Magic_Eval_Data.
We also wrote makro selectors and mutators for the fields of the new
designed Lisp_Event and added everywhere these new abstractions.
We implemented XD_UNION support in (mark_with_description), so
we can describe exspecially console/device specific data with XD_UNION.
To describe with XD_UNION, we added a field to these objects, which
holds the variant type of the object. This field is initialized in
the appendant constructor. The variant is an integer, it has also to
be described in an description, if XD_UNION is used.
XD_UNION is used in following descriptions:
* console.c: console_description
(get_console_variant): returns the variant
(create_console): added variant initialization
* console.h (console_variant): the different console types
* console-impl.h (struct console): added enum console_variant contype
* device.c: device_description
(Fmake_device): added variant initialization
* device-impl.h (struct device): added enum console_variant devtype
* objects.c: image_instance_description
font_instance_description
(Fmake_color_instance): added variant initialization
(Fmake_font_instance): added variant initialization
* objects-impl.h (struct Lisp_Color_Instance): added color_instance_type
* objects-impl.h (struct Lisp_Font_Instance): added font_instance_type
* process.c: process_description
(make_process_internal): added variant initialization
* process.h (process_variant): the different process types
author | michaels |
---|---|
date | Wed, 31 Jul 2002 07:23:39 +0000 |
parents | 576fb035e263 |
children |
line wrap: on
line source
@c -*-texinfo-*- @c This is part of the XEmacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993 Free Software Foundation, Inc. @c See the file lispref.texi for copying conditions. @setfilename ../../info/errors.info @node Standard Errors, Standard Buffer-Local Variables, Building XEmacs and Object Allocation, Top @appendix Standard Errors Here is the complete list of the error symbols in standard Emacs, grouped by concept. The list includes each symbol's message (on the @code{error-message} property of the symbol) and a cross reference to a description of how the error can occur. Each error symbol has an @code{error-conditions} property that is a list of symbols. Normally this list includes the error symbol itself and the symbol @code{error}. Occasionally it includes additional symbols, which are intermediate classifications, narrower than @code{error} but broader than a single error symbol. For example, all the errors in accessing files have the condition @code{file-error}. As a special exception, the error symbol @code{quit} does not have the condition @code{error}, because quitting is not considered an error. @xref{Errors}, for an explanation of how errors are generated and handled. @table @code @item @var{symbol} @var{string}; @var{reference}. @item error @code{"error"}@* @xref{Errors}. @item quit @code{"Quit"}@* @xref{Quitting}. @item args-out-of-range @code{"Args out of range"}@* @xref{Sequences Arrays Vectors}. @item arith-error @code{"Arithmetic error"}@* See @code{/} and @code{%} in @ref{Numbers}. @item beginning-of-buffer @code{"Beginning of buffer"}@* @xref{Motion}. @item buffer-read-only @code{"Buffer is read-only"}@* @xref{Read Only Buffers}. @item cyclic-function-indirection @code{"Symbol's chain of function indirections contains a loop"}@* @xref{Function Indirection}. @c XEmacs feature @item domain-error @code{"Arithmetic domain error"}@* @item end-of-buffer @code{"End of buffer"}@* @xref{Motion}. @item end-of-file @code{"End of file during parsing"}@* This is not a @code{file-error}.@* @xref{Input Functions}. @item file-error This error and its subcategories do not have error-strings, because the error message is constructed from the data items alone when the error condition @code{file-error} is present.@* @xref{Files}. @item file-locked This is a @code{file-error}.@* @xref{File Locks}. @item file-already-exists This is a @code{file-error}.@* @xref{Writing to Files}. @item file-supersession This is a @code{file-error}.@* @xref{Modification Time}. @item invalid-byte-code @code{"Invalid byte code"}@* @xref{Byte Compilation}. @item invalid-function @code{"Invalid function"}@* @xref{Classifying Lists}. @item invalid-read-syntax @code{"Invalid read syntax"}@* @xref{Input Functions}. @item invalid-regexp @code{"Invalid regexp"}@* @xref{Regular Expressions}. @c XEmacs feature @item mark-inactive @code{"The mark is not active now"}@* @item no-catch @code{"No catch for tag"}@* @xref{Catch and Throw}. @c XEmacs feature @item overflow-error @code{"Arithmetic overflow error"}@* @c XEmacs feature @item protected-field @code{"Attempt to modify a protected field"}@* @c XEmacs feature @item range-error @code{"Arithmetic range error"}@* @item search-failed @code{"Search failed"}@* @xref{Searching and Matching}. @item setting-constant @code{"Attempt to set a constant symbol"}@* @xref{Constant Variables, , Variables that Never Change}. @c XEmacs feature @item singularity-error @code{"Arithmetic singularity error"}@* @c XEmacs feature @item tooltalk-error @code{"ToolTalk error"}@* @xref{ToolTalk Support}. @c XEmacs feature @item undefined-keystroke-sequence @code{"Undefined keystroke sequence"}@* @ignore FSF Emacs only @item undefined-color @code{"Undefined color"}@* @xref{Color Names}. @end ignore @item void-function @code{"Symbol's function definition is void"}@* @xref{Function Cells}. @item void-variable @code{"Symbol's value as variable is void"}@* @xref{Accessing Variables}. @item wrong-number-of-arguments @code{"Wrong number of arguments"}@* @xref{Classifying Lists}. @item wrong-type-argument @code{"Wrong type argument"}@* @xref{Type Predicates}. @end table These error types, which are all classified as special cases of @code{arith-error}, can occur on certain systems for invalid use of mathematical functions. @table @code @item domain-error @code{"Arithmetic domain error"}@* @xref{Math Functions}. @item overflow-error @code{"Arithmetic overflow error"}@* @xref{Math Functions}. @item range-error @code{"Arithmetic range error"}@* @xref{Math Functions}. @item singularity-error @code{"Arithmetic singularity error"}@* @xref{Math Functions}. @item underflow-error @code{"Arithmetic underflow error"}@* @xref{Math Functions}. @end table