From 5d958f8af1646f9cb4763bb2f020bb2e6de8a3c0 Mon Sep 17 00:00:00 2001 From: nic-gaffney Date: Tue, 27 Jun 2023 03:19:39 -0500 Subject: [PATCH] help --- build.sh | 9 +++-- cgol | Bin 0 -> 22096 bytes examples/cgol.sloth | 76 +++++++++++++++++++++++++------------- examples/mandelbrot.sloth | 8 ++-- mandelbrot | Bin 21024 -> 21936 bytes mandelbrot.py | 22 ----------- std/stdio.c | 4 ++ std/stdlib.c | 9 +++++ std/stdlib.sloth | 11 ++---- std/stdmath.c | 6 +-- 10 files changed, 80 insertions(+), 65 deletions(-) create mode 100755 cgol delete mode 100644 mandelbrot.py diff --git a/build.sh b/build.sh index b8a9b9c..62bd830 100755 --- a/build.sh +++ b/build.sh @@ -1,8 +1,11 @@ # Build Sloth cargo build - +FILENAME="$1" # Compile standard library -./target/debug/sloth std/stdio.sloth std/stdlib.sloth std/stdmath.sloth "$1" +./target/debug/sloth std/stdio.sloth std/stdlib.sloth std/stdmath.sloth $FILENAME # Generate binary -clang output.o std/stdio.c std/stdlib.c std/stdmath.c -o program +clang output.o std/stdio.c std/stdlib.c std/stdmath.c -o "${FILENAME%.sloth}" + +# Move file +mv "${FILENAME%.sloth}" . diff --git a/cgol b/cgol new file mode 100755 index 0000000000000000000000000000000000000000..9a1335c058f2561792722d2911b95e3b30538d21 GIT binary patch literal 22096 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 literal 0 HcmV?d00001 diff --git a/examples/cgol.sloth b/examples/cgol.sloth index eea14c3..b1a6998 100644 --- a/examples/cgol.sloth +++ b/examples/cgol.sloth @@ -1,73 +1,99 @@ -foreign fn print(str: String); -foreign fn randGen(min: Int, max: Int) Int; -foreign fn wait(time: Float); -foreign fn termpos(x: Int, y: Int); - - fn populate() [Int] { + # Initialize life vector var life: [Int] = [0]; vpopi(life); + + # Fill the vector with random values var i: Int = 0; while i < 100 { - n: Int = randGen(0,1); + var n: Int = randGen(0,1); + println(istr(n)); vpushi(life, n); + i = i+1; } + return life; } fn coord(x: Int, y: Int) Int { + println("COORD"); + var res: Int = -1; + # Calculate index based on coordinates if x >= 0 && y >= 0 { - return y*10 + x; + println("COORD1"); + res = y*10 + x; } - return -1; - + # if coordinate is invalid, return -1 + return res; } fn cval(x: Int, y: Int, life: [Int]) Int { - c: Int = coord(x, y); - if c < 0 { - return 0; + println("CVAL"); + # Check to make sure index exists before returning + var res: Int = 0; + var c: Int = coord(x, y); + println("CVAL1"); + if c >= 0 { + println("CVAL2"); + res = vgeti(life, c); } - return vgeti(life, c); + println("CVAL3"); + return res; } fn update(life: [Int]) [Int] { - x: Int = 0; - while x < 10 Int { - y: Int = 0; + # Iterate through life + var x: Int = 0; + while x < 10 { + var y: Int = 0; while y < 10 { - total: Int = cval(x-1, y-1) + cval(x-1, y) + cval(x-1, y+1) + cval(x, y-1) + cval(x, y+1) + cval(x+1, y-1) + cval(x+1, y) + cval(x+1, y+1); - if cval(x, y) == 1 && total < 2 || total > 3{ + # Calculate total score around selected cell + var total: Int = cval(x-1, y-1) + cval(x-1, y) + cval(x-1, y+1) + cval(x, y-1) + cval(x, y+1) + cval(x+1, y-1) + cval(x+1, y) + cval(x+1, y+1); + + # Apply game of life rules + if cval(x, y) == 1 && total < 2 || total > 3 { vseti(life, 0); } else if total == 3 { vseti(life, 1); } + y = y+1; } + x = x+1; } + return life; } fn display(life: [Int]) { - x: Int = 0; + println("DISPLAY"); + # Iterate through life + var x: Int = 0; while x < 10 { - y: Int = 0; + println("DISPLAY1"); + var y: Int = 0; while y < 10 { - alive: Bool = cval(x, y) == 1; - if alive { + println("DISPLAY2"); + # if the cell is alive, print + if cval(x, y) == 1{ + println("DISPLAY3"); termpos(x, y); print("#"); } - - + y = y+1; } + x = x+1; } } fn main() Int { + # Populate var life: [Int] = populate(); + display(life); + # Play forever while true { life = update(life); display(life); wait(0.5); } + return 0; } diff --git a/examples/mandelbrot.sloth b/examples/mandelbrot.sloth index 6bf7727..391e86e 100644 --- a/examples/mandelbrot.sloth +++ b/examples/mandelbrot.sloth @@ -1,8 +1,8 @@ -foreign fn print(str: String); -foreign fn printint(i: Int); -foreign fn as_int(x: Float) Int; +#foreign fn print(str: String); +#foreign fn printint(i: Int); +#foreign fn as_int(x: Float) Int; -foreign fn termpos(x: Int, y: Int) Void; +#foreign fn termpos(x: Int, y: Int) Void; fn main() Int{ var size: Float = 1000.0; diff --git a/mandelbrot b/mandelbrot index 1196b0f9e194d697d9214f99fd207d85703fe394..53f907c04a3d1b859a6dc842dad60714b0f6451e 100755 GIT binary patch delta 6156 zcmai23vg7`89w)BH`#>1?k0h30L=o6MjpEh1CsDCH^^gw1VR-B!6s`S5Y1zoY%p46 zgP>yy*uW7=sg>9|4plo7ilb;-Nx+G*Wo+umOzLamNOdzZmJ+IqjkEp!bI(bZOglY0 zd%yF4|KmLFdEL|Tg4X%6*6zv}a4?Y!6IiJD(5x5JI&G%dX*=|xH|>a&j@WpH<}Lcz zVk#9f8A1b{jDPQ3Q{TJnMm(mQatGg|Wjp(&Rll_A=fBbZGCj|2+KfdH1xNB|{J6e; z+W#sdUlx(iQRboPwt&eYhFBa?NRuPws*Xk?m3*eqG!9C7Hdk(6hcS>n@1SjPMb{I~=@-{fx>!P65IMuG$0&`1g-@b=RileeZEcKjgn zrjM~5GzSN};z%=pM>2KaV5g8@BAL2vutUhdBH2oEyO58QOzj?Q74l({sSSf6A^(JA z>fga~AwNzswR^CXWPN5Dzsupd`yz^rPki0W*tKe}J$D}r7_;XZEO2ny8n^@wT9*?P z#KIE;`>jV|7bxGq*3x67Z0j+S*Y+6J`8|dO zx+Lgy=(Ls|wk_I&KA@0BgthJR4DZFCJ(fDJYxWAy@cFOwuh@Rd*mGAfHe`1qZ@;(8 z?gj3gG-P)GtL?kH7NR1p)%N->;bHRU+Yv9;7WNDyLTm{vcc)NpH0X``h-dh*F$SW* z7@ozRVG%TDmYiw|iG__;aMZrogFIEy?(N?BUwqm{{A(h9Y$!seB*4LpkLUP$jDB*T zV@4XXZ&5}tg#(o^ehrLO^wjIH{qH15ott{+U}3p3~H>(h8;<{tf{RQ_e=tjGzB^v6V6JVKfpt%HO?*VYp~jkjnHyLYcA47*v; z2ce*$01xZ*RNkJI=Q-O7F1lOTt&9csH^(pszQvU5#Goa1|H>GjGto5%UEm0`Jq8o{ zTYr>?d9dFf)yQV=+m8FsSC39TUOF*5!p$IW#gu`Xn42(vC>k2Qa(F0UpR;nf?VV`y zNFb$Gr9~e~2!Y`%^r%T&^EIknprYiO{Vj{_el?#=f7fVrqrXTD!0(vozIX4kTr_~$ zpO}p2ye^bK6*hp2-^SzbSmU>vyF+vm*!?B3*(Jk!yR|^YyMdnvzP%o(SUDWf&b9TK z4M#`py=+6?b{-4kLn(*dDG_V~tp*g!8G95}X2#5U^A|O-DO+b&E}2;wK=dg|OX!d@ z1IpMx;_(pjC$Gfg$AD*mSSZ-Zf5zjTBm>_D_5=HYG2msO?P@%ZJ(9VAS-^Z?9&q#3 zNIbq2nH?ZXfi1vF;4xqe@C@((uou_?><7LIv<=1M7l50Amw+w681N)89qUUk&<%_N z7XV$?@NR(t;5Oh%UMon!#)1GWIK0FMD3SOd=h{lI=;DKG{M0d45^ zb|7Q?3-@#_#8apFtgT-o7+*GRMv)C2hS4>WXph~7{}u3vE)sDe{4aycFe!2R*oSEceyKCTj#{{%t zRdt(aiw6%%Yl6AWQ773DJ;wg!gRe4^00C-pnWC)cH?(CelE z+n_IperBS+d{n;+`VjPaiTa9B{j<=wLhnx0ZBW2w(c3~=|T ze)#|RPsISG3Q(7iG;p2i&mA)?lb6DPT5w;YfxZbASY58#a^%sMsgo{xUZgM|oSW-B z;4&pqJ!E@%jyG59;{{&dv}1JgLQ)4!nvs;$f$7X_`BZRXDF10q zKj7jIEiTjBU8gTB-e*Zu-P7)(YVuH_J57W^q$4iAG1-gHF$=#?Sm|`A4?|gxS^Rk; zJC(jRboxN!K_fe-+%T2u6_i2L*hJRH4;k6B)Qd807&|PqStH*vir01izTws0;7%i3 zJ4a9MFkCqogn1_G_b5Y&WKr^=&`x6Nb6VMaE;1P`&#f2}zX52>#iH1m5>qyIS840#9G7eXZ8b-p?f8CBJ{wTK25u2PCgX{jXKTg_|%PsV-OK7qwd!dQ|d# zWBAvUXQWrg_Dc(~u9CO(9Q%#_zN(9CwQK_Wo8*~{Bi3z%`AqU-zv;g)`3N&)qr_4N zhs)BzFC(js;wpH04P#$VTooV-R*StwHoz~J3bD{2emZzJ&`i93MOxJqY1$==RC8h) zc&DDjHXF*^M6a|jm-cFlTtN2tsrX`Rhs&L0PjCLFyQQZgT~uXfQ6tF0x<%PWYNaic z9W-B7q6xf%O=dd`Nl1vvj!;X)bjj0Ei0sS9*zW@`#;>f4*sS2wX7Ul%Dx0TPs-H@S z0m-X3b42nE8A$Dz$0Z+M9I75U{YN|+Z@?r z$q`A-*jtDf?=v5{>6BZ17jb$zy^I^u78xTXt0MMvSOg`HK;Nx6>%v7>O@p_BF1&C} zWoGJv;T`;sE6X$G1(%_&t>$|d@_x%rYs}lRM4FXVRR+UBwv%qq%BpMXYvgs>4Msb+ zSB0SJF^??!c~oR6}45tMz%B5+_a;Hg&J$>!?ot!9RKmE$?4T} zYe&~_tE=kyGpq7_bc1(8jOsev(3w|vH}H*B!OGft{^_b2h1GSz78YuFSOjXQD{HC> zH;2Yt-i`P!5|@D^BD&)6>cEsxu(7GC43#r46BE^^SFgUVYkpp|)|a6U3krKR{`gw2 zQ=KUkUgF(rea>C-w4m@7uC4PqPfAvy!HdAElZC>5z6Y#2e<-}dyVpguPF_^(OYM{6 zq>n#RylCV`Tg~p5Quw)I@5oM%1HgC1tF&8rQHk#+wJR#5llMqEbPCtIC60{JX(pxc zKoUP!;!RaokiGnR$s&HG#LvsuJ5tsD+s_|azsRX>7thG$%g?*l7iv4Ww!xQLYRIs> zV8bG(nw8~#leO{gHMzWFgG(#tZ)_+;ORwYE!3#`BqdY$S>v#( z3OJ#(s>zrdPKBmv)!5Wc+nCl=VbfGa!>A~ONo$FQv}mK6*{J3X*w~<3SR=iC_q}_Q zG}3PL-uLczzH{!q=iPgrGkj6G@Q(6kz?;^X*>nq7Au+W22c^k*RyR3s==agm0lU>3 zu#;DbZmlh`x)PZPp@8OoH`ZD98(Th)N!9A_rvb(9DF{_Ts0#EW<)h_m!fA#@M6IXnE+g=~o`oS>o)L9N5HJ`za0^Co{gp zpnVyCel4GI8HMstKNo)>5c+3L{rYBl#vy}yjHhvlAzh?DoeB71J$OUs_ddrf6z z^Bqu?GHUZJS3h>sYrb{rkKJ_1H=wR@Q(fii>}T_Nu>B2@xEV73*A#|?FNk6}c2KS% zVl%s1k#DHnl|c|2uk}7@l7Zq~%sXd`n7t*%kI@_aQY1H4{4<^|^V}A%e`Xko+^@!T zg^jV*#ns^Ms&_G{WsrM_j&cI_WTE(oimx=hXf%B zSej@16#V(^xjej|0^dj^7TN*F_L#yl$;AYvO3<~ke;GJIx2qOrZ(@aBPNVVj&reBV z4);xP_rNUx^2T*P!Bqr@cV{-v<#F8sS79=ij%Vw^9Igm%3LJd0rj$ER;hF@ABVabp zX*@&V{Ij?SIEL3CYKu9U4dC41W>01pI43wc=>Xi);B4SlAY-gyfvz6RE^uyLptB|D z_rVxIx+8dITNh}rt5229Yjrz#?zsKiuvf#*kHECOW5zxT`v%yT&$d55W4{G^0(QQz zY5&MGGlD4*pnA68AnYTzBY$yX6OSrES!!izg^StZbbDRM^RmzC1qFM9JkgLcK{e4> z)f+a8!qac@3tE0t;J^YNi*xISDeLk)m( zMyasNMsB^m=1mb#PKCc)m6fyn9G-vJIM3+2x<44!ExlZDE4m8v;Y5w=etJXKg6B-8 zV){#I=^5KhDJZJ91}Lcqg1pKoY$1!UkamGw)i`EaE1CQeA~heG4_>x5EEx;`1W;Ij z6~%{BS||B0gP;$S^fQU(D95We9a&@K}o3xHhEBLU8Ba3wqeAt=`?sT%Dbp02E^q7#!x4lvD zy4YrN?mGD8IKvA!9pDPp%~SHZ)+RiY!qcpsP;?2t-$UniT()I8dNS0NNIQ #include -bool random_setup = false; +int random_setup = 0; int randGen(int min, int max) { - if random_setup == false { + if (random_setup == 0) { srandom(time(NULL)); - random_setup = true; + random_setup = 1; } return random() % (max - min + 1) + min; }