The last patch uploaded the wrong file. This patch adds the get1 function.
Tim
========================================================================
diff --git a/changelog b/changelog
index dd95712..5323199 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,4 @@
+20080217 wxh src/interp/i-intern.boot upload proper file.
20080217 tpd src/algebra/string.spad add function examples
20080217 tpd src/algebra/curve.spad add function examples
20080216 wxh src/interp/i-intern.boot use hashtable to speedup compiles
diff --git a/src/interp/i-intern.boot.pamphlet
b/src/interp/i-intern.boot.pamphlet
index 7520954..9b9c660 100644
--- a/src/interp/i-intern.boot.pamphlet
+++ b/src/interp/i-intern.boot.pamphlet
@@ -739,14 +739,27 @@ get0(x,prop,e) ==
@
\subsection{get1}
+We try to avoid lookups in the environment if it is clear that
+the lookup will fail. The \verb|$envHashTable| was populated in
+addBinding (see g-util.boot.pamphlet).
<<*>>=
get1(x,prop,e) ==
--this is the old get
+ negHash := nil
null atom x => get(QCAR x,prop,e)
+ if $envHashTable and _
+ (not(EQ($CategoryFrame,e))) and _
+ (not(EQ(prop,"modemap"))) then
+ null (HGET($envHashTable,[x,prop])) => return nil
+ negHash := false
prop="modemap" and $insideCapsuleFunctionIfTrue=true =>
- LASSOC("modemap",getProplist(x,$CapsuleModemapFrame))
- or get2(x,prop,e)
- LASSOC(prop,getProplist(x,e)) or get2(x,prop,e)
+ ress:=LASSOC("modemap",getProplist(x,$CapsuleModemapFrame))
+ or get2(x,prop,e)
+ ress
+ ress:=LASSOC(prop,getProplist(x,e)) or get2(x,prop,e)
+ if ress and negHash then
+ SAY ["get1",x,prop,ress and true]
+ ress
@
\subsection{get2}
_______________________________________________
Axiom-developer mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/axiom-developer