diff options
author | Gabriel Dos Reis <gdr@axiomatics.org> | 2016-01-31 15:55:01 -0800 |
---|---|---|
committer | Gabriel Dos Reis <gdr@axiomatics.org> | 2016-01-31 15:55:01 -0800 |
commit | 2274a82dbe7b60af6dbaeec391ab85559d9791b8 (patch) | |
tree | dd1e12b02c7d912a941032c42e001c89eef09bb3 /src | |
parent | a4f62a012320bfe5c898ba7d4af0680c101b7548 (diff) | |
download | open-axiom-2274a82dbe7b60af6dbaeec391ab85559d9791b8.tar.gz |
Defer compilation of capsule functions to compFunctorBody
Diffstat (limited to 'src')
-rw-r--r-- | src/interp/define.boot | 7 |
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) |