aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriel Dos Reis <gdr@axiomatics.org>2016-01-31 15:55:01 -0800
committerGabriel Dos Reis <gdr@axiomatics.org>2016-01-31 15:55:01 -0800
commit2274a82dbe7b60af6dbaeec391ab85559d9791b8 (patch)
treedd1e12b02c7d912a941032c42e001c89eef09bb3
parenta4f62a012320bfe5c898ba7d4af0680c101b7548 (diff)
downloadopen-axiom-2274a82dbe7b60af6dbaeec391ab85559d9791b8.tar.gz
Defer compilation of capsule functions to compFunctorBody
-rw-r--r--src/interp/define.boot7
1 files 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)