aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2013-07-01 03:22:27 +0000
committerdos-reis <gdr@axiomatics.org>2013-07-01 03:22:27 +0000
commit6c7342e9fe62ef8588307be33b2ad9543e4a071c (patch)
tree354764c046ab680ae0580fdb3baa967552fc1ad4
parent09de7e4ede72b8eaa1c42e8d08e338bfe9945f2c (diff)
downloadopen-axiom-6c7342e9fe62ef8588307be33b2ad9543e4a071c.tar.gz
Bring closer to GCL-buildability.
-rw-r--r--ChangeLog6
-rw-r--r--Makefile.in1
-rw-r--r--config/open-axiom.m415
-rwxr-xr-xconfigure20
-rw-r--r--src/ChangeLog5
-rw-r--r--src/Makefile.in1
-rw-r--r--src/algebra/Makefile.in1
-rw-r--r--src/io/Makefile.in1
-rw-r--r--src/lisp/core.lisp.in8
-rw-r--r--src/rt/Makefile.in1
-rw-r--r--src/syntax/Makefile.in1
11 files changed, 45 insertions, 15 deletions
diff --git a/ChangeLog b/ChangeLog
index 6396a1d2..91b19af1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2013-06-30 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * config/open-axiom.m4 (OPENAXIOM_REJECT_ROTTED_LISP): Just warn
+ for unsupported GCL version; do not reset arguments.
+ (OPENAXIOM_FFI_TYPE_TABLE): Be GCL-2.6.9 ready.
+
2013-06-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
* config/open-axiom.m4 (OPENAXIOM_CHECK_IO): Check for tempnam.
diff --git a/Makefile.in b/Makefile.in
index 93eeeedb..30a9ba67 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -430,6 +430,7 @@ oldincludedir = @oldincludedir@
open_axiom_installdir = @open_axiom_installdir@
openaxiom_host_has_regex = @openaxiom_host_has_regex@
pdfdir = @pdfdir@
+pointer_type = @pointer_type@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
diff --git a/config/open-axiom.m4 b/config/open-axiom.m4
index 57db43bd..ec51ac8e 100644
--- a/config/open-axiom.m4
+++ b/config/open-axiom.m4
@@ -31,13 +31,12 @@ if test x"$oa_include_gcl" != xyes; then
case $AXIOM_LISP in
*gcl*)
AC_MSG_CHECKING([$AXIOM_LISP version])
- v=`$AXIOM_LISP -batch -eval "(format t \"~S\" (lisp-implementation-version))"`
- AC_MSG_RESULT([$v])
+ openaxiom_gcl_version=`$AXIOM_LISP -batch -eval "(format t \"~S\" (lisp-implementation-version))"`
+ AC_MSG_RESULT([$openaxiom_gcl_version])
case $v in
- *2.6.7*|*2.6.8*) ;; # OK
+ *2.6.7*|*2.6.8*|*2.6.9*) ;; # OK
*)
- AC_MSG_WARN([$v is not supported by this version of OpenAxiom. $AXIOM_LISP will be ignored.])
- AXIOM_LISP=
+ AC_MSG_WARN([$v is not supported by this version of OpenAxiom.])
;;
esac
;;
@@ -406,6 +405,7 @@ AC_SUBST(int_type)
AC_SUBST(float_type)
AC_SUBST(double_type)
AC_SUBST(string_type)
+AC_SUBST(pointer_type)
case $axiom_lisp_flavor in
gcl)
@@ -415,7 +415,10 @@ case $axiom_lisp_flavor in
float_type='float'
double_type='double'
string_type='string'
- pointer_type='fixnum' # well, this is from poking into GCL source code
+ case $openaxiom_host_lisp_precision,$openaxiom_gcl_version in
+ 64,*2.6.7*|64,*2.6.8*) pointer_type='(signed-integer 64)' ;;
+ *) pointer_type='fixnum' ;;
+ esac
;;
sbcl)
void_type='void'
diff --git a/configure b/configure
index 6a62f3a8..34451f68 100755
--- a/configure
+++ b/configure
@@ -637,6 +637,7 @@ am__EXEEXT_TRUE
LTLIBOBJS
LIBOBJS
GCLOPTS
+pointer_type
string_type
double_type
float_type
@@ -3874,15 +3875,14 @@ if test x"$oa_include_gcl" != xyes; then
*gcl*)
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $AXIOM_LISP version" >&5
$as_echo_n "checking $AXIOM_LISP version... " >&6; }
- v=`$AXIOM_LISP -batch -eval "(format t \"~S\" (lisp-implementation-version))"`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $v" >&5
-$as_echo "$v" >&6; }
+ openaxiom_gcl_version=`$AXIOM_LISP -batch -eval "(format t \"~S\" (lisp-implementation-version))"`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $openaxiom_gcl_version" >&5
+$as_echo "$openaxiom_gcl_version" >&6; }
case $v in
- *2.6.7*|*2.6.8*) ;; # OK
+ *2.6.7*|*2.6.8*|*2.6.9*) ;; # OK
*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $v is not supported by this version of OpenAxiom. $AXIOM_LISP will be ignored." >&5
-$as_echo "$as_me: WARNING: $v is not supported by this version of OpenAxiom. $AXIOM_LISP will be ignored." >&2;}
- AXIOM_LISP=
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $v is not supported by this version of OpenAxiom." >&5
+$as_echo "$as_me: WARNING: $v is not supported by this version of OpenAxiom." >&2;}
;;
esac
;;
@@ -19562,6 +19562,7 @@ fi
+
case $axiom_lisp_flavor in
gcl)
void_type='void'
@@ -19570,7 +19571,10 @@ case $axiom_lisp_flavor in
float_type='float'
double_type='double'
string_type='string'
- pointer_type='fixnum' # well, this is from poking into GCL source code
+ case $openaxiom_host_lisp_precision,$openaxiom_gcl_version in
+ 64,*2.6.7*|64,*2.6.8*) pointer_type='(signed-integer 64)' ;;
+ *) pointer_type='fixnum' ;;
+ esac
;;
sbcl)
void_type='void'
diff --git a/src/ChangeLog b/src/ChangeLog
index c37a272a..f1c3cafa 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2013-06-30 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * lisp/core.lisp.in (maxIndex): Provide function definition for
+ the benefit of rotted GCL systems.
+
2013-06-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
* include/sockio.h (accept_connection): Take no argument.
diff --git a/src/Makefile.in b/src/Makefile.in
index c49c1872..05afdc17 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -360,6 +360,7 @@ oldincludedir = @oldincludedir@
open_axiom_installdir = @open_axiom_installdir@
openaxiom_host_has_regex = @openaxiom_host_has_regex@
pdfdir = @pdfdir@
+pointer_type = @pointer_type@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
diff --git a/src/algebra/Makefile.in b/src/algebra/Makefile.in
index 2d76a83f..2f390536 100644
--- a/src/algebra/Makefile.in
+++ b/src/algebra/Makefile.in
@@ -545,6 +545,7 @@ oldincludedir = @oldincludedir@
open_axiom_installdir = @open_axiom_installdir@
openaxiom_host_has_regex = @openaxiom_host_has_regex@
pdfdir = @pdfdir@
+pointer_type = @pointer_type@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
diff --git a/src/io/Makefile.in b/src/io/Makefile.in
index 2320b804..c031a793 100644
--- a/src/io/Makefile.in
+++ b/src/io/Makefile.in
@@ -357,6 +357,7 @@ oldincludedir = @oldincludedir@
open_axiom_installdir = @open_axiom_installdir@
openaxiom_host_has_regex = @openaxiom_host_has_regex@
pdfdir = @pdfdir@
+pointer_type = @pointer_type@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
diff --git a/src/lisp/core.lisp.in b/src/lisp/core.lisp.in
index 8468c558..28bcb227 100644
--- a/src/lisp/core.lisp.in
+++ b/src/lisp/core.lisp.in
@@ -1464,8 +1464,14 @@
;; -*- Native Datatype correspondance -*-
;;
+;; This should be an implementation-independent macro definition,
+;; but GCL has problems with it, for some obscure reasons.
+#-:gcl
(defmacro |maxIndex| (x)
- `(1- (length ,x)))
+ `(1- (length ,x))))
+#+:gcl
+(defun |maxIndex| (x)
+ (1- (length x))))
;; Datatype for buffers mostly used for transmitting data between
diff --git a/src/rt/Makefile.in b/src/rt/Makefile.in
index b72586a1..5b5e535f 100644
--- a/src/rt/Makefile.in
+++ b/src/rt/Makefile.in
@@ -357,6 +357,7 @@ oldincludedir = @oldincludedir@
open_axiom_installdir = @open_axiom_installdir@
openaxiom_host_has_regex = @openaxiom_host_has_regex@
pdfdir = @pdfdir@
+pointer_type = @pointer_type@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
diff --git a/src/syntax/Makefile.in b/src/syntax/Makefile.in
index f492a7f7..98e45314 100644
--- a/src/syntax/Makefile.in
+++ b/src/syntax/Makefile.in
@@ -357,6 +357,7 @@ oldincludedir = @oldincludedir@
open_axiom_installdir = @open_axiom_installdir@
openaxiom_host_has_regex = @openaxiom_host_has_regex@
pdfdir = @pdfdir@
+pointer_type = @pointer_type@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@