From 2274a82dbe7b60af6dbaeec391ab85559d9791b8 Mon Sep 17 00:00:00 2001 From: Gabriel Dos Reis Date: Sun, 31 Jan 2016 15:55:01 -0800 Subject: Defer compilation of capsule functions to compFunctorBody --- src/interp/define.boot | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/interp/define.boot b/src/interp/define.boot index 564b41c9..53f588b9 100644 --- a/src/interp/define.boot +++ b/src/interp/define.boot @@ -1590,6 +1590,7 @@ compFunctorBody(db,body,m,e) == -- ??? Don't resolve default definitions, yet. backendCompile(db,defs) where defs() == $insideCategoryPackageIfTrue => dbCapsuleIR db + not $optExportedFunctionReference => dbCapsuleIR db foldExportedFunctionReferences(db,dbCapsuleIR db) clearCapsuleDirectory() -- release storage. body is [op,:.] and op in '(add CAPSULE) => T @@ -2124,10 +2125,8 @@ spadCompileOrSetq(db,form is [nam,[lam,vl,body]]) == [nam,[lam,vl,["DECLARE",["IGNORE",last vl]],body]] [nam,[lam,vl,body]] - $optExportedFunctionReference => - dbCapsuleIR(db) := [form,:dbCapsuleIR db] - first form - first backendCompile(db,[form]) + dbCapsuleIR(db) := [form,:dbCapsuleIR db] + first form compileConstructorIR(db,form) == u := compileConstructor1(db,optimizeFunctionDef form) -- cgit v1.2.3