Merge branch 'release-15.3.7'

This commit is contained in:
Daniel Kochmański 2015-03-07 18:26:56 +01:00
commit a014bd2c23
14 changed files with 809 additions and 157 deletions

1
.gitignore vendored
View file

@ -41,6 +41,7 @@ MODULES
Makefile
src/autom4te.cache
src/config.log
regressions/*.lsp
regressions/eformat-tests/*.txt

View file

@ -35,8 +35,23 @@ Known issues
quicklisp and have a C compiler accessible to ECL, you may use
(ext:install-c-compiler) to switch back to the Lisp-to-C compiler.
Changes since 13.5.1
====================
15.3.7 changes since 15.2.21
============================
* autoconf scripts are rewritten to support version 2.69 stack
* direction is now correctly determined, so gcc 5.x builds should be
* broken --with-sse=yes configure flag works once again
* compilation of ECL under MSVC (2008/2010/2012) even with custom
code pages
* stable-sort now works as desired
15.2.21 changes since 13.5.1
============================
* Features coverity scan model, ffi-unload-module implementation,
probably more.

View file

@ -10,8 +10,8 @@ srcdir = ..\src
SHORT_SITE_NAME =
LONG_SITE_NAME =
ECL_VERSION = 15.2.21
ECL_VERSION_NUMBER= 150221
ECL_VERSION = 15.3.7
ECL_VERSION_NUMBER= 150307
ARCHITECTURE = PENTIUM4
SOFTWARE_TYPE = NT
SOFTWARE_VERSION = 5.0

76
src/aclocal.m4 vendored
View file

@ -8,7 +8,7 @@ AC_CHECK_TYPES([long double],[enable_longdouble=yes],[enable_longdouble=no])
if test "$enable_longdouble" != "no" ; then
AC_CHECK_FUNCS([sinl cosl tanl logl expl],[],[enable_longdouble=no; break])
if test "$enable_longdouble" != "no" ; then
AC_DEFINE(ECL_LONG_FLOAT)
AC_DEFINE([ECL_LONG_FLOAT], [], [ECL_LONG_FLOAT])
fi
fi
fi
@ -53,9 +53,10 @@ if test "x$ECL_LONG_LONG_BITS" = "x"; then
AC_MSG_RESULT(not available)
else
AC_MSG_RESULT([$ECL_LONG_LONG_BITS])
AC_DEFINE(ecl_long_long_t, long long, [compiler understands long long])
AC_DEFINE(ecl_ulong_long_t, unsigned long long, [compiler understands long long])
AC_DEFINE_UNQUOTED([ECL_LONG_LONG_BITS],[$ECL_LONG_LONG_BITS])
AC_DEFINE([ecl_long_long_t], [long long], [compiler understands long long])
AC_DEFINE([ecl_ulong_long_t], [unsigned long long], [compiler understands long long])
AC_DEFINE_UNQUOTED([ECL_LONG_LONG_BITS],[$ECL_LONG_LONG_BITS],
[ECL_LOING_LONG_BITS])dnl last param needs to be on a new line. -evrim.
fi
])
@ -222,12 +223,12 @@ CP="cp"
MV="mv"
### Guess the operating system
AC_SUBST(ARCHITECTURE)dnl Type of processor for which this is compiled
AC_SUBST(SOFTWARE_TYPE)dnl Type of operating system
AC_SUBST(SOFTWARE_VERSION)dnl Version number of operating system
AC_SUBST(MACHINE_VERSION)dnl Version of the machine
AC_SUBST(ARCHITECTURE)dnl Type of processor for which this is compiled
AC_SUBST(SOFTWARE_TYPE)dnl Type of operating system
AC_SUBST(SOFTWARE_VERSION)dnl Version number of operating system
AC_SUBST(MACHINE_VERSION)dnl Version of the machine
AC_SUBST(ECL_LDRPATH)dnl Sometimes the path for finding DLLs must be hardcoded.
AC_SUBST(ECL_LDRPATH)dnl Sometimes the path for finding DLLs must be hardcoded.
AC_SUBST(LIBPREFIX)dnl Name components of a statically linked library
AC_SUBST(LIBEXT)
AC_SUBST(SHAREDEXT)dnl Name components of a dynamically linked library
@ -494,8 +495,8 @@ AC_TYPE_UINT$1_T
if test "x$ac_cv_c_int$1_t" = xyes; then
eval ECL_INT$1_T="int$1_t"
eval ECL_UINT$1_T="uint$1_t"
AC_DEFINE_UNQUOTED([ecl_int$1_t],[int$1_t])
AC_DEFINE_UNQUOTED([ecl_uint$1_t],[uint$1_t])
AC_DEFINE_UNQUOTED([ecl_int$1_t], [int$1_t], [ecl_int$1_t])
AC_DEFINE_UNQUOTED([ecl_uint$1_t], [uint$1_t], [ecl_uint$1_t])
fi])
dnl
@ -543,24 +544,26 @@ AC_DEFUN(ECL_STACK_DIRECTION,[
AC_MSG_CHECKING(whether stack growns downwards)
if test -z "${ECL_STACK_DIR}" ; then
AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <stddef.h>
#include <stdlib.h>
char *f2() {
ptrdiff_t f2(const char *d) {
char c[2];
return c;
return c-d;
}
char *f1() {
ptrdiff_t f1(const char *d) {
char c[2];
return c+1;
return c+1-d;
}
typedef char *(*f_ptr)();
typedef ptrdiff_t (*f_ptr)(const char *);
f_ptr f[2] = { f1, f2 };
int signo() {
ptrdiff_t signo() {
char d[1];
return f[rand() & 1]() - d;
return f[rand() & 1](d);
}
int main() {
@ -572,7 +575,7 @@ int main() {
]])],[ECL_STACK_DIR=down],[ECL_STACK_DIR=up],[])
fi
case "${ECL_STACK_DIR}" in
down|DOWN) AC_MSG_RESULT(yes); AC_DEFINE(ECL_DOWN_STACK, [1], [Stack grows downwards]) ;;
down|DOWN) AC_MSG_RESULT(yes); AC_DEFINE([ECL_DOWN_STACK], [1], [Stack grows downwards]) ;;
up|UP) AC_MSG_RESULT(no) ;;
*) AC_MSG_ERROR(Unable to determine stack growth direction)
esac])
@ -719,8 +722,8 @@ int main() {
fi
case "${ECL_NEWLINE}" in
LF) AC_MSG_RESULT(lf) ;;
CR) AC_MSG_RESULT(cr); AC_DEFINE(ECL_NEWLINE_IS_CR, [1], [Define if your newline is CR]) ;;
CRLF) AC_MSG_RESULT(cr+lf); AC_DEFINE(ECL_NEWLINE_IS_CRLF, [1], [Define if your newline is CRLF]) ;;
CR) AC_MSG_RESULT(cr); AC_DEFINE([ECL_NEWLINE_IS_CR], [1], [Define if your newline is CR]) ;;
CRLF) AC_MSG_RESULT(cr+lf); AC_DEFINE([ECL_NEWLINE_IS_CRLF], [1], [Define if your newline is CRLF]) ;;
*) AC_MSG_ERROR(Unable to determine linefeed mode) ;;
esac
])
@ -782,7 +785,7 @@ AC_RUN_IFELSE(
int main() {
return (foo() == 0);
}]])],
[AC_DEFINE(HAVE___BUILTIN_RETURN_ADDRESS)],
[AC_DEFINE([HAVE___BUILTIN_RETURN_ADDRESS], [], [HAVE___BUILTIN_RETURN_ADDRESS])],
[])
fi
])
@ -794,7 +797,7 @@ dnl
AC_DEFUN([ECL_FPE_MODEL],
[AC_MSG_CHECKING([for code to detect FP exceptions])
case "${host_cpu}" in
i686 |i586 | pentium* | athlon* )
i686 | i586 | pentium* | athlon* )
ECL_FPE_CODE="arch/fpe_x86.c"
AC_MSG_RESULT([x86])
;;
@ -835,7 +838,7 @@ _mm_getcsr();]])],[sse_included=yes],[sse_included=no])
fi
fi
if test "x$with_sse" = xyes; then
AC_DEFINE(ECL_SSE2)
AC_DEFINE([ECL_SSE2], [], [ECL_SSE2])
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
@ -847,8 +850,8 @@ dnl ----------------------------------------------------------------------
dnl Check whether we have POSIX read/write locks are available
AC_DEFUN([ECL_POSIX_RWLOCK],[
AC_CHECK_FUNC( [pthread_rwlock_init], [
AC_DEFINE(ECL_RWLOCK)
AC_DEFINE(HAVE_POSIX_RWLOCK)
AC_DEFINE([ECL_RWLOCK], [], [ECL_RWLOCK])
AC_DEFINE([HAVE_POSIX_RWLOCK], [], [HAVE_POSIX_RWLOCK])
], [])
THREAD_OBJ="$THREAD_OBJ threads/rwlock"
])
@ -870,7 +873,7 @@ int main() {
fi
AC_MSG_RESULT([$ECL_WORKING_ENVIRON])
if test $ECL_WORKING_ENVIRON = yes ; then
AC_DEFINE(HAVE_ENVIRON)
AC_DEFINE([HAVE_ENVIRON], [], [HAVE_ENVIRON])
fi
])
@ -911,7 +914,7 @@ if test "x${enable_threads}" != "xno"; then
if test "${enable_shared}" = "no"; then
LIBRARIES="${LIBRARIES} ${LIBPREFIX}eclatomic.${LIBEXT}"
fi
AC_DEFINE(ECL_LIBATOMIC_OPS_H)
AC_DEFINE([ECL_LIBATOMIC_OPS_H], [], [ECL_LIBATOMIC_OPS_H])
CORE_LIBS="-leclatomic ${CORE_LIBS}"
else
CORE_LIBS="-latomic_ops ${CORE_LIBS}"
@ -947,9 +950,9 @@ if test "${enable_boehm}" = auto -o "${enable_boehm}" = system; then
fi
if test "${system_boehm}" = "yes"; then
AC_CHECK_LIB( [gc], [GC_set_start_callback],
[AC_DEFINE(HAVE_GC_SET_START_CALLBACK)], [] )
[AC_DEFINE([HAVE_GC_SET_START_CALLBACK], [], [HAVE_GC_SET_START_CALLBACK])], [] )
else
AC_DEFINE(HAVE_GC_SET_START_CALLBACK)
AC_DEFINE([HAVE_GC_SET_START_CALLBACK], [], [HAVE_GC_SET_START_CALLBACK])
fi
AC_MSG_CHECKING( [whether we can use the existing Boehm-Weiser library] )
AC_MSG_RESULT( [${system_boehm}] )
@ -973,6 +976,13 @@ if test "${enable_boehm}" = "included"; then
dnl
AC_MSG_NOTICE([Configuring included Boehm GC library:])
test -d gc && rm -rf gc
currentdir=`${PWDCMD}`
cd $srcdir/${ECL_GC_DIR};
if test -d configure; then
autoreconf -vif
automake --add-missing
fi;
cd $currentdir;
if mkdir gc; then
if (destdir=`${PWDCMD}`; cd gc; \
$srcdir/${ECL_GC_DIR}/configure --disable-shared --prefix=${destdir} \
@ -996,11 +1006,11 @@ if test "${enable_boehm}" = "included"; then
fi
fi
if test "${enable_gengc}" != "no" ; then
AC_DEFINE(GBC_BOEHM_GENGC)
AC_DEFINE([GBC_BOEHM_GENGC], [], [GBC_BOEHM_GENGC])
fi
AC_MSG_CHECKING([if we use Boehm-Demers-Weiser precise garbage collector]);
if test "${enable_precisegc}" != "no" ; then
AC_DEFINE(GBC_BOEHM_PRECISE)
AC_DEFINE([GBC_BOEHM_PRECISE], [], [GBC_BOEHM_PRECISE])
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
@ -1067,7 +1077,7 @@ fi
if test -z "${ECL_LIBFFI_HEADER}"; then
AC_MSG_WARN([Unable to configure or find libffi library; disabling dynamic FFI])
else
AC_DEFINE(HAVE_LIBFFI)
AC_DEFINE([HAVE_LIBFFI], [], [HAVE_LIBFFI])
fi
])

View file

@ -491,12 +491,12 @@ generic_close(cl_object strm)
static cl_index
generic_write_vector(cl_object strm, cl_object data, cl_index start, cl_index end)
{
cl_elttype elttype;
cl_elttype elttype;
const struct ecl_file_ops *ops;
if (start >= end)
return start;
ops = stream_dispatch_table(strm);
elttype = ecl_array_elttype(data);
elttype = ecl_array_elttype(data);
if (elttype == ecl_aet_bc ||
#ifdef ECL_UNICODE
elttype == ecl_aet_ch ||
@ -591,7 +591,7 @@ eformat_write_char(cl_object strm, ecl_character c)
{
unsigned char buffer[ENCODING_BUFFER_MAX_SIZE];
ecl_character nbytes;
nbytes = strm->stream.encoder(strm, buffer, c);
nbytes = strm->stream.encoder(strm, buffer, c);
strm->stream.ops->write_byte8(strm, buffer, nbytes);
if (c == '\n')
strm->stream.column = 0;
@ -679,7 +679,7 @@ passthrough_encoder(cl_object stream, unsigned char *buffer, ecl_character c)
{
#ifdef ECL_UNICODE
unlikely_if (c > 0xFF) {
return encoding_error(stream, buffer, c);
return encoding_error(stream, buffer, c);
}
#endif
buffer[0] = c;
@ -698,7 +698,7 @@ ascii_decoder(cl_object stream)
if (ecl_read_byte8(stream, &aux, 1) < 1) {
return EOF;
} else if (aux > 127) {
return decoding_error(stream, &aux, 1);
return decoding_error(stream, &aux, 1);
} else {
return aux;
}
@ -708,7 +708,7 @@ static int
ascii_encoder(cl_object stream, unsigned char *buffer, ecl_character c)
{
unlikely_if (c > 127) {
return encoding_error(stream, buffer, c);
return encoding_error(stream, buffer, c);
}
buffer[0] = c;
return 1;
@ -817,7 +817,7 @@ ucs_2be_decoder(cl_object stream)
} else {
ecl_character aux = ((ecl_character)buffer[0] << 8) | buffer[1];
if ((buffer[0] & 0xF8) != 0xDC) {
return decoding_error(stream, buffer, 1);
return decoding_error(stream, buffer, 1);
}
return ((c & 0x3FFF) << 10) + (aux & 0x3FFF) + 0x10000;
}
@ -859,7 +859,7 @@ ucs_2le_decoder(cl_object stream)
} else {
ecl_character aux = ((ecl_character)buffer[1] << 8) | buffer[0];
if ((buffer[1] & 0xF8) != 0xDC) {
return decoding_error(stream, buffer, 2);
return decoding_error(stream, buffer, 2);
}
return ((c & 0x3FFF) << 10) + (aux & 0x3FFF) + 0x10000;
}
@ -931,7 +931,7 @@ user_decoder(cl_object stream)
}
character = ecl_gethash_safe(ecl_make_fixnum(buffer[0]), table, ECL_NIL);
unlikely_if (Null(character)) {
return decoding_error(stream, buffer, 1);
return decoding_error(stream, buffer, 1);
}
if (character == ECL_T) {
if (ecl_read_byte8(stream, buffer+1, 1) < 1) {
@ -940,7 +940,7 @@ user_decoder(cl_object stream)
cl_fixnum byte = (buffer[0]<<8) + buffer[1];
character = ecl_gethash_safe(ecl_make_fixnum(byte), table, ECL_NIL);
unlikely_if (Null(character)) {
return decoding_error(stream, buffer, 2);
return decoding_error(stream, buffer, 2);
}
}
}
@ -988,7 +988,7 @@ user_multistate_decoder(cl_object stream)
return ECL_CHAR_CODE(character);
}
unlikely_if (Null(character)) {
return decoding_error(stream, buffer, i);
return decoding_error(stream, buffer, i);
}
if (character == ECL_T) {
/* Need more characters */
@ -1063,7 +1063,7 @@ utf_8_decoder(cl_object stream)
return buffer[0];
}
unlikely_if ((buffer[0] & 0x40) == 0)
return decoding_error(stream, buffer, 1);
return decoding_error(stream, buffer, 1);
if ((buffer[0] & 0x20) == 0) {
cum = buffer[0] & 0x1F;
nbytes = 1;
@ -1074,7 +1074,7 @@ utf_8_decoder(cl_object stream)
cum = buffer[0] & 0x07;
nbytes = 3;
} else {
return decoding_error(stream, buffer, 1);
return decoding_error(stream, buffer, 1);
}
if (ecl_read_byte8(stream, buffer+1, nbytes) < nbytes)
return EOF;
@ -1082,16 +1082,16 @@ utf_8_decoder(cl_object stream)
unsigned char c = buffer[i];
/*printf(": %04x :", c);*/
unlikely_if ((c & 0xC0) != 0x80)
return decoding_error(stream, buffer, nbytes+1);
return decoding_error(stream, buffer, nbytes+1);
cum = (cum << 6) | (c & 0x3F);
unlikely_if (cum == 0)
return decoding_error(stream, buffer, nbytes+1);
return decoding_error(stream, buffer, nbytes+1);
}
if (cum >= 0xd800) {
unlikely_if (cum <= 0xdfff)
return decoding_error(stream, buffer, nbytes+1);
return decoding_error(stream, buffer, nbytes+1);
unlikely_if (cum >= 0xFFFE && cum <= 0xFFFF)
return decoding_error(stream, buffer, nbytes+1);
return decoding_error(stream, buffer, nbytes+1);
}
/*printf("; %04x ;", cum);*/
return cum;
@ -1162,8 +1162,8 @@ static cl_object
clos_stream_read_byte(cl_object strm)
{
cl_object b = _ecl_funcall2(@'gray::stream-read-byte', strm);
if (b == @':eof') b = ECL_NIL;
return b;
if (b == @':eof') b = ECL_NIL;
return b;
}
static void
@ -1176,18 +1176,18 @@ static ecl_character
clos_stream_read_char(cl_object strm)
{
cl_object output = _ecl_funcall2(@'gray::stream-read-char', strm);
cl_fixnum value;
cl_fixnum value;
if (ECL_CHARACTERP(output))
value = ECL_CHAR_CODE(output);
else if (ECL_FIXNUMP(output))
value = ecl_fixnum(output);
value = ECL_CHAR_CODE(output);
else if (ECL_FIXNUMP(output))
value = ecl_fixnum(output);
else if (output == ECL_NIL || output == @':eof')
return EOF;
else
value = -1;
unlikely_if (value < 0 || value > ECL_CHAR_CODE_LIMIT)
FEerror("Unknown character ~A", 1, output);
return value;
else
value = -1;
unlikely_if (value < 0 || value > ECL_CHAR_CODE_LIMIT)
FEerror("Unknown character ~A", 1, output);
return value;
}
static ecl_character
@ -1492,8 +1492,8 @@ cl_get_output_stream_string(cl_object strm)
{
cl_object strng;
unlikely_if (!ECL_ANSI_STREAM_TYPE_P(strm, ecl_smm_string_output))
FEwrong_type_only_arg(@[get-output-stream-string],
strm, @[string-stream]);
FEwrong_type_only_arg(@[get-output-stream-string],
strm, @[string-stream]);
strng = cl_copy_seq(STRING_OUTPUT_STRING(strm));
STRING_OUTPUT_STRING(strm)->base_string.fillp = 0;
@(return strng)
@ -1641,10 +1641,10 @@ ecl_make_string_input_stream(cl_object strng, cl_index istart, cl_index iend)
}
@(defun make_string_input_stream (strng &o (istart ecl_make_fixnum(0)) iend)
cl_index_pair p;
cl_index_pair p;
@
strng = cl_string(strng);
p = ecl_vector_start_end(@[make-string-input-stream], strng, istart, iend);
p = ecl_vector_start_end(@[make-string-input-stream], strng, istart, iend);
@(return (ecl_make_string_input_stream(strng, p.start, p.end)))
@)
@ -1830,7 +1830,7 @@ cl_two_way_stream_input_stream(cl_object strm)
{
unlikely_if (!ECL_ANSI_STREAM_TYPE_P(strm,ecl_smm_two_way))
FEwrong_type_only_arg(@[two-way-stream-input-stream],
strm, @[two-way-stream]);
strm, @[two-way-stream]);
@(return TWO_WAY_STREAM_INPUT(strm));
}
@ -1839,7 +1839,7 @@ cl_two_way_stream_output_stream(cl_object strm)
{
unlikely_if (!ECL_ANSI_STREAM_TYPE_P(strm, ecl_smm_two_way))
FEwrong_type_only_arg(@[two-way-stream-output-stream],
strm, @[two-way-stream]);
strm, @[two-way-stream]);
@(return TWO_WAY_STREAM_OUTPUT(strm))
}
@ -2015,7 +2015,7 @@ cl_broadcast_stream_streams(cl_object strm)
{
unlikely_if (!ECL_ANSI_STREAM_TYPE_P(strm, ecl_smm_broadcast))
FEwrong_type_only_arg(@[broadcast-stream-streams],
strm, @[broadcast-stream]);
strm, @[broadcast-stream]);
return cl_copy_list(BROADCAST_STREAM_LIST(strm));
}
@ -2198,7 +2198,7 @@ cl_echo_stream_input_stream(cl_object strm)
{
unlikely_if (!ECL_ANSI_STREAM_TYPE_P(strm, ecl_smm_echo))
FEwrong_type_only_arg(@[echo-stream-input-stream],
strm, @[echo-stream]);
strm, @[echo-stream]);
@(return ECHO_STREAM_INPUT(strm))
}
@ -2207,7 +2207,7 @@ cl_echo_stream_output_stream(cl_object strm)
{
unlikely_if (!ECL_ANSI_STREAM_TYPE_P(strm, ecl_smm_echo))
FEwrong_type_only_arg(@[echo-stream-output-stream],
strm, @[echo-stream]);
strm, @[echo-stream]);
@(return ECHO_STREAM_OUTPUT(strm))
}
@ -2350,7 +2350,7 @@ cl_concatenated_stream_streams(cl_object strm)
{
unlikely_if (!ECL_ANSI_STREAM_TYPE_P(strm, ecl_smm_concatenated))
FEwrong_type_only_arg(@[concatenated-stream-streams],
strm, @[concatenated-stream]);
strm, @[concatenated-stream]);
return cl_copy_list(CONCATENATED_STREAM_LIST(strm));
}
@ -2549,7 +2549,7 @@ cl_synonym_stream_symbol(cl_object strm)
{
unlikely_if (!ECL_ANSI_STREAM_TYPE_P(strm, ecl_smm_synonym))
FEwrong_type_only_arg(@[synonym-stream-symbol],
strm, @[synonym-stream]);
strm, @[synonym-stream]);
@(return SYNONYM_STREAM_SYMBOL(strm))
}
@ -2733,7 +2733,7 @@ io_file_clear_input(cl_object strm)
#endif
while (file_listen(strm, f) == ECL_LISTEN_AVAILABLE) {
ecl_character c = eformat_read_char(strm);
if (c == EOF) return;
if (c == EOF) return;
}
}
@ -2773,19 +2773,19 @@ io_file_length(cl_object strm)
static cl_object
io_file_get_position(cl_object strm)
{
int f = IO_FILE_DESCRIPTOR(strm);
if (isatty(f)) return(ECL_NIL);
cl_object output;
ecl_off_t offset;
int f = IO_FILE_DESCRIPTOR(strm);
if (isatty(f)) return(ECL_NIL);
ecl_disable_interrupts();
offset = lseek(f, 0, SEEK_CUR);
ecl_enable_interrupts();
unlikely_if (offset < 0)
if (errno == ESPIPE)
return(ECL_NIL);
else
if (errno == ESPIPE)
return(ECL_NIL);
else
io_error(strm);
if (sizeof(ecl_off_t) == sizeof(long)) {
output = ecl_make_integer(offset);
@ -2810,10 +2810,10 @@ io_file_get_position(cl_object strm)
static cl_object
io_file_set_position(cl_object strm, cl_object large_disp)
{
int f = IO_FILE_DESCRIPTOR(strm);
if (isatty(f)) return(ECL_NIL);
ecl_off_t disp;
int mode;
int f = IO_FILE_DESCRIPTOR(strm);
if (isatty(f)) return(ECL_NIL);
if (Null(large_disp)) {
disp = 0;
mode = SEEK_END;

View file

@ -1890,7 +1890,7 @@ cl_symbols[] = {
{KEY_ "UCS-4LE", KEYWORD, NULL, -1, OBJNULL},
{EXT_ "LOAD-ENCODING", EXT_ORDINARY, NULL, -1, OBJNULL},
{EXT_ "MAKE-ENCODING", EXT_ORDINARY, si_make_encoding, 1, OBJNULL},
{EXT_ "MAKE-ENCODING", EXT_ORDINARY, NULL, -1, OBJNULL},
{EXT_ "ALL-ENCODINGS", EXT_ORDINARY, ECL_NAME(si_load_encoding), 1, OBJNULL},
{KEY_ "US-ASCII", KEYWORD, NULL, -1, OBJNULL},

View file

@ -1890,7 +1890,7 @@ cl_symbols[] = {
{KEY_ "UCS-4LE",NULL},
{EXT_ "LOAD-ENCODING",NULL},
{EXT_ "MAKE-ENCODING","si_make_encoding"},
{EXT_ "MAKE-ENCODING",NULL},
{EXT_ "ALL-ENCODINGS","ECL_NAME(si_load_encoding)"},
{KEY_ "US-ASCII",NULL},

View file

@ -148,7 +148,7 @@
;; hack: sse-pack -> int, but int -> int-sse-pack
(let ((r (gethash :int-sse-pack table)))
(when r
(setf (rep-type-to-lisp r) 'ext:int-sse-pack)))
(setf (rep-type-index r) 'ext:int-sse-pack)))
;; On a second pass, we replace types with more general ones
(loop with fixnum-rep-type = (gethash ':fixnum table)
with fixnum-lisp-type = (rep-type-lisp-type fixnum-rep-type)

View file

@ -176,9 +176,9 @@
(when l
(cmperr "Syntax error in type expression ~S" type)))
(&optional
(when optional-flag
(cmperr "Syntax error in type expression ~S" type))
(setf optional-flag t))
(if optional-flag
(push typespec optional)
(setf optional-flag t)))
(&rest
(when (or (null l)
(not (member (rest l) '(() (&allow-other-keys))

133
src/configure vendored
View file

@ -1,7 +1,7 @@
#! /bin/sh
# From configure.in Revision.
# From configure.ac Revision.
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for ecl 15.2.21.
# Generated by GNU Autoconf 2.69 for ecl 15.3.7.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@ -578,8 +578,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='ecl'
PACKAGE_TARNAME='ecl'
PACKAGE_VERSION='15.2.21'
PACKAGE_STRING='ecl 15.2.21'
PACKAGE_VERSION='15.3.7'
PACKAGE_STRING='ecl 15.3.7'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@ -1365,7 +1365,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 ecl 15.2.21 to adapt to many kinds of systems.
\`configure' configures ecl 15.3.7 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1434,7 +1434,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of ecl 15.2.21:";;
short | recursive ) echo "Configuration of ecl 15.3.7:";;
esac
cat <<\_ACEOF
@ -1611,7 +1611,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
ecl configure 15.2.21
ecl configure 15.3.7
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@ -2198,7 +2198,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 ecl $as_me 15.2.21, which was
It was created by ecl $as_me 15.3.7, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@ -5785,9 +5785,11 @@ if test "${enable_threads}" = "yes" ; then
ac_fn_c_check_func "$LINENO" "pthread_rwlock_init" "ac_cv_func_pthread_rwlock_init"
if test "x$ac_cv_func_pthread_rwlock_init" = xyes; then :
$as_echo "#define ECL_RWLOCK 1" >>confdefs.h
$as_echo "#define HAVE_POSIX_RWLOCK 1" >>confdefs.h
$as_echo "#define ECL_RWLOCK /**/" >>confdefs.h
$as_echo "#define HAVE_POSIX_RWLOCK /**/" >>confdefs.h
fi
@ -5979,12 +5981,14 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gc_GC_set_start_callback" >&5
$as_echo "$ac_cv_lib_gc_GC_set_start_callback" >&6; }
if test "x$ac_cv_lib_gc_GC_set_start_callback" = xyes; then :
$as_echo "#define HAVE_GC_SET_START_CALLBACK 1" >>confdefs.h
$as_echo "#define HAVE_GC_SET_START_CALLBACK /**/" >>confdefs.h
fi
else
$as_echo "#define HAVE_GC_SET_START_CALLBACK 1" >>confdefs.h
$as_echo "#define HAVE_GC_SET_START_CALLBACK /**/" >>confdefs.h
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can use the existing Boehm-Weiser library " >&5
@ -6009,6 +6013,13 @@ if test "${enable_boehm}" = "included"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: Configuring included Boehm GC library:" >&5
$as_echo "$as_me: Configuring included Boehm GC library:" >&6;}
test -d gc && rm -rf gc
currentdir=`${PWDCMD}`
cd $srcdir/${ECL_GC_DIR};
if test -d configure; then
autoreconf -vif
automake --add-missing
fi;
cd $currentdir;
if mkdir gc; then
if (destdir=`${PWDCMD}`; cd gc; \
$srcdir/${ECL_GC_DIR}/configure --disable-shared --prefix=${destdir} \
@ -6034,13 +6045,15 @@ $as_echo "#define GBC_BOEHM 0" >>confdefs.h
fi
fi
if test "${enable_gengc}" != "no" ; then
$as_echo "#define GBC_BOEHM_GENGC 1" >>confdefs.h
$as_echo "#define GBC_BOEHM_GENGC /**/" >>confdefs.h
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if we use Boehm-Demers-Weiser precise garbage collector" >&5
$as_echo_n "checking if we use Boehm-Demers-Weiser precise garbage collector... " >&6; };
if test "${enable_precisegc}" != "no" ; then
$as_echo "#define GBC_BOEHM_PRECISE 1" >>confdefs.h
$as_echo "#define GBC_BOEHM_PRECISE /**/" >>confdefs.h
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
@ -6051,7 +6064,8 @@ fi
fi
if test ${enable_smallcons} = "yes" ; then
$as_echo "#define ECL_SMALL_CONS 1" >>confdefs.h
$as_echo "#define ECL_SMALL_CONS /**/" >>confdefs.h
fi
@ -6162,7 +6176,8 @@ if test -z "${ECL_LIBFFI_HEADER}"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to configure or find libffi library; disabling dynamic FFI" >&5
$as_echo "$as_me: WARNING: Unable to configure or find libffi library; disabling dynamic FFI" >&2;}
else
$as_echo "#define HAVE_LIBFFI 1" >>confdefs.h
$as_echo "#define HAVE_LIBFFI /**/" >>confdefs.h
fi
@ -6205,15 +6220,18 @@ ECL_VERSION_NUMBER=$(($PACKAGE_MAJOR * 10000 + $PACKAGE_MINOR * 100 + $PACKAGE_L
if test "${with_ieee_fp}" = yes; then
with_signed_zero="yes"
with_fpe="yes"
$as_echo "#define ECL_IEEE_FP 1" >>confdefs.h
$as_echo "#define ECL_IEEE_FP /**/" >>confdefs.h
fi
if test "${with_fpe}" != yes; then
$as_echo "#define ECL_AVOID_FPE_H 1" >>confdefs.h
$as_echo "#define ECL_AVOID_FPE_H /**/" >>confdefs.h
fi
if test "${with_signed_zero}" = yes; then
$as_echo "#define ECL_SIGNED_ZERO 1" >>confdefs.h
$as_echo "#define ECL_SIGNED_ZERO /**/" >>confdefs.h
fi
@ -7129,10 +7147,10 @@ $as_echo "#define ecl_long_long_t long long" >>confdefs.h
$as_echo "#define ecl_ulong_long_t unsigned long long" >>confdefs.h
cat >>confdefs.h <<_ACEOF
cat >>confdefs.h <<_ACEOF
#define ECL_LONG_LONG_BITS $ECL_LONG_LONG_BITS
_ACEOF
fi
@ -7516,11 +7534,13 @@ _ACEOF
if test "x$ac_cv_c_int8_t" = xyes; then
eval ECL_INT8_T="int8_t"
eval ECL_UINT8_T="uint8_t"
cat >>confdefs.h <<_ACEOF
cat >>confdefs.h <<_ACEOF
#define ecl_int8_t int8_t
_ACEOF
cat >>confdefs.h <<_ACEOF
cat >>confdefs.h <<_ACEOF
#define ecl_uint8_t uint8_t
_ACEOF
@ -7552,11 +7572,13 @@ _ACEOF
if test "x$ac_cv_c_int16_t" = xyes; then
eval ECL_INT16_T="int16_t"
eval ECL_UINT16_T="uint16_t"
cat >>confdefs.h <<_ACEOF
cat >>confdefs.h <<_ACEOF
#define ecl_int16_t int16_t
_ACEOF
cat >>confdefs.h <<_ACEOF
cat >>confdefs.h <<_ACEOF
#define ecl_uint16_t uint16_t
_ACEOF
@ -7590,11 +7612,13 @@ _ACEOF
if test "x$ac_cv_c_int32_t" = xyes; then
eval ECL_INT32_T="int32_t"
eval ECL_UINT32_T="uint32_t"
cat >>confdefs.h <<_ACEOF
cat >>confdefs.h <<_ACEOF
#define ecl_int32_t int32_t
_ACEOF
cat >>confdefs.h <<_ACEOF
cat >>confdefs.h <<_ACEOF
#define ecl_uint32_t uint32_t
_ACEOF
@ -7628,11 +7652,13 @@ _ACEOF
if test "x$ac_cv_c_int64_t" = xyes; then
eval ECL_INT64_T="int64_t"
eval ECL_UINT64_T="uint64_t"
cat >>confdefs.h <<_ACEOF
cat >>confdefs.h <<_ACEOF
#define ecl_int64_t int64_t
_ACEOF
cat >>confdefs.h <<_ACEOF
cat >>confdefs.h <<_ACEOF
#define ecl_uint64_t uint64_t
_ACEOF
@ -7797,7 +7823,7 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for code to detect FP exceptions" >&5
$as_echo_n "checking for code to detect FP exceptions... " >&6; }
case "${host_cpu}" in
i686 |i586 | pentium* | athlon* )
i686 | i586 | pentium* | athlon* )
ECL_FPE_CODE="arch/fpe_x86.c"
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: x86" >&5
$as_echo "x86" >&6; }
@ -7872,7 +7898,8 @@ rm -f core conftest.err conftest.$ac_objext \
fi
fi
if test "x$with_sse" = xyes; then
$as_echo "#define ECL_SSE2 1" >>confdefs.h
$as_echo "#define ECL_SSE2 /**/" >>confdefs.h
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
@ -7912,7 +7939,8 @@ fi
done
if test "$enable_longdouble" != "no" ; then
$as_echo "#define ECL_LONG_FLOAT 1" >>confdefs.h
$as_echo "#define ECL_LONG_FLOAT /**/" >>confdefs.h
fi
fi
@ -7955,24 +7983,26 @@ else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stddef.h>
#include <stdlib.h>
char *f2() {
ptrdiff_t f2(const char *d) {
char c[2];
return c;
return c-d;
}
char *f1() {
ptrdiff_t f1(const char *d) {
char c[2];
return c+1;
return c+1-d;
}
typedef char *(*f_ptr)();
typedef ptrdiff_t (*f_ptr)(const char *);
f_ptr f[2] = { f1, f2 };
int signo() {
ptrdiff_t signo() {
char d[1];
return f[rand() & 1]() - d;
return f[rand() & 1](d);
}
int main() {
@ -9134,9 +9164,11 @@ done
ac_fn_c_check_header_mongrel "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_mman_h" = xyes; then :
$as_echo "#define ECL_USE_MPROTECT 1" >>confdefs.h
$as_echo "#define HAVE_SYS_MMAN_H 1" >>confdefs.h
$as_echo "#define ECL_USE_MPROTECT /**/" >>confdefs.h
$as_echo "#define HAVE_SYS_MMAN_H /**/" >>confdefs.h
fi
@ -9177,7 +9209,8 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ECL_WORKING_ENVIRON" >&5
$as_echo "$ECL_WORKING_ENVIRON" >&6; }
if test $ECL_WORKING_ENVIRON = yes ; then
$as_echo "#define HAVE_ENVIRON 1" >>confdefs.h
$as_echo "#define HAVE_ENVIRON /**/" >>confdefs.h
fi
@ -9216,7 +9249,8 @@ else
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
$as_echo "#define HAVE___BUILTIN_RETURN_ADDRESS 1" >>confdefs.h
$as_echo "#define HAVE___BUILTIN_RETURN_ADDRESS /**/" >>confdefs.h
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
@ -9268,7 +9302,8 @@ $as_echo "${enable_libatomic} " >&6; }
if test "${enable_shared}" = "no"; then
LIBRARIES="${LIBRARIES} ${LIBPREFIX}eclatomic.${LIBEXT}"
fi
$as_echo "#define ECL_LIBATOMIC_OPS_H 1" >>confdefs.h
$as_echo "#define ECL_LIBATOMIC_OPS_H /**/" >>confdefs.h
CORE_LIBS="-leclatomic ${CORE_LIBS}"
else
@ -9283,8 +9318,10 @@ $as_echo "#define ENABLE_DLOPEN 1" >>confdefs.h
LSP_LIBRARIES="${SHAREDPREFIX}ecl.${SHAREDEXT}"
LSP_FEATURES="(cons :wants-dlopen ${LSP_FEATURES})"
else
enable_soname=no
LSP_LIBRARIES="${LIBPREFIX}ecl.${LIBEXT}"
@ -9517,7 +9554,7 @@ fi
ac_config_files="$ac_config_files bare.lsp lsp/load.lsp clos/load.lsp cmp/load.lsp new-cmp/load.lsp ../Makefile Makefile c/Makefile doc/Makefile doc/ecl.man doc/ecl-config.man ecl/configpre.h:h/config.h.in bin/ecl-config.pre:util/ecl-config lsp/config.pre:lsp/config.lsp.in compile.pre:compile.lsp.in cmp/cmpdefs.pre:cmp/cmpdefs.lsp tests/config.lsp tests/Makefile"
ac_config_headers="$ac_config_headers ecl/config.h:ecl/configpre.h"
# FIXME
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
@ -10025,7 +10062,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by ecl $as_me 15.2.21, which was
This file was extended by ecl $as_me 15.3.7, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@ -10087,7 +10124,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
ecl config.status 15.2.21
ecl config.status 15.3.7
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
@ -10814,4 +10851,4 @@ if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
fi
for i in $srcdir/c/*/; do mkdir -p c/`basename $i`; done
for i in $srcdir/c/*/; do mkdir c/`basename $i`; done

View file

@ -8,11 +8,11 @@ dnl AUTOCONF configuration for ECL
dnl Giuseppe Attardi 25.1.1994
dnl
AC_INIT([ecl],[15.2.21],[])
AC_INIT([ecl],[15.3.7],[])
AC_REVISION([$Revision$])
AC_CONFIG_SRCDIR([bare.lsp.in])
AC_CONFIG_AUX_DIR([gmp])
AC_PREREQ(2.59)
AC_PREREQ(2.69)
dnl -----------------------------------------------------------------------
dnl Make sure we do not configure within source directory
@ -551,7 +551,7 @@ else
ECL_BOEHM_GC
fi
if test ${enable_smallcons} = "yes" ; then
AC_DEFINE(ECL_SMALL_CONS)
AC_DEFINE([ECL_SMALL_CONS], [], [ECL_SMALL_CONS])
fi
ECL_LIBFFI
@ -597,13 +597,13 @@ dnl Deactivate floating point exceptions if asked to
if test "${with_ieee_fp}" = yes; then
with_signed_zero="yes"
with_fpe="yes"
AC_DEFINE(ECL_IEEE_FP)
AC_DEFINE([ECL_IEEE_FP], [], [ECL_IEEE_FP])
fi
if test "${with_fpe}" != yes; then
AC_DEFINE(ECL_AVOID_FPE_H)
AC_DEFINE([ECL_AVOID_FPE_H], [], [ECL_AVOID_FPE_H])
fi
if test "${with_signed_zero}" = yes; then
AC_DEFINE(ECL_SIGNED_ZERO)
AC_DEFINE([ECL_SIGNED_ZERO], [], [ECL_SIGNED_ZERO])
fi
dnl =====================================================================
@ -707,8 +707,8 @@ AC_CHECK_FUNCS( [expf logf sqrtf cosf sinf tanf sinhf coshf tanhf] \
AC_CHECK_FUNCS( [sched_yield uname fseeko dladdr backtrace backtrace_symbols] )
AC_CHECK_HEADER( [sys/mman.h],
AC_DEFINE(ECL_USE_MPROTECT)
AC_DEFINE(HAVE_SYS_MMAN_H)
AC_DEFINE([ECL_USE_MPROTECT], [], [ECL_USE_MPROTECT])
AC_DEFINE([HAVE_SYS_MMAN_H], [], [HAVE_SYS_MMAN_H])
)
ECL_POSIX_ENVIRON
@ -747,7 +747,7 @@ dnl Lisp library and libecl features
if test ${enable_shared} = "yes"; then
AC_DEFINE(ENABLE_DLOPEN, [1], [Allow loading dynamically linked code])
LSP_LIBRARIES="${SHAREDPREFIX}ecl.${SHAREDEXT}"
ECL_ADD_FEATURE([wants-dlopen])
ECL_ADD_LISP_MODULE([dlopen])
else
enable_soname=no
LSP_LIBRARIES="${LIBPREFIX}ecl.${LIBEXT}"
@ -760,7 +760,7 @@ fi
if test "${with_cmuformat}" = "yes"; then
with_clos_streams="yes"
AC_DEFINE(ECL_CMU_FORMAT, [1], [Use CMU Common-Lisp's FORMAT routine])
AC_DEFINE([ECL_CMU_FORMAT], [1], [Use CMU Common-Lisp's FORMAT routine])
fi
if test "${with_clos_streams}" = "yes"; then
@ -854,18 +854,18 @@ fi
if test "x${enable_unicode}" != "xno"; then
if test "${enable_unicode}" = 16; then
AC_DEFINE(ECL_UNICODE, [16], [Support for Unicode])
AC_DEFINE([ECL_UNICODE], [16], [Support for Unicode])
CHAR_CODE_LIMIT=65536
ECL_CHARACTER=$ECL_INT16_T
EXTRA_OBJS="$EXTRA_OBJS unicode/ucd16.o unicode/ucd16-0000.o unicode/ucd16-0016.o unicode/ucd16-0032.o unicode/ucd16-0048.o unicode/ucd16-0064.o"
else
AC_DEFINE(ECL_UNICODE, [21], [Support for Unicode])
AC_DEFINE([ECL_UNICODE], [21], [Support for Unicode])
CHAR_CODE_LIMIT=1114112
ECL_CHARACTER=$ECL_INT32_T
EXTRA_OBJS="$EXTRA_OBJS unicode/ucd.o unicode/ucd-0000.o unicode/ucd-0016.o unicode/ucd-0032.o unicode/ucd-0048.o unicode/ucd-0064.o unicode/ucd-0080.o unicode/ucd-0096.o"
fi
if test "${with_unicode_names}" = "yes"; then
AC_DEFINE(ECL_UNICODE_NAMES, [1], [Link in the database of Unicode names])
AC_DEFINE([ECL_UNICODE_NAMES], [1], [Link in the database of Unicode names])
EXTRA_OBJS="$EXTRA_OBJS unicode/ucd_names_char.o unicode/ucd_names_codes.o unicode/ucd_names_pair.o unicode/ucd_names_str.o"
fi
else
@ -889,7 +889,7 @@ else
fi
if test "${enable_hpack}" = "yes"; then
AC_DEFINE(ECL_RELATIVE_PACKAGE_NAMES, [1], [Hierarchical package names])
AC_DEFINE([ECL_RELATIVE_PACKAGE_NAMES], [1], [Hierarchical package names])
fi
AC_CONFIG_FILES([
@ -900,6 +900,6 @@ AC_CONFIG_FILES([
cmp/cmpdefs.pre:cmp/cmpdefs.lsp
tests/config.lsp tests/Makefile
])
AC_CONFIG_HEADERS([ecl/config.h:ecl/configpre.h]) # FIXME
AC_CONFIG_HEADERS([ecl/config.h:ecl/configpre.h])
AC_OUTPUT
for i in $srcdir/c/*/; do mkdir -p c/`basename $i`; done
for i in $srcdir/c/*/; do mkdir c/`basename $i`; done

589
src/ecl/configpre.h Normal file
View file

@ -0,0 +1,589 @@
/* ecl/configpre.h. Generated from configure.ac by autoheader. */
/* Define if building universal (internal helper macro) */
#undef AC_APPLE_UNIVERSAL_BUILD
/* Define to 1 if the `closedir' function returns void instead of `int'. */
#undef CLOSEDIR_VOID
/* ECL_AVOID_FPE_H */
#undef ECL_AVOID_FPE_H
/* Allow STREAM operations to work on arbitrary objects */
#undef ECL_CLOS_STREAMS
/* Use CMU Common-Lisp's FORMAT routine */
#undef ECL_CMU_FORMAT
/* Stack grows downwards */
#undef ECL_DOWN_STACK
/* ECL_IEEE_FP */
#undef ECL_IEEE_FP
/* ECL_LIBATOMIC_OPS_H */
#undef ECL_LIBATOMIC_OPS_H
/* ECL_LONG_FLOAT */
#undef ECL_LONG_FLOAT
/* ECL_LOING_LONG_BITS */
#undef ECL_LONG_LONG_BITS
/* Define if your newline is CR */
#undef ECL_NEWLINE_IS_CR
/* Define if your newline is CRLF */
#undef ECL_NEWLINE_IS_CRLF
/* Hierarchical package names */
#undef ECL_RELATIVE_PACKAGE_NAMES
/* ECL_RWLOCK */
#undef ECL_RWLOCK
/* ECL_SIGNED_ZERO */
#undef ECL_SIGNED_ZERO
/* Bytecodes and arguments are 8 and 16 bits large, respectively */
#undef ECL_SMALL_BYTECODES
/* ECL_SMALL_CONS */
#undef ECL_SMALL_CONS
/* ECL_SSE2 */
#undef ECL_SSE2
/* Userland threads? */
#undef ECL_THREADS
/* Support for Unicode */
#undef ECL_UNICODE
/* Link in the database of Unicode names */
#undef ECL_UNICODE_NAMES
/* ECL_USE_MPROTECT */
#undef ECL_USE_MPROTECT
/* Allow loading dynamically linked code */
#undef ENABLE_DLOPEN
/* Use Boehm's garbage collector */
#undef GBC_BOEHM
/* GBC_BOEHM_GENGC */
#undef GBC_BOEHM_GENGC
/* GBC_BOEHM_PRECISE */
#undef GBC_BOEHM_PRECISE
/* Define to 1 if you have the `alarm' function. */
#undef HAVE_ALARM
/* Define to 1 if you have the `backtrace' function. */
#undef HAVE_BACKTRACE
/* Define to 1 if you have the `backtrace_symbols' function. */
#undef HAVE_BACKTRACE_SYMBOLS
/* Define to 1 if you have the `ceilf' function. */
#undef HAVE_CEILF
/* Define to 1 if you have the `copysign' function. */
#undef HAVE_COPYSIGN
/* Define to 1 if you have the `cosf' function. */
#undef HAVE_COSF
/* Define to 1 if you have the `coshf' function. */
#undef HAVE_COSHF
/* Define to 1 if you have the `cosl' function. */
#undef HAVE_COSL
/* Define to 1 if you have the <dirent.h> header file. */
#undef HAVE_DIRENT_H
/* Define to 1 if you have the `dladdr' function. */
#undef HAVE_DLADDR
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
/* Define to 1 if the system has the type `double complex'. */
#undef HAVE_DOUBLE_COMPLEX
/* HAVE_ENVIRON */
#undef HAVE_ENVIRON
/* Define to 1 if you have the `expf' function. */
#undef HAVE_EXPF
/* Define to 1 if you have the `expl' function. */
#undef HAVE_EXPL
/* Define to 1 if you have the `fabsf' function. */
#undef HAVE_FABSF
/* Define to 1 if you have the <fcntl.h> header file. */
#undef HAVE_FCNTL_H
/* Define to 1 if you have the <fenv.h> header file. */
#undef HAVE_FENV_H
/* Define to 1 if the system has the type `float complex'. */
#undef HAVE_FLOAT_COMPLEX
/* Define to 1 if you have the <float.h> header file. */
#undef HAVE_FLOAT_H
/* Define to 1 if you have the `floor' function. */
#undef HAVE_FLOOR
/* Define to 1 if you have the `floorf' function. */
#undef HAVE_FLOORF
/* Define to 1 if you have the `fork' function. */
#undef HAVE_FORK
/* Define to 1 if you have the `frexpf' function. */
#undef HAVE_FREXPF
/* Define to 1 if you have the `fseeko' function. */
#undef HAVE_FSEEKO
/* HAVE_GC_SET_START_CALLBACK */
#undef HAVE_GC_SET_START_CALLBACK
/* Define to 1 if you have the `getcwd' function. */
#undef HAVE_GETCWD
/* Define to 1 if you have the `gethostbyaddr' function. */
#undef HAVE_GETHOSTBYADDR
/* Define to 1 if you have the `gethostbyname' function. */
#undef HAVE_GETHOSTBYNAME
/* Define to 1 if you have the `getpagesize' function. */
#undef HAVE_GETPAGESIZE
/* Define to 1 if you have the `getrusage' function. */
#undef HAVE_GETRUSAGE
/* Define to 1 if you have the `gettimeofday' function. */
#undef HAVE_GETTIMEOFDAY
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
/* Define to 1 if you have the `isatty' function. */
#undef HAVE_ISATTY
/* Define to 1 if you have the `ldexpf' function. */
#undef HAVE_LDEXPF
/* HAVE_LIBFFI */
#undef HAVE_LIBFFI
/* Define to 1 if you have the `sun' library (-lsun). */
#undef HAVE_LIBSUN
/* Define to 1 if you have the <limits.h> header file. */
#undef HAVE_LIMITS_H
/* Define to 1 if you have the <link.h> header file. */
#undef HAVE_LINK_H
/* Define to 1 if you have the `log1p' function. */
#undef HAVE_LOG1P
/* Define to 1 if you have the `log1pf' function. */
#undef HAVE_LOG1PF
/* Define to 1 if you have the `log1pl' function. */
#undef HAVE_LOG1PL
/* Define to 1 if you have the `logf' function. */
#undef HAVE_LOGF
/* Define to 1 if you have the `logl' function. */
#undef HAVE_LOGL
/* Define to 1 if the system has the type `long double'. */
#undef HAVE_LONG_DOUBLE
/* Define to 1 if you have the `lstat' function. */
#undef HAVE_LSTAT
/* Define to 1 if you have the <mach-o/dyld.h> header file. */
#undef HAVE_MACH_O_DYLD_H
/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
to 0 otherwise. */
#undef HAVE_MALLOC
/* Define to 1 if you have the `memmove' function. */
#undef HAVE_MEMMOVE
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
/* Define to 1 if you have the `memset' function. */
#undef HAVE_MEMSET
/* Define to 1 if you have the `mkdir' function. */
#undef HAVE_MKDIR
/* Define to 1 if you have the `mkstemp' function. */
#undef HAVE_MKSTEMP
/* Define to 1 if you have a working `mmap' system call. */
#undef HAVE_MMAP
/* Define to 1 if you have the `nanosleep' function. */
#undef HAVE_NANOSLEEP
/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
#undef HAVE_NDIR_H
/* Define to 1 if you have the <netdb.h> header file. */
#undef HAVE_NETDB_H
/* Define to 1 if you have the <netinet/in.h> header file. */
#undef HAVE_NETINET_IN_H
/* HAVE_POSIX_RWLOCK */
#undef HAVE_POSIX_RWLOCK
/* Define to 1 if the system has the type `ptrdiff_t'. */
#undef HAVE_PTRDIFF_T
/* Define to 1 if you have the `putenv' function. */
#undef HAVE_PUTENV
/* Define to 1 if you have the <pwd.h> header file. */
#undef HAVE_PWD_H
/* Define to 1 if your system has a GNU libc compatible `realloc' function,
and to 0 otherwise. */
#undef HAVE_REALLOC
/* Define to 1 if you have the <sched.h> header file. */
#undef HAVE_SCHED_H
/* Define to 1 if you have the `sched_yield' function. */
#undef HAVE_SCHED_YIELD
/* Define to 1 if you have the `select' function. */
#undef HAVE_SELECT
/* Define to 1 if you have the <semaphore.h> header file. */
#undef HAVE_SEMAPHORE_H
/* Define to 1 if you have the `setenv' function. */
#undef HAVE_SETENV
/* Define to 1 if you have the `sigprocmask' function. */
#undef HAVE_SIGPROCMASK
/* Define to 1 if you have the `sinf' function. */
#undef HAVE_SINF
/* Define to 1 if you have the `sinhf' function. */
#undef HAVE_SINHF
/* Define to 1 if you have the `sinl' function. */
#undef HAVE_SINL
/* Define to 1 if you have the `socket' function. */
#undef HAVE_SOCKET
/* Define to 1 if you have the `sqrt' function. */
#undef HAVE_SQRT
/* Define to 1 if you have the `sqrtf' function. */
#undef HAVE_SQRTF
/* Define to 1 if `stat' has the bug that it succeeds when given the
zero-length file name argument. */
#undef HAVE_STAT_EMPTY_STRING_BUG
/* Define to 1 if stdbool.h conforms to C99. */
#undef HAVE_STDBOOL_H
/* Define to 1 if you have the <stddef.h> header file. */
#undef HAVE_STDDEF_H
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
/* Define to 1 if you have the `strcasecmp' function. */
#undef HAVE_STRCASECMP
/* Define to 1 if you have the `strchr' function. */
#undef HAVE_STRCHR
/* Define to 1 if you have the `strerror' function. */
#undef HAVE_STRERROR
/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
/* Define to 1 if you have the `strtol' function. */
#undef HAVE_STRTOL
/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
*/
#undef HAVE_SYS_DIR_H
/* Define to 1 if you have the <sys/ioctl.h> header file. */
#undef HAVE_SYS_IOCTL_H
/* HAVE_SYS_MMAN_H */
#undef HAVE_SYS_MMAN_H
/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
*/
#undef HAVE_SYS_NDIR_H
/* Define to 1 if you have the <sys/param.h> header file. */
#undef HAVE_SYS_PARAM_H
/* Define to 1 if you have the <sys/resource.h> header file. */
#undef HAVE_SYS_RESOURCE_H
/* Define to 1 if you have the <sys/select.h> header file. */
#undef HAVE_SYS_SELECT_H
/* Define to 1 if you have the <sys/socket.h> header file. */
#undef HAVE_SYS_SOCKET_H
/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
/* Define to 1 if you have the <sys/time.h> header file. */
#undef HAVE_SYS_TIME_H
/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
/* Define to 1 if you have the <sys/utsname.h> header file. */
#undef HAVE_SYS_UTSNAME_H
/* Define to 1 if you have the <sys/wait.h> header file. */
#undef HAVE_SYS_WAIT_H
/* Define to 1 if you have the `tanf' function. */
#undef HAVE_TANF
/* Define to 1 if you have the `tanhf' function. */
#undef HAVE_TANHF
/* Define to 1 if you have the `tanl' function. */
#undef HAVE_TANL
/* Define to 1 if you have the `times' function. */
#undef HAVE_TIMES
/* Define to 1 if you have the `tzset' function. */
#undef HAVE_TZSET
/* Define to 1 if you have the <ulimit.h> header file. */
#undef HAVE_ULIMIT_H
/* Define to 1 if you have the `uname' function. */
#undef HAVE_UNAME
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Define to 1 if you have the `vfork' function. */
#undef HAVE_VFORK
/* Define to 1 if you have the <vfork.h> header file. */
#undef HAVE_VFORK_H
/* Define to 1 if `fork' works. */
#undef HAVE_WORKING_FORK
/* Define to 1 if `vfork' works. */
#undef HAVE_WORKING_VFORK
/* Define to 1 if the system has the type `_Bool'. */
#undef HAVE__BOOL
/* HAVE___BUILTIN_RETURN_ADDRESS */
#undef HAVE___BUILTIN_RETURN_ADDRESS
/* Define to 1 if `lstat' dereferences a symlink specified with a trailing
slash. */
#undef LSTAT_FOLLOWS_SLASHED_SYMLINK
/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT
/* Define to the full name of this package. */
#undef PACKAGE_NAME
/* Define to the full name and version of this package. */
#undef PACKAGE_STRING
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
/* Define to the home page for this package. */
#undef PACKAGE_URL
/* Define to the version of this package. */
#undef PACKAGE_VERSION
/* Define as the return type of signal handlers (`int' or `void'). */
#undef RETSIGTYPE
/* Define to the type of arg 1 for `select'. */
#undef SELECT_TYPE_ARG1
/* Define to the type of args 2, 3 and 4 for `select'. */
#undef SELECT_TYPE_ARG234
/* Define to the type of arg 5 for `select'. */
#undef SELECT_TYPE_ARG5
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
/* Network streams */
#undef TCP
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
#undef TIME_WITH_SYS_TIME
/* Define to 1 if your <sys/time.h> declares `struct tm'. */
#undef TM_IN_SYS_TIME
/* __thread thread-local variables? */
#undef WITH___THREAD
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel). */
#if defined AC_APPLE_UNIVERSAL_BUILD
# if defined __BIG_ENDIAN__
# define WORDS_BIGENDIAN 1
# endif
#else
# ifndef WORDS_BIGENDIAN
# undef WORDS_BIGENDIAN
# endif
#endif
/* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>,
<pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
#define below would cause a syntax error. */
#undef _UINT32_T
/* Define for Solaris 2.5.1 so the uint64_t typedef from <sys/synch.h>,
<pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
#define below would cause a syntax error. */
#undef _UINT64_T
/* Define for Solaris 2.5.1 so the uint8_t typedef from <sys/synch.h>,
<pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
#define below would cause a syntax error. */
#undef _UINT8_T
/* Define to empty if `const' does not conform to ANSI C. */
#undef const
/* ecl_int16_t */
#undef ecl_int16_t
/* ecl_int32_t */
#undef ecl_int32_t
/* ecl_int64_t */
#undef ecl_int64_t
/* ecl_int8_t */
#undef ecl_int8_t
/* compiler understands long long */
#undef ecl_long_long_t
/* ecl_uint16_t */
#undef ecl_uint16_t
/* ecl_uint32_t */
#undef ecl_uint32_t
/* ecl_uint64_t */
#undef ecl_uint64_t
/* ecl_uint8_t */
#undef ecl_uint8_t
/* compiler understands long long */
#undef ecl_ulong_long_t
/* Define to `__inline__' or `__inline' if that's what the C compiler
calls it, or to nothing if 'inline' is not supported under any name. */
#ifndef __cplusplus
#undef inline
#endif
/* Define to the type of a signed integer type of width exactly 16 bits if
such a type exists and the standard includes do not define it. */
#undef int16_t
/* Define to the type of a signed integer type of width exactly 32 bits if
such a type exists and the standard includes do not define it. */
#undef int32_t
/* Define to the type of a signed integer type of width exactly 64 bits if
such a type exists and the standard includes do not define it. */
#undef int64_t
/* Define to the type of a signed integer type of width exactly 8 bits if such
a type exists and the standard includes do not define it. */
#undef int8_t
/* Define to rpl_malloc if the replacement function should be used. */
#undef malloc
/* Define to `int' if <sys/types.h> does not define. */
#undef pid_t
/* Define to rpl_realloc if the replacement function should be used. */
#undef realloc
/* Define to `unsigned int' if <sys/types.h> does not define. */
#undef size_t
/* Define to the type of an unsigned integer type of width exactly 16 bits if
such a type exists and the standard includes do not define it. */
#undef uint16_t
/* Define to the type of an unsigned integer type of width exactly 32 bits if
such a type exists and the standard includes do not define it. */
#undef uint32_t
/* Define to the type of an unsigned integer type of width exactly 64 bits if
such a type exists and the standard includes do not define it. */
#undef uint64_t
/* Define to the type of an unsigned integer type of width exactly 8 bits if
such a type exists and the standard includes do not define it. */
#undef uint8_t
/* Define as `fork' if `vfork' does not work. */
#undef vfork
/* Define to empty if the keyword `volatile' does not work. Warning: valid
code using `volatile' can become incorrect without. Disable with care. */
#undef volatile

View file

@ -882,7 +882,7 @@ SEQUENCE. See SORT."
predicate (si::coerce-to-function predicate))
(if (listp sequence)
(list-merge-sort sequence predicate key)
(if (or (stringp sequence) (bit-vector-p sequence))
(if (bit-vector-p sequence)
(sort sequence predicate :key key)
(coerce (list-merge-sort (coerce sequence 'list)
predicate

View file

@ -402,7 +402,7 @@ The top-level loop of ECL. It is called by default when ECL is invoked."
(format t "~%Copyright (C) 1984 Taiichi Yuasa and Masami Hagiya~@
Copyright (C) 1993 Giuseppe Attardi~@
Copyright (C) 2000 Juan J. Garcia-Ripoll
Copyright (C) 2015 Daniel Kochmański
Copyright (C) 2015 Daniel Kochmanski
ECL is free software, and you are welcome to redistribute it~@
under certain conditions; see file 'Copyright' for details.")
(format *standard-output* "~%Type :h for Help. "))