scmno****@osdn*****
scmno****@osdn*****
Wed Jun 13 04:44:02 JST 2018
changeset 61350b8ffc08 in quipu/quipu details: http://hg.osdn.jp/view/quipu/quipu?cmd=changeset;node=61350b8ffc08 user: Agustina Arzille <avarz****@riseu*****> date: Tue Jun 12 16:43:54 2018 -0300 description: Fix some tail calls diffstat: compiler.cpp | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diffs (30 lines): diff -r 803a3da59f2a -r 61350b8ffc08 compiler.cpp --- a/compiler.cpp Tue Jun 12 04:35:45 2018 +0000 +++ b/compiler.cpp Tue Jun 12 16:43:54 2018 -0300 @@ -913,7 +913,7 @@ object then = xcadr (x); object els = xcddr (x); - int r = this->compile_cond (env, tail, tst) & ~EVR_SE; + int r = this->compile_cond (env, false, tst) & ~EVR_SE; if (qp_unlikely (r == EVR_IRET)) return (r); @@ -936,7 +936,7 @@ this->mark_label (el); if (xcdr (els) != NIL) - this->compile_if (env, false, els); + this->compile_if (env, tail, els); else this->compile_in (env, tail, xcar (els)); @@ -1383,7 +1383,7 @@ else if (xcddr (expr) != NIL) specform_error (this->interp, "yield", SPECFORM_TOOMANY); - this->compile_in (env, true, xcadr (expr)); + this->compile_in (env, false, xcadr (expr)); this->emit (OPX_(MKCONT), intobj (1)); this->emit (OPX_(RET)); break;