diff runtime/object.h @ 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 e7be612fd3ae
children 18598163e3ef
line wrap: on
line diff
--- a/runtime/object.h	Thu Jul 12 22:49:08 2012 -0700
+++ b/runtime/object.h	Fri Jul 13 00:23:38 2012 -0700
@@ -15,14 +15,14 @@
 typedef object * (*method)(uint32_t method_id, uint32_t num_args, object * self, va_list args);
 
 typedef object * (*closure_func)(void *, uint32_t, ...);
-
+/*
 typedef struct closure
 {
 	object header;
 	void * env;
 	closure_func func;
 } closure;
-
+*/
 struct obj_meta
 {
 	uint32_t size;
@@ -32,10 +32,10 @@
 extern obj_meta lambda_meta;
 
 object * mcall(uint32_t method_id, uint32_t num_args, object * self, ...);
-#define ccall(clos, num_args, ...) (((closure *)clos)->func(((closure *)clos)->env, num_args,##__VA_ARGS__))
+#define ccall(clos, num_args, ...) (((lambda *)clos)->func(((lambda *)clos)->env, num_args,##__VA_ARGS__))
 
 object * make_object(obj_meta * meta, void * parent, int num_props, ...);
-object * make_closure(void * env, closure_func func);
+object * make_lambda(void * env, closure_func func);
 object * make_array(uint32_t num_els, ...);
 
 #endif //OBJECT_H_