Mercurial > emacs
view lispref/errors.texi @ 27142:f742c86fcc15
(Fgarbage_collect): Return number of live and free
strings.
(mark_buffer): Remove code in #if 0.
(gc_sweep): Ditto.
(UNMARK_BALANCE_INTERVALS): Give the macro statement form.
(strings_consed): New variable.
(allocate_string): Set it.
(syms_of_alloc): Add DEFVAR_INT for strings_consed.
(Fmemory_use_counts): Return strings_consed. Use Flist.
General cleanup in comments etc. Remove conditional
compilation for `standalone'.
(MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
(GC_STRING_BYTES, GC_STRING_CHARS): New macros.
(DONT_COPY_FLAG): Removed.
(SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
(struct sdata, struct sblock): New
(struct string_block): Rewritten.
(STRINGS_IN_STRING_BLOCK): New macro.
(oldest_sblock, current_sblock, total_strings, total_free_strings)
(large_sblocks, string_blocks, string_free_list): New variables.
(NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
(init_strings): Rewritten.
(allocate_string, allocate_string_data, compact_small_strings)
(free_large_strings, sweep_strings): New functions.
(STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
(struct string_block_head, current_string_block)
(first_string_block, large_string_blocks, STRING_FULLSIZE)
(STRING_PAD): Removed.
(make_uninit_multibyte_string, make_pure_string): Rewritten.
(Fgarbage_collect): Don't set mark bit in large strings.
(mark_object): Mark strings differently. Mark symbol names
differently.
(survives_gc_p): Test marked strings differently.
(gc_sweep): Sweep strings differently, unmark strings in
symbol names.
(compact_strings): Removed.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Tue, 04 Jan 2000 12:22:13 +0000 |
parents | 6119687f6888 |
children | d2e5f1b7d8e2 |
line wrap: on
line source
@c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/errors @node Standard Errors, Standard Buffer-Local Variables, GNU Emacs Internals, 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}. If we do not say here that a certain error symbol has additional error conditions, that means it has none. 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 coding-system-error @code{"Invalid coding system"}@* @xref{Coding Systems}. @item cyclic-function-indirection @code{"Symbol's chain of function indirections\@* contains a loop"}@* @xref{Function Indirection}. @item end-of-buffer @code{"End of buffer"}@* @xref{Motion}. @item end-of-file @code{"End of file during parsing"}@* Note that this is not a subcategory of @code{file-error}, because it pertains to the Lisp reader, not to file I/O. @xref{Input Functions}. @item file-already-exists This is a subcategory of @code{file-error}.@* @xref{Writing to Files}. @item file-date-error This is a subcategory of @code{file-error}. It occurs when @code{copy-file} tries and fails to set the last-modification time of the output file. @xref{Changing Files}. @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 subcategory of @code{file-error}.@* @xref{File Locks}. @item file-supersession This is a subcategory of @code{file-error}.@* @xref{Modification Time}. @item ftp-error This is a subcategory of @code{file-error}, which results from problems in accessing a remote file using ftp.@* @xref{Remote Files,,, emacs, The Emacs Manual}. @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}. @item mark-inactive @code{"Mark inactive"}@* @xref{The Mark}. @item no-catch @code{"No catch for tag"}@* @xref{Catch and Throw}. @item scan-error @code{"Scan error"}@* This happens when certain syntax-parsing functions find invalid syntax or mismatched parentheses.@* @xref{List Motion}, and @ref{Parsing Expressions}. @item search-failed @code{"Search failed"}@* @xref{Searching and Matching}. @item setting-constant @code{"Attempt to set a constant symbol"}@* The values of the symbols @code{nil} and @code{t}, and any symbols that start with @samp{:}, may not be changed.@* @xref{Constant Variables, , Variables that Never Change}. @item text-read-only @code{"Text is read-only"}@* @xref{Special Properties}. @item undefined-color @code{"Undefined color"}@* @xref{Color Names}. @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 kinds of error, which are 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