diff options
author | dos-reis <gdr@axiomatics.org> | 2008-11-17 05:59:14 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2008-11-17 05:59:14 +0000 |
commit | 61c21a03a39727337729fc6bccae0f856271a61e (patch) | |
tree | 7096bec4e7182c3782269c158b1fc00794ce4861 /src/interp/define.boot | |
parent | 5ab5655d4467eddbcef288bde816fe111b901948 (diff) | |
download | open-axiom-61c21a03a39727337729fc6bccae0f856271a61e.tar.gz |
* lisp/core.lisp.in (|getOptionValue|): Make second argument optional.
* interp/sys-driver.boot (initializeGlobalState): Set
$compileExportsOnly.
* interp/lisplib.boot (compDefineExports): New.
* interp/define.boot (skipCategoryPackage?): New.
(compDefineCategory1): Use it.
(compDefineFunctor): Don't compile to NRLIB if interested only in
exports.
(compDefineFunctor1): Honor $compileExportsOnly.
* interp/sys-macros.lisp (|withOutputFile|): New.
* interp/sys-utility.boot (quoteForm): Likewise.
Diffstat (limited to 'src/interp/define.boot')
-rw-r--r-- | src/interp/define.boot | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/interp/define.boot b/src/interp/define.boot index c32b0c07..8b9b5677 100644 --- a/src/interp/define.boot +++ b/src/interp/define.boot @@ -341,6 +341,12 @@ mkEvalableCategoryForm c == m=$Category => x MKQ c +++ Return true if we should skip compilation of category package. +++ This situation happens either when there is no default, of we are in +++ bootstrap mode, or we are compiling only for exports. +skipCategoryPackage? capsule == + null capsule or $bootStrapMode or $compileExportsOnly + compDefineCategory1(df is ['DEF,form,sig,sc,body],m,e,prefix,fal) == categoryCapsule := body is ['add,cat,capsule] => @@ -348,7 +354,7 @@ compDefineCategory1(df is ['DEF,form,sig,sc,body],m,e,prefix,fal) == capsule nil [d,m,e]:= compDefineCategory2(form,sig,sc,body,m,e,prefix,fal) - if categoryCapsule and not $bootStrapMode then [.,.,e] := + if not skipCategoryPackage? categoryCapsule then [.,.,e] := $insideCategoryPackageIfTrue: local := true $categoryPredicateList: local := makeCategoryPredicates(form,$lisplibCategory) @@ -523,8 +529,9 @@ compDefineFunctor(df,m,e,prefix,fal) == $profileCompiler: local := true $profileAlist: local := nil $mutableDomain: fluid := false - $LISPLIB => compDefineLisplib(df,m,e,prefix,fal,'compDefineFunctor1) - compDefineFunctor1(df,m,e,prefix,fal) + $compileExportsOnly or not $LISPLIB => + compDefineFunctor1(df,m,e,prefix,fal) + compDefineLisplib(df,m,e,prefix,fal,'compDefineFunctor1) compDefineFunctor1(df is ['DEF,form,signature,$functorSpecialCases,body], m,$e,$prefix,$formalArgList) == @@ -575,6 +582,7 @@ compDefineFunctor1(df is ['DEF,form,signature,$functorSpecialCases,body], $e:= giveFormalParametersValues(argl,$e) [ds,.,$e]:= compMakeCategoryObject(target,$e) or return stackAndThrow('" cannot produce category object: %1pb",[target]) + $compileExportsOnly => compDefineExports($op, ds, signature',$e) $domainShell:= COPY_-SEQ ds --+ copy needed since slot1 is reset; compMake.. can return a cached vector attributeList := disallowNilAttribute ds.2 --see below under "loadTimeAlist" |