From fa7df5ed3afebb34e509f3642fb9b4a839cb2131 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Wed, 20 May 2015 19:18:35 +0200 Subject: [PATCH] Fix sub/- primcall bug * module/language/tree-il/compile-cps2.scm (convert): Fix bug in (apply - ...), because the instruction for "-" is "sub", and "sub" lookup was failing. Caught by numbers.test. Really I would like to get rid of $prim, somehow. --- module/language/tree-il/compile-cps2.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/module/language/tree-il/compile-cps2.scm b/module/language/tree-il/compile-cps2.scm index 2f254511d..4ec99c428 100644 --- a/module/language/tree-il/compile-cps2.scm +++ b/module/language/tree-il/compile-cps2.scm @@ -657,7 +657,7 @@ (letk ktail ($kargs ('tail) (tail) ,body)) ($ (lp args ktail))))))))))) ((prim-instruction name) - => (lambda (name) + => (lambda (instruction) (convert-args cps args (lambda (cps args) ;; Tree-IL primcalls are sloppy, in that it could be @@ -665,14 +665,14 @@ ;; arguments. In CPS we are more strict and only ;; residualize a $primcall if the argument count ;; matches. - (match (prim-arity name) + (match (prim-arity instruction) ((out . in) (if (= in (length args)) (with-cps cps (let$ k (adapt-arity k src out)) (build-term ($continue k src - ($primcall name args)))) + ($primcall instruction args)))) (with-cps cps (letv prim) (letk kprim ($kargs ('prim) (prim)