mirror of
https://github.com/justinethier/cyclone.git
synced 2025-05-23 20:15:05 +02:00
Removed unused closure types
This commit is contained in:
parent
ab73e63f64
commit
9889248cab
3 changed files with 1 additions and 99 deletions
49
gc.c
49
gc.c
|
@ -252,39 +252,6 @@ char *gc_copy_obj(object dest, char *obj, gc_thread_data *thd)
|
|||
hp->elt1 = ((closure1) obj)->elt1;
|
||||
return (char *)hp;
|
||||
}
|
||||
case closure2_tag: {
|
||||
closure2_type *hp = dest;
|
||||
mark(hp) = thd->gc_alloc_color;
|
||||
type_of(hp) = closure2_tag;
|
||||
hp->fn = ((closure2) obj)->fn;
|
||||
hp->num_args = ((closure2) obj)->num_args;
|
||||
hp->elt1 = ((closure2) obj)->elt1;
|
||||
hp->elt2 = ((closure2) obj)->elt2;
|
||||
return (char *)hp;
|
||||
}
|
||||
case closure3_tag: {
|
||||
closure3_type *hp = dest;
|
||||
mark(hp) = thd->gc_alloc_color;
|
||||
type_of(hp) = closure3_tag;
|
||||
hp->fn = ((closure3) obj)->fn;
|
||||
hp->num_args = ((closure3) obj)->num_args;
|
||||
hp->elt1 = ((closure3) obj)->elt1;
|
||||
hp->elt2 = ((closure3) obj)->elt2;
|
||||
hp->elt3 = ((closure3) obj)->elt3;
|
||||
return (char *)hp;
|
||||
}
|
||||
case closure4_tag: {
|
||||
closure4_type *hp = dest;
|
||||
mark(hp) = thd->gc_alloc_color;
|
||||
type_of(hp) = closure4_tag;
|
||||
hp->fn = ((closure4) obj)->fn;
|
||||
hp->num_args = ((closure4) obj)->num_args;
|
||||
hp->elt1 = ((closure4) obj)->elt1;
|
||||
hp->elt2 = ((closure4) obj)->elt2;
|
||||
hp->elt3 = ((closure4) obj)->elt3;
|
||||
hp->elt4 = ((closure4) obj)->elt4;
|
||||
return (char *)hp;
|
||||
}
|
||||
case closureN_tag: {
|
||||
int i;
|
||||
closureN_type *hp = dest;
|
||||
|
@ -476,9 +443,6 @@ size_t gc_allocated_bytes(object obj, gc_free_list *q, gc_free_list *r)
|
|||
if (t == macro_tag) return gc_heap_align(sizeof(macro_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 == closure2_tag) return gc_heap_align(sizeof(closure2_type));
|
||||
if (t == closure3_tag) return gc_heap_align(sizeof(closure3_type));
|
||||
if (t == closure4_tag) return gc_heap_align(sizeof(closure4_type));
|
||||
if (t == closureN_tag){
|
||||
return gc_heap_align(sizeof(closureN_type) + sizeof(object) * ((closureN_type *)obj)->num_elt);
|
||||
}
|
||||
|
@ -990,19 +954,6 @@ void gc_mark_black(object obj)
|
|||
case closure1_tag:
|
||||
gc_collector_mark_gray(obj, ((closure1) obj)->elt1);
|
||||
break;
|
||||
case closure2_tag:
|
||||
gc_collector_mark_gray(obj, ((closure2) obj)->elt1);
|
||||
gc_collector_mark_gray(obj, ((closure2) obj)->elt2);
|
||||
case closure3_tag:
|
||||
gc_collector_mark_gray(obj, ((closure3) obj)->elt1);
|
||||
gc_collector_mark_gray(obj, ((closure3) obj)->elt2);
|
||||
gc_collector_mark_gray(obj, ((closure3) obj)->elt3);
|
||||
case closure4_tag:
|
||||
gc_collector_mark_gray(obj, ((closure4) obj)->elt1);
|
||||
gc_collector_mark_gray(obj, ((closure4) obj)->elt2);
|
||||
gc_collector_mark_gray(obj, ((closure4) obj)->elt3);
|
||||
gc_collector_mark_gray(obj, ((closure4) obj)->elt4);
|
||||
break;
|
||||
case closureN_tag: {
|
||||
int i, n = ((closureN) obj)->num_elt;
|
||||
for (i = 0; i < n; i++) {
|
||||
|
|
|
@ -172,9 +172,6 @@ typedef long tag_type;
|
|||
#define forward_tag 2
|
||||
#define closure0_tag 3
|
||||
#define closure1_tag 4
|
||||
#define closure2_tag 5
|
||||
#define closure3_tag 6
|
||||
#define closure4_tag 7
|
||||
#define closureN_tag 8
|
||||
#define integer_tag 9
|
||||
#define double_tag 10
|
||||
|
@ -344,16 +341,10 @@ cons_type n; n.hdr.mark = gc_color_red; n.hdr.grayed = 0; n.tag = cons_tag; n.co
|
|||
typedef struct {gc_header_type hdr; tag_type tag; function_type fn; int num_args; } macro_type;
|
||||
typedef struct {gc_header_type hdr; tag_type tag; function_type fn; int num_args; } closure0_type;
|
||||
typedef struct {gc_header_type hdr; tag_type tag; function_type fn; int num_args; object elt1;} closure1_type;
|
||||
typedef struct {gc_header_type hdr; tag_type tag; function_type fn; int num_args; object elt1,elt2;} closure2_type;
|
||||
typedef struct {gc_header_type hdr; tag_type tag; function_type fn; int num_args; object elt1,elt2,elt3;} closure3_type;
|
||||
typedef struct {gc_header_type hdr; tag_type tag; function_type fn; int num_args; object elt1,elt2,elt3,elt4;} closure4_type;
|
||||
typedef struct {gc_header_type hdr; tag_type tag; function_type fn; int num_args; int num_elt; object *elts;} closureN_type;
|
||||
|
||||
typedef closure0_type *closure0;
|
||||
typedef closure1_type *closure1;
|
||||
typedef closure2_type *closure2;
|
||||
typedef closure3_type *closure3;
|
||||
typedef closure4_type *closure4;
|
||||
typedef closureN_type *closureN;
|
||||
typedef closure0_type *closure;
|
||||
typedef closure0_type *macro;
|
||||
|
@ -362,12 +353,6 @@ typedef closure0_type *macro;
|
|||
#define mclosure0(c,f) closure0_type c; c.hdr.mark = gc_color_red; c.hdr.grayed = 0; c.tag = closure0_tag; c.fn = f; c.num_args = -1;
|
||||
#define mclosure1(c,f,a) closure1_type c; c.hdr.mark = gc_color_red; c.hdr.grayed = 0; c.tag = closure1_tag; \
|
||||
c.fn = f; c.num_args = -1; c.elt1 = a;
|
||||
#define mclosure2(c,f,a1,a2) closure2_type c; c.hdr.mark = gc_color_red; c.hdr.grayed = 0; c.tag = closure2_tag; \
|
||||
c.fn = f; c.num_args = -1; c.elt1 = a1; c.elt2 = a2;
|
||||
#define mclosure3(c,f,a1,a2,a3) closure3_type c; c.hdr.mark = gc_color_red; c.hdr.grayed = 0; c.tag = closure3_tag; \
|
||||
c.fn = f; c.num_args = -1; c.elt1 = a1; c.elt2 = a2; c.elt3 = a3;
|
||||
#define mclosure4(c,f,a1,a2,a3,a4) closure4_type c; c.hdr.mark = gc_color_red; c.hdr.grayed = 0; c.tag = closure4_tag; \
|
||||
c.fn = f; c.num_args = -1; c.elt1 = a1; c.elt2 = a2; c.elt3 = a3; c.elt4 = a4;
|
||||
|
||||
#define mlist1(e1) (mcons(e1,nil))
|
||||
#define mlist2(e2,e1) (mcons(e2,mlist1(e1)))
|
||||
|
|
36
runtime.c
36
runtime.c
|
@ -540,9 +540,6 @@ object Cyc_display(object x, FILE *port)
|
|||
break;
|
||||
case closure0_tag:
|
||||
case closure1_tag:
|
||||
case closure2_tag:
|
||||
case closure3_tag:
|
||||
case closure4_tag:
|
||||
case closureN_tag:
|
||||
fprintf(port, "<procedure %p>",(void *)((closure) x)->fn);
|
||||
break;
|
||||
|
@ -874,9 +871,6 @@ object Cyc_is_procedure(void *data, object o) {
|
|||
tag = type_of(o);
|
||||
if (tag == closure0_tag ||
|
||||
tag == closure1_tag ||
|
||||
tag == closure2_tag ||
|
||||
tag == closure3_tag ||
|
||||
tag == closure4_tag ||
|
||||
tag == closureN_tag ||
|
||||
tag == primitive_tag) {
|
||||
return boolean_t;
|
||||
|
@ -2079,7 +2073,7 @@ void _display(void *data, object cont, object args) {
|
|||
void _call_95cc(void *data, object cont, object args){
|
||||
Cyc_check_num_args(data, "call/cc", 1, args);
|
||||
if (eq(boolean_f, Cyc_is_procedure(data, car(args)))) {
|
||||
Cyc_invalid_type_error(data, closure2_tag, car(args));
|
||||
Cyc_invalid_type_error(data, closure1_tag, car(args));
|
||||
}
|
||||
return_closcall2(data, __glo_call_95cc, cont, car(args));
|
||||
}
|
||||
|
@ -2110,9 +2104,6 @@ object apply(void *data, object cont, object func, object args){
|
|||
case macro_tag:
|
||||
case closure0_tag:
|
||||
case closure1_tag:
|
||||
case closure2_tag:
|
||||
case closure3_tag:
|
||||
case closure4_tag:
|
||||
case closureN_tag:
|
||||
count = Cyc_length(data, args);
|
||||
// TODO: validate number of args provided:
|
||||
|
@ -2300,18 +2291,6 @@ char *gc_move(char *obj, gc_thread_data *thd, int *alloci, int *heap_grown) {
|
|||
closure1_type *hp = gc_alloc(Cyc_heap, sizeof(closure1_type), obj, thd, heap_grown);
|
||||
return gc_fixup_moved_obj(thd, alloci, obj, hp);
|
||||
}
|
||||
case closure2_tag: {
|
||||
closure2_type *hp = gc_alloc(Cyc_heap, sizeof(closure2_type), obj, thd, heap_grown);
|
||||
return gc_fixup_moved_obj(thd, alloci, obj, hp);
|
||||
}
|
||||
case closure3_tag: {
|
||||
closure3_type *hp = gc_alloc(Cyc_heap, sizeof(closure3_type), obj, thd, heap_grown);
|
||||
return gc_fixup_moved_obj(thd, alloci, obj, hp);
|
||||
}
|
||||
case closure4_tag: {
|
||||
closure4_type *hp = gc_alloc(Cyc_heap, sizeof(closure4_type), obj, thd, heap_grown);
|
||||
return gc_fixup_moved_obj(thd, alloci, obj, hp);
|
||||
}
|
||||
case closureN_tag: {
|
||||
closureN_type *hp = gc_alloc(Cyc_heap,
|
||||
sizeof(closureN_type) + sizeof(object) * (((closureN) obj)->num_elt),
|
||||
|
@ -2451,19 +2430,6 @@ int gc_minor(void *data, object low_limit, object high_limit, closure cont, obje
|
|||
case closure1_tag:
|
||||
gc_move2heap(((closure1) obj)->elt1);
|
||||
break;
|
||||
case closure2_tag:
|
||||
gc_move2heap(((closure2) obj)->elt1);
|
||||
gc_move2heap(((closure2) obj)->elt2);
|
||||
case closure3_tag:
|
||||
gc_move2heap(((closure3) obj)->elt1);
|
||||
gc_move2heap(((closure3) obj)->elt2);
|
||||
gc_move2heap(((closure3) obj)->elt3);
|
||||
case closure4_tag:
|
||||
gc_move2heap(((closure4) obj)->elt1);
|
||||
gc_move2heap(((closure4) obj)->elt2);
|
||||
gc_move2heap(((closure4) obj)->elt3);
|
||||
gc_move2heap(((closure4) obj)->elt4);
|
||||
break;
|
||||
case closureN_tag: {
|
||||
int i, n = ((closureN) obj)->num_elt;
|
||||
for (i = 0; i < n; i++) {
|
||||
|
|
Loading…
Add table
Reference in a new issue