From 4f41661657a32a8e0147f4b793864b56496af4cf Mon Sep 17 00:00:00 2001 From: Kevin Ryde Date: Mon, 17 Apr 2006 00:18:11 +0000 Subject: [PATCH] merge from 1.8 branch --- ANNOUNCE | 52 +++++++++++++++++++++++------------- ChangeLog | 34 ++++++++++++++++++++++++ INSTALL | 16 +++++------ Makefile.am | 2 +- NEWS | 11 ++++++-- README | 3 +-- THANKS | 2 ++ am/Makefile.am | 2 +- am/maintainer-dirs | 2 +- am/pre-inst-guile | 2 +- configure.in | 62 ++++++++++++++++++++++++++++++++++++++----- guile-tools.in | 2 +- libguile.h | 2 +- pre-inst-guile-env.in | 2 +- pre-inst-guile.in | 2 +- 15 files changed, 152 insertions(+), 44 deletions(-) diff --git a/ANNOUNCE b/ANNOUNCE index e3feb7cee..89d8cbde4 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,31 +1,30 @@ -We are pleased to announce the release of Guile 1.7.2. This is a -'technology preview' for the upcoming Guile 1.8. It can be found -here: +We are pleased to announce the release of Guile 1.8.0. It can be +found here: - ftp://alpha.gnu.org/gnu/guile/guile-1.7.2.tar.gz + ftp://ftp.gnu.org/gnu/guile/guile-1.8.0.tar.gz -Its MD5 checksum is +Its SHA1 checksum is - 7fabb64198993e971f65a27846202388 guile-1.7.2.tar.gz + 22462680feeda1e5400195c01dee666162503d66 guile-1.8.0.tar.gz -This version is guaranteed to contain serious bugs, and the publically -visible interfaces will almost certainly change before 1.8 is -released. The 1.7 releases might be termed "selected snapshots". +We already know about some issues with 1.8.0, please check the mailing +lists: -Specifically, libguile has not yet been reviewed for thread-safeness. + http://www.gnu.org/software/guile/mail/mail.html -We are releasing it anyway to start testing the new features, and to -get feedback about how well Guile actually behaves in a multi-threaded -setting. +The NEWS file is quite long. Here are the most interesting entries: -The shared library major versions have been bumped compared to the 1.6 -series, but they will not be bumped on binary incompatible changes -within the 1.7 series. + Changes since 1.6: + * Guile is now licensed with the GNU Lesser General Public License. -The NEWS file is quite long. Here are the most interesting entries: + * The manual is now licensed with the GNU Free Documentation License. + + * We now use GNU MP for bignums. - Changes since 1.7.1: + * We now have exact rationals, such as 1/3. + + * We now use native POSIX threads for real concurrent threads. * There is a new way to initalize Guile that allows one to use Guile from threads that have not been created by Guile. @@ -35,6 +34,23 @@ The NEWS file is quite long. Here are the most interesting entries: * The low-level thread API has been removed. + * There is now support for copy-on-write substrings and + mutation-sharing substrings. + + * A new family of functions for converting between C values and + Scheme values has been added that is future-proof and thread-safe. + + * The INUM macros like SCM_MAKINUM have been deprecated. + + * The macros SCM_STRINGP, SCM_STRING_CHARS, SCM_STRING_LENGTH, + SCM_SYMBOL_CHARS, and SCM_SYMBOL_LENGTH have been deprecated. + + * There is a new way to deal with non-local exits and re-entries in + C code, which is nicer than scm_internal_dynamic_wind. + + * There are new malloc-like functions that work better than + scm_must_malloc, etc. + * There is a new way to access all kinds of vectors and arrays from C that is efficient and thread-safe. diff --git a/ChangeLog b/ChangeLog index 592cb2b93..926064ebc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,9 +1,43 @@ +2006-04-16 Kevin Ryde + + * configure.in (stat64, off_t): New tests. + +2006-03-31 Kevin Ryde + + * configure.in (socklen_t): Enhance test for this type, coping with + need for on MacOS X. Reported by Michael Tuexen and + Jay Cotton. + +2006-03-26 Marius Vollmer + + * configure.in: Added check that defines + PTHREAD_ATTR_GETSTACK_WORKS when pthread_attr_getstack works for + the main thread. + +2006-02-26 Kevin Ryde + + * configure.in (AC_CHECK_FUNCS): Add dirfd. + +2006-02-20 Marius Vollmer + + Released 1.8.0. + + * GUILE-VERSION: Set version. + 2006-02-06 Marius Vollmer * GUILE-VERSION: Bumped versions for 1.9 series. * configure.in: Removed --enable-arrays option. +2006-02-06 Marius Vollmer + + Branched for 1.8 series. + + * GUILE-VERSION: Bumped version numbers. + + * configure.in: Removed --enable-arrays option. + 2005-12-14 Neil Jerram * NEWS: Remove entry claiming that breakpoints have been added, diff --git a/INSTALL b/INSTALL index 56b077d6a..23e5f25d0 100644 --- a/INSTALL +++ b/INSTALL @@ -102,16 +102,16 @@ for another architecture. Installation Names ================== -By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc. You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PREFIX'. +By default, `make install' installs the package's commands under +`/usr/local/bin', include files under `/usr/local/include', etc. You +can specify an installation prefix other than `/usr/local' by giving +`configure' the option `--prefix=PREFIX'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PREFIX', the package will -use PREFIX as the prefix for installing programs and libraries. -Documentation and other data files will still use the regular prefix. +pass the option `--exec-prefix=PREFIX' to `configure', the package uses +PREFIX as the prefix for installing programs and libraries. +Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular @@ -159,7 +159,7 @@ where SYSTEM can have one of these forms: need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should -use the `--target=TYPE' option to select the type of system they will +use the option `--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a diff --git a/Makefile.am b/Makefile.am index 661257928..a4da8500e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,6 +1,6 @@ ## Process this file with automake to produce Makefile.in. ## -## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. +## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2006 Free Software Foundation, Inc. ## ## This file is part of GUILE. ## diff --git a/NEWS b/NEWS index d09bea93b..d96a2f239 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,5 @@ Guile NEWS --- history of user-visible changes. -Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. See the end for copying conditions. Please send Guile bug reports to bug-guile@gnu.org. @@ -12,6 +12,13 @@ Each release reports the NEWS in the following sections: * Changes to the C interface +Changes in 1.8.1: + +* Bug fixes. +** array-set! with bit vector. +** string contains socklen_t, so must include that +# when testing. +AC_CHECK_TYPE(socklen_t, , + [AC_DEFINE_UNQUOTED(socklen_t, int, + [Define to `int' if does not define.])], + [#if HAVE_SYS_TYPES_H +#include +#endif +#include +]) +AC_CHECK_TYPE(struct ip_mreq) + GUILE_HEADER_LIBC_WITH_UNISTD AC_TYPE_GETGROUPS @@ -584,10 +594,11 @@ AC_CHECK_HEADERS([assert.h crt_externs.h]) # fesetround - available in C99, but not older systems # gmtime_r - recent posix, not on old systems # readdir_r - recent posix, not on old systems +# stat64 - SuS largefile stuff, not on old systems # sysconf - not on old systems # _NSGetEnviron - Darwin specific # -AC_CHECK_FUNCS([DINFINITY DQNAN ctermid fesetround ftime fchown getcwd geteuid gettimeofday gmtime_r lstat mkdir mknod nice readdir_r readlink rename rmdir select setegid seteuid setlocale setpgid setsid sigaction siginterrupt strftime strptime symlink sync sysconf tcgetpgrp tcsetpgrp times uname waitpid strdup system usleep atexit on_exit chown link fcntl ttyname getpwent getgrent kill getppid getpgrp fork setitimer getitimer strchr strcmp index bcopy memcpy rindex unsetenv _NSGetEnviron]) +AC_CHECK_FUNCS([DINFINITY DQNAN ctermid fesetround ftime fchown getcwd geteuid gettimeofday gmtime_r lstat mkdir mknod nice readdir_r readlink rename rmdir select setegid seteuid setlocale setpgid setsid sigaction siginterrupt stat64 strftime strptime symlink sync sysconf tcgetpgrp tcsetpgrp times uname waitpid strdup system usleep atexit on_exit chown link fcntl ttyname getpwent getgrent kill getppid getpgrp fork setitimer getitimer strchr strcmp index bcopy memcpy rindex unsetenv _NSGetEnviron]) # Reasons for testing: # netdb.h - not in mingw @@ -864,9 +875,10 @@ AC_CHECK_HEADERS(floatingpoint.h ieeefp.h nan.h) # Reasons for testing: # asinh, acosh, atanh, trunc - C99 standard, generally not available on # older systems +# dirfd - mainly BSD derived, not in older systems # sincos - GLIBC extension # -AC_CHECK_FUNCS(asinh acosh atanh copysign finite sincos trunc) +AC_CHECK_FUNCS(asinh acosh atanh copysign dirfd finite sincos trunc) # C99 specifies isinf and isnan as macros. # HP-UX provides only macros, no functions. @@ -1025,6 +1037,44 @@ esac AC_MSG_CHECKING(what kind of threads to support) AC_MSG_RESULT($with_threads) +## Check whether pthread_attr_getstack works for the main thread + +AC_MSG_CHECKING(whether pthread_attr_getstack works for the main thread) +old_CFLAGS="$CFLAGS" +CFLAGS="$PTHREAD_CFLAGS $CFLAGS" +AC_TRY_RUN( +[ +#if HAVE_PTHREAD_ATTR_GETSTACK +#include + +int main () +{ + pthread_attr_t attr; + void *start, *end; + size_t size; + + pthread_getattr_np (pthread_self (), &attr); + pthread_attr_getstack (&attr, &start, &size); + end = (char *)start + size; + + if ((void *)&attr < start || (void *)&attr >= end) + return 1; + else + return 0; +} +#else +int main () +{ + return 1; +} +#endif +], +[works=yes +AC_DEFINE(PTHREAD_ATTR_GETSTACK_WORKS, [1], [Define when pthread_att_get_stack works for the main thread])], +[works=no]) +CFLAGS="$old_CFLAGS" +AC_MSG_RESULT($works) + ## Cross building if test "$cross_compiling" = "yes"; then AC_MSG_CHECKING(cc for build) diff --git a/guile-tools.in b/guile-tools.in index a59485774..a4db08f02 100644 --- a/guile-tools.in +++ b/guile-tools.in @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2001, 2003 Free Software Foundation, Inc. +# Copyright (C) 2001, 2003, 2006 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as diff --git a/libguile.h b/libguile.h index 3703aadde..48f69fbb9 100644 --- a/libguile.h +++ b/libguile.h @@ -1,7 +1,7 @@ #ifndef SCM_LIBGUILE_H #define SCM_LIBGUILE_H -/* Copyright (C) 1995,1996,1997,1998,2000,2001, 2002, 2003, 2004 Free Software Foundation, Inc. +/* Copyright (C) 1995,1996,1997,1998,2000,2001, 2002, 2003, 2004, 2006 Free Software Foundation, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/pre-inst-guile-env.in b/pre-inst-guile-env.in index b5ab0e715..e15290605 100644 --- a/pre-inst-guile-env.in +++ b/pre-inst-guile-env.in @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2003 Free Software Foundation +# Copyright (C) 2003, 2006 Free Software Foundation # # This file is part of GUILE. # diff --git a/pre-inst-guile.in b/pre-inst-guile.in index 5c47b3426..ea8e4b1b4 100644 --- a/pre-inst-guile.in +++ b/pre-inst-guile.in @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2002 Free Software Foundation +# Copyright (C) 2002, 2006 Free Software Foundation # # This file is part of GUILE. # -- 2.20.1