From 6db338d79b8ccb289dcaf08f83bff67647005e75 Mon Sep 17 00:00:00 2001 From: Masashi Date: Wed, 17 Dec 2025 15:45:13 +0530 Subject: [PATCH] O3 --- compile.sh | 14 +++++++++++--- compile_and_run.sh | 14 +++++++++++--- tests/fps_game.o | Bin 49432 -> 44984 bytes 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/compile.sh b/compile.sh index 692994e..8b32399 100755 --- a/compile.sh +++ b/compile.sh @@ -7,15 +7,23 @@ if [ "$1" = "--debug" ]; then shift fi +OPTIMIZE_FLAG="" +if [ "$1" = "--optimize" ]; then + OPTIMIZE_FLAG="-O3" + shift +fi + if [ $# -eq 0 ]; then - echo "Usage: ./compile.sh [--debug] [output_name]" + echo "Usage: ./compile.sh [--debug] [--optimize] [output_name]" echo "" echo "Options:" - echo " --debug Generate debug printf statements in the C output" + echo " --debug Generate debug printf statements in the C output" + echo " --optimize Compile with -O3 optimization" echo "" echo "Examples:" echo " ./compile.sh tests/structs.sui" echo " ./compile.sh --debug tests/structs.sui" + echo " ./compile.sh --optimize tests/structs.sui" echo " ./compile.sh tests/structs.sui my_program" exit 1 fi @@ -59,7 +67,7 @@ ODE_LIBS=$(pkg-config --libs ode 2>/dev/null || echo "-lode -lm") # Compile C to executable with raylib and ODE support echo "Compiling C code and linking with libsuicmez, raylib, and ODE..." -gcc "$C_FILE" libsuicmez/libsuicmez.c libsuicmez/suicmez_gc.c $RAYLIB_CFLAGS $RAYLIB_LIBS $ODE_CFLAGS $ODE_LIBS -lm -o "$OUTPUT_BINARY" || exit 1 +gcc $OPTIMIZE_FLAG "$C_FILE" libsuicmez/libsuicmez.c libsuicmez/suicmez_gc.c $RAYLIB_CFLAGS $RAYLIB_LIBS $ODE_CFLAGS $ODE_LIBS -lm -o "$OUTPUT_BINARY" || exit 1 echo "✓ Successfully created: $OUTPUT_BINARY" echo " Run with: ./$OUTPUT_BINARY" diff --git a/compile_and_run.sh b/compile_and_run.sh index 478cdc0..11786f3 100755 --- a/compile_and_run.sh +++ b/compile_and_run.sh @@ -7,15 +7,23 @@ if [ "$1" = "--debug" ]; then shift fi +OPTIMIZE_FLAG="" +if [ "$1" = "--optimize" ]; then + OPTIMIZE_FLAG="-O3" + shift +fi + if [ $# -eq 0 ]; then - echo "Usage: ./compile_and_run.sh [--debug] [program_args...]" + echo "Usage: ./compile_and_run.sh [--debug] [--optimize] [program_args...]" echo "" echo "Options:" - echo " --debug Generate debug printf statements in the C output" + echo " --debug Generate debug printf statements in the C output" + echo " --optimize Compile with -O3 optimization" echo "" echo "Examples:" echo " ./compile_and_run.sh tests/structs.sui" echo " ./compile_and_run.sh --debug tests/structs.sui" + echo " ./compile_and_run.sh --optimize tests/structs.sui" echo " ./compile_and_run.sh tests/myprogram.sui arg1 arg2" exit 1 fi @@ -70,7 +78,7 @@ RAYLIB_LIBS=$(pkg-config --libs raylib 2>/dev/null || echo "-lraylib -lm") ODE_CFLAGS=$(pkg-config --cflags ode 2>/dev/null || echo "-I/usr/include") ODE_LIBS=$(pkg-config --libs ode 2>/dev/null || echo "-lode -lm") -if ! gcc "$C_FILE" libsuicmez/libsuicmez.c libsuicmez/suicmez_gc.c $RAYLIB_CFLAGS $RAYLIB_LIBS $ODE_CFLAGS $ODE_LIBS -lm -o "$OUTPUT_BINARY" 2>&1; then +if ! gcc $OPTIMIZE_FLAG "$C_FILE" libsuicmez/libsuicmez.c libsuicmez/suicmez_gc.c $RAYLIB_CFLAGS $RAYLIB_LIBS $ODE_CFLAGS $ODE_LIBS -lm -o "$OUTPUT_BINARY" 2>&1; then echo "" echo "✗ C compilation failed" exit 1 diff --git a/tests/fps_game.o b/tests/fps_game.o index 3b3e29a740e3e5419be5940a406784cdadd0c9d6..2cb269e738966b544cc7a668151708efcba2ee2c 100755 GIT binary patch literal 44984 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

o#WMeHw= zeeVWwZ7b+SMt^CKzb^6(pH>t-zIHj-e@W#3DE+ul3>^^qexYkSe{-_C57>^!qf+2`+pQ0xWWtw>q-BMx@*PEm3DwCtA}MC%-(|6SH8q%mKUgnnU8oIfq} zpXB6ui0PtifT+m3J&Jgf@LGiaP090_LjQ`;SLM{ZL+EeIyeiuutBdKPY=BoB=x;gD zkBI$V>0hKDU#>zGxB9sX|B}!@CiMRj|Ml}x3FvN-F~O%q{*j#L9os>EjmYQAe0xBQ z#h7kdR^?k9=(mfVv1^pvH$?Tz4)PB;(04e{=?@#z{Pu|Ki}bj*YMP?HTKp(+O0^Yj z4psa3*LOaDB;wy-5~8t4b9KzB53M1ohTu(FJ{I;x>V0d2)fZc_h`;)VU_hDRAMi!3 z%#Zne)!}CRda)+dXi8Ys&5=m3G3Kie*ZS&%YlHPxI1u!O8bh&=zdm#me*M=N^hbQv zFti5d*(X%*tF49ywbfQA>e~RrwN${5{;X<$Bmnh5aJ|(O2{(jeK`UDAZ}f%NTpz5C z`D#MJ`al$lzJ^d^7;#G$710|rf?*6JFLLmaA3pyVC>pv ze=Hbj#19*-z*S-VlyiP0+}t!T5(L>=fELeb4uryG!L_04pcR-O3^yze#zQp*JUKHrwV+vRD-WtRl#1NvznTtb-o6FED~Cu_H7~CTMBb< zbdi6#b<0(KCPHg1Pg2)9`9whN^_TXb3k)gTD0?PUiFrGXy0A-KU8pqTlB0e{SIRW;T_Wl3;-tT}=y`AxN3h7>iK0M11tST*b=-ArP!bd$Lkt zQLsMfPn)6cTSs1Jb;mlSYIvP5S{H66PJK9ve5G+1r7-%)xwWeC>6~J(13`?)u#p+j zP(xFF&=+m;R|j#iWpKK22`GLcanW_$IOu|gMLax)un;OWRcS$5X3O4Uhl^s zYUHswG%2_NKGi5|Zm>4gSQhaEt#t}za})9)Xw5^UB6BgmDPfU5+}NRkr=LsvBB9#4 zn3DtrED(xdNKvMe3-1(pd;W9W(>bEms~vEsT;YYYr>Irn9Y?8tx4Ur82~=QFWtgVOme|)5}JBrcN73&#CYiy&a7z10kA>jSyokP>aVJ zUNwD97yvX?@~WDiI5}@+NYL7%#}d~TY&3(;BsFPLr>k1m&+8s&?FSaN1~?5-Ji@b077jmm99uSF23ro?vVU zv85F%9aAP|vK&K`dqXb?mDJa2zcJt3ZwwtfdPK9qYMQcr>fdFcp_6VW?GO;;B|QD$ z-@H(9()H7NuPB-1<+T&r2)1huKI%C|rC#D$g%X!?Op#?v5z#9xjgEPkQ583c6|@1G zm?(8%vXYM11?EUDHAMY>-}Lp_%Xp=vCJT~BJZCG5rnA(Z^z73x%)}fEAX>R$!t7oX zsx7bg*UCttma6q7u$b3$wE(Lv92OC5o77wiFO4aEQP8i0qDBD++J_LN=LOmgqys@a zF+J#p#$8rIHDb(kr|o07N$(z6ksW6DXpZ7uqMaJ=iOXbHgsrj;Bku|-s8`CAGo&xu z7TR?3E@MqJDveB6p+s~F>I#NVKr)um8MVU?b8Uhq6tzdp)B!Ep=V7@;W;a=C^HZjy zk=e9s5^JiFKu;&Kdx_LnVvAj&cGxUZPYZ?`E9uI3rp!tjX3+|1={#P>8v|qNE5|d9 z;q=fkDigGC!IBEBz!6M zn4a2c0JS`JOvNPO~DBEHB-{0HO-;=z~oTCnu5ni8Uid> z=a1G|Qvw?rVN}6bL~-!X>(EnT7UBaB{q83PDK*u{$RZvQr%;HkDZF2t5()ED;FMq; zGK@BObphyVOx&6?cfsVCzgFqX$pq``GOF=6gsR~K7Du{G;p&uW%p}&7>Tm-k%h2PP z|2E|eXy8>IzHw4l<%n$P5xNHY++5>RP%!m7L|?=4T2Ns2sWyHZ26`U;*Y)odeGSjd z(I;8+qT|o^@$IbE*WVLssO!h;Yrb;*r}I}jd(`^+dt(hfqJY=I?5EZr$JX#$en4_r z>+A2AHPqiLi#XfRWrEfCpS}&&`ucld4R?sJ_Fv0s*aSX(Ypn6~O9FXWKzzE$f0EJu z6OFFV0=c1;*+pVP2P&+P0igMt+z)gMqURlGN<=j-%@J=H8`u7}t{au5GI2O;k za{Yf;^mY98cTgJMMa~&lZvEc|k3_V-{=QJd{W6}kiQM|1$Z>HgES z7f~?B|BlUyqoG?13e2tlXQ1N(%{m1iBP|t)HNTz?HaD!4d`1cdf7C2jH0c`u7S+(eKn9 zD;Bh#hWSu7_4WJ5*1MEKNxEiL(0ZCo-=z{Q?f-*{vqSX9y{tKk?p7dur|)E`{?ar> z6|{ct_$67oOqkO|=J!bby<-{W-(8=DqV`|UKX^T#_FYM;`}XY$_U7cTu2;*_`{(Qy QD$b@|3Z9mukb_$P3kb&wVE_OC