From 847e8111104c485b09b879499efe4ec3beb8942b Mon Sep 17 00:00:00 2001 From: dos-reis Date: Wed, 31 Oct 2007 01:41:13 +0000 Subject: * Makefile.pamphlet (define.$(FASLEXT)): New rule. (<>): 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. --- src/interp/g-util.boot | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'src/interp/g-util.boot') 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 -- cgit v1.2.3