diff options
author | dos-reis <gdr@axiomatics.org> | 2011-03-02 10:07:19 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2011-03-02 10:07:19 +0000 |
commit | bc50325269c6765b78b8a7f8df0baf96d6dff4e8 (patch) | |
tree | 625f7892ecc61ffa2226dcd544f74b0020d49583 /src/interp/c-util.boot | |
parent | 06a195106936c4ff03dcf23eef9351c007c5e48e (diff) | |
download | open-axiom-bc50325269c6765b78b8a7f8df0baf96d6dff4e8.tar.gz |
* interp/i-eval.boot (mkEvalable): Exit early on niladic constructors.
* interp/define.boot (compDefineFunctor1): If bootstrapping, mark
functor as incomplete.
* interp/c-util.boot (lookupDefiningFunction): Don't look into
incomplete domains.
Diffstat (limited to 'src/interp/c-util.boot')
-rw-r--r-- | src/interp/c-util.boot | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/interp/c-util.boot b/src/interp/c-util.boot index 8904dddc..8c1fe71b 100644 --- a/src/interp/c-util.boot +++ b/src/interp/c-util.boot @@ -1747,8 +1747,11 @@ lookupInheritedDefiningFunction(op,sig,shell,args,slot) == ++ and that is unambiguous is returned. In particular, this ++ function defaulting packages. lookupDefiningFunction(op,sig,dc) == - -- 1. Read domain information, if available. + -- 1. Read domain information, if available. Silently give up if + -- the constructor is just not there [ctor,:args] := dc + loadLibIfNotLoaded ctor + property(ctor,'%incomplete) => nil -- 1.1. Niladic constructors don't need approximation. -- FIXME: However, there may be cylic dependencies -- such as AN ~> IAN ~> EXPR INT ~> AN that prevents @@ -1757,8 +1760,6 @@ lookupDefiningFunction(op,sig,dc) == compiledLookup(op,sig,dc) -- 1.2. Don't look into defaulting package isDefaultPackageName ctor => nil - -- 1.2. Silently give up if the constructor is just not there - loadLibIfNotLoaded ctor infovec := property(ctor,'infovec) or return nil -- 1.3. We need information about the original domain template shell := first infovec -- domain template |