home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
mitsch75.zip
/
scheme-7_5_17-src.zip
/
scheme-7.5.17
/
src
/
microcode
/
errors.h
< prev
next >
Wrap
C/C++ Source or Header
|
2001-03-08
|
10KB
|
274 lines
/* -*-C-*-
$Id: errors.h,v 9.43 2001/03/08 17:03:30 cph Exp $
Copyright (c) 1987-2001 Massachusetts Institute of Technology
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at
your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* Error and termination code declarations. */
#ifndef SCM_ERRORS_H
#define SCM_ERRORS_H
/* All error and termination codes must be positive
* to allow primitives to return either an error code
* or a primitive flow control value (see const.h)
*/
#define ERR_BAD_ERROR_CODE 0x00
#define ERR_UNBOUND_VARIABLE 0x01
#define ERR_UNASSIGNED_VARIABLE 0x02
#define ERR_INAPPLICABLE_OBJECT 0x03
#define ERR_IN_SYSTEM_CALL 0x04
#define ERR_WITH_ARGUMENT 0x05
#define ERR_BAD_FRAME 0x06
#define ERR_BROKEN_COMPILED_VARIABLE 0x07
#define ERR_UNDEFINED_USER_TYPE 0x08
#define ERR_UNDEFINED_PRIMITIVE 0x09
#define ERR_EXTERNAL_RETURN 0x0A
#define ERR_EXECUTE_MANIFEST_VECTOR 0x0B
#define ERR_WRONG_NUMBER_OF_ARGUMENTS 0x0C
#define ERR_ARG_1_WRONG_TYPE 0x0D
#define ERR_ARG_2_WRONG_TYPE 0x0E
#define ERR_ARG_3_WRONG_TYPE 0x0F
#define ERR_ARG_1_BAD_RANGE 0x10
#define ERR_ARG_2_BAD_RANGE 0x11
#define ERR_ARG_3_BAD_RANGE 0x12
/* #define ERR_BAD_COMBINATION 0x13 */
/* #define ERR_FASDUMP_OVERFLOW 0x14 */
#define ERR_BAD_INTERRUPT_CODE 0x15 /* Not generated */
/* #define ERR_NO_ERRORS 0x16 */
#define ERR_FASL_FILE_TOO_BIG 0x17
#define ERR_FASL_FILE_BAD_DATA 0x18
#define ERR_IMPURIFY_OUT_OF_SPACE 0x19
/* The following do not exist in the 68000 version */
#define ERR_WRITE_INTO_PURE_SPACE 0x1A
/* #define ERR_LOSING_SPARE_HEAP 0x1B */
/* #define ERR_NO_HASH_TABLE 0x1C */
#define ERR_BAD_SET 0x1D
#define ERR_ARG_1_FAILED_COERCION 0x1E
#define ERR_ARG_2_FAILED_COERCION 0x1F
#define ERR_OUT_OF_FILE_HANDLES 0x20
/* #define ERR_SHELL_DIED 0x21 */
/* Late additions to both 68000 and C world */
#define ERR_ARG_4_BAD_RANGE 0x22
#define ERR_ARG_5_BAD_RANGE 0x23
#define ERR_ARG_6_BAD_RANGE 0x24
#define ERR_ARG_7_BAD_RANGE 0x25
#define ERR_ARG_8_BAD_RANGE 0x26
#define ERR_ARG_9_BAD_RANGE 0x27
#define ERR_ARG_10_BAD_RANGE 0x28
#define ERR_ARG_4_WRONG_TYPE 0x29
#define ERR_ARG_5_WRONG_TYPE 0x2A
#define ERR_ARG_6_WRONG_TYPE 0x2B
#define ERR_ARG_7_WRONG_TYPE 0x2C
#define ERR_ARG_8_WRONG_TYPE 0x2D
#define ERR_ARG_9_WRONG_TYPE 0x2E
#define ERR_ARG_10_WRONG_TYPE 0x2F
#define ERR_INAPPLICABLE_CONTINUATION 0x30
#define ERR_COMPILED_CODE_ERROR 0x31
#define ERR_FLOATING_OVERFLOW 0x32
#define ERR_UNIMPLEMENTED_PRIMITIVE 0x33
#define ERR_ILLEGAL_REFERENCE_TRAP 0x34
#define ERR_BROKEN_VARIABLE_CACHE 0x35
#define ERR_WRONG_ARITY_PRIMITIVES 0x36
#define ERR_IO_ERROR 0x37
#define ERR_FASDUMP_ENVIRONMENT 0x38
#define ERR_FASLOAD_BAND 0x39
#define ERR_FASLOAD_COMPILED_MISMATCH 0x3A
#define ERR_UNKNOWN_PRIMITIVE_CONTINUATION 0x3B
#define ERR_ILLEGAL_CONTINUATION 0x3C
#define ERR_STACK_HAS_SLIPPED 0x3D
#define ERR_CANNOT_RECURSE 0x3E
/*
If you add any error codes here, add them to
the table below and to utabmd.scm as well.
*/
#define MAX_ERROR 0x3E
#define ERROR_NAME_TABLE \
{ \
/* 0x00 */ "BAD-ERROR-CODE", \
/* 0x01 */ "UNBOUND-VARIABLE", \
/* 0x02 */ "UNASSIGNED-VARIABLE", \
/* 0x03 */ "INAPPLICABLE-OBJECT", \
/* 0x04 */ "OUT-OF-HASH-NUMBERS", \
/* 0x05 */ "ENVIRONMENT-CHAIN-TOO-DEEP", \
/* 0x06 */ "BAD-FRAME", \
/* 0x07 */ "BROKEN-COMPILED-VARIABLE", \
/* 0x08 */ "UNDEFINED-USER-TYPE", \
/* 0x09 */ "UNDEFINED-PRIMITIVE", \
/* 0x0A */ "EXTERNAL-RETURN", \
/* 0x0B */ "EXECUTE-MANIFEST-VECTOR", \
/* 0x0C */ "WRONG-NUMBER-OF-ARGUMENTS", \
/* 0x0D */ "ARG-1-WRONG-TYPE", \
/* 0x0E */ "ARG-2-WRONG-TYPE", \
/* 0x0F */ "ARG-3-WRONG-TYPE", \
/* 0x10 */ "ARG-1-BAD-RANGE", \
/* 0x11 */ "ARG-2-BAD-RANGE", \
/* 0x12 */ "ARG-3-BAD-RANGE", \
/* 0x13 */ "BAD-COMBINATION", \
/* 0x14 */ "FASDUMP-OVERFLOW", \
/* 0x15 */ "BAD-INTERRUPT-CODE", \
/* 0x16 */ "NO-ERRORS", \
/* 0x17 */ "FASL-FILE-TOO-BIG", \
/* 0x18 */ "FASL-FILE-BAD-DATA", \
/* 0x19 */ "IMPURIFY-OUT-OF-SPACE", \
/* 0x1A */ "WRITE-INTO-PURE-SPACE", \
/* 0x1B */ "LOSING-SPARE-HEAP", \
/* 0x1C */ "NO-HASH-TABLE", \
/* 0x1D */ "BAD-SET", \
/* 0x1E */ "ARG-1-FAILED-COERCION", \
/* 0x1F */ "ARG-2-FAILED-COERCION", \
/* 0x20 */ "OUT-OF-FILE-HANDLES", \
/* 0x21 */ "SHELL-DIED", \
/* 0x22 */ "ARG-4-BAD-RANGE", \
/* 0x23 */ "ARG-5-BAD-RANGE", \
/* 0x24 */ "ARG-6-BAD-RANGE", \
/* 0x25 */ "ARG-7-BAD-RANGE", \
/* 0x26 */ "ARG-8-BAD-RANGE", \
/* 0x27 */ "ARG-9-BAD-RANGE", \
/* 0x28 */ "ARG-10-BAD-RANGE", \
/* 0x29 */ "ARG-4-WRONG-TYPE", \
/* 0x2A */ "ARG-5-WRONG-TYPE", \
/* 0x2B */ "ARG-6-WRONG-TYPE", \
/* 0x2C */ "ARG-7-WRONG-TYPE", \
/* 0x2D */ "ARG-8-WRONG-TYPE", \
/* 0x2E */ "ARG-9-WRONG-TYPE", \
/* 0x2F */ "ARG-10-WRONG-TYPE", \
/* 0x30 */ "INAPPLICABLE-CONTINUATION", \
/* 0x31 */ "COMPILED-CODE-ERROR", \
/* 0x32 */ "FLOATING-OVERFLOW", \
/* 0x33 */ "UNIMPLEMENTED-PRIMITIVE", \
/* 0x34 */ "ILLEGAL-REFERENCE-TRAP", \
/* 0x35 */ "BROKEN-VARIABLE-CACHE", \
/* 0x36 */ "WRONG-ARITY-PRIMITIVES", \
/* 0x37 */ "IO-ERROR", \
/* 0x38 */ "FASDUMP-ENVIRONMENT", \
/* 0x39 */ "FASLOAD-BAND", \
/* 0x3A */ "FASLOAD-COMPILED-MISMATCH", \
/* 0x3B */ "UNKNOWN-PRIMITIVE-CONTINUATION", \
/* 0x3C */ "ILLEGAL-CONTINUATION", \
/* 0x3D */ "STACK-HAS-SLIPPED", \
/* 0x3E */ "CANNOT-RECURSE" \
}
/* Termination codes: the interpreter halts on these */
#define TERM_HALT 0x00
#define TERM_DISK_RESTORE 0x01
#define TERM_BROKEN_HEART 0x02
#define TERM_NON_POINTER_RELOCATION 0x03
#define TERM_BAD_ROOT 0x04
#define TERM_NON_EXISTENT_CONTINUATION 0x05
#define TERM_BAD_STACK 0x06
#define TERM_STACK_OVERFLOW 0x07
#define TERM_STACK_ALLOCATION_FAILED 0x08
#define TERM_NO_ERROR_HANDLER 0x09
#define TERM_NO_INTERRUPT_HANDLER 0x0A
#define TERM_UNIMPLEMENTED_CONTINUATION 0x0B
#define TERM_EXIT 0x0C
#define TERM_BAD_PRIMITIVE_DURING_ERROR 0x0D
#define TERM_EOF 0x0E
#define TERM_BAD_PRIMITIVE 0x0F
#define TERM_TERM_HANDLER 0x10
#define TERM_END_OF_COMPUTATION 0x11
#define TERM_INVALID_TYPE_CODE 0x12
#define TERM_COMPILER_DEATH 0x13
#define TERM_GC_OUT_OF_SPACE 0x14
#define TERM_NO_SPACE 0x15
#define TERM_SIGNAL 0x16
#define TERM_TOUCH 0x17
#define TERM_SAVE_AND_EXIT 0x18
#define TERM_TRAP 0x19
#define TERM_BAD_BACK_OUT 0x1a
/*
If you add any termination codes here, add them to
the tables below as well!
*/
#define MAX_TERMINATION 0x1a
#define TERM_NAME_TABLE \
{ \
/* 0x00 */ "HALT", \
/* 0x01 */ "DISK-RESTORE", \
/* 0x02 */ "BROKEN-HEART", \
/* 0x03 */ "NON-POINTER-RELOCATION", \
/* 0x04 */ "BAD-ROOT", \
/* 0x05 */ "NON-EXISTENT-CONTINUATION", \
/* 0x06 */ "BAD-STACK", \
/* 0x07 */ "STACK-OVERFLOW", \
/* 0x08 */ "STACK-ALLOCATION-FAILED", \
/* 0x09 */ "NO-ERROR-HANDLER", \
/* 0x0A */ "NO-INTERRUPT-HANDLER", \
/* 0x0B */ "UNIMPLEMENTED-CONTINUATION", \
/* 0x0C */ "EXIT", \
/* 0x0D */ "BAD-PRIMITIVE-DURING-ERROR", \
/* 0x0E */ "EOF", \
/* 0x0F */ "BAD-PRIMITIVE", \
/* 0x10 */ "HANDLER", \
/* 0x11 */ "END-OF-COMPUTATION", \
/* 0x12 */ "INVALID-TYPE-CODE", \
/* 0x13 */ "COMPILER-DEATH", \
/* 0x14 */ "GC-OUT-OF-SPACE", \
/* 0x15 */ "NO-SPACE", \
/* 0x16 */ "SIGNAL", \
/* 0x17 */ "TOUCH", \
/* 0x18 */ "SAVE-AND-EXIT", \
/* 0x19 */ "TERM_TRAP", \
/* 0x1a */ "BAD_BACK_OUT" \
}
#define TERM_MESSAGE_TABLE \
{ \
/* 0x00 */ "Happy Happy Joy Joy", \
/* 0x01 */ "Unrecoverable error while loading a band", \
/* 0x02 */ "Broken heart encountered", \
/* 0x03 */ "Non pointer relocation", \
/* 0x04 */ "Cannot restore control state from band", \
/* 0x05 */ "Nonexistent return code", \
/* 0x06 */ "Control stack messed up", \
/* 0x07 */ "Stack overflow: Maximum recursion depth exceeded", \
/* 0x08 */ "Not enough space for stack!", \
/* 0x09 */ "No error handler", \
/* 0x0A */ "No interrupt handler", \
/* 0x0B */ "Unimplemented return code", \
/* 0x0C */ "Inconsistency detected", \
/* 0x0D */ "Error during unknown primitive", \
/* 0x0E */ "End of input stream reached", \
/* 0x0F */ "Bad primitive invoked", \
/* 0x10 */ "Termination handler returned", \
/* 0x11 */ "End of computation", \
/* 0x12 */ "Unknown type encountered", \
/* 0x13 */ "Mismatch between compiled code and compiled code support", \
/* 0x14 */ "Out of space after garbage collection", \
/* 0x15 */ "Out of memory: Available memory exceeded", \
/* 0x16 */ "Unhandled signal received", \
/* 0x17 */ "Touch without futures support", \
/* 0x18 */ "Halt requested by external source", \
/* 0x19 */ "User requested termination after trap", \
/* 0x1a */ "Backing out of non-primitive" \
}
#endif /* SCM_ERRORS_H */