mirror of
https://github.com/justinethier/cyclone.git
synced 2025-05-21 22:59:16 +02:00
Refactoring
This commit is contained in:
parent
63a2204efc
commit
40416364f8
5 changed files with 14 additions and 14 deletions
2
gc.c
2
gc.c
|
@ -514,7 +514,7 @@ size_t gc_allocated_bytes(object obj, gc_free_list *q, gc_free_list *r)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
t = type_of(obj);
|
t = type_of(obj);
|
||||||
if (t == pair_tag) return gc_heap_align(sizeof(cons_type));
|
if (t == pair_tag) return gc_heap_align(sizeof(pair_type));
|
||||||
if (t == macro_tag) return gc_heap_align(sizeof(macro_type));
|
if (t == macro_tag) return gc_heap_align(sizeof(macro_type));
|
||||||
if (t == closure0_tag) return gc_heap_align(sizeof(closure0_type));
|
if (t == closure0_tag) return gc_heap_align(sizeof(closure0_type));
|
||||||
if (t == closure1_tag) return gc_heap_align(sizeof(closure1_type));
|
if (t == closure1_tag) return gc_heap_align(sizeof(closure1_type));
|
||||||
|
|
|
@ -62,7 +62,7 @@ object Cyc_global_set(void *thd, object *glo, object value);
|
||||||
args and the number of provided ones, and pass the difference as 'count'
|
args and the number of provided ones, and pass the difference as 'count'
|
||||||
*/
|
*/
|
||||||
#define load_varargs(var, arg_var, count) \
|
#define load_varargs(var, arg_var, count) \
|
||||||
list var = (count > 0) ? alloca(sizeof(cons_type)*count) : NULL; \
|
list var = (count > 0) ? alloca(sizeof(pair_type)*count) : NULL; \
|
||||||
{ \
|
{ \
|
||||||
int i; \
|
int i; \
|
||||||
object tmp; \
|
object tmp; \
|
||||||
|
|
|
@ -423,20 +423,20 @@ typedef struct {
|
||||||
tag_type tag;
|
tag_type tag;
|
||||||
object cons_car;
|
object cons_car;
|
||||||
object cons_cdr;
|
object cons_cdr;
|
||||||
} cons_type;
|
} pair_type;
|
||||||
typedef cons_type *list;
|
typedef pair_type *list;
|
||||||
typedef cons_type pair_type;
|
typedef pair_type cons_type;
|
||||||
typedef pair_type *pair;
|
typedef pair_type *pair;
|
||||||
|
|
||||||
#define make_pair(n,a,d) \
|
#define make_pair(n,a,d) \
|
||||||
cons_type n; \
|
pair_type n; \
|
||||||
n.hdr.mark = gc_color_red; \
|
n.hdr.mark = gc_color_red; \
|
||||||
n.hdr.grayed = 0; \
|
n.hdr.grayed = 0; \
|
||||||
n.tag = pair_tag; \
|
n.tag = pair_tag; \
|
||||||
n.cons_car = a; \
|
n.cons_car = a; \
|
||||||
n.cons_cdr = d;
|
n.cons_cdr = d;
|
||||||
#define make_cons(n,a,d) \
|
#define make_cons(n,a,d) \
|
||||||
cons_type n; \
|
pair_type n; \
|
||||||
n.hdr.mark = gc_color_red; \
|
n.hdr.mark = gc_color_red; \
|
||||||
n.hdr.grayed = 0; \
|
n.hdr.grayed = 0; \
|
||||||
n.tag = pair_tag; \
|
n.tag = pair_tag; \
|
||||||
|
@ -536,7 +536,7 @@ static const object primitive_##name = &name##_primitive
|
||||||
/* All constant-size objects */
|
/* All constant-size objects */
|
||||||
typedef union {
|
typedef union {
|
||||||
boolean_type boolean_t;
|
boolean_type boolean_t;
|
||||||
cons_type cons_t;
|
pair_type cons_t;
|
||||||
symbol_type symbol_t;
|
symbol_type symbol_t;
|
||||||
primitive_type primitive_t;
|
primitive_type primitive_t;
|
||||||
integer_type integer_t;
|
integer_type integer_t;
|
||||||
|
|
10
runtime.c
10
runtime.c
|
@ -1416,7 +1416,7 @@ object Cyc_command_line_arguments(void *data, object cont) {
|
||||||
object lis = NULL;
|
object lis = NULL;
|
||||||
for (i = _cyc_argc; i > 1; i--) { // skip program name
|
for (i = _cyc_argc; i > 1; i--) { // skip program name
|
||||||
object ps = alloca(sizeof(string_type));
|
object ps = alloca(sizeof(string_type));
|
||||||
object pl = alloca(sizeof(cons_type));
|
object pl = alloca(sizeof(pair_type));
|
||||||
make_string(s, _cyc_argv[i - 1]);
|
make_string(s, _cyc_argv[i - 1]);
|
||||||
memcpy(ps, &s, sizeof(string_type));
|
memcpy(ps, &s, sizeof(string_type));
|
||||||
((list)pl)->hdr.mark = gc_color_red;
|
((list)pl)->hdr.mark = gc_color_red;
|
||||||
|
@ -2077,7 +2077,7 @@ object Cyc_io_peek_char(void *data, object cont, object port) {
|
||||||
// Functions internal to the runtime that use malloc
|
// Functions internal to the runtime that use malloc
|
||||||
list mcons(object a, object d)
|
list mcons(object a, object d)
|
||||||
{
|
{
|
||||||
cons_type *c = malloc(sizeof(cons_type));
|
pair_type *c = malloc(sizeof(pair_type));
|
||||||
c->hdr.mark = gc_color_red;
|
c->hdr.mark = gc_color_red;
|
||||||
c->hdr.grayed = 0;
|
c->hdr.grayed = 0;
|
||||||
c->tag = pair_tag;
|
c->tag = pair_tag;
|
||||||
|
@ -2643,7 +2643,7 @@ void Cyc_apply(void *data, int argc, closure cont, object prim, ...){
|
||||||
va_list ap;
|
va_list ap;
|
||||||
object tmp;
|
object tmp;
|
||||||
int i;
|
int i;
|
||||||
list args = alloca(sizeof(cons_type) * argc);
|
list args = alloca(sizeof(pair_type) * argc);
|
||||||
|
|
||||||
va_start(ap, prim);
|
va_start(ap, prim);
|
||||||
|
|
||||||
|
@ -2678,7 +2678,7 @@ void Cyc_apply_from_buf(void *data, int argc, object prim, object *buf) {
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
args = alloca(sizeof(cons_type) * (argc - 1));
|
args = alloca(sizeof(pair_type) * (argc - 1));
|
||||||
cont = buf[0];
|
cont = buf[0];
|
||||||
|
|
||||||
for (i = 1; i < argc; i++) {
|
for (i = 1; i < argc; i++) {
|
||||||
|
@ -2768,7 +2768,7 @@ char *gc_move(char *obj, gc_thread_data *thd, int *alloci, int *heap_grown) {
|
||||||
if (!is_object_type(obj)) return obj;
|
if (!is_object_type(obj)) return obj;
|
||||||
switch(type_of(obj)){
|
switch(type_of(obj)){
|
||||||
case pair_tag: {
|
case pair_tag: {
|
||||||
list hp = gc_alloc(Cyc_heap, sizeof(cons_type), obj, thd, heap_grown);
|
list hp = gc_alloc(Cyc_heap, sizeof(pair_type), obj, thd, heap_grown);
|
||||||
return gc_fixup_moved_obj(thd, alloci, obj, hp);
|
return gc_fixup_moved_obj(thd, alloci, obj, hp);
|
||||||
}
|
}
|
||||||
case macro_tag: {
|
case macro_tag: {
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
object lis = NULL;
|
object lis = NULL;
|
||||||
for (i = _cyc_argc; i > 0; i--) {
|
for (i = _cyc_argc; i > 0; i--) {
|
||||||
object ps = alloca(sizeof(string_type));
|
object ps = alloca(sizeof(string_type));
|
||||||
object pl = alloca(sizeof(cons_type));
|
object pl = alloca(sizeof(pair_type));
|
||||||
make_string(s, _cyc_argv[i - 1]);
|
make_string(s, _cyc_argv[i - 1]);
|
||||||
memcpy(ps, &s, sizeof(string_type));
|
memcpy(ps, &s, sizeof(string_type));
|
||||||
((list)pl)->hdr.mark = gc_color_red;
|
((list)pl)->hdr.mark = gc_color_red;
|
||||||
|
|
Loading…
Add table
Reference in a new issue