aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xconfigure18
-rw-r--r--configure.ac2
-rw-r--r--configure.ac.pamphlet2
-rw-r--r--src/ChangeLog14
-rw-r--r--src/hyper/pages/ug00.ht4
-rw-r--r--src/interp/compiler.boot2
-rw-r--r--src/interp/i-coerfn.boot2
-rw-r--r--src/interp/i-object.boot16
-rw-r--r--src/interp/i-spec1.boot6
-rw-r--r--src/interp/i-spec2.boot4
10 files changed, 45 insertions, 25 deletions
diff --git a/configure b/configure
index c1cc77fd..dc140019 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.60 for OpenAxiom 1.3.0-2009-04-25.
+# Generated by GNU Autoconf 2.60 for OpenAxiom 1.3.0-2009-04-28.
#
# Report bugs to <open-axiom-bugs@lists.sf.net>.
#
@@ -713,8 +713,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='OpenAxiom'
PACKAGE_TARNAME='openaxiom'
-PACKAGE_VERSION='1.3.0-2009-04-25'
-PACKAGE_STRING='OpenAxiom 1.3.0-2009-04-25'
+PACKAGE_VERSION='1.3.0-2009-04-28'
+PACKAGE_STRING='OpenAxiom 1.3.0-2009-04-28'
PACKAGE_BUGREPORT='open-axiom-bugs@lists.sf.net'
ac_unique_file="src/Makefile.pamphlet"
@@ -1406,7 +1406,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.3.0-2009-04-25 to adapt to many kinds of systems.
+\`configure' configures OpenAxiom 1.3.0-2009-04-28 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1476,7 +1476,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of OpenAxiom 1.3.0-2009-04-25:";;
+ short | recursive ) echo "Configuration of OpenAxiom 1.3.0-2009-04-28:";;
esac
cat <<\_ACEOF
@@ -1580,7 +1580,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-OpenAxiom configure 1.3.0-2009-04-25
+OpenAxiom configure 1.3.0-2009-04-28
generated by GNU Autoconf 2.60
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1594,7 +1594,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.3.0-2009-04-25, which was
+It was created by OpenAxiom $as_me 1.3.0-2009-04-28, which was
generated by GNU Autoconf 2.60. Invocation command line was
$ $0 $@
@@ -26808,7 +26808,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.3.0-2009-04-25, which was
+This file was extended by OpenAxiom $as_me 1.3.0-2009-04-28, which was
generated by GNU Autoconf 2.60. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -26857,7 +26857,7 @@ Report bugs to <bug-autoconf@gnu.org>."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-OpenAxiom config.status 1.3.0-2009-04-25
+OpenAxiom config.status 1.3.0-2009-04-28
configured by $0, generated by GNU Autoconf 2.60,
with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
diff --git a/configure.ac b/configure.ac
index a829e854..3ca650c8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,6 +1,6 @@
sinclude(config/open-axiom.m4)
sinclude(config/aclocal.m4)
-AC_INIT([OpenAxiom], [1.3.0-2009-04-25],
+AC_INIT([OpenAxiom], [1.3.0-2009-04-28],
[open-axiom-bugs@lists.sf.net])
AC_CONFIG_AUX_DIR(config)
diff --git a/configure.ac.pamphlet b/configure.ac.pamphlet
index 73f23ae4..bb8626e3 100644
--- a/configure.ac.pamphlet
+++ b/configure.ac.pamphlet
@@ -1131,7 +1131,7 @@ information:
<<Autoconf init>>=
sinclude(config/open-axiom.m4)
sinclude(config/aclocal.m4)
-AC_INIT([OpenAxiom], [1.3.0-2009-04-25],
+AC_INIT([OpenAxiom], [1.3.0-2009-04-28],
[open-axiom-bugs@lists.sf.net])
@
diff --git a/src/ChangeLog b/src/ChangeLog
index 80552226..fe1a9a14 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,17 @@
+2009-04-28 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
+ * interp/compiler.boot (compComma): Supply element type for tuple
+ construction.
+ * interp/i-coerfn.boot (L2Tuple): Likewise.
+ * interp/i-object.boot (asTupleNew): Likewise.
+ (asTupleNew0): Likewise.
+ (asTupleNewCode): Likewise.
+ (asTupleNewCode0): Likewise.
+ * interp/i-spec1.boot (evalCOLLECT): Likewise.
+ (interpCOLLECT): Likewise.
+ * interp/i-spec2.boot (evalTuple): Likewise.
+ (upNullTuple): Likewise.
+
2009-04-26 Gabriel Dos Reis <gdr@cs.tamu.edu>>
Fix SF/2781848
diff --git a/src/hyper/pages/ug00.ht b/src/hyper/pages/ug00.ht
index b8ec3213..d4357d2d 100644
--- a/src/hyper/pages/ug00.ht
+++ b/src/hyper/pages/ug00.ht
@@ -4,11 +4,11 @@
\texht{\setcounter{chapter}{-1}}{} %
%
-\newcommand{\ugWhatsNewTwoTwoTitle}{What's New in \Language{} Version 2.2}
+\newcommand{\ugWhatsNewTwoTwoTitle}{What's New in \Language{} Version 1.3.1}
\newcommand{\ugWhatsNewTwoTwoNumber}{0.}
%
% =====================================================================
-\begin{page}{ugWhatsNewTwoTwoPage}{0. What's New in \Language{} Version 2.2}
+\begin{page}{ugWhatsNewTwoTwoPage}{0. What's New in \Language{} Version 1.3.1}
% =====================================================================
\beginscroll
diff --git a/src/interp/compiler.boot b/src/interp/compiler.boot
index 82b8567d..c45a5ce8 100644
--- a/src/interp/compiler.boot
+++ b/src/interp/compiler.boot
@@ -1793,7 +1793,7 @@ compComma(form,m,e) ==
m is ["Tuple",t] =>
Tl' := [convert(T,t) or return "failed" for T in Tl]
Tl' = "failed" => nil
- [["asTupleNew0", [T.expr for T in Tl']], m, e]
+ [["asTupleNew0", ["getVMType",t], [T.expr for T in Tl']], m, e]
T := [["LIST2VEC", [T.expr for T in Tl]],
["Cross",:[T.mode for T in Tl]], e]
convert(T,m)
diff --git a/src/interp/i-coerfn.boot b/src/interp/i-coerfn.boot
index 5ee715f0..fa8eaeb6 100644
--- a/src/interp/i-coerfn.boot
+++ b/src/interp/i-coerfn.boot
@@ -563,7 +563,7 @@ L2Tuple(val, source is [.,S], target is [.,T]) ==
val = '_$fromCoerceable_$ => canCoerce(S,T)
null (object := coerceInt1(objNewWrap(val,source), ['List, T])) =>
coercionFailure()
- asTupleNew0 objValUnwrap object
+ asTupleNew0(getVMType T, objValUnwrap object)
L2DP(l, source is [.,S], target is [.,n,T]) ==
-- need to know size of the list
diff --git a/src/interp/i-object.boot b/src/interp/i-object.boot
index 919d54a1..593b2d08 100644
--- a/src/interp/i-object.boot
+++ b/src/interp/i-object.boot
@@ -1,6 +1,6 @@
-- Copyright (c) 1991-2002, The Numerical Algorithms Group Ltd.
-- All rights reserved.
--- Copyright (C) 2007-2008, Gabriel Dos Reis.
+-- Copyright (C) 2007-2009, Gabriel Dos Reis.
-- All rights reserved.
--
-- Redistribution and use in source and binary forms, with or without
@@ -132,11 +132,17 @@ instantiationNormalForm(op,argl) ==
-- Tuples and Crosses
-asTupleNew(size, listOfElts) == CONS(size, LIST2VEC listOfElts)
-asTupleNew0(listOfElts) == CONS(#listOfElts, LIST2VEC listOfElts)
+asTupleNew(eltType,size,listOfElts) ==
+ CONS(size, makeSimpleArrayFromList(eltType,listOfElts))
-asTupleNewCode(size, listOfElts) == ["asTupleNew", size, ["LIST", :listOfElts]]
-asTupleNewCode0(listForm) == ["asTupleNew0", listForm]
+asTupleNew0(eltType,listOfElts) ==
+ CONS(#listOfElts, makeSimpleArrayFromList(eltType,listOfElts))
+
+asTupleNewCode(eltType, size, listOfElts) ==
+ ["asTupleNew", quoteForm getVMType eltType, size, ["LIST", :listOfElts]]
+
+asTupleNewCode0(eltType,listForm) ==
+ ["asTupleNew0", quoteForm getVMType eltType, listForm]
asTupleSize(at) == CAR at
asTupleAsVector(at) == CDR at
diff --git a/src/interp/i-spec1.boot b/src/interp/i-spec1.boot
index 8cc56925..7f9600c0 100644
--- a/src/interp/i-spec1.boot
+++ b/src/interp/i-spec1.boot
@@ -1,6 +1,6 @@
-- Copyright (c) 1991-2002, The Numerical Algorithms Group Ltd.
-- All rights reserved.
--- Copyright (C) 2007-2008, Gabriel Dos Reis.
+-- Copyright (C) 2007-2009, Gabriel Dos Reis.
-- All rights reserved.
--
-- Redistribution and use in source and binary forms, with or without
@@ -542,7 +542,7 @@ evalCOLLECT(op,[:itrl,body],m) ==
iters := [evalLoopIter itr for itr in itrl]
bod := getArgValue(body,computedMode body)
if bod isnt ['SPADCALL,:.] then bode := ['unwrap,bod]
- code := timedOptimization asTupleNewCode0 ['COLLECT,:iters,bod]
+ code := timedOptimization asTupleNewCode0(second m, ['COLLECT,:iters,bod])
if $genValue then code := wrap timedEVALFUN code
putValue(op,objNew(code,m))
@@ -580,7 +580,7 @@ interpCOLLECT(op,itrl,body) ==
rm := ['Tuple,t]
value := [objValUnwrap coerceInteractive(objNewWrap(v,m),t)
for v in value for m in $collectTypeList]
- putValue(op,objNewWrap(asTupleNew(#value, value),rm))
+ putValue(op,objNewWrap(asTupleNew(getVMType t, #value, value),rm))
putModeSet(op,[rm])
interpIter itr ==
diff --git a/src/interp/i-spec2.boot b/src/interp/i-spec2.boot
index 7c849c00..175cab07 100644
--- a/src/interp/i-spec2.boot
+++ b/src/interp/i-spec2.boot
@@ -1091,7 +1091,7 @@ uptuple t ==
evalTuple(op,l,m,tar) ==
[agg,:.,underMode]:= m
- code := asTupleNewCode(#l,
+ code := asTupleNewCode(underMode, #l,
[(getArgValue(x,underMode) or throwKeyedMsg("S2IC0007",[underMode])) for x in l])
val :=
$genValue => objNewWrap(timedEVALFUN code,m)
@@ -1110,7 +1110,7 @@ upNullTuple(op,l,tar) ==
tar and tar is [a,b] and (a in '(Stream Vector List)) and
not isPartialMode(b) => ['Tuple,b]
'(Tuple (None))
- val := objNewWrap(asTupleNew(0,NIL), defMode)
+ val := objNewWrap(asTupleNew(getVMType second defMode,0,NIL), defMode)
tar and not isPartialMode(tar) =>
null (val' := coerceInteractive(val,tar)) =>
throwKeyedMsg("S2IS0013",[tar])