aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2008-09-13 22:56:49 +0000
committerdos-reis <gdr@axiomatics.org>2008-09-13 22:56:49 +0000
commit6feba77e44809a9eb39f9cc54bfa7c01f42eb098 (patch)
tree3ea8ae6d8b53684344a95beb77e7f73283f1b637
parent65e866db45bf4713c62af9d727955d40c1f39b53 (diff)
downloadopen-axiom-6feba77e44809a9eb39f9cc54bfa7c01f42eb098.tar.gz
* lisp/core.lisp.in (|$NativeTypeTable|): Don' include `pointer'
and `buffer'. * lisp/Makefile.in (pointer_type): Remove. (edit): Tidy. * boot/ast.boot (nativeType): Tidy. Handle `pointer' and `buffer' here. * boot/translator.boot (genImportDeclaration): Tidy.
-rw-r--r--ChangeLog5
-rwxr-xr-xconfigure44
-rw-r--r--configure.ac28
-rw-r--r--configure.ac.pamphlet28
-rw-r--r--src/ChangeLog10
-rw-r--r--src/boot/ast.boot18
-rw-r--r--src/boot/translator.boot5
-rw-r--r--src/lisp/Makefile.in4
-rw-r--r--src/lisp/core.lisp.in5
9 files changed, 81 insertions, 66 deletions
diff --git a/ChangeLog b/ChangeLog
index a926c1a3..54ccb920 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-09-13 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
+ * configure.ac.pamphlet: Simplify native type translation table
+ entries.
+
2008-08-22 Gabriel Dos Reis <gdr@cs.tamu.edu>
* OpenAxiom-1.2.0 has been released.
diff --git a/configure b/configure
index 7e8980a1..8ee1afbf 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-2008-09-09.
+# Generated by GNU Autoconf 2.60 for OpenAxiom 1.3.0-2008-09-12.
#
# 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-2008-09-09'
-PACKAGE_STRING='OpenAxiom 1.3.0-2008-09-09'
+PACKAGE_VERSION='1.3.0-2008-09-12'
+PACKAGE_STRING='OpenAxiom 1.3.0-2008-09-12'
PACKAGE_BUGREPORT='open-axiom-bugs@lists.sf.net'
ac_unique_file="src/Makefile.pamphlet"
@@ -1405,7 +1405,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-2008-09-09 to adapt to many kinds of systems.
+\`configure' configures OpenAxiom 1.3.0-2008-09-12 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1475,7 +1475,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of OpenAxiom 1.3.0-2008-09-09:";;
+ short | recursive ) echo "Configuration of OpenAxiom 1.3.0-2008-09-12:";;
esac
cat <<\_ACEOF
@@ -1579,7 +1579,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-OpenAxiom configure 1.3.0-2008-09-09
+OpenAxiom configure 1.3.0-2008-09-12
generated by GNU Autoconf 2.60
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1593,7 +1593,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-2008-09-09, which was
+It was created by OpenAxiom $as_me 1.3.0-2008-09-12, which was
generated by GNU Autoconf 2.60. Invocation command line was
$ $0 $@
@@ -25643,25 +25643,22 @@ case $axiom_lisp_flavor in
float_type='float'
double_type='double'
string_type='string'
- pointer_type='object'
;;
sbcl)
- void_type='sb-alien:void'
- char_type='sb-alien:char'
- int_type='sb-alien:int'
- float_type='sb-alien:float'
- double_type='sb-alien:double'
- string_type='sb-alien:c-string'
- pointer_type='sb-alien:system-area-pointer'
+ void_type='void'
+ char_type='char'
+ int_type='int'
+ float_type='float'
+ double_type='double'
+ string_type='c-string'
;;
clisp)
void_type='nil'
- char_type='ffi:character'
- int_type='ffi:int'
- float_type='ffi:single-float'
- double_type='ffi:double-float'
- string_type='ffi:c-string'
- pointer_type='ffi:c-pointer'
+ char_type='character'
+ int_type='int'
+ float_type='single-float'
+ double_type='double-float'
+ string_type='c-string'
;;
ecl)
void_type=':void'
@@ -25670,7 +25667,6 @@ case $axiom_lisp_flavor in
float_type=':float'
double_type=':double'
string_type=':cstring'
- pointer_type=':pointer-void'
;;
*)
{ { echo "$as_me:$LINENO: error: We do not know how to translate native types for this Lisp" >&5
@@ -26103,7 +26099,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-2008-09-09, which was
+This file was extended by OpenAxiom $as_me 1.3.0-2008-09-12, which was
generated by GNU Autoconf 2.60. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -26152,7 +26148,7 @@ Report bugs to <bug-autoconf@gnu.org>."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-OpenAxiom config.status 1.3.0-2008-09-09
+OpenAxiom config.status 1.3.0-2008-09-12
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 d9b64879..275a952e 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-2008-09-09],
+AC_INIT([OpenAxiom], [1.3.0-2008-09-12],
[open-axiom-bugs@lists.sf.net])
AC_CONFIG_AUX_DIR(config)
@@ -594,25 +594,22 @@ case $axiom_lisp_flavor in
float_type='float'
double_type='double'
string_type='string'
- pointer_type='object'
;;
sbcl)
- void_type='sb-alien:void'
- char_type='sb-alien:char'
- int_type='sb-alien:int'
- float_type='sb-alien:float'
- double_type='sb-alien:double'
- string_type='sb-alien:c-string'
- pointer_type='sb-alien:system-area-pointer'
+ void_type='void'
+ char_type='char'
+ int_type='int'
+ float_type='float'
+ double_type='double'
+ string_type='c-string'
;;
clisp)
void_type='nil'
- char_type='ffi:character'
- int_type='ffi:int'
- float_type='ffi:single-float'
- double_type='ffi:double-float'
- string_type='ffi:c-string'
- pointer_type='ffi:c-pointer'
+ char_type='character'
+ int_type='int'
+ float_type='single-float'
+ double_type='double-float'
+ string_type='c-string'
;;
ecl)
void_type=':void'
@@ -621,7 +618,6 @@ case $axiom_lisp_flavor in
float_type=':float'
double_type=':double'
string_type=':cstring'
- pointer_type=':pointer-void'
;;
*)
AC_MSG_ERROR([We do not know how to translate native types for this Lisp])
diff --git a/configure.ac.pamphlet b/configure.ac.pamphlet
index d2e359ac..7f0a7022 100644
--- a/configure.ac.pamphlet
+++ b/configure.ac.pamphlet
@@ -1016,25 +1016,22 @@ case $axiom_lisp_flavor in
float_type='float'
double_type='double'
string_type='string'
- pointer_type='object'
;;
sbcl)
- void_type='sb-alien:void'
- char_type='sb-alien:char'
- int_type='sb-alien:int'
- float_type='sb-alien:float'
- double_type='sb-alien:double'
- string_type='sb-alien:c-string'
- pointer_type='sb-alien:system-area-pointer'
+ void_type='void'
+ char_type='char'
+ int_type='int'
+ float_type='float'
+ double_type='double'
+ string_type='c-string'
;;
clisp)
void_type='nil'
- char_type='ffi:character'
- int_type='ffi:int'
- float_type='ffi:single-float'
- double_type='ffi:double-float'
- string_type='ffi:c-string'
- pointer_type='ffi:c-pointer'
+ char_type='character'
+ int_type='int'
+ float_type='single-float'
+ double_type='double-float'
+ string_type='c-string'
;;
ecl)
void_type=':void'
@@ -1043,7 +1040,6 @@ case $axiom_lisp_flavor in
float_type=':float'
double_type=':double'
string_type=':cstring'
- pointer_type=':pointer-void'
;;
*)
AC_MSG_ERROR([We do not know how to translate native types for this Lisp])
@@ -1131,7 +1127,7 @@ information:
<<Autoconf init>>=
sinclude(config/open-axiom.m4)
sinclude(config/aclocal.m4)
-AC_INIT([OpenAxiom], [1.3.0-2008-09-09],
+AC_INIT([OpenAxiom], [1.3.0-2008-09-12],
[open-axiom-bugs@lists.sf.net])
@
diff --git a/src/ChangeLog b/src/ChangeLog
index 2aadfbd8..e3adaa73 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,15 @@
2008-09-13 Gabriel Dos Reis <gdr@cs.tamu.edu>
+ * lisp/core.lisp.in (|$NativeTypeTable|): Don' include `pointer'
+ and `buffer'.
+ * lisp/Makefile.in (pointer_type): Remove.
+ (edit): Tidy.
+ * boot/ast.boot (nativeType): Tidy. Handle `pointer' and `buffer'
+ here.
+ * boot/translator.boot (genImportDeclaration): Tidy.
+
+2008-09-13 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
* boot/translator.boot (AxiomCore::%sysInit) [ECL]: Remove
settings for ECL-base builds.
(getIntermediateLispFile): Tidy.
diff --git a/src/boot/ast.boot b/src/boot/ast.boot
index b0d5d769..15cd2ab8 100644
--- a/src/boot/ast.boot
+++ b/src/boot/ast.boot
@@ -1218,12 +1218,28 @@ bootSymbol: %Symbol -> %Symbol
bootSymbol s ==
INTERN SYMBOL_-NAME s
+
+unknownNativeTypeError t ==
+ fatalError CONCAT('"unsupported native type: ", SYMBOL_-NAME t)
+
+
nativeType t ==
null t => t
+ -- for the time being, approximate `data buffer' by `pointer to data'
+ t = "buffer" or t = "pointer" =>
+ %hasFeature KEYWORD::GCL => "fixnum"
+ %hasFeature KEYWORD::ECL => KEYWORD::POINTER_-VOID
+ %hasFeature KEYWORD::SBCL => ["*",true]
+ %hasFeature KEYWORD::CLISP => bfColonColon("FFI","C-POINTER")
+ unknownNativeTypeError t
t' := rest ASSOC(coreSymbol t,$NativeTypeTable) =>
+ t' :=
+ %hasFeature KEYWORD::SBCL => bfColonColon("SB-ALIEN", t')
+ %hasFeature KEYWORD::CLISP => bfColonColon("FFI",t')
+ t'
-- ??? decree we have not discovered Unicode yet.
t = "string" and %hasFeature KEYWORD::SBCL =>
[t',KEYWORD::EXTERNAL_-FORMAT,KEYWORD::ASCII,
KEYWORD::ELEMENT_-TYPE, "BASE-CHAR"]
t'
- fatalError CONCAT('"unsupported native type: ", SYMBOL_-NAME t)
+ unknownNativeTypeError t
diff --git a/src/boot/translator.boot b/src/boot/translator.boot
index c972af6c..5358d91b 100644
--- a/src/boot/translator.boot
+++ b/src/boot/translator.boot
@@ -426,9 +426,8 @@ genImportDeclaration(op, sig) ==
n := INTERN strconc(SYMBOL_-NAME op, '"%clisp-hack")
[bfColonColon("FFI","DEF-CALL-OUT"),n,
[KEYWORD::NAME,SYMBOL_-NAME op'],
- [KEYWORD::ARGUMENTS,:[[a,
- bfColonColon("FFI", nativeType x)] for x in s for a in args]],
- [KEYWORD::RETURN_-TYPE,bfColonColon("FFI",nativeType t)],
+ [KEYWORD::ARGUMENTS,:[[a, nativeType x] for x in s for a in args]],
+ [KEYWORD::RETURN_-TYPE, nativeType t],
[KEYWORD::LANGUAGE,KEYWORD::STDC]]
forwardingFun :=
["DEFUN",op,args,
diff --git a/src/lisp/Makefile.in b/src/lisp/Makefile.in
index 2f0270b1..726a017f 100644
--- a/src/lisp/Makefile.in
+++ b/src/lisp/Makefile.in
@@ -134,7 +134,6 @@ int_type = @int_type@
float_type = @float_type@
double_type = @double_type@
string_type = @string_type@
-pointer_type = @pointer_type@
edit = sed \
-e 's|@open_axiom_installdir[@]|$(open_axiom_installdir)|g' \
@@ -151,8 +150,7 @@ edit = sed \
-e 's|@int_type[@]|$(int_type)|g' \
-e 's|@float_type[@]|$(float_type)|g' \
-e 's|@double_type[@]|$(double_type)|g' \
- -e 's|@string_type[@]|$(string_type)|g' \
- -e 's|@pointer_type[@]|$(pointer_type)|g'
+ -e 's|@string_type[@]|$(string_type)|g'
core.lisp: $(srcdir)/core.lisp.in
$(edit) $< > $@.tmp
diff --git a/src/lisp/core.lisp.in b/src/lisp/core.lisp.in
index 83a1b610..7b9d5710 100644
--- a/src/lisp/core.lisp.in
+++ b/src/lisp/core.lisp.in
@@ -985,6 +985,5 @@
(|int| . @int_type@)
(|float| . @float_type@)
(|double| . @double_type@)
- (|string| . @string_type@)
- (|buffer| . @pointer_type@)
- (|pointer| . @pointer_type@)))
+ (|string| . @string_type@)))
+