diff options
Diffstat (limited to 'share')
-rw-r--r-- | share/txr/stdlib/compiler.tl | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/share/txr/stdlib/compiler.tl b/share/txr/stdlib/compiler.tl index 34dc3128..9dbb1572 100644 --- a/share/txr/stdlib/compiler.tl +++ b/share/txr/stdlib/compiler.tl @@ -936,10 +936,12 @@ (arg me.(comp-call oreg env (if (eq sym 'usr:apply) 'apply sym) args))))) (ift me.(comp-ift oreg env form)) - (t (let ((fbind env.(lookup-fun sym))) - me.(comp-call-impl oreg env (if fbind 'call 'gcall) - (if fbind fbind.loc me.(get-fidx sym)) - args)))))) + (t (let* ((fbind env.(lookup-fun sym)) + (cfrag me.(comp-call-impl oreg env (if fbind 'call 'gcall) + (if fbind fbind.loc me.(get-fidx sym)) + args))) + (pushnew sym cfrag.ffuns) + cfrag))))) (defmeth compiler comp-call (me oreg env opcode args) (tree-bind (fform . fargs) args |