added alloc_slice; made bools comptime known
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Thu, 17 Sep 2020 19:42:10 +0000 (14:42 -0500)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Thu, 17 Sep 2020 19:42:40 +0000 (14:42 -0500)
core/alloc.onyx
onyx
progs/poly_struct.onyx
src/onyxparser.c

index 72cfa6cfa84b2226d069b737b67f49b7985d452c..243e568c2abaa6bb8841b414fc997b73d230a2cb 100644 (file)
@@ -146,7 +146,7 @@ scratch_alloc_proc :: proc (data: rawptr, aa: AllocAction, size: u32, align: u32
             ss.curr_ptr = ss.base_ptr;
             retval = ss.base_ptr;
         }
-        
+
         return retval;
     }
 
@@ -165,6 +165,14 @@ scratch_alloc_init :: proc (a: ^Allocator, ss: ^ScratchState) {
 }
 
 
+
+alloc_slice :: proc (sl: ^[] $T, count: i32) {
+    sl.data  = calloc(sizeof T * count);
+    sl.count = count;
+}
+
+
+
 memory_init :: proc {
     heap_init();
 }
diff --git a/onyx b/onyx
index d5bdd4ef19bdaa92e0604caa5d72edfe47af2228..a18d32f484a6e13aa1b36e618dbc8800afab8535 100755 (executable)
Binary files a/onyx and b/onyx differ
index f2781ccc0735d96bfca57633c62430decb8470f2..a64d6a2c4c2b6e4a59eeb3ef6dc66217a13cb312 100644 (file)
@@ -15,14 +15,11 @@ main :: proc (args: [] cstring) {
     i32map_put(^imap, 50, ^hello);
     i32map_put(^imap, 1234, ^world);
 
-    print(i32map_has(^imap, 50));
-    print("\n");
-    print(i32map_has(^imap, 51));
-    print("\n");
+    println(i32map_has(^imap, 50));
+    println(i32map_has(^imap, 51));
 
     // i32map_delete(^imap, 50);
 
-    print(*i32map_get(^imap, 50));
-    print(*i32map_get(^imap, 1234));
-    print("\n");
+    print(  *i32map_get(^imap, 50));
+    println(*i32map_get(^imap, 1234));
 }
index 1e2cd9fcdf4f96015c0832dc8afe7e2bebf27fca..63436cb7807dba1795c31467ebcfa2ace1b71f63 100644 (file)
@@ -392,6 +392,7 @@ static AstTyped* parse_factor(OnyxParser* parser) {
             bool_node->type_node = (AstType *) &basic_type_bool;
             bool_node->token = expect_token(parser, Token_Type_Literal_True);
             bool_node->value.i = 1;
+            bool_node->flags |= Ast_Flag_Comptime;
             retval = (AstTyped *) bool_node;
             break;
         }
@@ -401,6 +402,7 @@ static AstTyped* parse_factor(OnyxParser* parser) {
             bool_node->type_node = (AstType *) &basic_type_bool;
             bool_node->token = expect_token(parser, Token_Type_Literal_False);
             bool_node->value.i = 0;
+            bool_node->flags |= Ast_Flag_Comptime;
             retval = (AstTyped *) bool_node;
             break;
         }