35 if ( cell.
payload.string.character == 0 ) {
37 L
"\t\t%ls cell: termination; next at page %d offset %d, count %u\n",
43 L
"\t\t%ls cell: character '%lc' (%d) with hash %d; next at page %d offset %d, count %u\n",
45 ( wint_t ) cell.
payload.string.character,
51 print( output, pointer );
61 url_fwprintf( output, L
"\t%4.4s (%d) at page %d, offset %d count %u\n",
65 switch ( cell.
tag.value ) {
68 L
"\t\tCons cell: car at page %d offset %d, cdr at page %d "
69 L
"offset %d, count %u :",
74 print( output, pointer );
83 L
"\t\tFree cell: next at page %d offset %d\n",
88 url_fwprintf( output, L
"\t\tInteger cell: value %ld, count %u\n",
91 url_fputws( L
"\t\tBIGNUM! More at:\n", output );
99 url_fwprintf( output, L
"\t\t\u03bb cell;\n\t\t args: " );
108 url_fwprintf( output, L
"\t\tn\u03bb cell; \n\t\targs: " );
116 L
"\t\tRational cell: value %ld/%ld, count %u\n",
120 integer.value, cell.
count );
123 url_fputws( L
"\t\tInput stream; metadata: ", output );
128 url_fwprintf( output, L
"\t\tReal cell: value %Lf, count %u\n",
141 L
"\t\tPointer to vector-space object at %p\n",
142 cell.
payload.vectorp.address );
145 L
"\t\tVector space object of type %4.4s (%d), payload size "
161 url_fputws( L
"\t\tOutput stream; metadata: ", output );
#define KEYTV
The string KEYW, considered as an unsigned int.
#define VECTORPOINTTV
The string VECP, considered as an unsigned int.
#define SYMBOLTV
The string SYMB, considered as an unsigned int.
union cons_space_object::@2 tag
union cons_space_object::@3 payload
uint32_t page
the index of the page on which this cell resides
#define STRINGTV
The string STRG, considered as an unsigned int.
#define INTEGERTV
The string INTR, considered as an unsigned int.
#define FREETV
The string FREE, considered as an unsigned int.
#define RATIOTV
The string RTIO, considered as an unsigned int.
#define CONSTV
The string CONS, considered as an unsigned int.
#define nilp(conspoint)
true if conspoint points to the special cell NIL, else false (there should only be one of these so it...
#define NLAMBDATV
The string NLMD, considered as an unsigned int.
#define TRUETV
The string TRUE, considered as an unsigned int.
uint32_t count
the count of the number of references to this cell
uint32_t offset
the index of the cell within the page
#define REALTV
The string REAL, considered as an unsigned int.
#define NILTV
The string NIL, considered as an unsigned int.
#define EXCEPTIONTV
The string EXEP, considered as an unsigned int.
#define LAMBDATV
The string LMDA, considered as an unsigned int.
#define WRITETV
The string WRIT, considered as an unsigned int.
#define READTV
The string READ, considered as an unsigned int.
#define pointer2cell(pointer)
given a cons_pointer as argument, return the cell.
An indirect pointer to a cons cell.
void dump_object(URL_FILE *output, struct cons_pointer pointer)
dump the object at this cons_pointer to this output stream.
void dump_string_cell(URL_FILE *output, wchar_t *prefix, struct cons_pointer pointer)
#define url_fputws(ws, f)
#define url_fwprintf(f,...)
void dump_map(URL_FILE *output, struct cons_pointer pointer)
struct cons_pointer print(URL_FILE *output, struct cons_pointer pointer)
Print the cons-space object indicated by pointer to the stream indicated by output.
void dump_frame(URL_FILE *output, struct cons_pointer frame_pointer)
Dump a stackframe to this stream for debugging.
void dump_stack_trace(URL_FILE *output, struct cons_pointer pointer)
struct vector_space_header header
the header of this object
union vector_space_header::@4 tag
the tag (type) of this vector-space object.
uint64_t size
the size of my payload, in bytes
a vector_space_object is just a vector_space_header followed by a lump of bytes; what we deem to be i...