From c77057e3409ab66ba5c245e9e1137d058d44d7f0 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Fri, 6 Aug 2021 14:55:45 -0500 Subject: [PATCH] bugfixing and added enumerate to iter --- bin/onyx | Bin 413592 -> 413544 bytes core/container/iter.onyx | 85 ++++++++++++++++++++++++++++++++++++--- include/onyxastnodes.h | 2 +- src/onyxutils.c | 16 ++++---- 4 files changed, 89 insertions(+), 14 deletions(-) diff --git a/bin/onyx b/bin/onyx index 1799b4fdaab30c473fee7e85559e4705a974bffc..55b3613d75b8d21768e0ca37ac61cc39dd4d3163 100755 GIT binary patch delta 43318 zcmcG%33yG{y9a#sa0n7fNXQ@rLCgt45F{j=5Ck#R6hh1d32I6-l;a3d!)q2Tts2@W z6?0?O8C6xZLY19TQd&Ziv%lZF_YO&J|Mz?Dz2BGTS$=!J(|XtR?zPrl`&hrtQ`zd7 z?l0_G)$n$Ooqc5!|Lt7uDm1SUtZFx=-~*9DbD>I3OS5+W23Ic=?QZRVeYinc6B2ye z_uC9};(}XqMr_DEuvuC(P<&MDK%F6t%!27a&)Dg*;B+8+^Z;{(nZdHjlIEngIZ$gt zP-Efnf&Odvg^Lwi9guI-4iIK#)vqXcl^2F)g}Dl~MPYYVTvfsMJ0XA;-4QklVOh2A z3X26HIBVx`LWBO|>ff`z3l^Q*iAVQj-JUL99xW`-+W(WdyP~+NUDmL>;zxqGG&rl= zJ#m*PZf%{Fd0$MGgxXoH{tyc#v9MWIi^pO$Sv=S%tNT;&u^=w;&uaI#SkEjL)y*3D zQoQXTG@&q2x+8SYsw+uf%ffJaQeJAGJUKProH!^ozg%LM)O0txI288twi;1KS4$^F~U?o+pAPpCe(ew&Z(>gyo zizbV$L;ZRZAgBQV`8g~oQX{S9EVj80$|O2fL5dJ&Qu&HftZ8H!F*5Y7I54By|x&X>uj$ogm+z1(PN9m6Yg=e}$+t z^Uf!Nsi$+q1-Njkj%13m{v2if1NCAHI;!2)@KZLBpQ98nd`31$Da~Q|1NJv4jeMOX zcVQs4c9L2MAvE4e@*mN-OOc8`vIsdJjY6-pqy-%>2l2EH&C81>B}8Y}WA<{Ly+voc zFxy9G*Jt(=oxMP3{{>L&ohi>rs#Y#6roYAd4>?wryc{O^`9@ivC{w9fWvO=4C(6Sw z;K1UW&Wqkh-P^k4!%=@xi<>qB-|8;0ATezP?YOq7nF^erU zz+%OnWpQ@mK8y8~B`!2yw|LRg_SB4xk=E}Y*3mnRZA_G(LuBd&7fW1Nu}oy!3(l!C zR23#?X_=PSGyQ?@U*~yuE$7)y%koH+%@WXa@t292k%pNl;bJ7R%IImm_^`TjEt={q zc_zcvC~K6TM--fMQMSVAC^+pBWdjX`x)^Cocw>Jm?7v}0+CsIQc35n)1EQ?Y*#zuF z!Opu6RZY-??YKOAC%##6Z5ovxw5TTcO84Z&z`!rL!cyO3m7QP$rcws<}6Qu8Y$ zd0Wu?VE=)#KtUB)FK{iE3rp=(KGCA7SW?e;^jv(;dC@i0eq>y@U%n+x4vkEc&sy4^ zaZYtWqeR*2TC9(`Urabzq=wmKztsHlNdvd{v_4=%NrwZkL|N_3fA~U0dnSGqY3uE8 zvBmiLI%iF*V_AH~dC`7Yx5RbMj|f!T=FNLIs%`#)@y=OczPNB+k%-pmZcBXW-#snl z)jC(nE4iK}Z8lmRt*LZA$bH0lQ9B4}HZ7M*TFb-){k zCFs0pl0l;_jpcg&@F1x!;?uY&YmOeG!iI;9;4p<)6TkSm^WvZEs`~JR656Rsks1+r z@8N;?H?>dMuF@c3c9v%qDNq#NqaJROck**DjtoJ^O`_?UWzP{8tph*6C1>AoB)gG| zuHb+Xw0JaX5>dqUm0&uVq6=~~na(3TC3i*~}+yYjG)# z#nPJg2Uu)_eCc;LscNIqa3ae3GVE}3&FUW~P0&%Av0+#&H&z>BqhVws)p3`aB(G?X zMogJkUTvPV4ibUch+3~aH5*aZr@Ho6({%0k<5@d#GsgWah@jieW1=h9#U$Qh#w7#O; z1ivIb*9Co3`JEg*rQQzb-sWEC=12Rh%Qa}Or_{`?ZW;N9tCavc;VF5$tXZzrudgw_ zeka9KYUtF%#BgSqo{oHy)AC5~0xEf*>w0e4wgDs&aW?DHAQ|rngj= zv+nX^k5hd@=i1?{8q8@c7Q&`0ug>08=p9PRdz zynOvzqSR?l3!Tsp_OVV{&^dGy^n-5!N?W?;BQ>pmdmlfpRWY%yCCyy>f_5V%Rs#v` zZyvds72LN`o0?LDlW!_NGv@jEThHL3Z>=dU@a(|W=j+z3dN1qiibpAWS1n8_UQm23 zsh*$fH=-%*3k*V�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

}^lfc*`T(zwG3ui`Ew! z?jKac_(R3%4W#fn4TPU0e@oyR#c^{*za>U+Bg$ah4HGdJCaC=*q~5(Lm+?SgKBv_y z#jCM4P#Tpo&Qu)SD(!tii#DCA7%x^F(g~%JVtjC)09>fp_k!pF#d|1~@j=B|x<}H+ zwmzY3U~`Hww^Pa`HROLV;WS zH-xlfYG19lZtf9t>$K|WcSxKi+S4zp?$fp&srIqtZ;kA)y-q6YYb$QO6{k=Juo({Q zv$LN>xorQW+ULC^@gLJ{@SbVLJArxL2t>_Uf1@hkw2#y~_<^|L-4S*=?dV#HR;vH1 zdfZ?UDz%eh`EP^VTH}hD&s1QCgmbRXx=}XcK8n+IK0c;(8%o8D$13(M6MdiJNmR*r zw&FZ(IHzTnk;@CbUU7x4dac!a52Y|Zpg5v?3tjXv@nkYSsW^GJxc#KwF3M+obyumF z<(7JjiW2Xyb;PQ6p9hVf{{)mk)cJnS@y{B40}Dh{s^`6IH)r>Kf?t>VZFqAyU~l;Ya~w}&~O&`_~d z*lD${lnQM6Ft&T+P|9Zev1%WgC2^dxK0?Ke=O~VACjDlKcAqU}mF+w)H^57k7yCR9 z;9YzXpC=`@ul2~o(;j{za|SLG{hpT8%kP;?FZr>~-9Wj1PlD?f`#@j#J!8v;UE^us zDVvn!F)msJSoUaF&r2Q4+6?goWAKK(Im0}?8aX$=@Y?xdp26;aJw=y?d9IIjJ{gJJ zK)r{1Zf=wlke19T%O37o=5CtRPb!1`y!8W_5uWaiD%yE$t(0yV;pyYbrR))&>;4CM CWP<1b delta 43360 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

_3pKg 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%0A~8BYRlQs-&|D_ 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 ^w&k0t3&DPr_9}^ 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 o_jsOlw_l;dIT39*N1u)J^uPK bool) -> Iterator(T) { } close :: ($T: type_expr, fi: ^FilterIterator(T)) { - fi.iterator.close(fi.iterator.data); + if fi.iterator.close != null_proc do fi.iterator.close(fi.iterator.data); cfree(fi); } @@ -56,7 +56,7 @@ map :: (it: Iterator($T), transform: (T) -> $R) -> Iterator(R) { } close :: ($T: type_expr, $R: type_expr, mi: ^MapIterator(T, R)) { - mi.iterator.close(mi.iterator.data); + if mi.iterator.close != null_proc do mi.iterator.close(mi.iterator.data); cfree(mi); } @@ -114,7 +114,7 @@ take_while :: (it: Iterator($T), predicate: (T) -> bool) -> Iterator(T) { } close :: ($T: type_expr, ti: ^TakeIterator(T)) { - ti.iterator.close(ti.iterator.data); + if ti.iterator.close != null_proc do ti.iterator.close(ti.iterator.data); cfree(ti); } @@ -151,7 +151,7 @@ skip :: (it: Iterator($T), count: u32) -> Iterator(T) { } close :: ($T: type_expr, si: ^SkipIterator(T)) { - si.iterator.close(si.iterator.data); + if si.iterator.close != null_proc do si.iterator.close(si.iterator.data); cfree(si); } @@ -185,8 +185,8 @@ zip :: (left_iterator: Iterator($T), right_iterator: Iterator($R)) -> Iterator(Z } close :: ($T: type_expr, $R: type_expr, zi: ^ZippedIterator(T, R)) { - zi.iterator1.close(zi.iterator1.data); - zi.iterator2.close(zi.iterator2.data); + if zi.iterator1.close != null_proc do zi.iterator1.close(zi.iterator1.data); + if zi.iterator2.close != null_proc do zi.iterator2.close(zi.iterator2.data); cfree(zi); } @@ -212,6 +212,79 @@ const :: (value: $T) -> Iterator(T) { }; } +#private_file Enumeration_Value :: struct (T: type_expr) { + index: i32; + value: T; +} + +enumerate :: (it: Iterator($T), start_index: i32 = 0) -> Iterator(Enumeration_Value(T)) { + Enumeration_Context :: struct (T: type_expr) { + iterator: Iterator(T); + current_index: i32; + } + + ec := make(#type Enumeration_Context(T)); + ec.iterator = it; + ec.current_index = start_index; + + next :: ($T: type_expr, use data: ^Enumeration_Context(T)) -> (Enumeration_Value(T), bool) { + value, cont := iterator.next(iterator.data); + + if !cont do return .{ current_index, __zero_value(T) }, false; + + defer current_index += 1; + return .{ current_index, value }, true; + } + + close :: ($T: type_expr, use data: ^Enumeration_Context(T)) { + if iterator.close != null_proc do iterator.close(iterator.data); + cfree(data); + } + + return .{ + data = ec, + next = #solidify next { T = T }, + close = #solidify close { T = T }, + }; +} + +from_array :: (arr: [..] $T) -> Iterator(^T) { + return from_slice((#type [] T).{ arr.data, arr.count }); +} + +from_slice :: (arr: [] $T) -> Iterator(^T) { + Context :: struct (T: type_expr) { + data: ^T; + count: u32; + current: u32; + } + + c := make(#type Context(T)); + c.data = arr.data; + c.count = arr.count; + c.current = 0; + + next :: ($T: type_expr, use _: ^Context(T)) -> (^T, bool) { + if current < count { + defer current += 1; + return ^data[current], true; + + } else { + return null, false; + } + } + + close :: (data: rawptr) { + cfree(data); + } + + return .{ + data = c, + next = #solidify next { T = T }, + close = close, + }; +} + fold :: (it: Iterator($T), initial_value: R, combine: (T, $R) -> R) -> R { for value: it { initial_value = combine(value, initial_value); diff --git a/include/onyxastnodes.h b/include/onyxastnodes.h index 9a3911d3..f9b8ee26 100644 --- a/include/onyxastnodes.h +++ b/include/onyxastnodes.h @@ -1131,7 +1131,7 @@ void entity_heap_remove_top(EntityHeap* entities); // If target_arr is null, the entities will be placed directly in the heap. void add_entities_for_node(bh_arr(Entity *)* target_arr, AstNode* node, Scope* scope, Package* package); -void entity_bring_to_state(Entity* ent, EntityState state); +b32 entity_bring_to_state(Entity* ent, EntityState state); void symres_entity(Entity* ent); void check_entity(Entity* ent); void emit_entity(Entity* ent); diff --git a/src/onyxutils.c b/src/onyxutils.c index be16d9f6..b2f741fc 100644 --- a/src/onyxutils.c +++ b/src/onyxutils.c @@ -962,7 +962,7 @@ AstFunction* polymorphic_proc_build_only_header(AstPolyProc* pp, PolyProcLookupM .scope = solidified_func.poly_scope, }; - entity_bring_to_state(&func_header_entity, Entity_State_Code_Gen); + b32 successful = entity_bring_to_state(&func_header_entity, Entity_State_Code_Gen); if (onyx_has_errors()) { onyx_clear_errors(); return NULL; @@ -1084,8 +1084,8 @@ AstTyped* find_matching_overload_by_arguments(bh_arr(OverloadOption) overloads, // NOTE: Overload is not something that is known to be overloadable. if (overload == NULL) continue; if (overload->kind != Ast_Kind_Function) continue; - if (overload->type == NULL) continue; - assert(overload->type->kind == Type_Kind_Function); + // if (overload->type == NULL) continue; + // assert(overload->type->kind == Type_Kind_Function); // NOTE: If the arguments cannot be placed successfully in the parameters list if (!fill_in_arguments(&args, (AstNode *) overload, NULL)) continue; @@ -1324,7 +1324,7 @@ AstStructType* polymorphic_struct_lookup(AstPolyStructType* ps_type, bh_arr(AstP return NULL; } -void entity_bring_to_state(Entity* ent, EntityState state) { +b32 entity_bring_to_state(Entity* ent, EntityState state) { EntityState last_state = ent->state; while (ent->state != state) { @@ -1333,14 +1333,16 @@ void entity_bring_to_state(Entity* ent, EntityState state) { case Entity_State_Check_Types: check_entity(ent); break; case Entity_State_Code_Gen: emit_entity(ent); break; - default: return; + default: return 0; } - if (ent->state == last_state) break; + if (ent->state == last_state) return 0; last_state = ent->state; - if (onyx_has_errors()) return; + if (onyx_has_errors()) return 0; } + + return 1; } -- 2.25.1