From 6c7342e9fe62ef8588307be33b2ad9543e4a071c Mon Sep 17 00:00:00 2001 From: dos-reis Date: Mon, 1 Jul 2013 03:22:27 +0000 Subject: Bring closer to GCL-buildability. --- ChangeLog | 6 ++++++ Makefile.in | 1 + config/open-axiom.m4 | 15 +++++++++------ configure | 20 ++++++++++++-------- src/ChangeLog | 5 +++++ src/Makefile.in | 1 + src/algebra/Makefile.in | 1 + src/io/Makefile.in | 1 + src/lisp/core.lisp.in | 8 +++++++- src/rt/Makefile.in | 1 + src/syntax/Makefile.in | 1 + 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 + + * 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 * 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 + + * lisp/core.lisp.in (maxIndex): Provide function definition for + the benefit of rotted GCL systems. + 2013-06-29 Gabriel Dos Reis * 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@ -- cgit v1.2.3