From: alex sassmannshausen <alex.sassmannshausen@gmail.com>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: guile-user@gnu.org, info-gnu@gnu.org, guile-sources@gnu.org,
guile-devel@gnu.org
Subject: Re: GNU Guile 2.0.9 released
Date: Wed, 10 Apr 2013 08:41:39 +0100 [thread overview]
Message-ID: <CAKdwf2B9NCKqqW31YidcdfmBt396Y+8EDpTZHjXkH8Zey6kCNw@mail.gmail.com> (raw)
In-Reply-To: <87a9p6zxmf.fsf@gnu.org>
[-- Attachment #1: Type: text/plain, Size: 19486 bytes --]
Sound very exciting.
Congratulations on the great work that continues to be done on Guile.
Best wishes,
Alex
On Wed, Apr 10, 2013 at 7:51 AM, Ludovic Courtès <ludo@gnu.org> wrote:
> We are pleased to announce GNU Guile release 2.0.9, the next maintenance
> release for the 2.0.x stable series.
>
> This release contains 347 commits by 15 people over 4 months.
>
> The Guile web page is located at http://gnu.org/software/guile/ .
>
> Guile is an implementation of the Scheme programming language, with
> support for many SRFIs, packaged for use in a wide variety of
> environments. In addition to implementing the R5RS Scheme standard and
> a large subset of R6RS, Guile includes a module system, full access to
> POSIX system calls, networking support, multiple threads, dynamic
> linking, a foreign function call interface, and powerful string
> processing.
>
> Guile can run interactively, as a script interpreter, and as a Scheme
> compiler to VM bytecode suitable for stand-alone applications. It is
> also packaged as a library so that applications can easily incorporate a
> complete Scheme interpreter/VM. An application can use Guile as an
> extension language, a clean and powerful configuration language, or as
> multi-purpose "glue" to connect primitives provided by the application.
>
> Here are the compressed sources:
> ftp://ftp.gnu.org/gnu/guile/guile-2.0.9.tar.gz (7.1MB)
> ftp://ftp.gnu.org/gnu/guile/guile-2.0.9.tar.xz (4.4MB)
>
> Here are the GPG detached signatures[*]:
> ftp://ftp.gnu.org/gnu/guile/guile-2.0.9.tar.gz.sig
> ftp://ftp.gnu.org/gnu/guile/guile-2.0.9.tar.xz.sig
>
> Use a mirror for higher download bandwidth:
> http://www.gnu.org/order/ftp.html
>
> Here are the MD5 and SHA1 checksums:
>
> 531839c3fe887382ca9d4774db544d34 guile-2.0.9.tar.gz
> a69b575d4a633bdd9118f3a4a1e97766 guile-2.0.9.tar.xz
> fc5d770e8b1d364b2f222a8f8c96ccf740b2956f guile-2.0.9.tar.gz
> a2275c23c4a03e8dbd5e500c47af694e14d2365b guile-2.0.9.tar.xz
>
> [*] Use a .sig file to verify that the corresponding file (without the
> .sig suffix) is intact. First, be sure to download both the .sig file
> and the corresponding tarball. Then, run a command like this:
>
> gpg --verify guile-2.0.9.tar.gz.sig
>
> If that command fails because you don't have the required public key,
> then run this command to import it:
>
> gpg --keyserver keys.gnupg.net --recv-keys EA52ECF4
>
> and rerun the 'gpg --verify' command.
>
> This release was bootstrapped with the following tools:
> Autoconf 2.69
> Automake 1.13.1
> Libtool 2.4.2
> Gnulib v0.0-7865-ga828bb2
> Makeinfo 5.1
>
>
> This release provides new features, many bug fixes, and performance
> improvements. Here are the highlights, taken from the `NEWS' file:
>
> Changes in 2.0.9 (since 2.0.7):
>
> Note: 2.0.8 was a brown paper bag release that was never announced, but
> some mirrors may have picked it up. Please do not use it.
>
> * Notable changes
>
> ** New keyword arguments for procedures that open files
>
> The following procedures that open files now support keyword arguments
> to request binary I/O or to specify the character encoding for text
> files: `open-file', `open-input-file', `open-output-file',
> `call-with-input-file', `call-with-output-file', `with-input-from-file',
> `with-output-to-file', and `with-error-to-file'.
>
> It is also now possible to specify whether Guile should scan files for
> Emacs-style coding declarations. This scan was done by default in
> versions 2.0.0 through 2.0.7, but now must be explicitly requested.
>
> See "File Ports" in the manual for details.
>
> ** Rewritten guile.m4
>
> The `guile.m4' autoconf macros have been rewritten to use `guild' and
> `pkg-config' instead of the deprecated `guile-config' (which itself
> calls pkg-config).
>
> There is also a new macro, `GUILE_PKG', which allows packages to select
> the version of Guile that they want to compile against. See "Autoconf
> Macros" in the manual, for more information.
>
> ** Better Windows support
>
> Guile now correctly identifies absolute paths on Windows (MinGW), and
> creates files on that platform according to its path conventions. See
> "File System" in the manual, for all details.
>
> In addition, the new Gnulib imports provide `select' and `poll' on
> Windows builds.
>
> As an incompatible change, systems that are missing <sys/select.h> were
> previously provided a public `scm_std_select' C function that defined a
> version of `select', but unhappily it also provided its own incompatible
> definitions for FD_SET, FD_ZERO, and other system interfaces. Guile
> should not be setting these macros in public API, so this interface was
> removed on those plaforms (basically only MinGW).
>
> ** Numerics improvements
>
> `number->string' now reliably outputs enough digits to produce the same
> number when read back in. Previously, it mishandled subnormal numbers
> (printing them as "#.#"), and failed to distinguish between some
> distinct inexact numbers, e.g. 1.0 and (+ 1.0 (expt 2.0 -52)). These
> problems had far-reaching implications, since the compiler uses
> `number->string' to serialize numeric constants into .go files.
>
> `sqrt' now produces exact rational results when possible, and handles
> very large or very small numbers more robustly.
>
> A number (ahem) of operations involving exact rationals have been
> optimized, most notably `integer-expt' and `expt'.
>
> `exact->inexact' now performs correct IEEE rounding.
>
> ** New optimizations
>
> There were a number of improvements to the partial evaluator, allowing
> complete reduction of forms such as:
>
> ((let ((_ 10)) (lambda () _)))
>
> ((lambda _ _))
>
> (apply (lambda _ _) 1 2 3 '(4))
>
> (call-with-values (lambda () (values 1 2)) (lambda _ _))
>
> `string-join' now handles huge lists efficiently.
>
> `get-bytevector-some' now uses buffered input, which is much faster.
>
> Finally, `array-ref', `array-set!' on arrays of rank 1 or 2 is now
> faster, because it avoids building a rest list. Similarly, the
> one-argument case of `array-for-each' and `array-map!' has been
> optimized, and `array-copy!' and `array-fill!' are faster.
>
> ** `peek-char' no longer consumes EOF
>
> As required by the R5RS, if `peek-char' returns EOF, then the next read
> will also return EOF. Previously `peek-char' would consume the EOF.
> This makes a difference for terminal devices where it is possible to
> read past an EOF.
>
> ** Gnulib update
>
> Guile's copy of Gnulib was updated to v0.0-7865-ga828bb2. The following
> modules were imported from Gnulib: select, times, pipe-posix, fstat,
> getlogin, poll, and c-strcase.
>
> ** `include' resolves relative file names relative to including file
>
> Given a relative file name, `include' will look for it relative to the
> directory of the including file. This harmonizes the behavior of
> `include' with that of `load'.
>
> ** SLIB compatibility restored
>
> Guile 2.0.8 is now compatible with SLIB. You will have to use a
> development version of SLIB, however, until a new version of SLIB is
> released.
>
> ** Better ,trace REPL command
>
> Sometimes the ,trace output for nested function calls could overflow the
> terminal width, which wasn't useful. Now there is a limit to the amount
> of space the prefix will take. See the documentation for ",trace" for
> more information.
>
> ** Better docstring syntax supported for `case-lambda'
>
> Docstrings can now be placed immediately after the `case-lambda' or
> `case-lambda*' keyword. See "Case-lambda" in the manual.
>
> ** Improved handling of Unicode byte order marks
>
> See "BOM Handling" in the manual for details.
>
> ** Update predefined character sets to Unicode 6.2
>
> ** GMP 4.2 or later required
>
> Guile used to require GMP at least version 4.1 (released in May 2002),
> and now requires at least version 4.2 (released in March 2006).
>
> * Manual updates
>
> ** Better SXML documentation
>
> The documentation for SXML modules was much improved, though there is
> still far to go. See "SXML" in manual.
>
> ** Style updates
>
> Use of "iff" was replaced with standard English. Keyword arguments are
> now documented consistently, along with their default values.
>
> ** An end to the generated-documentation experiment
>
> When Guile 2.0 imported some modules from Guile-Lib, they came with a
> system that generated documentation from docstrings and module
> commentaries. This produced terrible documentation. We finally bit the
> bullet and incorporated these modules into the main text, and will be
> improving them manually over time, as is the case with SXML. Help is
> appreciated.
>
> ** New documentation
>
> There is now documentation for `scm_array_type', and `scm_array_ref', as
> well as for the new `array-length' / 'scm_c_array_length' /
> `scm_array_length' functions. `array-in-bounds?' has better
> documentation as well. The `program-arguments-alist' and
> `program-lambda-list' functions are now documented, as well as `and=>',
> `exit', and `quit'. The (system repl server) module is now documented
> (see REPL Servers). Finally, the GOOPS class hierarchy diagram has been
> regenerated for the web and print output formats.
>
> * New deprecations
>
> ** Deprecate generalized vector interface
>
> The generalized vector interface, introduced in 1.8.0, is simply a
> redundant, verbose interface to arrays of rank 1. `array-ref' and
> similar functions are entirely sufficient. Thus,
> `scm_generalized_vector_p', `scm_generalized_vector_length',
> `scm_generalized_vector_ref', `scm_generalized_vector_set_x', and
> `scm_generalized_vector_to_list' are now deprecated.
>
> ** Deprecate SCM_CHAR_CODE_LIMIT and char-code-limit
>
> These constants were defined to 256, which is not the highest codepoint
> supported by Guile. Given that they were useless and incorrect, they
> have been deprecated.
>
> ** Deprecate `http-get*'
>
> The new `#:streaming?' argument to `http-get' subsumes the functionality
> of `http-get*' (introduced in 2.0.7). Also, the `#:extra-headers'
> argument is deprecated in favor of `#:headers'.
>
> ** Deprecate (ice-9 mapping)
>
> This module, present in Guile since 1996 but never used or documented,
> has never worked in Guile 2.0. It has now been deprecated and will be
> removed in Guile 2.2.
>
> ** Deprecate undocumented array-related C functions
>
> These are `scm_array_fill_int', `scm_ra_eqp', `scm_ra_lessp',
> `scm_ra_leqp', `scm_ra_grp', `scm_ra_greqp', `scm_ra_sum',
> `scm_ra_product', `scm_ra_difference', `scm_ra_divide', and
> `scm_array_identity'.
>
> * New interfaces
>
> ** SRFI-41 Streams
>
> See "SRFI-41" in the manual.
>
> ** SRFI-45 exports `promise?'
>
> SRFI-45 now exports a `promise?' procedure that works with its promises.
> Also, its promises now print more nicely.
>
> ** New HTTP client procedures
>
> See "Web Client" for documentation on the new `http-head', `http-post',
> `http-put', `http-delete', `http-trace', and `http-options' procedures,
> and also for more options to `http-get'.
>
> ** Much more capable `xml->sxml'
>
> See "Reading and Writing XML" for information on how the `xml->sxml'
> parser deals with namespaces, processed entities, doctypes, and literal
> strings. Incidentally, `current-ssax-error-port' is now a parameter
> object.
>
> ** New procedures for converting strings to and from bytevectors
>
> See "Representing Strings as Bytes" for documention on the new `(ice-9
> iconv)' module and its `bytevector->string' and `string->bytevector'
> procedures.
>
> ** Escape continuations with `call/ec' and `let/ec'
>
> See "Prompt Primitives".
>
> ** New procedures to read all characters from a port
>
> See "Line/Delimited" in the manual for documentation on `read-string'
> and `read-string!'.
>
> ** New procedure `sendfile'
>
> See "File System".
>
> ** New procedure `unget-bytevector'
>
> See "R6RS Binary Input".
>
> ** New C helper: `scm_c_bind_keyword_arguments'
>
> See "Keyword Procedures".
>
> ** New command-line arguments: `--language' and `-C'
>
> See "Command-line Options" in the manual.
>
> ** New environment variables: `GUILE_STACK_SIZE', `GUILE_INSTALL_LOCALE'
>
> See "Environment Variables".
>
> ** New procedures for dealing with file names
>
> See "File System" for documentation on `system-file-name-convention',
> `file-name-separator?', `absolute-file-name?', and
> `file-name-separator-string'.
>
> ** `array-length', an array's first dimension
>
> See "Array Procedures".
>
> ** `hash-count', for hash tables
>
> See "Hash Tables".
>
> ** `round-ash', a bit-shifting operator that rounds on right-shift
>
> See "Bitwise Operations".
>
> ** New foreign types: `ssize_t', `ptrdiff_t'
>
> See "Foreign Types".
>
> ** New C helpers: `scm_from_ptrdiff_t', `scm_to_ptrdiff_t'
>
> See "Integers".
>
> ** Socket option `SO_REUSEPORT' now available from Scheme
>
> If supported on the platform, `SO_REUSEPORT' is now available from
> Scheme as well. See "Network Sockets and Communication".
>
> ** `current-language' in default environment
>
> Previously defined only in `(system base language)', `current-language'
> is now defined in the default environment, and is used to determine the
> language for the REPL, and for `compile-and-load'.
>
> ** New procedure: `fluid->parameter'
>
> See "Parameters", for information on how to convert a fluid to a
> parameter.
>
> ** New `print' REPL option
>
> See "REPL Commands" in the manual for information on the new
> user-customizable REPL printer.
>
> ** New variable: %site-ccache-dir
>
> The "Installing Site Packages" and "Build Config" manual sections now
> refer to this variable to describe where users should install their
> `.go' files.
>
> * Build fixes
>
> ** Fix compilation against libgc 7.3.
> ** Fix cross-compilation of `c-tokenize.o'.
> ** Fix warning when compiling against glibc 2.17.
> ** Fix documentation build against Texinfo 5.0.
> ** Fix building Guile from a directory with non-ASCII characters.
> ** Fix native MinGW build.
> ** Fix --disable-posix build.
> ** Fix MinGW builds with networking, POSIX, and thread support.
>
> * Bug fixes
>
> ** Fix inexact number printer.
> (http://bugs.gnu.org/13757)
> ** Fix infinite loop when parsing optional-argument short options
> (SRFI-37).
> (http://bugs.gnu.org/13176)
> ** web: Support non-GMT date headers in the HTTP client.
> (http://bugs.gnu.org/13544)
> ** web: support IP-literal (IPv6 address) in Host header.
> ** Avoid stack overflows with `par-map' and nested futures in general.
> (http://bugs.gnu.org/13188)
> ** Peek-char no longer consumes EOF.
> (http://bugs.gnu.org/12216)
> ** Avoid swallowing multiple EOFs in R6RS binary-input procedures.
> ** A fork when multiple threads are running will now print a warning.
> ** Allow for spurious wakeups from pthread_cond_wait.
> (http://bugs.gnu.org/10641)
> ** Warn and ignore module autoload failures.
> (http://bugs.gnu.org/12202)
> ** Use chmod portably in (system base compile).
> (http://bugs.gnu.org/10474)
> ** Fix response-body-port for HTTP responses without content-length.
> (http://bugs.gnu.org/13857)
> ** Allow case-lambda expressions with no clauses.
> (http://bugs.gnu.org/9776)
> ** Improve standards conformance of string->number.
> (http://bugs.gnu.org/11887)
> ** Support calls and tail-calls with more than 255 formals.
> ** ,option evaluates its right-hand-side.
> (http://bugs.gnu.org/13076)
> ** Structs with tail arrays are not simple.
> (http://bugs.gnu.org/12808)
> ** Make `SCM_LONG_BIT' usable in preprocessor conditionals.
> (http://bugs.gnu.org/13848)
> ** Fix thread-unsafe lazy initializations.
> ** Allow SMOB mark procedures to be called from parallel markers.
> (http://bugs.gnu.org/13611)
> ** Fix later-bindings-win logic in with-fluids.
> (http://bugs.gnu.org/13843)
> ** Fix duplicate removal of with-fluids.
> (http://bugs.gnu.org/13838)
> ** Support calling foreign functions of 10 arguments or more.
> (http://bugs.gnu.org/13809)
> ** Let reverse! accept arbitrary types as second argument.
> (http://bugs.gnu.org/13835)
> ** Recognize the `x86_64.*-gnux32' triplet.
> ** Check whether a triplet's OS part specifies an ABI.
> ** Recognize mips64* as having 32-bit pointers by default.
> ** Use portable sed constructs.
> (http://bugs.gnu.org/14042)
> ** Remove language/glil/decompile-assembly.scm.
> (http://bugs.gnu.org/10622)
> ** Use O_BINARY in `copy-file', `load-objcode', `mkstemp'.
> ** Use byte-oriented functions in `get-bytevector*'.
> ** Fix abort when iconv swallows BOM from UTF-16 or UTF-32 stream.
> ** Fix compilation of functions with more than 255 local variables.
> ** Fix `getgroups' for when zero supplementary group IDs exist.
> ** Allow (define-macro name (lambda ...)).
> ** Various fixes to the (texinfo) modules.
> ** guild: Gracefully handle failures to install the locale.
> ** Fix format string warnings for ~!, ~|, ~/, ~q, ~Q, and ~^.
> (http://bugs.gnu.org/13485)
> ** Fix source annotation bug in psyntax 'expand-body'.
> ** Ecmascript: Fix conversion to boolean for non-numbers.
> ** Use case-insensitive comparisons for encoding names.
> ** Add missing cond-expand feature identifiers.
> ** A failure to find a module's file does not prevent future loading.
> ** Many (oop goops save) fixes.
> ** `http-get': don't shutdown write end of socket.
> (http://bugs.gnu.org/13095)
> ** Avoid signed integer overflow in scm_product.
> ** http: read-response-body always returns bytevector or #f, never EOF.
> ** web: Correctly detect "No route to host" conditions.
> ** `system*': failure to execvp no longer leaks dangling processes.
> (http://bugs.gnu.org/13166)
> ** More sensible case-lambda* dispatch.
> (http://bugs.gnu.org/12929)
> ** Do not defer expansion of internal define-syntax forms.
> (http://bugs.gnu.org/13509)
>
>
> You can follow Guile development in the Git repository and on the Guile
> mailing lists. Guile builds from the `master' branch of Git have
> version number 2.1.x.
>
> Guile versions with an odd middle number, e.g., 2.1.*, are unstable
> development versions. Even middle numbers indicate stable versions.
> This has been the case since the 1.3.* series.
>
> Please report bugs to `bug-guile@gnu.org'. We also welcome reports of
> successful builds, which can be sent to the same email address.
>
>
> Ludovic, on behalf of the Guile team.
>
[-- Attachment #2: Type: text/html, Size: 23857 bytes --]
prev parent reply other threads:[~2013-04-10 7:41 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-10 6:51 GNU Guile 2.0.9 released Ludovic Courtès
2013-04-10 7:41 ` alex sassmannshausen [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/guile/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAKdwf2B9NCKqqW31YidcdfmBt396Y+8EDpTZHjXkH8Zey6kCNw@mail.gmail.com \
--to=alex.sassmannshausen@gmail.com \
--cc=guile-devel@gnu.org \
--cc=guile-sources@gnu.org \
--cc=guile-user@gnu.org \
--cc=info-gnu@gnu.org \
--cc=ludo@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).