From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Andy Wingo Newsgroups: gmane.lisp.guile.devel,gmane.lisp.guile.user Subject: NEWS for 1.9.15 -> 2.0.0 Date: Tue, 15 Feb 2011 09:27:12 +0100 Message-ID: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: dough.gmane.org 1297758712 2811 80.91.229.12 (15 Feb 2011 08:31:52 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Tue, 15 Feb 2011 08:31:52 +0000 (UTC) To: guile-devel , guile-user Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Tue Feb 15 09:31:48 2011 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1PpGJs-0006Ka-IW for guile-devel@m.gmane.org; Tue, 15 Feb 2011 09:31:48 +0100 Original-Received: from localhost ([127.0.0.1]:41634 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PpGCP-00066M-Ol for guile-devel@m.gmane.org; Tue, 15 Feb 2011 03:23:53 -0500 Original-Received: from [140.186.70.92] (port=43373 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PpGB0-0005wI-G4 for guile-devel@gnu.org; Tue, 15 Feb 2011 03:23:44 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PpGAf-0003kD-AP for guile-devel@gnu.org; Tue, 15 Feb 2011 03:22:06 -0500 Original-Received: from a-pb-sasl-sd.pobox.com ([64.74.157.62]:65506 helo=sasl.smtp.pobox.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PpGAf-0003k8-3v; Tue, 15 Feb 2011 03:22:05 -0500 Original-Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTP id 0F5C44FCC; Tue, 15 Feb 2011 03:23:09 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=from:to :subject:date:message-id:mime-version:content-type; s=sasl; bh=a FwIUWHWWbKyhhIdJum0H/AjHrk=; b=FdiGgK/te4AcuOMY4JtnUAxGH8bKDhRhM PKAfEnuN5pQtvccByM2ou95q/NM3RCqetVFnhVeHL6UjpAMfYaAUCShdKDdp/MCk f+s1elmJ3I5BHhlETIcekY289Y6XBwZeWTRb8scoj4/dvJ4kBSgAHvg6GLFsYHx7 YfNM+LtUsc= DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=from:to:subject :date:message-id:mime-version:content-type; q=dns; s=sasl; b=cIm 3Nw2hIfs+oQh/x7+xFNUr+8KGMvRF9147eU4zF1zHYsv6z8UCMwiHW0M53QG4Suc lbZVaaGlpUHHGuW9l4RrC3ZxRuFagBVzeMXQ66Vv7km4JKH/1ztDXOdHz5nNKj2G p6nqTmgsPV7C4Q9f8qvAnJhPRHbv47Tba2FhuwI0= Original-Received: from a-pb-sasl-sd.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTP id EEDA54FCB; Tue, 15 Feb 2011 03:23:07 -0500 (EST) Original-Received: from unquote.localdomain (unknown [90.164.198.39]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTPSA id 1B4FB4FC7; Tue, 15 Feb 2011 03:23:05 -0500 (EST) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) X-Pobox-Relay-ID: D1782FD0-38DC-11E0-9C8D-AF401E47CF6F-02397024!a-pb-sasl-sd.pobox.com X-detected-operating-system: by eggs.gnu.org: Solaris 10 (beta) X-Received-From: 64.74.157.62 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:11629 gmane.lisp.guile.user:8436 Archived-At: Hi all, I was thinking that for 2.0, the NEWS that we would post would be cumulative: all the changes of note that a user of 1.8 will see when upgrading to 2.0. But there have been some changes since the 1.9.15, so I figured I'd post them here separately: Changes since the 1.9.15 prerelease: ** `unquote' and `unquote-splicing' accept multiple expressions As per the R6RS, these syntax operators can now accept any number of expressions to unquote. ** `getopt-long' parsing errors throw to `quit', not `misc-error' This change should inhibit backtraces on argument parsing errors. `getopt-long' has been modified to print out the error that it throws itself. ** New helpers: `print-exception', `set-exception-printer!' These functions implement an extensible exception printer. Guile registers printers for all of the exceptions it throws. Users may add their own printers. There is also `scm_print_exception', for use by C programs. Pleasantly, this allows SRFI-35 and R6RS exceptions to be printed appropriately. ** `positions' reader option enabled by default This change allows primitive-load without --auto-compile to also propagate source information through the expander, for better errors and to let macros know their source locations. The compiler was already turning it on anyway. ** `load' is a macro (!) that resolves paths relative to source file dir The familiar Schem `load' procedure is now a macro that captures the name of the source file being expanded, and dispatches to the new `load-in-vicinity'. Referencing `load' by bare name returns a closure that embeds the current source file name. This fix allows `load' of relative paths to be resolved with respect to the location of the file that calls `load'. ** "autocompile" -> "auto-compile" The "--autocompile" and "--no-autocompile" arguments were renamed to have a dash, for consistency with the GUILE_AUTO_COMPILE environment variable, and with common conventions. A number of variables were also appropriately renamed. ** `scm_primitive_load' defaults to UTF-8, not Latin-1 Like `compile-file', `primitive-load' now defaults to UTF-8. ** Warning now available for auto-compiled files. See the `%auto-compilation-options' variable. Warnings at auto-compilation time are preceded with the `*current-warning-prefix*' (a fluid). ** Deprecated: primitive properties The `primitive-make-property', `primitive-property-set!', `primitive-property-ref', and `primitive-property-del!' procedures were crufty and only used to implement object properties, which has a new, threadsafe implementation. Use object properties or weak hash tables instead. ** New syntax: define-once `define-once' is like Lisp's `defvar': it creates a toplevel binding, but only if one does not exist already. ** Added four new sets of fast quotient and remainder operators Added four new sets of fast quotient and remainder operators with different semantics than the R5RS operators. They support not only integers, but all reals, including exact rationals and inexact floating point numbers. These procedures accept two real numbers N and D, where the divisor D must be non-zero. Each set of operators computes an integer quotient Q and a real remainder R such that N = Q*D + R and |R| < |D|. They differ only in how N/D is rounded to produce Q. `floor-quotient' and `floor-remainder' compute Q and R, respectively, where Q has been rounded toward negative infinity. `floor/' returns both Q and R, and is more efficient than computing each separately. Note that when applied to integers, `floor-remainder' is equivalent to the R5RS integer-only `modulo' operator. `ceiling-quotient', `ceiling-remainder', and `ceiling/' are similar except that Q is rounded toward positive infinity. For `truncate-quotient', `truncate-remainder', and `truncate/', Q is rounded toward zero. Note that when applied to integers, `truncate-quotient' and `truncate-remainder' are equivalent to the R5RS integer-only operators `quotient' and `remainder'. For `round-quotient', `round-remainder', and `round/', Q is rounded to the nearest integer, with ties going to the nearest even integer. ** Improved exactness handling for complex number parsing When parsing non-real complex numbers, exactness specifiers are now applied to each component, as is done in PLT Scheme. For complex numbers written in rectangular form, exactness specifiers are applied to the real and imaginary parts before calling scm_make_rectangular. For complex numbers written in polar form, exactness specifiers are applied to the magnitude and angle before calling scm_make_polar. Previously, exactness specifiers were applied to the number as a whole _after_ calling scm_make_rectangular or scm_make_polar. For example, (string->number "#i5.0+0i") now does the equivalent of: (make-rectangular (exact->inexact 5.0) (exact->inexact 0)) which yields 5.0+0.0i. Previously it did the equivalent of: (exact->inexact (make-rectangular 5.0 0)) which yielded 5.0. Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2006 Free Software Foundation, Inc. Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that the copyright notice and this permission notice are preserved, thus giving the recipient permission to redistribute in turn. Permission is granted to distribute modified versions of this document, or of portions of it, under the above conditions, provided also that they carry prominent notices stating who last changed them. -- http://wingolog.org/