From 8757e22802cc907fa5d29e922f0f6f897e7db6ce Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Thu, 31 Dec 2020 08:41:13 -0600 Subject: [PATCH] procedures are compile time known --- bin/onyx | Bin 287128 -> 287224 bytes examples/04_fixed_arrays.onyx | 2 +- include/onyxastnodes.h | 3 ++- src/onyx.c | 4 ++++ src/onyxchecker.c | 10 +++++++++- src/onyxsymres.c | 25 ++++++++++++++----------- src/onyxutils.c | 3 ++- src/onyxwasm.c | 6 ++++++ 8 files changed, 38 insertions(+), 15 deletions(-) diff --git a/bin/onyx b/bin/onyx index e220a548606f6e3314dcdef4f0f708e305ec3591..9117f73bf5b83c3ee10bc304e1952eae8e6ff18b 100755 GIT binary patch delta 73686 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.entities, ent); + ent.type = Entity_Type_Memory_Reservation; ent.mem_res = (AstMemRes *) node; entity_heap_insert(&compiler_state->prog_info.entities, ent); diff --git a/src/onyxchecker.c b/src/onyxchecker.c index 6ceda8e1..4a1af12a 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -31,6 +31,7 @@ CHECK(function, AstFunction* func); CHECK(overloaded_function, AstOverloadedFunction* func); CHECK(struct, AstStructType* s_node); CHECK(function_header, AstFunction* func); +CHECK(memres_type, AstMemRes* memres); CHECK(memres, AstMemRes* memres); static inline void fill_in_array_count(AstType* type_node) { @@ -1474,9 +1475,12 @@ b32 check_function_header(AstFunction* func) { return 0; } -b32 check_memres(AstMemRes* memres) { +b32 check_memres_type(AstMemRes* memres) { fill_in_type((AstTyped *) memres); + return 0; +} +b32 check_memres(AstMemRes* memres) { if (memres->initial_value != NULL) { fill_in_type(memres->initial_value); check_expression(&memres->initial_value); @@ -1552,6 +1556,10 @@ void check_entity(Entity* ent) { if (check_struct((AstStructType *) ent->type_alias)) return; break; + case Entity_Type_Memory_Reservation_Type: + if (check_memres_type(ent->mem_res)) return; + break; + case Entity_Type_Memory_Reservation: if (check_memres(ent->mem_res)) return; break; diff --git a/src/onyxsymres.c b/src/onyxsymres.c index 8e15a731..97749ccf 100644 --- a/src/onyxsymres.c +++ b/src/onyxsymres.c @@ -31,6 +31,7 @@ static void symres_global(AstGlobal* global); static void symres_overloaded_function(AstOverloadedFunction* ofunc); static void symres_use_package(AstUsePackage* package); static void symres_enum(AstEnumType* enum_node); +static void symres_memres_type(AstMemRes** memres); static void symres_memres(AstMemRes** memres); static AstFieldAccess* make_field_access(AstTyped* node, char* field) { @@ -679,6 +680,8 @@ void symres_function_header(AstFunction* func) { if (func->scope == NULL) func->scope = scope_create(semstate.node_allocator, semstate.curr_scope, func->token->pos); + func->flags |= Ast_Flag_Comptime; + bh_arr_each(AstParam, param, func->params) { if (param->default_value != NULL) { symres_expression(¶m->default_value); @@ -884,14 +887,13 @@ static void symres_enum(AstEnumType* enum_node) { } } -static void symres_memres(AstMemRes** memres) { +static void symres_memres_type(AstMemRes** memres) { (*memres)->type_node = symres_type((*memres)->type_node); +} +static void symres_memres(AstMemRes** memres) { if ((*memres)->initial_value != NULL) { symres_expression(&(*memres)->initial_value); - - // if ((*memres)->type_node == NULL) - // (*memres)->type_node = (*memres)->initial_value->type_node; } } @@ -923,13 +925,14 @@ void symres_entity(Entity* ent) { next_state = Entity_State_Finalized; break; - case Entity_Type_Overloaded_Function: symres_overloaded_function(ent->overloaded_function); break; - case Entity_Type_Expression: symres_expression(&ent->expr); break; - case Entity_Type_Type_Alias: ent->type_alias = symres_type(ent->type_alias); break; - case Entity_Type_Enum: symres_enum(ent->enum_type); break; - case Entity_Type_Memory_Reservation: symres_memres(&ent->mem_res); break; - case Entity_Type_Polymorphic_Proc: symres_polyproc(ent->poly_proc); break; - case Entity_Type_String_Literal: symres_expression(&ent->expr); break; + case Entity_Type_Overloaded_Function: symres_overloaded_function(ent->overloaded_function); break; + case Entity_Type_Expression: symres_expression(&ent->expr); break; + case Entity_Type_Type_Alias: ent->type_alias = symres_type(ent->type_alias); break; + case Entity_Type_Enum: symres_enum(ent->enum_type); break; + case Entity_Type_Memory_Reservation_Type: symres_memres_type(&ent->mem_res); break; + case Entity_Type_Memory_Reservation: symres_memres(&ent->mem_res); break; + case Entity_Type_Polymorphic_Proc: symres_polyproc(ent->poly_proc); break; + case Entity_Type_String_Literal: symres_expression(&ent->expr); break; default: break; } diff --git a/src/onyxutils.c b/src/onyxutils.c index c88e6378..2042a8b1 100644 --- a/src/onyxutils.c +++ b/src/onyxutils.c @@ -115,13 +115,14 @@ const char* entity_type_strings[Entity_Type_Count] = { "File Contents", "Enum", "Type Alias", - "Memory Reservation", + "Memory Reservation Type", "Use", "Polymorphic Proc", "Foreign_Function Header", "Foreign_Global Header", "Function Header", "Global Header", + "Memory Reservation", "Expression", "Global", "Overloaded_Function", diff --git a/src/onyxwasm.c b/src/onyxwasm.c index 9374d372..99d8dac9 100644 --- a/src/onyxwasm.c +++ b/src/onyxwasm.c @@ -3041,6 +3041,12 @@ static void emit_raw_data(OnyxWasmModule* mod, ptr data, AstTyped* node) { break; } + case Ast_Kind_Function: { + AstFunction* func = (AstFunction *) node; + *((u32 *) data) = get_element_idx(mod, func); + break; + } + case Ast_Kind_NumLit: { // NOTE: This makes a big assumption that we are running on a // little endian machine, since WebAssembly is little endian -- 2.25.1