diff --git a/include/cyclone/types.h b/include/cyclone/types.h index e7f31e79..d3d2e8e7 100644 --- a/include/cyclone/types.h +++ b/include/cyclone/types.h @@ -1002,8 +1002,26 @@ typedef closure0_type *macro; c.fn = f; \ c.num_args = -1; +/* #define mclosure0(c, f) \ - static closure0_type c = { .hdr.mark = gc_color_red, .hdr.grayed = 0, .tag = closure0_tag, .fn = f, .num_args = -1 }; /* TODO: need a new macro that initializes num_args */ + static closure0_type c = { .hdr.mark = gc_color_red, .hdr.grayed = 0, .tag = closure0_tag, .fn = f, .num_args = -1 }; / * TODO: need a new macro that initializes num_args * / + */ + +#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 maclosure0(c,f,na) \ + closure0_type c; \ + c.hdr.mark = gc_color_red; \ + c.hdr.grayed = 0; \ + c.tag = closure0_tag; \ + c.fn = f; \ + c.num_args = na; #define mclosure1(c,f,a) \ closure1_type c; \