diff --git a/lisp/print.c b/lisp/print.c index 6ac12abd0e9b365dad39a84d1824098d1884f2ca..bf60f12d88f22e327472168d4b5f566901d28b9e 100644 --- a/lisp/print.c +++ b/lisp/print.c @@ -1,4 +1,4 @@ -/* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/print.c,v 1.5 1997/08/26 02:22:21 dtc Exp $ */ +/* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/print.c,v 1.6 1997/11/23 08:55:22 dtc Exp $ */ #include <stdio.h> #include "print.h" @@ -37,6 +37,12 @@ char *subtype_Names[] = { "single float", "double float", "complex", +#ifdef type_ComplexSingleFloat + "complex single float", +#endif +#ifdef type_ComplexDoubleFloat + "complex double float", +#endif "simple-array", "simple-string", "simple-bit-vector", @@ -46,8 +52,26 @@ char *subtype_Names[] = { "(simple-array (unsigned-byte 8) (*))", "(simple-array (unsigned-byte 16) (*))", "(simple-array (unsigned-byte 32) (*))", +#ifdef type_SimpleArraySignedByte8 + "(simple-array (signed-byte 8) (*))", +#endif +#ifdef type_SimpleArraySignedByte16 + "(simple-array (signed-byte 16) (*))", +#endif +#ifdef type_SimpleArraySignedByte30 + "(simple-array fixnum (*))", +#endif +#ifdef type_SimpleArraySignedByte32 + "(simple-array (signed-byte 32) (*))", +#endif "(simple-array single-float (*))", "(simple-array double-float (*))", +#ifdef type_SimpleArrayComplexSingleFloat + "(simple-array (complex single-float) (*))", +#endif +#ifdef type_SimpleArrayComplexDoubleFloat + "(simple-array (complex double-float) (*))", +#endif "complex-string", "complex-bit-vector", "(array * (*))", @@ -69,6 +93,9 @@ char *subtype_Names[] = { "weak pointer", "instance header", "fdefn" +#ifdef type_ScavengerHook + ,"scavenger hook" +#endif }; static void indent(int in) @@ -350,6 +377,9 @@ static char *fn_slots[] = {"self: ", "next: ", "name: ", "arglist: ", "type: ", static char *closure_slots[] = {"fn: ", NULL}; static char *weak_pointer_slots[] = {"value: ", NULL}; static char *fdefn_slots[] = {"name: ", "function: ", "raw_addr: ", NULL}; +#ifdef type_ScavengerHook +static char *scavenger_hook_slots[] = {"value: ", "function: ", "next: ", NULL}; +#endif static void print_otherptr(lispobj obj) { @@ -417,6 +447,24 @@ static void print_otherptr(lispobj obj) printf("%g", ((struct double_float *)PTR(obj))->value); break; +#ifdef type_ComplexSingleFloat + case type_ComplexSingleFloat: + NEWLINE; + printf("%g", ((struct complex_single_float *)PTR(obj))->real); + NEWLINE; + printf("%g", ((struct complex_single_float *)PTR(obj))->imag); + break; +#endif + +#ifdef type_ComplexDoubleFloat + case type_ComplexDoubleFloat: + NEWLINE; + printf("%g", ((struct complex_double_float *)PTR(obj))->real); + NEWLINE; + printf("%g", ((struct complex_double_float *)PTR(obj))->imag); + break; +#endif + case type_SimpleString: NEWLINE; cptr = (char *)(ptr+1); @@ -445,8 +493,26 @@ static void print_otherptr(lispobj obj) case type_SimpleArrayUnsignedByte8: case type_SimpleArrayUnsignedByte16: case type_SimpleArrayUnsignedByte32: +#ifdef type_SimpleArraySignedByte8 + case type_SimpleArraySignedByte8: +#endif +#ifdef type_SimpleArraySignedByte16 + case type_SimpleArraySignedByte16: +#endif +#ifdef type_SimpleArraySignedByte30 + case type_SimpleArraySignedByte30: +#endif +#ifdef type_SimpleArraySignedByte32 + case type_SimpleArraySignedByte32: +#endif case type_SimpleArraySingleFloat: case type_SimpleArrayDoubleFloat: +#ifdef type_SimpleArrayComplexSingleFloat + case type_SimpleArrayComplexSingleFloat: +#endif +#ifdef type_SimpleArrayComplexDoubleFloat + case type_SimpleArrayComplexDoubleFloat: +#endif case type_ComplexString: case type_ComplexBitVector: case type_ComplexVector: @@ -489,10 +555,16 @@ static void print_otherptr(lispobj obj) printf("pointer to an immediate?"); break; - case type_Fdefn: + case type_Fdefn: print_slots(fdefn_slots, count, ptr); break; +#ifdef type_ScavengerHook + case type_ScavengerHook: + print_slots(scavenger_hook_slots, count, ptr); + break; +#endif + default: NEWLINE; printf("Unknown header object?");