aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2009-09-05 20:48:21 +0000
committerdos-reis <gdr@axiomatics.org>2009-09-05 20:48:21 +0000
commit7fb7062638f05c3748a7aaace55d50cb1ac87fb0 (patch)
treef63ba60207cc11e322a9630e8c375c08428a3ef2
parentc0477ca18e99fcf5e091d2bc4ffe8dd76eae36dd (diff)
downloadopen-axiom-7fb7062638f05c3748a7aaace55d50cb1ac87fb0.tar.gz
* algebra/data.spad.pamphlet: Cleanup.
* interp/compiler.boot (getBasicFFIType): Handle 64-bit integer types.
-rwxr-xr-xconfigure18
-rw-r--r--configure.ac2
-rw-r--r--configure.ac.pamphlet2
-rw-r--r--src/ChangeLog5
-rw-r--r--src/algebra/data.spad.pamphlet44
-rw-r--r--src/interp/compiler.boot5
-rw-r--r--src/interp/sys-constants.boot7
7 files changed, 50 insertions, 33 deletions
diff --git a/configure b/configure
index 235c5209..05cbca14 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63 for OpenAxiom 1.4.0-2009-09-02.
+# Generated by GNU Autoconf 2.63 for OpenAxiom 1.4.0-2009-09-05.
#
# Report bugs to <open-axiom-bugs@lists.sf.net>.
#
@@ -745,8 +745,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='OpenAxiom'
PACKAGE_TARNAME='openaxiom'
-PACKAGE_VERSION='1.4.0-2009-09-02'
-PACKAGE_STRING='OpenAxiom 1.4.0-2009-09-02'
+PACKAGE_VERSION='1.4.0-2009-09-05'
+PACKAGE_STRING='OpenAxiom 1.4.0-2009-09-05'
PACKAGE_BUGREPORT='open-axiom-bugs@lists.sf.net'
ac_unique_file="src/Makefile.pamphlet"
@@ -1501,7 +1501,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures OpenAxiom 1.4.0-2009-09-02 to adapt to many kinds of systems.
+\`configure' configures OpenAxiom 1.4.0-2009-09-05 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1571,7 +1571,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of OpenAxiom 1.4.0-2009-09-02:";;
+ short | recursive ) echo "Configuration of OpenAxiom 1.4.0-2009-09-05:";;
esac
cat <<\_ACEOF
@@ -1674,7 +1674,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-OpenAxiom configure 1.4.0-2009-09-02
+OpenAxiom configure 1.4.0-2009-09-05
generated by GNU Autoconf 2.63
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1688,7 +1688,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by OpenAxiom $as_me 1.4.0-2009-09-02, which was
+It was created by OpenAxiom $as_me 1.4.0-2009-09-05, which was
generated by GNU Autoconf 2.63. Invocation command line was
$ $0 $@
@@ -17677,7 +17677,7 @@ exec 6>&1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by OpenAxiom $as_me 1.4.0-2009-09-02, which was
+This file was extended by OpenAxiom $as_me 1.4.0-2009-09-05, which was
generated by GNU Autoconf 2.63. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -17740,7 +17740,7 @@ Report bugs to <bug-autoconf@gnu.org>."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_version="\\
-OpenAxiom config.status 1.4.0-2009-09-02
+OpenAxiom config.status 1.4.0-2009-09-05
configured by $0, generated by GNU Autoconf 2.63,
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
diff --git a/configure.ac b/configure.ac
index 68919603..c68bb892 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,6 +1,6 @@
sinclude(config/open-axiom.m4)
sinclude(config/aclocal.m4)
-AC_INIT([OpenAxiom], [1.4.0-2009-09-02],
+AC_INIT([OpenAxiom], [1.4.0-2009-09-05],
[open-axiom-bugs@lists.sf.net])
AC_CONFIG_AUX_DIR(config)
diff --git a/configure.ac.pamphlet b/configure.ac.pamphlet
index fb3bb401..1ffbdc47 100644
--- a/configure.ac.pamphlet
+++ b/configure.ac.pamphlet
@@ -1154,7 +1154,7 @@ information:
<<Autoconf init>>=
sinclude(config/open-axiom.m4)
sinclude(config/aclocal.m4)
-AC_INIT([OpenAxiom], [1.4.0-2009-09-02],
+AC_INIT([OpenAxiom], [1.4.0-2009-09-05],
[open-axiom-bugs@lists.sf.net])
@
diff --git a/src/ChangeLog b/src/ChangeLog
index de9f95f4..c187df16 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2009-09-05 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
+ * algebra/data.spad.pamphlet: Cleanup.
+ * interp/compiler.boot (getBasicFFIType): Handle 64-bit integer types.
+
2009-09-03 Gabriel Dos Reis <gdr@cs.tamu.edu>
* boot/ast.boot (bfAlternative): New. Move single assignment in
diff --git a/src/algebra/data.spad.pamphlet b/src/algebra/data.spad.pamphlet
index 6bc803dd..95feee21 100644
--- a/src/algebra/data.spad.pamphlet
+++ b/src/algebra/data.spad.pamphlet
@@ -37,18 +37,18 @@ Byte(): Public == Private where
++ \spad{sample} gives a sample datum of type Byte.
Private == SubDomain(NonNegativeInteger, #1 < 256) add
byte(x: NonNegativeInteger): % == per x
- sample = 0$Lisp
+ sample = 0$Foreign(Builtin)
coerce(c: Character) == per ord c
coerce(x: %): Character == char rep x
- x = y == byteEqual(x,y)$Lisp
- x < y == byteLessThan(x,y)$Lisp
- x > y == byteGreaterThan(x,y)$Lisp
- x <= y == byteLessEqual(x,y)$Lisp
- x >= y == byteGreaterEqual(x,y)$Lisp
+ x = y == byteEqual(x,y)$Foreign(Builtin)
+ x < y == byteLessThan(x,y)$Foreign(Builtin)
+ x > y == byteGreaterThan(x,y)$Foreign(Builtin)
+ x <= y == byteLessEqual(x,y)$Foreign(Builtin)
+ x >= y == byteGreaterEqual(x,y)$Foreign(Builtin)
min() == per 0
max() == per 255
- bitand(x,y) == bitand(x,y)$Lisp
- bitior(x,y) == bitior(x,y)$Lisp
+ bitand(x,y) == bitand(x,y)$Foreign(Builtin)
+ bitior(x,y) == bitior(x,y)$Foreign(Builtin)
@
@@ -65,10 +65,10 @@ ByteOrder(): Public == Private where
bigEndian: % ++ \spad{bigEndian} describes big endian host
unknownEndian: % ++ \spad{unknownEndian} for none of the above.
Private == add
- unknownEndian == %unknownEndian$Lisp
- littleEndian == %littleEndian$Lisp
- bigEndian == %bigEndian$Lisp
- x = y == EQ(x,y)$Lisp
+ unknownEndian == %unknownEndian$Foreign(Builtin)
+ littleEndian == %littleEndian$Foreign(Builtin)
+ bigEndian == %bigEndian$Foreign(Builtin)
+ x = y == EQ(x,y)$Foreign(Builtin)
coerce(x: %): OutputForm ==
outputForm
x = littleEndian => 'litteEndian
@@ -182,8 +182,8 @@ SystemNonNegativeInteger(N: PositiveInteger): Public == Private where
min == per 0
max == per((shift(1,N)-1)::NonNegativeInteger)
sample == min
- bitand(x,y) == BOOLE(BOOLE_-AND$Lisp,x,y)$Lisp
- bitior(x,y) == BOOLE(BOOLE_-IOR$Lisp,x,y)$Lisp
+ bitand(x,y) == BOOLE(BOOLE_-AND$Foreign(Builtin),x,y)$Foreign(Builtin)
+ bitior(x,y) == BOOLE(BOOLE_-IOR$Foreign(Builtin),x,y)$Foreign(Builtin)
@
@@ -279,13 +279,13 @@ ByteBuffer(): Public == Private where
Rep == Record(ary: PrimitiveArray Byte, sz: NonNegativeInteger)
makeByteBuffer(n: NonNegativeInteger): % ==
- per [makeByteBuffer(n)$Lisp,n]$Rep
+ per [makeByteBuffer(n)$Foreign(Builtin),n]$Rep
byteBuffer n == makeByteBuffer n
empty() == byteBuffer 0
- new(n,b) == per [makeByteBuffer(n,b)$Lisp,n]$Rep
+ new(n,b) == per [makeByteBuffer(n,b)$Foreign(Builtin),n]$Rep
# buf == rep(buf).sz
@@ -319,7 +319,7 @@ ByteBuffer(): Public == Private where
rep(buf).ary
coerce(buf: %): String ==
- s: String := MAKE_-STRING(#buf)$Lisp
+ s: String := MAKE_-STRING(#buf)$Foreign(Builtin)
for i in 0..maxIndex buf repeat
qsetelt!(s,i + 1,qelt(buf,i)::Character)$String
s
@@ -363,16 +363,16 @@ DataArray(N: PositiveInteger, T: SetCategory): Public == Private where
++ Indexing is 0-based.
Private == add
new() ==
- makeSimpleArray(getVMType(T)$Lisp,N)$Lisp
+ makeSimpleArray(getVMType(T)$Foreign(Builtin),N)$Foreign(Builtin)
qelt(b,i) ==
- getSimpleArrayEntry(b,i)$Lisp
+ getSimpleArrayEntry(b,i)$Foreign(Builtin)
qsetelt(b,i,x) ==
- setSimpleArrayEntry(b,i,x)$Lisp
+ setSimpleArrayEntry(b,i,x)$Foreign(Builtin)
x = y ==
- EQUAL(x,y)$Lisp
+ EQUAL(x,y)$Foreign(Builtin)
coerce(b: %): OutputForm ==
bracket([qelt(b,i)::OutputForm for i in 0..(N-1)])
@@ -424,11 +424,13 @@ DataArray(N: PositiveInteger, T: SetCategory): Public == Private where
<<domain INT8 Int8>>
<<domain INT16 Int16>>
<<domain INT32 Int32>>
+<<domain INT64 Int64>>
<<domain SYSNNI SystemNonNegativeInteger>>
<<domain UINT8 UInt8>>
<<domain UINT16 UInt16>>
<<domain UINT32 UInt32>>
+<<domain UINT64 UInt64>>
@
diff --git a/src/interp/compiler.boot b/src/interp/compiler.boot
index baea9aa2..f2ced87a 100644
--- a/src/interp/compiler.boot
+++ b/src/interp/compiler.boot
@@ -1331,8 +1331,11 @@ getBasicFFIType: %Mode -> %Symbol
getBasicFFIType t ==
t = $Byte => bootDenotation "byte"
t = $Int16 => bootDenotation "int16"
+ t = $UInt16 => bootDenotation "uint16"
t = $Int32 => bootDenotation "int32"
--- t = $Int64 => bootDenotation "int64"
+ t = $UInt32 => bootDenotation "uint32"
+ t = $Int64 => bootDenotation "int64"
+ t = $UInt64 => bootDenotation "uint64"
t = $SingleInteger => bootDenotation "int"
t = $SingleFloat => bootDenotation "float"
t = $DoubleFloat => bootDenotation "double"
diff --git a/src/interp/sys-constants.boot b/src/interp/sys-constants.boot
index bb8c8575..02d6d4b2 100644
--- a/src/interp/sys-constants.boot
+++ b/src/interp/sys-constants.boot
@@ -373,9 +373,16 @@ $Boolean ==
'(Boolean)
$Byte == '(Byte)
+
+++ Sized integer types, mostly for system-level programming.
$Int16 == '(Int16)
+$UInt16 == '(UInt16)
+
$Int32 == '(Int32)
+$UInt32 == '(UInt32)
+
$Int64 == '(Int64)
+$UInt64 == '(UInt64)
++ The SmallInteger domain constructor form
$SmallInteger ==