From b5ddcc731c6bcfd2637f46f3d649788315107f7f Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Sun, 21 Mar 2021 21:44:03 -0500 Subject: [PATCH] random little changes --- bin/onyx | Bin 348512 -> 348512 bytes core/env.onyx | 56 +++++++++++++++++++++++++++++++++++++++++++++ core/io/file.onyx | 10 ++++---- core/map.onyx | 7 +++--- core/std.onyx | 1 + docs/bugs | 18 +++++++++++++++ src/onyxastnodes.c | 1 + src/onyxparser.c | 2 ++ src/onyxsymres.c | 1 + 9 files changed, 87 insertions(+), 9 deletions(-) create mode 100644 core/env.onyx diff --git a/bin/onyx b/bin/onyx index 8aa4189de856ccd4f443ae3c6bf309084a9db09d..cf48b2c31aeea3415f0b6f02903cd9f0803589ac 100755 GIT binary patch delta 63283 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

e; zCD01joogW`&kTvDx@N;pb}d3(nu$`#z&0hr#I-|emB6dgV^?RBL8g2ozLDER@IKXF zG(W5s@(VR`x-03mU35Ln@0@SNoWp8;-%l4Ap`+e1bPjR;usYS(ZgR0Gxj%~0N7Twb zA8(^Hvze8xV$Bh?T)@&#AN2|jEOZSKj2ux*m1$tA%do88Lcij3H?E$@ab8E&lGWP4 zi<o9q#BH}n>&3AzeP49tx53nCsD_5LD@$N?O-b}i`>oC#bECN}G1#_nA zrsHaZ7kpj8{nK1DXj8uNeGOB_PFe__9-T-7-z;aNxYP<23GqJyXKI)I=6tQN3rzCyX)N7 zS)8txP*!eqIppXfD`Gly@Jk#j&HkW#!?|f~>40;%Va;83SLxT(0U|j!r>e}KS;i$Cmki6Zl$B_NlB)go&((*coV2>X2@^kze&q7UO7Tp4iYm-90lr9 zklQm4=(50R9FlMYkOlsT&RxKV6>10|^&5kufq&)DE9eX*LK23PPlCgpa5LYfP`6Sl zX(^ZVKnk4z-2r$RD3Q;I+r~e@j)$JeLb_2yiDgYvfe;Fkv^0DhC<^ZoSi%KB^1nvM z3FHC(I4Sj?28RRx%Aszu{r!0?d700jVdh`(AE*0|d5(MqZ~TV^CSYSPAn^b{qav3` z-vUCh84I?8r^$C%1^-+0-N!gVS&lz>W_4gC8CT-1#N$mP2cfqBy@4_CtkCo?_*T6! zKD;LWXXby-tNw2nSkQK=Z2urKr-EmhHSvbdAsx)K`LVR86>NXOx9a^nwBz4VN_&hG z|4zPS@?`@Ok2h^(g42PGyyH-}1ntki0Sm03dO#visYueCwwd5A* zP;e~R3UOAx<1tFsO#clXV=d59p5w2KJ5js~NIcfeR2pNRfEGZ_!B)8T7@k$fLOcFs z#G>%G@^k-rfi8PT$v2cr9QCLDm%EL?7y~3fnX4ZJ<^Y){mg)Rp3oS_Jm;Fa+hsCfp zbFf)Z_&+Q#-n1{V69~6}Lo#G-t%Cnedds8o9RE?lBgwcDkhrI5L`G}^aE=IddFl~d zgFXk}%^PaU+;{=>nx~j*BT*axYy^&`Y%QmiwL844Q0BLS)H~%c1u~;lC}2Pug6D>*IGF~x^x*r~ zLcgj3L)kBuX{Slc^tZrD^xmMkyGYylWKyqA-CW&KhJTW9L)T{v#rQe}4Q81IL_Efj zG@gpHvH)pE(h_3eNswvjh=j5xEqUlW^p9bzu1!W5Sv3vpHYAOGk6h9jHCXpGqSg)n zbLgEfk4(G4zajJe%zQ#=ym!jQirNjkBe@M73$V4z)#HIQz(u!**MWHi2zxG9j|1Gg z5@&ZTNavURt90qMlojR5@6h8gWD*4mcxc2@@I$`o_`jmF|0aJ}$5M}}1rCL${2Zda zpg5j-iG^vm$HULP9?$FI#<6usvs}Fyg=Gv$y`AA4`mVW=IZlt%pXvI#yE5V zUIMT|^07OL1L7oh$bW7qYBJA^eZ;#>hT8dPx9-1#b4+`Gqw9EB_}?h~*E%0lfs=FC zXPV6ldzJy-^CYJI-3*BnVCJBBZZ5wS#Ut4o(jCprIiznPcjt5S-SmHi2bkXcU8XS< zJS89OC67OlGtj!Z!>L^T8ZZ>c&LNW^9XJO);Pj)sf92FI?A*G* zM$JQ@sUHzWItXDRK|%8S zn)q=#|2@y~_`(zLy1MC9Z_@vypqbKfY8nJkQ@t?w5_kZSIQc96=sFRJyhd-nf&gMn zHk}DU4x#oY9Re&sCTTamh2G2?kMis#ohqg`)-E`XJzyRC2R~_nq`Pc;-QnU)I*Rm2 zAQ5N??F$SXf&IarK+e5f{Sa^o8=1NMSO8)HnNG|x@Llr7la2$za%f3U z5^v{G51=>D0hj{J1QLLz`CusNLqIZ+2qXbpOq^!&Bws>0uvKU30)_$$fRn%!U<_~x z`K3IEkyr!c28@Q_Q{cNmC~1jHn>@*v;0fK7k26F99e^%CZ(t}81bF9z>ZG&PJUv#+ z(@%kAI+}DtAQ;%SDxM)xFl`x5tE=I*Z{@=1Ngeq7{K9;pf@lRI0~F2Lz#d)J&uoRJr0uK zCj;3)EZ>AI%}M!jetCK(5dB1+o>+pK@hP!1a11(9KOUW1e8BigJ{MOWCw23w$mB`BgrPuO1!@b#1JS?)6W;}I z0YZcG^f};DfW*T`#SQHH^4o)krernOx_de{gyiXsDiO^pdHNqf6m)iFFgyvid}&D! z0>*U3zb^kd4El3E$3HUkPYQp09>?F;qT8Q6)?2{~%f~NAx=23yaRvQhiPj~P&hRx8 zJ5Agw|D!-W!jr^CFGEnaLxdSOIg+=2$0P1 zZU!6&yTQ$S9Cqu(cYl;mGi^LhzaWohDaara7;=N#czzve{C^A_7Gv%LV|(BjP#Va_ zp`(3(zCFJB|^kpWN>7izN!Dmc@pBwTi@Vr+cTVc>r@81Us`YYvI6f$OUo_;b3<4c%D$aF4@5M^GUT+_jO3%}$Z^_fUI=;)({dVQ) zzaQrMvLR1TIi07E-NW!XmZzWIl&3HJCQt8~$_4NsGi)-lYdCV2zHk}&S9$urEN0IW zMBpM9%9K34;?+F;-bpU1m-6&YJILeA)5Rh3oX^t}))U#E^YmV)xV~LLcQ+Tu*dH15 zM`4`9_(s0w_;sG1yDd+@u%ANK<>_w&<$-v-moRxPI=ryc=Lf#mb~8`^iQ3fqBTs)m zBTxU1!dCLx!!8eq*!MX2Yo1;wEl+>yR-V522p7el^7N0t%+p)tH&(qseixbqQFts@H8(%*p0(~+mgeY9WfP%yCXQRJ2Pal6L zPrpMH-u(rKh(a#;SA3hNSHpq+JM;8Wzvt=C65(w`sSZ)ThJ#*2`upp&{|UlS1qYfF z@;!vD8ew02FHgTgB;LA`r?1|gr@p!Pdy+Osrm0`Mfw){Y45BH9gzz$qN|Ap-9?@bDzgci+lt9z;P1KMiPNaIPeSoU%x%nB7Nl$wW&u#SI!Ar>>+g8`-MEw~Yl6m(rg2yTUPx11V=P2NnFJ4BQo`!+_ z+w1xi@Z%t%-Q)R>)BS56?f=)pg0jCV@Fb4hGM!ll4(qM!4PVmr_?~};Gu4 z%4SOkM}xyZ%F*M&z7uowOW?Fg6c|c{CSw3 zX}klq1{`-XN6!Y^PVtOsT^s~21BYkwC}=(KkJzh^gFjILa58uqIQ(at037`bk8ZAP zfTvffQA6719yI|6-zT)-EBXJy@)CInz zyHjvDj`k!nU|TO71E)J)!m|hx{SbhYU!h=d%scGdw4_EODYz8{eE)4@bLjjxF+5!7+ zB@+M@&GKbb@#3|}^O4}#;sw&$oRn{^$)>2m85?8{!9KVLaY`;|5a z%gwJSzD1UpOMY-z9vgjNUmJ@WiS2AhL}L#e1ddi%#DJ5*k>E6Nk7&k!CW)aivcd7- zFqKUXa5Q)&I1Zc&P6Vfe)4-R&a+~QcI2-KUnVM^Ctbk*{b-~HtC~!KsH`v#Ml`%LG zJOLbBm_?97Dv$_!o`M79FJm&6l)sj#VQJR$;52Y7IIavoNWiwTEaN2&j_iU1;Gy8) za_nz`ZRPoq)0I$zyMWWcap15DR7mo{=fL5?EY1A8QD7xP0S>D|&B5W|mEf3A7NOm7 zq$)KBCswDx9u!oQNP*L8vC{)iuFV!xPv{0128T5y^e>XHDGq>ro3qsfjs|Z8$AuF) za99LOGw)v1AcD|=gIf_Quq~2(CvZ$_YTg@<+wf}!oY{_=gTva>#$ewL>~Fnj^EjXqtj`e}xoh2SPtq03LaPmtm&%t5+9c(1@CGiSv0#5&!(8rK5k(z=N zXV4^)F3;+wACA<}^)+DMX1bmOPH(R3;V*+DbUgta*NRIoIP+Ou*ZSjFN7fqPuxKvx zVBZ&X{U|tQ0GIFqIOI#B1Bu|_x;|kb1*SX~tBvqi1}Va4xmGr8ZV{i*NT1*cpVBRT zd|Uc>Mi!-mv(z%iY2^yX6B(I@x~A5UA5 zOb6I(%fw4#wF>sVVysklin(L8r|dSdTT=ew2dHvE(K&jcRFClSeP8KLW}}e3WDgb< z$Dz4QG#jTi@hIInNB>OhPS8q-#Bo}veS+93r3=Kj0FqeRbK2Fi)q@!B|hkO&yBb@CX~Ge@uT(5{CVKVEyLQ12IW z^iqXH%|tCE<@|WQ_n%3T93ri7>2}z;y;fY$L-CKN+NXAD&?o%RXYulVC?V!OryiT0SSwGTMAj~7B*0$#@hcVNxr6su-a&_Py4mBp|m zob?r26anukT&>I5CA9+XX0XmNGcpEjakXqVO&k+iseq;|nfy$V?EMQ6MTvVtt59_% zBH63upBz$hNwy4Ln2TfZF2SQ?%+X44{(09q+6(rBV$~e2tVhuK9DTk~)0nB$^w&As zQ-y|J$k9jG#p|=QGNSHWElBpBxmt;GsjSDUNUM=PzA>(mWLOWWO{ro$DgimDlr;;M zVd;R#Q>>ax|2!&g&($gi#Iok{GBspn)6p0pYRuEh2FyX!&J?-4uVb^F6fe!wo}tH0 zpN9t>@^bXorADMrj1p7C$1|d+YswgaW|G*A5k|ug^R!OP2{q;u*#Y9E`E-MZV&Z)I z(*SX7J|q1uhuzc_#TIC73SDERSJhW`j8dZ563t7zyFh!M8R6IhJPs9s3$+%6s^>!5 zE|fLfA(62_4$y^KT@H)7y^ygOC3=3UwJ&roBv)TjT&$a-RS_pX)fVEwYm2lu`0(uy zi?nG>WUnP@t5FVIOs`KBT^DQf>4Y~IBcm@a!MRkiZ;2)XHV(+uS)9B6Liq3BL6jb>NB#9nZJYhb_Gr6DZExvQqZ(qeY!aW-&v{EZ#G~$3oWCb zu6{cpoQlGGB_D4jyy`Q!4QDr)vcpV)*F$8jq^*Yvk5yVVCHoUGc$HSi!#jexUDRHs zJ>wBcGF&WPr8VHgwWn9nm`z2M&uPW#b943j;^yaalKx!lrreq@u79q*%skb3wRVDU z090I~wF$VpHdmi*6zLkm!K_dd#Mm`jrvU$CmUX5(a=0ZRvWbgpv=Yratk2cYn7O2A z4WiN;xc8iomj-VDJogZgdMDw&-qfft&O7X$C4#l&!Unecq_=}mxl4jx{({$%kB;FbQeU>V8qLf|oajqFl! zFU%NGah+D8#!zJLD#)2luI%T)8{x8Q{FBp##!B8M`mLkABE{NuS}$fuuP>O+xiWo0 zuU#olf1$N6SDm$cGntFE#1!RS*Hk34Ut--KEh3W1zEMm~X5g0=Ta#Va&2sA*Kx4$S z>$UC-#)a#7J~i{8_-(z`n38I2pfhn5-#~YX7vne3fl?3U>Yo_boMRi9_Cv(48yKW~ z^!H1xNx;nGk6Q2`1&8p%AW@9}QahqtN*5hBa)DbZR&8V`Mv8Kq81YQ>o3s|n-S5P_ zOkq!^d%&$ejul3;Md^*jBAo$@J^FdSxk)(>&-PqHEX1liL_3p*Dmrh}N{gF2X+o~pyT}zOUXmzDEZ(Ix zQBM9S&hOINDb6e6=`>n&ff$&kwJ6l|MxNf%Pp)q&iX&-SGrafOt(7e_)TZk%78gDX zw8|;Z?dF=ur#SlU(b{-y@zHgUFBiA`NlQsQpd}Wv$EH*~t`)A>Hc=QOKE@pQUxF37 zdiETH;kqUfsuLzZX0E}X3s3%CHTgC%>;~)E?0JUxs3EoaDTcW;u~>@J78v5!3}kC= zio-;P6x$XVd_ElJ`s-(k!-YK?arj0<{GFM5oGA_#wWT=vTZ7-fn2~#vDW+AVIPsPt z{=m}^pE1R8VtO`Lk94tHY9+A-lz+dghE`>;j7Pkn6%EqR~yQ4J*>|H_79B z#mMtk5hKqgGf%KsFO}oPMI(>jZ(5tc?EaL?-&#Z0_N-q>U8X7J-(piMUQ9r>X#2|0 zniXnj-7vLc#7$`=>{mlv$w0OuMUA5Pd6tVf>8io!lrYy{Ra49YHkV!%o@DflSTpxP zQyeGO%iNiB4e<^$_d-(~CNAc>`j20pwu1h%HILs=_Vig5J?L{8Mjj8NKwFx(&GrO! zkD1lkgG$XBV;5ofXcHJ_4*vFL#v_bJnK4)_wqw^8Za5Kd zim#dCOp#&t=(y4H$yga7W zj{eZdsu|%1QBL9w>%84QaF;jn5F$zc%wS7=d>t|T5Y!0bLEM{e0;zU0mj}d`M@^Z(YdpWt( z6eo(CK9m?QDi)`G!o~RFP-$X)aYE~B=0Vl<_X)ovq{%el=j&?BVZJE)ip9PjyI73% z^TVlVG0G38g2iq>WMSea%)sywM&VOULzP*B8-^-A;pza5p76L47;h==hN+b(B1)hY zE_#;0q)kjLK>_I^!=UW`6c9YvsJuBOY)i`;1tf~v{&-4zqJ=lB{IL)$PJ;sD9fnhH z8OWBv27z=cTvQC80ADc(q-3Xy4FMi~2#{Y%OeBe_B@xn2C9y<1m89zNqF*UlOHad6 zHM5p=${PlK#dO4FGFuyBbNJe#O>yQtv8NOREMDA{R^pl(YM+@_rkQHERhp7B#h}t2 zy8<)KA52xuu35i=QC6~u2=u6>q>m791~PN`imibj(=gq(jH^o1%XrkPoju7YVWF9K zNU)JN>_?->vu4R7O+Nj+3{_7TUS$cJZLKjrFBnE_drU1~(YdVbK`HCYGQx>aMi3({ z{atY-h>;faqM`2ob?9BmC^JdaE{E+z(Y746lbuGi+{36{gSt diff --git a/core/env.onyx b/core/env.onyx new file mode 100644 index 00000000..7f91b55d --- /dev/null +++ b/core/env.onyx @@ -0,0 +1,56 @@ +package core.env + +use package build_opts as build_opts +#if build_opts.Runtime != build_opts.Runtime_Wasi { + #error "'core.env' is only available with the 'wasi' runtime."; +} + + +use package wasi { environ_get, environ_sizes_get, Size } +use package core.map as map +use package core.memory as memory +use package core.string as string + +Environment :: struct { + vars : map.Map(str, str); + + buffer : [] u8; + buffer_allocator : Allocator; +} + +get_env :: (allocator := context.allocator) -> Environment { + env_count, env_buf_size : Size; + environ_sizes_get(^env_count, ^env_buf_size); + + env_var := memory.make_slice(cstr, env_count, allocator=allocator); + env_buf := memory.make_slice(u8, env_buf_size, allocator=allocator); + + environ_get(env_var.data, env_buf.data); + + while i := cast(i32) (env_var.count - 1); i >= 0 { + defer i -= 1; + + env_var[i] = cast(cstr) (cast(^u32) env_var.data)[i]; + } + + env_map := map.make(str, str, ""); + for env: env_var { + s := string.make(env); + var := string.read_until(^s, #char "="); + map.put(^env_map, var, string.advance(s, 1)); + } + + raw_free(allocator, env_var.data); + + return .{ + vars = env_map, + buffer = env_buf, + buffer_allocator = allocator, + }; +} + +free_env :: (use env: ^Environment) { + map.free(^vars); + + raw_free(buffer_allocator, buffer.data); +} diff --git a/core/io/file.onyx b/core/io/file.onyx index 8d4f66d4..99c1759c 100644 --- a/core/io/file.onyx +++ b/core/io/file.onyx @@ -117,7 +117,7 @@ file_close :: (file: File) -> bool { file_write :: (file: File, data: str) { vec := IOVec.{ buf = cast(u32) data.data, len = data.count }; tmp : Size; - wasi.fd_write(file.fd, IOVecArray.{ cast(u32) ^vec, 1 }, ^tmp); + wasi.fd_write(file.fd, .{ cast(u32) ^vec, 1 }, ^tmp); wasi.fd_datasync(file.fd); } @@ -141,7 +141,7 @@ get_contents_from_file :: (file: File) -> str { dummy2: u32; buf := IOVec.{ cast(u32) data, size }; - wasi.fd_pread(file.fd, IOVecArray.{ cast(u32) ^buf, 1 }, 0, ^dummy2); + wasi.fd_pread(file.fd, .{ cast(u32) ^buf, 1 }, 0, ^dummy2); wasi.fd_seek(file.fd, prev_loc, Whence.Set, ^dummy); @@ -153,7 +153,7 @@ get_contents :: proc { proc (path: str) -> str { tmp_file, success := file_open(path, OpenMode.Read); - if !success do return str.{ null, 0 }; + if !success do return .{ null, 0 }; defer file_close(tmp_file); return get_contents(tmp_file); @@ -167,8 +167,8 @@ FileStream :: struct { open :: (path: str, mode := OpenMode.Read) -> (Error, FileStream) { fs := FileStream.{ - stream = Stream.{ vtable = null }, - file = File.{ fd = -1 }, + stream = .{ vtable = null }, + file = .{ fd = -1 }, }; file, success := file_open(path, mode); diff --git a/core/map.onyx b/core/map.onyx index 9c588706..cbdb47b9 100644 --- a/core/map.onyx +++ b/core/map.onyx @@ -111,10 +111,9 @@ empty :: (use map: ^Map($K, $V)) -> bool { hash_function :: proc { (key: rawptr) -> u32 { return 0xcbf29ce7 ^ cast(u32) key; }, - (key: i32) -> u32 { return 0xcbf29ce7 ^ cast(u32) key; }, - (key: i64) -> u32 { return cast(u32) (cast(u64) 0xcbf29ce7 ^ cast(u64) key); }, - - (key: str) -> u32 { + (key: i32) -> u32 { return 0xcbf29ce7 ^ cast(u32) key; }, + (key: i64) -> u32 { return cast(u32) (cast(u64) 0xcbf29ce7 ^ cast(u64) key); }, + (key: str) -> u32 { hash: u32 = 5381; for ch: key do hash += (hash << 5) + ~~ch; return hash; diff --git a/core/std.onyx b/core/std.onyx index ec6ad5c2..58428eb4 100644 --- a/core/std.onyx +++ b/core/std.onyx @@ -30,6 +30,7 @@ use package build_opts as build_opts #load "core/sys/wasi" #load "core/wasi" #load "core/io/file" + #load "core/env" } #if build_opts.Runtime == build_opts.Runtime_Js { diff --git a/docs/bugs b/docs/bugs index 94500beb..56a44438 100644 --- a/docs/bugs +++ b/docs/bugs @@ -36,6 +36,24 @@ List of known bugs: SN.foo() } +[ ] There is a segfault when passing an anonymous struct literal to an untyped vararg. + + vararg_proc :: (va: ...) { + ... + } + + vararg_proc(.{ 1, 2 }); + +[ ] This currently does not work but I think it should: + + baked_proc :: (x: $T, $func: (T) -> T) -> T { + return func(x); + } + + The problem is that 'T' is an unresolved symbol because the context of the function type + does not have the solved value of T in it. + + List of things to change: [X] Currently, there is no way to use the initialized members of a structure without using a struct literal. There should be a initialize intrinsic procedure that takes a pointer to anything and initializes it. diff --git a/src/onyxastnodes.c b/src/onyxastnodes.c index 52c7ecc7..fb654767 100644 --- a/src/onyxastnodes.c +++ b/src/onyxastnodes.c @@ -429,6 +429,7 @@ b32 type_check_or_auto_cast(AstTyped** pnode, Type* type) { if (node_is_type((AstNode *) node)) return 0; if (node->kind == Ast_Kind_Struct_Literal && node->type_node == NULL) { + if (type->kind == Type_Kind_VarArgs) type = type->VarArgs.ptr_to_data->Pointer.elem; node->type = type; add_entities_for_node(NULL, (AstNode *) node, NULL, NULL); diff --git a/src/onyxparser.c b/src/onyxparser.c index 7e53af02..ae264191 100644 --- a/src/onyxparser.c +++ b/src/onyxparser.c @@ -2389,6 +2389,8 @@ static AstPackage* parse_package_name(OnyxParser* parser) { token_toggle_end(symbol); symbol_subpackage_introduce(package->scope, symbol->text, pnode); token_toggle_end(symbol); + + package_reinsert_use_packages(package); } package = newpackage; diff --git a/src/onyxsymres.c b/src/onyxsymres.c index 43f7a2db..efb5ec6e 100644 --- a/src/onyxsymres.c +++ b/src/onyxsymres.c @@ -1018,6 +1018,7 @@ static SymresStatus symres_struct_defaults(AstType* t) { } static SymresStatus symres_polyproc(AstPolyProc* pp) { + pp->flags |= Ast_Flag_Comptime; pp->poly_scope = curr_scope; bh_arr_each(AstPolyParam, param, pp->poly_params) { -- 2.25.1