aboutsummaryrefslogtreecommitdiff
path: root/src/interp/g-util.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2007-10-31 01:41:13 +0000
committerdos-reis <gdr@axiomatics.org>2007-10-31 01:41:13 +0000
commit847e8111104c485b09b879499efe4ec3beb8942b (patch)
treecf28332ac203416194292fe44ef44d3855b5ba42 /src/interp/g-util.boot
parent161d80a8ff9c0d819710de6a83a3cb5bbcfdbe61 (diff)
downloadopen-axiom-847e8111104c485b09b879499efe4ec3beb8942b.tar.gz
* Makefile.pamphlet (define.$(FASLEXT)): New rule.
(<<define.clisp>>): Remove. * c-util.boot (CONTINUE): Comment out. * define.boot.pamphlet: Push into package "BOOT". Fix syntax. * i-intern.boot.pamphlet (put): Move to g-util.boot (get): Likewise. (get0): Likewise. (get1): Likewise. (get2): Likewise. * setq.lisp (/EDITFILE): Don't set here. Define it in sys-globals.boot. (NRTPARSE): Don't set here. Define in define.boot.
Diffstat (limited to 'src/interp/g-util.boot')
-rw-r--r--src/interp/g-util.boot42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/interp/g-util.boot b/src/interp/g-util.boot
index 128e683b..117e8552 100644
--- a/src/interp/g-util.boot
+++ b/src/interp/g-util.boot
@@ -48,6 +48,48 @@ PPtoFile(x, fname) ==
SHUT stream
x
+
+get(x,prop,e) ==
+ $InteractiveMode => get0(x,prop,e)
+ get1(x,prop,e)
+
+get0(x,prop,e) ==
+ null atom x => get(QCAR x,prop,e)
+ u:= QLASSQ(x,CAR QCAR e) => QLASSQ(prop,u)
+ (tail:= CDR QCAR e) and (u:= fastSearchCurrentEnv(x,tail)) =>
+ QLASSQ(prop,u)
+ nil
+
+get1(x,prop,e) ==
+ --this is the old get
+ null atom x => get(QCAR x,prop,e)
+ 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)
+
+get2(x,prop,e) ==
+ prop="modemap" and constructor? x =>
+ (u := getConstructorModemap(x)) => [u]
+ nil
+ nil
+
+put(x,prop,val,e) ==
+ $InteractiveMode and not EQ(e,$CategoryFrame) =>
+ putIntSymTab(x,prop,val,e)
+ --e must never be $CapsuleModemapFrame
+ null atom x => put(first x,prop,val,e)
+ newProplist:= augProplistOf(x,prop,val,e)
+ prop="modemap" and $insideCapsuleFunctionIfTrue=true =>
+ SAY ["**** modemap PUT on CapsuleModemapFrame: ",val]
+ $CapsuleModemapFrame:=
+ addBinding(x,augProplistOf(x,"modemap",val,$CapsuleModemapFrame),
+ $CapsuleModemapFrame)
+ e
+ addBinding(x,newProplist,e)
+
+
+
-- Convert an arbitrary lisp object to canonical boolean.
bool x ==
NULL NULL x