aboutsummaryrefslogtreecommitdiff
path: root/src/interp/c-util.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2008-11-15 23:53:41 +0000
committerdos-reis <gdr@axiomatics.org>2008-11-15 23:53:41 +0000
commitafc7f65009d1bc682bc37bd96ddf5222ac37cc5b (patch)
tree1cbf2a3e57ddb2ef9515cbca325f6604b7d860f7 /src/interp/c-util.boot
parente906f65eed9a56f414d8dea0716acc03ddc6c8f0 (diff)
downloadopen-axiom-afc7f65009d1bc682bc37bd96ddf5222ac37cc5b.tar.gz
* interp/Makefile.pamphlet (OBJS): Remove cfuns. Include
hashcode. * interp/cfuns.lisp: Delete.
Diffstat (limited to 'src/interp/c-util.boot')
-rw-r--r--src/interp/c-util.boot18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/interp/c-util.boot b/src/interp/c-util.boot
index 4e91e700..c680e8b9 100644
--- a/src/interp/c-util.boot
+++ b/src/interp/c-util.boot
@@ -113,6 +113,24 @@ wantArgumentsAsTuple: (%List,%Signature) -> %Boolean
wantArgumentsAsTuple(args,sig) ==
isHomoegenousVarargSignature sig and #args ^= #sig
+
+devaluate d ==
+ not REFVECP d => d
+ QSGREATERP(QVSIZE d,5) and getShellEntry(d,3) is ['Category] =>
+ getShellEntry(d,0)
+ QSGREATERP(QVSIZE d,0) =>
+ d':=getShellEntry(d,0)
+ isFunctor d' => d'
+ d
+ d
+
+devaluateList l == [devaluate d for d in l]
+
+devaluateDeeply x ==
+ VECP x => devaluate x
+ atom x => x
+ [devaluateDeeply y for y in x]
+
--% Debugging Functions
--CONTINUE() == continue()