From: Brendan Hansen Date: Thu, 17 Sep 2020 19:42:10 +0000 (-0500) Subject: added alloc_slice; made bools comptime known X-Git-Url: https://git.brendanfh.com/?a=commitdiff_plain;h=7291889df5798109216be39574c4aab47c85dfe1;p=onyx.git added alloc_slice; made bools comptime known --- diff --git a/core/alloc.onyx b/core/alloc.onyx index 72cfa6cf..243e568c 100644 --- a/core/alloc.onyx +++ b/core/alloc.onyx @@ -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 d5bdd4ef..a18d32f4 100755 Binary files a/onyx and b/onyx differ diff --git a/progs/poly_struct.onyx b/progs/poly_struct.onyx index f2781ccc..a64d6a2c 100644 --- a/progs/poly_struct.onyx +++ b/progs/poly_struct.onyx @@ -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)); } diff --git a/src/onyxparser.c b/src/onyxparser.c index 1e2cd9fc..63436cb7 100644 --- a/src/onyxparser.c +++ b/src/onyxparser.c @@ -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; }