diff -uNr TEST.gcl/gcl/h/att_ext.h agcl/agcl/h/att_ext.h --- TEST.gcl/gcl/h/att_ext.h Sun Oct 27 16:35:06 2002 +++ agcl/agcl/h/att_ext.h Wed Nov 6 21:35:26 2002 @@ -116,6 +116,54 @@ double object_to_double(); /* error.c */ +EXTER object Icall_error_handler(); +/*new lisp symbols for naming ansi conditions*/ +EXTER object sLarithmetic_error; +EXTER object sLcell_error; +EXTER object sLcondition; +EXTER object sLcontrol_error; +EXTER object sLdivision_by_zero; +EXTER object sLend_of_file; +EXTER object sLerror; +EXTER object sLfile_error; +EXTER object sLfloating_point_inexact; +EXTER object sLfloating_point_invalid_operation; +EXTER object sLfloating_point_overflow; +EXTER object sLfloating_point_underflow; +EXTER object sLpackage_error; +EXTER object sLparse_error; +EXTER object sLprint_not_readable; +EXTER object sLprogram_error; +EXTER object sLreader_error; +EXTER object sLserious_condition; +EXTER object sLsimple_condition; +EXTER object sLsimple_error; +EXTER object sLsimple_type_error; +EXTER object sLsimple_warning; +EXTER object sLstorage_condition; +EXTER object sLstream_error; +EXTER object sLstyle_warning; +EXTER object sLtype_error; +EXTER object sLunbound_slot; +EXTER object sLunbound_variable; +EXTER object sLundefined_function; +EXTER object sLwarning; + + +/*conditions that inherit from ansi*/ +/* we follow the ansi convention that 'simple-xyz-error' + names an error that takes a format string as its + first arg. This simplifies things nicely in kcl-cond.lisp*/ +EXTER object sKsimple_storage_condition; +EXTER object sKsimple_program_error; +EXTER object sKsimple_control_error; +EXTER object sKsimple_reader_error; +EXTER object sKsimple_package_error; +EXTER object sKsimple_fp_overflow; +EXTER object sKsimple_parse_error; + +/*old keywords*/ +EXTER object sKpackage_error; EXTER object sKerror; EXTER object sKwrong_type_argument; EXTER object sKcatch; @@ -129,7 +177,7 @@ EXTER object sKinvalid_variable; EXTER object sKundefined_function; EXTER object sKinvalid_function; -EXTER object sKpackage_error; + object wrong_type_argument(); EXTER object sSuniversal_error_handler; @@ -353,7 +401,12 @@ EXTER object lisp_package; EXTER object user_package; #ifdef ANSI_COMMON_LISP +EXTER object slot_accessor_name_package; EXTER object common_lisp_package; +EXTER object walker_package; +EXTER object iterate_package; +EXTER object pcl_package; +EXTER object conditions_package; #endif EXTER object keyword_package; EXTER object system_package; diff -uNr TEST.gcl/gcl/h/linux.h agcl/agcl/h/linux.h --- TEST.gcl/gcl/h/linux.h Sun Oct 27 21:23:53 2002 +++ agcl/agcl/h/linux.h Mon Nov 4 17:54:01 2002 @@ -20,14 +20,18 @@ endofelf=offset = eheader.e_shoff+ eheader.e_shentsize *eheader.e_shnum;\ fseek(fp, eheader.e_shoff, SEEK_SET); \ if ( eheader.e_shentsize != sizeof(ElfW(Shdr)) ) \ - { FEerror("Bad ELF section header size",0); } \ + { Icall_error_handler(sLsimple_error, \ + make_simple_string("Bad ELF section header size"), \ + 0); } \ for ( j = 0; j < eheader.e_shnum; j++ ) \ { fread(&shdr,eheader.e_shentsize,1,fp); \ if ( (shdr.sh_offset > offset) && (shdr.sh_type != SHT_NOBITS) ) \ { offset = shdr.sh_offset; endofelf = offset+shdr.sh_size; } \ } \ if ( fseek(fp, endofelf, SEEK_SET) ) \ - FEerror("Bad ELF file",0); \ + Icall_error_handler(sLsimple_error, \ + make_simple_string("Bad ELF file"), \ + 0); \ } while(0) diff -uNr TEST.gcl/gcl/h/new_decl.h agcl/agcl/h/new_decl.h --- TEST.gcl/gcl/h/new_decl.h Tue Oct 29 22:20:52 2002 +++ agcl/agcl/h/new_decl.h Mon Nov 4 17:54:01 2002 @@ -84,6 +84,43 @@ EXTER object sLunsigned_short ; EXTER object sLA ; EXTER object sLplusp ; +EXTER object sLarithmetic_error ; +EXTER object sLcell_error ; +EXTER object sLcondition ; +EXTER object sLcontrol_error ; +EXTER object sLdivision_by_zero ; +EXTER object sLend_of_file ; +EXTER object sLerror ; +EXTER object sLfile_error ; +EXTER object sLfloating_point_inexact ; +EXTER object sLfloating_point_invalid_operation ; +EXTER object sLfloating_point_overflow ; +EXTER object sLfloating_point_underflow ; +EXTER object sLpackage_error ; +EXTER object sLparse_error ; +EXTER object sLprint_not_readable ; +EXTER object sLprogram_error ; +EXTER object sLreader_error ; +EXTER object sLserious_condition ; +EXTER object sLsimple_condition ; +EXTER object sLsimple_error ; +EXTER object sLsimple_type_error ; +EXTER object sLsimple_warning ; +EXTER object sLstorage_condition ; +EXTER object sLstream_error ; +EXTER object sLstyle_warning ; +EXTER object sLtype_error ; +EXTER object sLunbound_slot ; +EXTER object sLunbound_variable ; +EXTER object sLundefined_function ; +EXTER object sLwarning ; +EXTER object sKsimple_storage_condition ; +EXTER object sKsimple_program_error ; +EXTER object sKsimple_control_error ; +EXTER object sKsimple_reader_error ; +EXTER object sKsimple_package_error ; +EXTER object sKsimple_fp_overflow ; +EXTER object sKsimple_parse_error ; EXTER object sLmethod_combination ; EXTER object sLarithmetic_error ; EXTER object sLbase_char ; @@ -414,6 +451,42 @@ EXTER object sKcatch ; EXTER object sKprotect ; EXTER object sKcatchall ; +EXTER object sLarithmetic_error ; +EXTER object sLcell_error ; +EXTER object sLcontrol_error ; +EXTER object sLdivision_by_zero ; +EXTER object sLend_of_file ; +EXTER object sLerror ; +EXTER object sLfile_error ; +EXTER object sLfloating_point_inexact ; +EXTER object sLfloating_point_invalid_operation ; +EXTER object sLfloating_point_overflow ; +EXTER object sLfloating_point_underflow ; +EXTER object sLpackage_error ; +EXTER object sLparse_error ; +EXTER object sLprint_not_readable ; +EXTER object sLprogram_error ; +EXTER object sLreader_error ; +EXTER object sLserious_condition ; +EXTER object sLsimple_condition ; +EXTER object sLsimple_error ; +EXTER object sLsimple_type_error ; +EXTER object sLsimple_warning ; +EXTER object sLstorage_condition ; +EXTER object sLstream_error ; +EXTER object sLstyle_warning ; +EXTER object sLtype_error ; +EXTER object sLunbound_slot ; +EXTER object sLunbound_variable ; +EXTER object sLundefined_function ; +EXTER object sLwarning ; +EXTER object sKsimple_storage_condition ; +EXTER object sKsimple_program_error ; +EXTER object sKsimple_control_error ; +EXTER object sKsimple_reader_error ; +EXTER object sKsimple_package_error ; +EXTER object sKsimple_fp_overflow ; +EXTER object sKsimple_parse_error ; EXTER object fLget_universal_time (); EXTER object fLget_internal_real_time (); EXTER object sSAdefault_time_zoneA ; diff -uNr TEST.gcl/gcl/h/notcomp.h agcl/agcl/h/notcomp.h --- TEST.gcl/gcl/h/notcomp.h Tue Sep 24 21:01:45 2002 +++ agcl/agcl/h/notcomp.h Wed Nov 6 21:35:26 2002 @@ -22,7 +22,12 @@ EXTER object lisp_package,user_package; #ifdef ANSI_COMMON_LISP +EXTER object slot_accessor_name_package; EXTER object common_lisp_package; +EXTER object walker_package; +EXTER object iterate_package; +EXTER object pcl_package; +EXTER object conditions_package; #endif EXTER char *core_end; EXTER int catch_fatal; diff -uNr TEST.gcl/gcl/h/object.h agcl/agcl/h/object.h --- TEST.gcl/gcl/h/object.h Sun Oct 27 22:06:42 2002 +++ agcl/agcl/h/object.h Mon Nov 4 17:54:01 2002 @@ -905,7 +905,9 @@ object Xxvl[65]; \ {int i; \ new=Xxvl; \ - if (n >= 65) FEerror("Too plong vl",0); \ + if (n >= 65) Icall_error_handler(sLsimple_error, \ + make_simple_string("Too plong vl"), \ + 0); \ for (i=0 ; i < (n); i++) new[i]=va_arg(vl,object);} #endif #define make_si_vfun(s,f,min,max) \ diff -uNr TEST.gcl/gcl/h/protoize.h agcl/agcl/h/protoize.h --- TEST.gcl/gcl/h/protoize.h Sun Oct 27 21:23:53 2002 +++ agcl/agcl/h/protoize.h Mon Nov 4 17:54:01 2002 @@ -254,7 +254,7 @@ /* error.c:118:OF */ extern void call_error_handler (void); /* () */ /* error.c:147:OF */ extern void Lerror (void); /* () */ /* error.c:164:OF */ extern void Lcerror (void); /* () */ -/* error.c:184:OF */ extern void FEerror (/* char *s, int num, ... */); /* (s, num, arg1, arg2, arg3, arg4) char *s; int num; object arg1; object arg2; object arg3; object arg4; */ +/* error.c:184:OF extern void FEerror ( char *s, int num, ... ); (s, num, arg1, arg2, arg3, arg4) char *s; int num; object arg1; object arg2; object arg3; object arg4; */ /* error.c:203:OF */ extern void FEwrong_type_argument (object type, object value); /* (type, value) object type; object value; */ /* error.c:210:OF */ extern void FEtoo_few_arguments (object *base, object *top); /* (base, top) object *base; object *top; */ /* error.c:219:OF */ extern void FEtoo_few_argumentsF (object args); /* (args) object args; */