aboutsummaryrefslogtreecommitdiff
path: root/src/algebra
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2009-09-08 13:16:28 +0000
committerdos-reis <gdr@axiomatics.org>2009-09-08 13:16:28 +0000
commit5ab1bb2721c9fdf77e6fa530523f5044b8445880 (patch)
treefb7fc8c5c0a9a73f4d7ccd486b53630f4c69ece2 /src/algebra
parent7fb7062638f05c3748a7aaace55d50cb1ac87fb0 (diff)
downloadopen-axiom-5ab1bb2721c9fdf77e6fa530523f5044b8445880.tar.gz
* boot/ast.boot: Support "pointer" as simple datatype.
* interp/compiler.boot (getBasicFFIType): SystemPointer is an FFI type. * algebra/data.spad.pamphlet (SystemPointer): New. * algebra/Makefile.pamphlet (axiom_algebra_layer_0): Include SYSPTR.
Diffstat (limited to 'src/algebra')
-rw-r--r--src/algebra/Makefile.in3
-rw-r--r--src/algebra/Makefile.pamphlet3
-rw-r--r--src/algebra/data.spad.pamphlet18
3 files changed, 22 insertions, 2 deletions
diff --git a/src/algebra/Makefile.in b/src/algebra/Makefile.in
index 47010830..4d3f88c8 100644
--- a/src/algebra/Makefile.in
+++ b/src/algebra/Makefile.in
@@ -322,6 +322,7 @@ $(OUT)/IOMODE.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT)
$(OUT)/PRINT.$(FASLEXT): $(OUT)/TYPE.$(FASLEXT)
$(OUT)/RTVALUE.$(FASLEXT): $(OUT)/TYPE.$(FASLEXT)
+$(OUT)/SYSPTR.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT)
axiom_algebra_layer_0 = \
AHYP ATTREG CFCAT ELTAB KOERCE KONVERT \
@@ -348,7 +349,7 @@ axiom_algebra_layer_0 = \
DIOPS DIOPS- STRING STRICAT ISTRING ILIST \
LIST \
LINEXP PATMAB REAL CHARZ LOGIC LOGIC- \
- RTVALUE
+ RTVALUE SYSPTR
axiom_algebra_layer_0_nrlibs = \
$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_0))
diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet
index d8ee249a..1d75410b 100644
--- a/src/algebra/Makefile.pamphlet
+++ b/src/algebra/Makefile.pamphlet
@@ -276,6 +276,7 @@ $(OUT)/IOMODE.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT)
$(OUT)/PRINT.$(FASLEXT): $(OUT)/TYPE.$(FASLEXT)
$(OUT)/RTVALUE.$(FASLEXT): $(OUT)/TYPE.$(FASLEXT)
+$(OUT)/SYSPTR.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT)
axiom_algebra_layer_0 = \
AHYP ATTREG CFCAT ELTAB KOERCE KONVERT \
@@ -302,7 +303,7 @@ axiom_algebra_layer_0 = \
DIOPS DIOPS- STRING STRICAT ISTRING ILIST \
LIST \
LINEXP PATMAB REAL CHARZ LOGIC LOGIC- \
- RTVALUE
+ RTVALUE SYSPTR
axiom_algebra_layer_0_nrlibs = \
$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_0))
diff --git a/src/algebra/data.spad.pamphlet b/src/algebra/data.spad.pamphlet
index 95feee21..2d84ac59 100644
--- a/src/algebra/data.spad.pamphlet
+++ b/src/algebra/data.spad.pamphlet
@@ -235,6 +235,22 @@ UInt64() == SystemNonNegativeInteger 64
@
+\section{System-level Pointer Datatype.}
+
+<<domain SYSPTR SystemPointer>>=
+)abbrev domain SYSPTR SystemPointer
+++ Author: Gabriel Dos Reis
+++ Date Created: September 8, 2009
+++ Date Last Modified: September 8, 2009
+++ Description:
+++ This domain is a datatype system-level pointer values.
+SystemPointer(): SetCategory
+ == add
+ x = y == EQL(x,y)$Foreign(Builtin)
+ coerce(x:%): OutputForm ==
+ FORMAT(NIL$Foreign(Builtin),"~A",x)$Foreign(Builtin)
+@
+
\section{The ByteBuffer domain}
@@ -432,6 +448,8 @@ DataArray(N: PositiveInteger, T: SetCategory): Public == Private where
<<domain UINT32 UInt32>>
<<domain UINT64 UInt64>>
+<<domain SYSPTR SystemPointer>>
+
@
\end{document}