From be205817315dbb8cc49f0101cf7f52266ddb21d3 Mon Sep 17 00:00:00 2001 From: James Roseborough Date: Fri, 15 Jun 2007 06:41:40 +0000 Subject: [PATCH] Improve call stack handling to prepare for propert tail call handling. --- pom.xml | 2 +- src/main/java/lua/Builtin.java | 6 ++--- src/main/java/lua/io/Closure.java | 31 +++++-------------------- src/main/java/lua/io/Proto.java | 5 ++++ src/main/java/lua/value/LFunction.java | 4 +++- src/main/java/lua/value/LTable.java | 2 +- src/main/java/lua/value/LValue.java | 2 +- src/test/res/compile.sh | 2 +- src/test/res/test2.luac | Bin 761 -> 1321 bytes src/test/res/test3.luac | Bin 629 -> 4117 bytes 10 files changed, 21 insertions(+), 33 deletions(-) diff --git a/pom.xml b/pom.xml index 7436a363..1beaf906 100644 --- a/pom.xml +++ b/pom.xml @@ -8,6 +8,6 @@ LuaJ Interpreter - LuaJ + luaj diff --git a/src/main/java/lua/Builtin.java b/src/main/java/lua/Builtin.java index fffe1bab..d1cafeb3 100644 --- a/src/main/java/lua/Builtin.java +++ b/src/main/java/lua/Builtin.java @@ -27,15 +27,15 @@ final class Builtin extends LFunction { } public String toString() { - return "Builtin('"+NAMES[id]+"')"; + return "builtin."+NAMES[id]; } // perform a lua call - public void luaStackCall(StackState state, int base) { + public void luaStackCall(StackState state, int base, int top) { int returnValues = 0; switch ( id ) { case PRINT: - for ( int i=base+1, n=state.top; i5DYe%cRq<3bw|ky*G^FjI78DY%z`c1A&*8O7-a-DQfR3ooF| z(o49TT6hZ&;SqdMRY8Af#f=Fs^Tj74A|t8><#hZA;=S)-9YB~o-Jjgp*qM$g*mCP7 z>4@kOodDe9nG;YQ0wRJK1&@*3khYm!XcyWYZCJDghblQpb*XpCY$#s}u9 zm`5tmPv|E&NXh-6UNZAm)G_|g1lJMzM2DOin{mYzh<6zKU4davMXc)hbsZzt*@bUw z^~k|%jZ){PJ|>TE%nQ^TK2mp?QuDSY|DgR?)LrDg)AaYA+x~PHevRbS>*sqD6l7e# zZnp%XB|Rf2jP#A1H!?JG$;ima6(d)TTr+ar$VTv8=H7k#Y`V9F;_DY(-`h&keRBg_ z$rshzT93ydCOOMya0DnLk&`PWyG@Q)->Uxh9K8m;QH`YvjAcdqz6s zdB8W9DNzPKBgiM7mT9gT{XjkRa(@NRP-kFwn`As^3=IqdlVcdC)-y6d0ElJ=F(-F!3B@V3K2G zUIcAyRz0032S5mEpE diff --git a/src/test/res/test3.luac b/src/test/res/test3.luac index 57f81fb6ae27556f1b5d38db5f447ceddeeda9b2..f6e5050c89cfaff660cb1a8cbe2f1529c7aa9d0b 100644 GIT binary patch literal 4117 zcmb_f%Wfk@6us4U`<3S)o|-Tqu!g`Qi5&wHtLjAs(a5pu7{&M{`qG9tC()LJCH3AvDYvDxIR64 zc{4|#BN_Y)IEMAW99ZXlW(}|y&SlO>UNCkcmPB%!Na+&h zBtECWoOGnL9Wi-_xk+jxAAH3}+~i}t%E!5Nd@l0ASA4`xKE|tjoLk3NL_YY6kGRRl zc$JTH>-fa)5%$m2e8f#Y#;bgsTf;ZDIG3V>^Wyn*abEBi9`$_(Z{drsq{zu^D!EIg zEYRKbw%bZu$(Ky zM(!F7Hc$SRk^EH*<(V5w-wuNwJCa-AJItl!P|nOq@_a;noz&|?j7weGE$G|Ad<##p z)z0I!Z$tYwv~NTEb~}&kwDOD{_So)t-DmK*+rb|1V2^j@xk!ThU$5C+^x8$Q|F7Mm zwv;_F*`8$ip1gIE++og?h|Rv_*}lBPT$=4*9dWrYrFkR=MiTUac9AFI?lP(|Td~%G8h>+va^jOj482NEd(P=d|IaZcwg-$CpBchf?)Ut?L7E#M0 zYFQvJLEfLz2}F*@gh_X@sK@T~$Hfm49rmB8bE)SPEJ zqdMhzkkI`D_Wyu)AMRxPJN3v0>KX55u}C#byEqtOLs z!?*GvVy@yVjs|ckRAo@-;0ve&iLr?@2bpwQ72;BJu%2A^nckB*3xwaPR;f`?snKPX z=>a}=qd~KO?bJonK}OA4?uRec=%-QWr%~v~NXH%kP5b?W16=K=Ih*LWk5)AF>yZyP z)>wl#LKDXsKe(p3>X-ZLojCXT8intx(Pg#f0X`l@L;pT+o8TVcwxT;Vgjd694z6o{ z(=Y4LDCp2A=+NlW^D)x#9smtG2L6uXP%O0IZki(OhkrGi&m65;_1b0blc~DCcNzsf z8U;O!bbJ9YX3&uy=L=#J_6B!iNekD%Trt+_t_K~es%>9TApEa@T4}7Nv5v+rG<|V= zft$1;_%>-H@NLrgmur)@4Zcm9{tD@@gT7LIDSAuaN8dL40BcSA5OJG*gtex9jJVA{ z!CKQEBYub-An!i=6zdPMC&;_cKEwJ$>~rMZXMA;hxlix0udvo;hgjRBfzFTr0GRqd A?f?J) literal 629 zcmb`Eze)o^5XQgR-Ae*isSQ>^LJAu(Y4-{hK?{4E7$OJ~MDO~&B5&ctWDDOS4?y*&`%`(8CFUSS>!Q%Zs;q#>B$)hD24DDk5;ru}MH)10sSa zzzyghYEh7rK=R+(ifc0*q;x17hpz@uDc$Sw(Xeowf|Gx GZWll4wk(eT