comparison runtime/progfoot.inc @ 45:2a9c6eed0c70

Move closure/lambda object def into compiler rather than runtime code. Add while:do method to lambda
author Mike Pavone <pavone@retrodev.com>
date Fri, 13 Jul 2012 00:23:38 -0700
parents 9dd370530f69
children 7b454d100dc8
comparison
equal deleted inserted replaced
44:9dd370530f69 45:2a9c6eed0c70
16 arr->data[i] = va_arg(els, object *); 16 arr->data[i] = va_arg(els, object *);
17 va_end(els); 17 va_end(els);
18 return &(arr->header); 18 return &(arr->header);
19 } 19 }
20 20
21 object * make_lambda(void * env, closure_func func)
22 {
23 lambda * ret = malloc(sizeof(lambda));
24 ret->header.meta = &lambda_meta;
25 ret->header.parent = NULL;
26 ret->env = env;
27 ret->func = func;
28 return (object *) ret;
29 }
30
21 int main(int argc, char ** argv) 31 int main(int argc, char ** argv)
22 { 32 {
23 object * ret = mcall(METHOD_ID_MAIN, 1, mainModule()); 33 object * ret = mcall(METHOD_ID_MAIN, 1, mainModule());
24 if (ret->meta == &obj_int32_meta) { 34 if (ret->meta == &obj_int32_meta) {
25 obj_int32 * reti32 = (obj_int32 *) ret; 35 obj_int32 * reti32 = (obj_int32 *) ret;