From 9daee52cf9f1579e08eebbbcc4c8db330a069b92 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Tue, 1 Jun 2021 23:44:27 -0500 Subject: [PATCH] MAYBE BREAKING CHANGE; everything can defer right now so order doesn't matter --- bin/onyx | Bin 366208 -> 366176 bytes include/onyxastnodes.h | 6 ++- src/onyx.c | 4 -- src/onyxastnodes.c | 2 - src/onyxchecker.c | 13 ++++-- src/onyxentities.c | 26 +++++------ src/onyxsymres.c | 104 ++++++++++++++++++++++------------------- src/onyxutils.c | 3 +- 8 files changed, 85 insertions(+), 73 deletions(-) diff --git a/bin/onyx b/bin/onyx index 15f113436b2d3c3ae7239277b2fc1ee2fae1a033..407ea599341575beec977b3bb52657ee4ab94e11 100755 GIT binary patch delta 105904 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 Jv$NDY{vQIxstate = Entity_State_Finalized; break; - case Entity_State_Comptime_Resolve_Symbols: case Entity_State_Resolve_Symbols: symres_entity(ent); break; - - case Entity_State_Comptime_Check_Types: case Entity_State_Check_Types: check_entity(ent); break; - case Entity_State_Code_Gen: emit_entity(ent); break; } diff --git a/src/onyxastnodes.c b/src/onyxastnodes.c index 4db5c8f5..d185a243 100644 --- a/src/onyxastnodes.c +++ b/src/onyxastnodes.c @@ -111,8 +111,6 @@ const char* entity_state_strings[Entity_State_Count] = { "Parse Builtin", "Introduce Symbols", "Parse", - "Resolve Static Symbols", - "Check Static Types", "Resolve Symbols", "Check Types", "Code Gen", diff --git a/src/onyxchecker.c b/src/onyxchecker.c index deafb062..1725f282 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -16,6 +16,7 @@ typedef enum CheckStatus { Check_Complete, // The node is done processing Check_Errors_Start, + Check_Yield_Macro, Check_Error, // There was an error when checking the node } CheckStatus; @@ -130,6 +131,10 @@ CheckStatus check_if(AstIfWhile* ifnode) { if (ifnode->assignment != NULL) CHECK(statement, (AstNode **) &ifnode->assignment); if (ifnode->kind == Ast_Kind_Static_If) { + if ((ifnode->flags & Ast_Flag_Static_If_Resolved) == 0) { + return Check_Yield_Macro; + } + if (static_if_resolution(ifnode)) { if (ifnode->true_stmt != NULL) CHECK(statement, (AstNode **) &ifnode->true_stmt); @@ -1816,6 +1821,8 @@ CheckStatus check_static_if(AstIf* static_if) { return Check_Error; } + static_if->flags |= Ast_Flag_Static_If_Resolved; + b32 resolution = static_if_resolution(static_if); if (context.options->print_static_if_results) @@ -1908,7 +1915,7 @@ void check_entity(Entity* ent) { if (cs == Check_Success) ent->state = Entity_State_Code_Gen; if (cs == Check_Complete) ent->state = Entity_State_Finalized; - // else if (cs == Check_Yield) { - // ent->attempts++; - // } + else if (cs == Check_Yield_Macro) { + ent->macro_attempts++; + } } diff --git a/src/onyxentities.c b/src/onyxentities.c index 410d13ae..8020dfe5 100644 --- a/src/onyxentities.c +++ b/src/onyxentities.c @@ -4,7 +4,7 @@ static inline i32 entity_phase(Entity* e1) { if (e1->state <= Entity_State_Parse) return 1; - if (e1->state <= Entity_State_Comptime_Check_Types) return 2; + if (e1->state < Entity_State_Code_Gen) return 2; return 3; } @@ -13,17 +13,17 @@ static i32 entity_compare(Entity* e1, Entity* e2) { i32 phase1 = entity_phase(e1); i32 phase2 = entity_phase(e2); - if (phase1 != phase2 || phase1 != 2) { - if (e1->state != e2->state) - return (i32) e1->state - (i32) e2->state; - else if (e1->type != e2->type) - return (i32) e1->type - (i32) e2->type; - else - return (i32) (e1->micro_attempts - e2->micro_attempts); - - } else { + if (phase1 != phase2) + return phase1 - phase2; + else if (e1->macro_attempts != e2->macro_attempts) return (i32) e1->macro_attempts - (i32) e2->macro_attempts; - } + else if (e1->state != e2->state) + return (i32) e1->state - (i32) e2->state; + else if (e1->type != e2->type) + return (i32) e1->type - (i32) e2->type; + else + return (i32) (e1->micro_attempts - e2->micro_attempts); + } #define eh_parent(index) (((index) - 1) / 2) @@ -258,7 +258,7 @@ void add_entities_for_node(bh_arr(Entity *) *target_arr, AstNode* node, Scope* s case Ast_Kind_Use: { if (((AstUse *) node)->expr->kind == Ast_Kind_Package) { - ent.state = Entity_State_Comptime_Resolve_Symbols; + ent.state = Entity_State_Resolve_Symbols; ent.type = Entity_Type_Use_Package; } else { ent.type = Entity_Type_Use; @@ -288,7 +288,7 @@ void add_entities_for_node(bh_arr(Entity *) *target_arr, AstNode* node, Scope* s } case Ast_Kind_Static_If: { - ent.state = Entity_State_Comptime_Resolve_Symbols; + ent.state = Entity_State_Resolve_Symbols; ent.type = Entity_Type_Static_If; ent.static_if = (AstIf *) node; ENTITY_INSERT(ent); diff --git a/src/onyxsymres.c b/src/onyxsymres.c index fefc9295..eaed4488 100644 --- a/src/onyxsymres.c +++ b/src/onyxsymres.c @@ -499,6 +499,10 @@ static SymresStatus symres_if(AstIfWhile* ifnode) { } if (ifnode->kind == Ast_Kind_Static_If) { + if ((ifnode->flags & Ast_Flag_Static_If_Resolved) == 0) { + return Symres_Yield_Macro; + } + if (static_if_resolution(ifnode)) { if (ifnode->true_stmt != NULL) SYMRES(statement, (AstNode **) &ifnode->true_stmt, NULL); @@ -818,52 +822,56 @@ SymresStatus symres_function(AstFunction* func) { scope_enter(func->scope); - bh_arr_each(AstParam, param, func->params) { - symbol_introduce(curr_scope, param->local->token, (AstNode *) param->local); - - // CLEANUP: Currently, in order to 'use' parameters, the type must be completely - // resolved and built. This is excessive because all that should need to be known - // is the names of the members, since all that happens is implicit field accesses - // are placed in the scope. So instead, there should be a way to just query all the - // member names in the structure, without needing to know their type. This would be - // easy if it were not for 'use' statements in structs. It is made even more complicated - // by this situtation: - // - // Foo :: struct (T: type_expr) { - // use t : T; - // - // something_else := 5 + 6 * 8; - // } - // - // The 'use t : T' member requires completely knowing the type of T, to know which - // members should be brought in. At the moment, that requires completely building the - // type of Foo($T). - if (param->local->flags & Ast_Flag_Param_Use) { - if (param->local->type_node != NULL && param->local->type == NULL) { - param->local->type = type_build_from_ast(context.ast_alloc, param->local->type_node); - } - - if (type_is_struct(param->local->type)) { - Type* st; - if (param->local->type->kind == Type_Kind_Struct) { - st = param->local->type; - } else { - st = param->local->type->Pointer.elem; + if ((func->flags & Ast_Flag_Has_Been_Symres) == 0) { + func->flags |= Ast_Flag_Has_Been_Symres; + + bh_arr_each(AstParam, param, func->params) { + symbol_introduce(curr_scope, param->local->token, (AstNode *) param->local); + + // CLEANUP: Currently, in order to 'use' parameters, the type must be completely + // resolved and built. This is excessive because all that should need to be known + // is the names of the members, since all that happens is implicit field accesses + // are placed in the scope. So instead, there should be a way to just query all the + // member names in the structure, without needing to know their type. This would be + // easy if it were not for 'use' statements in structs. It is made even more complicated + // by this situtation: + // + // Foo :: struct (T: type_expr) { + // use t : T; + // + // something_else := 5 + 6 * 8; + // } + // + // The 'use t : T' member requires completely knowing the type of T, to know which + // members should be brought in. At the moment, that requires completely building the + // type of Foo($T). + if (param->local->flags & Ast_Flag_Param_Use) { + if (param->local->type_node != NULL && param->local->type == NULL) { + param->local->type = type_build_from_ast(context.ast_alloc, param->local->type_node); } - bh_table_each_start(StructMember, st->Struct.members); - AstFieldAccess* fa = make_field_access(context.ast_alloc, (AstTyped *) param->local, value.name); - symbol_raw_introduce(curr_scope, value.name, param->local->token->pos, (AstNode *) fa); - bh_table_each_end; + if (type_is_struct(param->local->type)) { + Type* st; + if (param->local->type->kind == Type_Kind_Struct) { + st = param->local->type; + } else { + st = param->local->type->Pointer.elem; + } - } else if (param->local->type != NULL) { - onyx_report_error(param->local->token->pos, "Can only 'use' structures or pointers to structures."); + bh_table_each_start(StructMember, st->Struct.members); + AstFieldAccess* fa = make_field_access(context.ast_alloc, (AstTyped *) param->local, value.name); + symbol_raw_introduce(curr_scope, value.name, param->local->token->pos, (AstNode *) fa); + bh_table_each_end; - } else { - // :ExplicitTyping - onyx_report_error(param->local->token->pos, "Cannot deduce type of parameter '%b'; Try adding it explicitly.", - param->local->token->text, - param->local->token->length); + } else if (param->local->type != NULL) { + onyx_report_error(param->local->token->pos, "Can only 'use' structures or pointers to structures."); + + } else { + // :ExplicitTyping + onyx_report_error(param->local->token->pos, "Cannot deduce type of parameter '%b'; Try adding it explicitly.", + param->local->token->text, + param->local->token->length); + } } } } @@ -1113,11 +1121,7 @@ void symres_entity(Entity* ent) { break; } - case Entity_Type_Static_If: { - ss = symres_static_if(ent->static_if); - next_state = Entity_State_Comptime_Check_Types; - break; - } + case Entity_Type_Static_If: ss = symres_static_if(ent->static_if); break; case Entity_Type_Foreign_Function_Header: case Entity_Type_Function_Header: ss = symres_function_header(ent->function); break; @@ -1151,9 +1155,13 @@ void symres_entity(Entity* ent) { default: break; } - if (ss == Symres_Success) ent->state = next_state; if (ss == Symres_Yield_Macro) ent->macro_attempts++; if (ss == Symres_Yield_Micro) ent->micro_attempts++; + if (ss == Symres_Success) { + ent->macro_attempts = 0; + ent->micro_attempts = 0; + ent->state = next_state; + } if (ent->scope) curr_scope = old_scope; } diff --git a/src/onyxutils.c b/src/onyxutils.c index 0c568207..321f4a4d 100644 --- a/src/onyxutils.c +++ b/src/onyxutils.c @@ -57,7 +57,8 @@ void package_reinsert_use_packages(Package* package) { if (!package->use_package_entities) return; bh_arr_each(Entity *, use_package, package->use_package_entities) { - (*use_package)->state = Entity_State_Comptime_Resolve_Symbols; + (*use_package)->state = Entity_State_Resolve_Symbols; + (*use_package)->macro_attempts = 0; entity_heap_insert_existing(&context.entities, *use_package); } -- 2.25.1