annotate runtime/blueprint.c @ 75:0083b2f7b3c7

Partially working implementation of List. Modified build scripts to allow use of other compilers. Fixed some bugs involving method implementations on different types returning different numbers of outputs. Added Fold to the 'builtins' in the comipler.
author Mike Pavone <pavone@retrodev.com>
date Tue, 06 Jul 2010 07:52:59 -0400
parents d4b44ae2e34a
children 43cc42df26cc
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
39
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
1 #include "blueprint.h"
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
2 #include "builtin.h"
66
d4b44ae2e34a New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents: 49
diff changeset
3 #include "context.h"
49
3e20ed8959c4 Added initial FFI implementation, Array type and 64-bit integers
Mike Pavone <pavone@retrodev.com>
parents: 39
diff changeset
4 #include <stddef.h>
39
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
5
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
6 typedef struct
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
7 {
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
8 blueprint * bp;
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
9 } l_Build;
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
10
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
11 object * make_Blueprint(int32_t type_id)
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
12 {
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
13 t_Blueprint * obj;
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
14 object * ret = new_object(TYPE_BLUEPRINT);
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
15 obj = (t_Blueprint *)ret;
49
3e20ed8959c4 Added initial FFI implementation, Array type and 64-bit integers
Mike Pavone <pavone@retrodev.com>
parents: 39
diff changeset
16 obj->bp = type_id ? get_blueprint_byid(type_id) : NULL;
39
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
17 return ret;
66
d4b44ae2e34a New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents: 49
diff changeset
18 }
49
3e20ed8959c4 Added initial FFI implementation, Array type and 64-bit integers
Mike Pavone <pavone@retrodev.com>
parents: 39
diff changeset
19
66
d4b44ae2e34a New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents: 49
diff changeset
20 int32_t _internal_blueprint_eq(object * left, object * right)
d4b44ae2e34a New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents: 49
diff changeset
21 {
d4b44ae2e34a New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents: 49
diff changeset
22 t_Blueprint * l = (t_Blueprint *)left;
d4b44ae2e34a New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents: 49
diff changeset
23 t_Blueprint * r = (t_Blueprint *)right;
d4b44ae2e34a New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents: 49
diff changeset
24 return l->bp == r->bp;
d4b44ae2e34a New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents: 49
diff changeset
25 }
d4b44ae2e34a New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents: 49
diff changeset
26
d4b44ae2e34a New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents: 49
diff changeset
27