mirror of
https://github.com/justinethier/cyclone.git
synced 2025-05-25 04:55:04 +02:00
Added record_tag
This commit is contained in:
parent
a6860d7ea8
commit
c3075a6396
4 changed files with 17 additions and 0 deletions
1
gc.c
1
gc.c
|
@ -967,6 +967,7 @@ char *gc_copy_obj(object dest, char *obj, gc_thread_data * thd)
|
||||||
return (char *)forward(obj);
|
return (char *)forward(obj);
|
||||||
case eof_tag:
|
case eof_tag:
|
||||||
case void_tag:
|
case void_tag:
|
||||||
|
case record_tag:
|
||||||
case primitive_tag:
|
case primitive_tag:
|
||||||
case boolean_tag:
|
case boolean_tag:
|
||||||
case symbol_tag:
|
case symbol_tag:
|
||||||
|
|
|
@ -37,6 +37,12 @@ extern const object Cyc_EOF;
|
||||||
*/
|
*/
|
||||||
extern const object Cyc_VOID;
|
extern const object Cyc_VOID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The record marker value.
|
||||||
|
* \ingroup objects
|
||||||
|
*/
|
||||||
|
extern const object Cyc_RECORD_MARKER;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \ingroup gc_minor
|
* \ingroup gc_minor
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -70,6 +70,7 @@ enum object_tag {
|
||||||
, complex_num_tag = 21
|
, complex_num_tag = 21
|
||||||
, atomic_tag = 22
|
, atomic_tag = 22
|
||||||
, void_tag = 23
|
, void_tag = 23
|
||||||
|
, record_tag = 24
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -50,6 +50,7 @@ const char *tag_names[] = {
|
||||||
/*complex_num_tag*/ , "complex number"
|
/*complex_num_tag*/ , "complex number"
|
||||||
/*atomic_tag*/ , "atomic"
|
/*atomic_tag*/ , "atomic"
|
||||||
/*void_tag*/ , "void"
|
/*void_tag*/ , "void"
|
||||||
|
/*record_tag*/ , "record"
|
||||||
, "Reserved for future use"
|
, "Reserved for future use"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -192,9 +193,11 @@ char **_cyc_argv = NULL;
|
||||||
|
|
||||||
static symbol_type __EOF = { {0}, eof_tag, ""}; // symbol_type in lieu of custom type
|
static symbol_type __EOF = { {0}, eof_tag, ""}; // symbol_type in lieu of custom type
|
||||||
static symbol_type __VOID = { {0}, void_tag, ""}; // symbol_type in lieu of custom type
|
static symbol_type __VOID = { {0}, void_tag, ""}; // symbol_type in lieu of custom type
|
||||||
|
static symbol_type __RECORD = { {0}, record_tag, ""}; // symbol_type in lieu of custom type
|
||||||
|
|
||||||
const object Cyc_EOF = &__EOF;
|
const object Cyc_EOF = &__EOF;
|
||||||
const object Cyc_VOID = &__VOID;
|
const object Cyc_VOID = &__VOID;
|
||||||
|
const object Cyc_RECORD_MARKER = &__RECORD;
|
||||||
static ck_hs_t lib_table;
|
static ck_hs_t lib_table;
|
||||||
static ck_hs_t symbol_table;
|
static ck_hs_t symbol_table;
|
||||||
static int symbol_table_initial_size = 4096;
|
static int symbol_table_initial_size = 4096;
|
||||||
|
@ -1042,6 +1045,9 @@ object Cyc_display(void *data, object x, FILE * port)
|
||||||
break;
|
break;
|
||||||
case void_tag:
|
case void_tag:
|
||||||
break;
|
break;
|
||||||
|
case record_tag:
|
||||||
|
fprintf(port, "<Record Marker>");
|
||||||
|
break;
|
||||||
case port_tag:
|
case port_tag:
|
||||||
fprintf(port, "<port %p>", ((port_type *) x)->fp);
|
fprintf(port, "<port %p>", ((port_type *) x)->fp);
|
||||||
break;
|
break;
|
||||||
|
@ -5879,6 +5885,7 @@ static char *gc_move(char *obj, gc_thread_data * thd, int *alloci, int *heap_gro
|
||||||
return (char *)forward(obj);
|
return (char *)forward(obj);
|
||||||
case eof_tag:
|
case eof_tag:
|
||||||
case void_tag:
|
case void_tag:
|
||||||
|
case record_tag:
|
||||||
break;
|
break;
|
||||||
case primitive_tag:
|
case primitive_tag:
|
||||||
break;
|
break;
|
||||||
|
@ -6057,6 +6064,7 @@ int gc_minor(void *data, object low_limit, object high_limit, closure cont,
|
||||||
// These types are not heap-allocated
|
// These types are not heap-allocated
|
||||||
case eof_tag:
|
case eof_tag:
|
||||||
case void_tag:
|
case void_tag:
|
||||||
|
case record_tag:
|
||||||
case primitive_tag:
|
case primitive_tag:
|
||||||
case symbol_tag:
|
case symbol_tag:
|
||||||
case boolean_tag:
|
case boolean_tag:
|
||||||
|
@ -6124,6 +6132,7 @@ void Cyc_make_shared_object(void *data, object k, object obj)
|
||||||
// closure0_tag = 3
|
// closure0_tag = 3
|
||||||
// eof_tag = 9
|
// eof_tag = 9
|
||||||
// void_tag
|
// void_tag
|
||||||
|
// record_tag
|
||||||
// macro_tag = 13
|
// macro_tag = 13
|
||||||
// primitive_tag = 17
|
// primitive_tag = 17
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue