From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Tim Van den Langenbergh Newsgroups: gmane.lisp.guile.user Subject: Re: GNU Guile 3.0.5 released Date: Thu, 07 Jan 2021 15:18:09 +0100 Message-ID: <23002898.SvzvZz0Yi2@terra> References: <878s94gah7.fsf@pobox.com> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="7496"; mail-complaints-to="usenet@ciao.gmane.io" Cc: guile-user To: Andy Wingo Original-X-From: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Thu Jan 07 15:20:34 2021 Return-path: Envelope-to: guile-user@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kxW9Q-0001ia-A9 for guile-user@m.gmane-mx.org; Thu, 07 Jan 2021 15:20:32 +0100 Original-Received: from localhost ([::1]:57302 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kxW9P-0002Ex-9R for guile-user@m.gmane-mx.org; Thu, 07 Jan 2021 09:20:31 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:48818) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kxW7H-00013P-6p for guile-user@gnu.org; Thu, 07 Jan 2021 09:18:20 -0500 Original-Received: from mout.gmx.net ([212.227.17.21]:44333) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kxW7E-0006qq-JE for guile-user@gnu.org; Thu, 07 Jan 2021 09:18:18 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1610029091; bh=ZO1AHhURi6yNVWNvDPdz8o6XNAe9928sMtmIwNX8EBo=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=Z/v7z+sz0YxCB1tHLA3VbgJOKwREv/jYA4znwDgMQkSNfVWvsnkhJ1nWtaw7ZWB17 5tPzTrnSfZElnWjaiH5zKrFM0iPC7JK44zQIqjixcOkoKW8M5vezKirEdkw2BAqSI/ ftwCJHKAEkHcoJrB0WE8B/gOpFNoyaZo+i+l/HpQ= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Original-Received: from terra.localnet ([94.227.125.226]) by mail.gmx.com (mrgmx104 [212.227.17.174]) with ESMTPSA (Nemesis) id 1MlNtF-1kGVv42AVJ-00lkiQ; Thu, 07 Jan 2021 15:18:11 +0100 In-Reply-To: <878s94gah7.fsf@pobox.com> X-Provags-ID: V03:K1:7E5tydJ2qcakRNHZXkM4USrTwV46r/e3B3jVDZibXG+s2EoXjz1 xzEpcX13BVmhnIBXOB9W6T6Uy9b0DDd5MyrzstS1Y9maR1PQsIACd93+hyW+i31TWL2xyTN eikjjjtK5XiNWFuGiHymGbu2/mvJEj9fk98zF4043wbHef7ca+kBsXhQKHiIWXbGZGzNW6/ O6M/W5euwZl2pT73HlokA== X-UI-Out-Filterresults: notjunk:1;V03:K0:JXCObzYtJbA=:zImvrhSF0E08HODWqFYsVh dbtcKyS/7+F6BmT4yBeKQ+NCQ6mrsit7k8vvOIqGTC1mA/xetSOWby27bHb609rZhuQZeQFDG xXCkStl0vmsSGyu387QvLbuIXgj0h8IIoTZpgrnHL9pdWFffHzRr8c9+Etex9hj7xOMMWJqDe YLLKVddlcv8JXjk5ZMTTFZPWqlJquQaCK91/XoDiShHck9HZNYC2+A8JNBQdcPJBxXqAGWxOe 7b2Hh9f2ld5YfySML3MemDEDAJR7w2rq+ZxBpRzoog/UQOwBkvdkyIVjm361uyxP0HISRjOjz YfiqTAF1srY1YZcfwNRr9d4SV1ThB+sPs713kMVL+73xWVmuHj3/56HKqIRmqaX0QL+p0X0cI 81q01ZBEQJ6j1I5hApZBZ+zJ1KLwt9BEfBLN/0tmxQt8zds11Xr9Ez6TNFbbrkHHtXSfObhMM qtXomGMn0y33luUpaq2FGVJegs8hCsaAkM8P8oiqiHD3SjYtPcN6QC1looLy8qKYKO7CRzDqa L9UbuehXmjZn9R2OHkt3/pz3XsC2kj/MaPF6Zk+c2PJsRRl8Ufaru2OSzJevJr1RLwwd3CBK6 vexjAOkLqWvmSQjuGWInkrVGT0W/wawhFOcg2jEZINh7e6ZoSN7J2VvulkfhohF9hZ3UHSL+f baIEHPpQL2wTqwe51CKCW362lgTq3zkuqBvQWoOiD/+qi9LFafvZBZIXz7nJEPoZco1WRh026 wP26r9UjgIagDtF27VViznrrtOpvq8xOx/vjs40SEOjtu198rotOsyDT6JlcAs7tqCdqnS5j Received-SPF: pass client-ip=212.227.17.21; envelope-from=tmt_vdl@gmx.com; helo=mout.gmx.net X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Original-Sender: "guile-user" Xref: news.gmane.io gmane.lisp.guile.user:17160 Archived-At: On 2021=E5=B9=B41=E6=9C=887=E6=97=A5=E6=9C=A8=E6=9B=9C=E6=97=A5 14=E6=99=82= 09=E5=88=8608=E7=A7=92 CET you wrote: > We are delighted to announce GNU Guile release 3.0.5, the latest in the > 3.0 stable release series. >=20 > Compared to the previous release in the 3.0 series, Guile 3.0.5 can > compile chained "if" expressions into the equivalent of what a C > compiler does with "switch". It also adds some new warning passes. >=20 > Compared to the previous stable series (2.2.x), Guile 3.0 adds support > for just-in-time native code generation, speeding up all Guile programs. > See the NEWS extract at the end of the mail for full details. >=20 >=20 > The Guile web page is located at http://gnu.org/software/guile/, and > among other things, it contains a copy of the Guile manual and pointers > to more resources. >=20 > Guile is an implementation of the Scheme programming language, packaged > for use in a wide variety of environments. In addition to implementing > the R5RS, R6RS, and R7RS Scheme standards, Guile includes full access to > POSIX system calls, networking support, multiple threads, dynamic > linking, a foreign function call interface, powerful string processing, > and HTTP client and server implementations. >=20 > Guile can run interactively, as a script interpreter, and as a Scheme > compiler to VM bytecode. 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. It is easy to call Scheme code > from C code and vice versa. Applications can add new functions, data > types, control structures, and even syntax to Guile, to create a > domain-specific language tailored to the task at hand. >=20 > Guile 3.0.5 can be installed in parallel with Guile 2.2.x; see > http://www.gnu.org/software/guile/manual/html_node/Parallel-Installations= =2Eht > ml. >=20 > A more detailed NEWS summary follows these details on how to get the > Guile sources. >=20 > Here are the compressed sources: > http://ftp.gnu.org/gnu/guile/guile-3.0.5.tar.lz (10MB) > http://ftp.gnu.org/gnu/guile/guile-3.0.5.tar.xz (12MB) > http://ftp.gnu.org/gnu/guile/guile-3.0.5.tar.gz (21MB) >=20 > Here are the GPG detached signatures[*]: > http://ftp.gnu.org/gnu/guile/guile-3.0.5.tar.lz.sig > http://ftp.gnu.org/gnu/guile/guile-3.0.5.tar.xz.sig > http://ftp.gnu.org/gnu/guile/guile-3.0.5.tar.gz.sig >=20 > Use a mirror for higher download bandwidth: > http://www.gnu.org/order/ftp.html >=20 > Here are the SHA256 checksums: >=20 > a484eeffbd4d655b0c05b1382df8d40f1e561f7e71b963065762f6a6a497c675=20 > guile-3.0.5.tar.lz > 2d76fb023d2366126a5fac04704f9bd843846b80cccba6da5d752318b03350f1=20 > guile-3.0.5.tar.xz > 222046009a20b432ffa7c11b8d5a1d9ad0d8627be05cc1e8af612bc54ba2ea85=20 > guile-3.0.5.tar.gz >=20 > [*] 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: >=20 > gpg --verify guile-3.0.5.tar.gz.sig >=20 > If that command fails because you don't have the required public key, > then run this command to import it: >=20 > gpg --keyserver keys.gnupg.net --recv-keys > 4FD4D288D445934E0A14F9A5A8803732E4436885 >=20 > and rerun the 'gpg --verify' command. >=20 > This release was bootstrapped with the following tools: > Autoconf 2.69 > Automake 1.16.2 > Libtool 2.4.6 > Gnulib v0.1-1157-gb03f418 > Makeinfo 6.7 >=20 > An extract from NEWS follows. >=20 >=20 > Changes in 3.0.5 (since 3.0.4) >=20 > * New interfaces and functionality >=20 > ** O(1) compilation of `case' and related expressions >=20 > Guile now optimizes chains of eq? comparisons to constants, resulting in > O(1) dispatch time, regardless of the length of the chain. This > optimization is also unlocked in many cases for `match' expressions with > many similar clauses whose first differentiator are constants. >=20 > ** New (ice-9 copy-tree) module >=20 > This module includes the `copy-tree' procedure that was previously > implemented in C and present in the default `(guile)' module. See > "Copying" in the manual. >=20 > ** New warning: use-before-definition >=20 > This analysis, enabled at `-W1', issues warnings for programs that use > top-level variables before they are defined. >=20 > ** New warning: non-idempotent-definition >=20 > This analysis, enabled at `-W1', issues warnings for programs that whose > use of a variable is ambiguous. For example, in the program: >=20 > (define saved-add +) > (define + error) >=20 > The intention would seem to be to "save" the value of the base `+' > procedure, then override it locally. However if this program is ever > loaded twice, then the second time it is loaded, `+' will be taken from > the local binding instead of the import. Users that want this kind of > behavior should either use lexical bindings instead of top-level > bindings, or otherwise rename important clobbered bindings via modules. >=20 > * New deprecations >=20 > ** `copy-tree' in the default environment, and `scm_copy_tree' from C >=20 > Import the `(ice-9 copy-tree)' module instead. >=20 > ** `unbound-variable-analysis`, `macro-use-before-definition-analysis` >=20 > These bindings from `(language tree-il analyze)' are replaced by the > use-before-definition analysis, which powers a number of warnings. Use > `make-use-before-definition-analysis', but note that these interfaces > are quite intimate parts of the compiler! >=20 > * Incompatible changes >=20 > ** `copy' read-option removed >=20 > This read option would include a copy of the source expression in the > source-properties of each subexpression. This option has always been > off by default and lost most of its use value with the switch to a > compiler in Guile 2.0. Looks like a great release. Congratulations and I'm looking forward to play= ing=20 around with it. =2DTim