From 60324d9f14bc7d3a66fed4dbee5e884e02405556 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Thu, 12 Aug 2021 14:30:40 -0500 Subject: [PATCH] macros working! needs a lot of cleanup however --- bin/onyx | Bin 413768 -> 413864 bytes core/container/bucket_array.onyx | 21 +++-- include/onyxastnodes.h | 3 +- .../immediate_mode/immediate_renderer.onyx | 2 +- src/onyxchecker.c | 22 +++-- src/onyxsymres.c | 3 + src/onyxutils.c | 84 ++++++++++++++++-- 7 files changed, 114 insertions(+), 21 deletions(-) diff --git a/bin/onyx b/bin/onyx index aa21c0e3226919004132157e66201ee23689a301..5d1db354bbb530e15b69912db51f024ff3d0d445 100755 GIT binary patch delta 83168 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 delta 81824 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 Bucket_Array(T) { buckets : Bucket_Array(T); - init(^buckets); + init(^buckets, elements); return buckets; } -init :: (use b: ^Bucket_Array($T), elements_per_bucket: i32, +init :: (use b: ^Bucket_Array($T), elements: i32, array_allocator := context.allocator, bucket_allocator := context.allocator) { allocator = bucket_allocator; - buckets = array.make(#type Bucket(T), allocator=array_allocator); + b.elements_per_bucket = elements; + buckets = array.make(#type Bucket_Array.Bucket(T), allocator=array_allocator); initial_bucket := alloc_bucket(b); array.push(^buckets, initial_bucket); @@ -77,9 +78,19 @@ pop :: (use b: ^Bucket_Array($T)) { last_bucket.count -= 1; } +// Give you a pointer to the bucket data via 'it'. +for_each :: macro (b: Bucket_Array($T), $body: Code) { + for ^bucket: b.buckets { + for bucket_index: bucket.count { + it := ^bucket.data[bucket_index]; + + #insert body; + } + } +} #private -alloc_bucket :: (use b: ^Bucket_Array($T)) -> Bucket(T) { +alloc_bucket :: (use b: ^Bucket_Array($T)) -> Bucket_Array.Bucket(T) { data := raw_alloc(allocator, sizeof T * elements_per_bucket); return .{ 0, data }; } diff --git a/include/onyxastnodes.h b/include/onyxastnodes.h index f412e137..aa498532 100644 --- a/include/onyxastnodes.h +++ b/include/onyxastnodes.h @@ -1354,7 +1354,8 @@ AstTyped* find_matching_overload_by_arguments(bh_arr(OverloadOption) overloads, AstTyped* find_matching_overload_by_type(bh_arr(OverloadOption) overloads, Type* type); void report_unable_to_match_overload(AstCall* call); -void expand_macro(AstCall** pcall); +void expand_macro(AstCall** pcall, AstFunction* template); +AstFunction* macro_resolve_header(AstMacro* macro, Arguments* args, OnyxToken* callsite); AstStructType* polymorphic_struct_lookup(AstPolyStructType* ps_type, bh_arr(AstPolySolution) slns, OnyxFilePos pos); diff --git a/modules/immediate_mode/immediate_renderer.onyx b/modules/immediate_mode/immediate_renderer.onyx index c0bdcf28..81756646 100644 --- a/modules/immediate_mode/immediate_renderer.onyx +++ b/modules/immediate_mode/immediate_renderer.onyx @@ -520,7 +520,7 @@ apply_transform :: (transform: Transform) do global_renderer->apply_transform(tr -save_matrix :: #code { +save_matrix :: macro () { I :: package immediate_mode I.push_matrix(); defer I.pop_matrix(); diff --git a/src/onyxchecker.c b/src/onyxchecker.c index dfe01802..86425546 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -444,12 +444,13 @@ static CheckStatus check_resolve_callee(AstCall* call, AstTyped** effective_call calling_a_macro = 1; call->callee = callee; - callee = ((AstMacro *) callee)->body; - if (callee->kind == Ast_Kind_Polymorphic_Proc) { - onyx_report_error(call->token->pos, "Cannot call polymorphic macros... yet."); - return Check_Error; - } + AstTyped* new_callee = (AstTyped *) macro_resolve_header((AstMacro *) callee, &call->args, call->token); + if (new_callee == (AstTyped *) &node_that_signals_a_yield) return Check_Yield_Macro; + if (new_callee == NULL) return Check_Error; + + arguments_remove_baked(&call->args); + callee = new_callee; } else if (callee->kind == Ast_Kind_Polymorphic_Proc) { AstTyped* new_callee = (AstTyped *) polymorphic_proc_lookup((AstPolyProc *) callee, PPLM_By_Arguments, &call->args, call->token); @@ -702,7 +703,7 @@ type_checking_done: callee->flags |= Ast_Flag_Function_Used; if (call->kind == Ast_Kind_Call && call->callee->kind == Ast_Kind_Macro) { - expand_macro(pcall); + expand_macro(pcall, callee); return Check_Return_To_Symres; } @@ -1764,7 +1765,14 @@ CheckStatus check_insert_directive(AstDirectiveInsert** pinsert) { if (insert->flags & Ast_Flag_Has_Been_Checked) return Check_Success; CHECK(expression, &insert->code_expr); - if (insert->code_expr->type == NULL) return Check_Yield_Macro; + if (insert->code_expr->type == NULL) { + if (insert->code_expr->entity && insert->code_expr->entity->state >= Entity_State_Code_Gen) { + onyx_report_error(insert->token->pos, "Expected expression of type 'Code'."); + return Check_Error; + } + + return Check_Yield_Macro; + } Type* code_type = type_build_from_ast(context.ast_alloc, builtin_code_type); diff --git a/src/onyxsymres.c b/src/onyxsymres.c index 89b6d488..0372ee89 100644 --- a/src/onyxsymres.c +++ b/src/onyxsymres.c @@ -1158,6 +1158,9 @@ static SymresStatus symres_macro(AstMacro* macro) { if (macro->body->kind == Ast_Kind_Function) { SYMRES(function_header, (AstFunction *) macro->body); } + else if (macro->body->kind == Ast_Kind_Polymorphic_Proc) { + SYMRES(polyproc, (AstPolyProc *) macro->body); + } return Symres_Success; } diff --git a/src/onyxutils.c b/src/onyxutils.c index cebbc890..3ab680a5 100644 --- a/src/onyxutils.c +++ b/src/onyxutils.c @@ -729,10 +729,11 @@ static void solve_for_polymorphic_param_value(PolySolveResult* resolved, AstPoly if (param->type == NULL) param->type = type_build_from_ast(context.ast_alloc, param->type_expr); + assert(param->type); if (!type_check_or_auto_cast(&value, param->type)) { if (err_msg) *err_msg = bh_aprintf(global_scratch_allocator, - "The procedure '%s' expects a value of type '%s' for %d%s parameter, got '%s'.", + "The procedure '%s' expects a value of type '%s' for baked %d%s parameter, got '%s'.", get_function_name(pp->base_func), type_get_name(param->type), param->idx + 1, @@ -783,10 +784,7 @@ static bh_arr(AstPolySolution) find_polymorphic_slns(AstPolyProc* pp, PolyProcLo default: if (err_msg) *err_msg = "Invalid polymorphic parameter kind. This is a compiler bug."; } - if (flag_to_yield) { - bh_arr_free(slns); - return NULL; - } + if (flag_to_yield) goto sln_not_found; switch (resolved.kind) { case PSK_Undefined: @@ -968,6 +966,7 @@ AstFunction* polymorphic_proc_build_only_header(AstPolyProc* pp, PolyProcLookupM b32 successful = entity_bring_to_state(&func_header_entity, Entity_State_Code_Gen); if (onyx_has_errors()) { + onyx_errors_print(); onyx_clear_errors(); return NULL; } @@ -1205,12 +1204,11 @@ void report_unable_to_match_overload(AstCall* call) { // // // TODO: Write this documentation -void expand_macro(AstCall** pcall) { +void expand_macro(AstCall** pcall, AstFunction* template) { AstCall* call = *pcall; AstMacro* macro = (AstMacro *) call->callee; assert(macro->kind == Ast_Kind_Macro); - AstFunction* template = (AstFunction *) macro->body; assert(template->kind == Ast_Kind_Function); assert(template->type != NULL); @@ -1232,10 +1230,82 @@ void expand_macro(AstCall** pcall) { (AstNode *) ((AstArgument *) call->args.values[i])->value); } + if (template->flags & Ast_Flag_From_Polymorphism) { + // SLOW DUMB HACKY WAY TO DO THIS!!!!! FIX IT!!!!! + + AstPolyProc* pp = (AstPolyProc *) macro->body; + bh_table_each_start(AstSolidifiedFunction, pp->concrete_funcs); + + if (value.func == template) + scope_include(argument_scope, value.poly_scope, call->token->pos); + + bh_table_each_end; + } + *(AstBlock **) pcall = expansion; return; } +AstFunction* macro_resolve_header(AstMacro* macro, Arguments* args, OnyxToken* callsite) { + switch (macro->body->kind) { + case Ast_Kind_Function: return (AstFunction *) macro->body; + + case Ast_Kind_Polymorphic_Proc: { + AstPolyProc* pp = (AstPolyProc *) macro->body; + ensure_polyproc_cache_is_created(pp); + + char* err_msg=NULL; + bh_arr(AstPolySolution) slns = find_polymorphic_slns(pp, PPLM_By_Arguments, args, &err_msg); + + if (slns == NULL) { + if (flag_to_yield) { + flag_to_yield = 0; + return (AstFunction *) &node_that_signals_a_yield; + } + + onyx_report_error(callsite->pos, err_msg); + return NULL; + } + + // CLEANUP Copy'n'pasted from polymorphic_proc_build_only_header + AstSolidifiedFunction solidified_func; + + char* unique_key = build_poly_slns_unique_key(slns); + if (bh_table_has(AstSolidifiedFunction, pp->concrete_funcs, unique_key)) { + solidified_func = bh_table_get(AstSolidifiedFunction, pp->concrete_funcs, unique_key); + + } else { + // NOTE: This function is only going to have the header of it correctly created. + // Nothing should happen to this function's body or else the original will be corrupted. + // - brendanfh 2021/01/10 + solidified_func = generate_solidified_function(pp, slns, callsite, 1); + } + + if (solidified_func.header_complete) return solidified_func.func; + + Entity func_header_entity = { + .state = Entity_State_Resolve_Symbols, + .type = Entity_Type_Function_Header, + .function = solidified_func.func, + .package = NULL, + .scope = solidified_func.poly_scope, + }; + + b32 successful = entity_bring_to_state(&func_header_entity, Entity_State_Code_Gen); + if (onyx_has_errors()) return NULL; + + solidified_func.header_complete = successful; + + bh_table_put(AstSolidifiedFunction, pp->concrete_funcs, unique_key, solidified_func); + if (!successful) return (AstFunction *) &node_that_signals_a_yield; + + return solidified_func.func; + } + + default: assert(("Bad macro body type.", 0)); + } +} + // // Polymorphic Structures // -- 2.25.1