]> gitweb.factorcode.org Git - factor.git/blob - vm/errors.hpp
VM: looks like ERROR_C_STRING is never thrown, so it can be removed
[factor.git] / vm / errors.hpp
1 namespace factor {
2
3 // Runtime errors must be kept in sync with:
4 //   basis/debugger/debugger.factor
5 //   core/kernel/kernel.factor
6 enum vm_error_type {
7   ERROR_EXPIRED = 0,
8   ERROR_IO,
9   ERROR_NOT_IMPLEMENTED,
10   ERROR_TYPE,
11   ERROR_DIVIDE_BY_ZERO,
12   ERROR_SIGNAL,
13   ERROR_ARRAY_SIZE,
14   ERROR_OUT_OF_FIXNUM_RANGE,
15   ERROR_FFI,
16   ERROR_UNDEFINED_SYMBOL,
17   ERROR_DATASTACK_UNDERFLOW,
18   ERROR_DATASTACK_OVERFLOW,
19   ERROR_RETAINSTACK_UNDERFLOW,
20   ERROR_RETAINSTACK_OVERFLOW,
21   ERROR_CALLSTACK_UNDERFLOW,
22   ERROR_CALLSTACK_OVERFLOW,
23   ERROR_MEMORY,
24   ERROR_FP_TRAP,
25   ERROR_INTERRUPT,
26   ERROR_CALLBACK_SPACE_OVERFLOW
27 };
28
29 void fatal_error(const char* msg, cell tagged);
30 void critical_error(const char* msg, cell tagged);
31 void out_of_memory(const char* msg);
32 void memory_signal_handler_impl();
33 void fp_signal_handler_impl();
34 void synchronous_signal_handler_impl();
35
36 }