pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/lang/guile20 Updated guile20 to 2.0.12.



details:   https://anonhg.NetBSD.org/pkgsrc/rev/aef4da3d3da8
branches:  trunk
changeset: 349838:aef4da3d3da8
user:      wiz <wiz%pkgsrc.org@localhost>
date:      Sat Jul 16 09:17:53 2016 +0000

description:
Updated guile20 to 2.0.12.

Changes in 2.0.12 (since 2.0.11):

* Notable changes

** FFI: Add support for functions that set 'errno'

When accessing POSIX functions from a system's libc via Guile's dynamic
FFI, you commonly want to access the 'errno' variable to be able to
produce useful diagnostic messages.

This is now possible using 'pointer->procedure' or
'scm_pointer_to_procedure_with_errno'.  See "Dynamic FFI" in the manual.

** The #!r6rs directive now influences read syntax

The #!r6rs directive now changes the per-port reader options to make
Guile's reader conform more closely to the R6RS syntax.  In particular:

  - It makes the reader case sensitive.
  - It disables the recognition of keyword syntax in conflict with the
    R6RS (and R5RS).
  - It enables the `square-brackets', `hungry-eol-escapes' and
    `r6rs-hex-escapes' reader options.

** 'read' now accepts "\(" as equivalent to "("

This is indented for use at the beginning of lines in multi-line strings
to avoid confusing Emacs' lisp modes.  Previously "\(" was an error.

** SRFI-14 character data set upgraded to Unicode 8.0.0

** SRFI-19 table of leap seconds updated

** 'string-hash', 'read-string', and 'write' have been optimized

** GOOPS bug fix for inherited accessor methods

In the port of GOOPS to Guile 2.0, we introduced a bug related to
accessor methods.  The bug resulted in GOOPS assuming that a slot S in
an object whose class is C would always be present in instances of all
subclasses C, and allocated to the same struct index.  This is not the
case for multiple inheritance.  This behavior has been fixed to be as it
was in 1.8.

One aspect of this change may cause confusion among users.  Previously
if you defined a class C:

  (use-modules (oop goops))
  (define-class C ()
    (a #:getter get-a))

And now you define a subclass, intending to provide an #:init-value for
the slot A:

  (define-class D ()
    (a #:init-value 42))

Really what you have done is define in D a new slot with the same name,
overriding the existing slot.  The problem comes in that before fixing
this bug (but not in 1.8), the getter 'get-a' would succeed for
instances of D, even though 'get-a' should only work for the slot 'a'
that is defined on class C, not any other slot that happens to have the
same name and be in a class with C as a superclass.

It would be possible to "merge" the slot definitions on C and D, but
that part of the meta-object protocol (`compute-slots' et al) is not
fully implemented.

Somewhat relatedly, GOOPS also had a fix around #:init-value on
class-allocated slots.  GOOPS was re-initializing the value of slots
with #:class or #:each-subclass allocation every time instances of that
class was allocated.  This has been fixed.

* New interfaces

** New SRFI-28 string formatting implementation

See "SRFI-28" in the manual.

** New (ice-9 unicode) module

See "Characters" in the manual.

** Web server

The (web server) module now exports 'make-server-impl', 'server-impl?',
and related procedures.  Likewise, (web server http) exports 'http'.

** New procedures: 'string-utf8-length' and 'scm_c_string_utf8_length'

See "Bytevectors as Strings" in the manual, for more.

** New 'EXIT_SUCCESS' and 'EXIT_FAILURE' Scheme variables

See "Processes" in the manual.

** New C functions to disable automatic SMOB finalization

The new 'scm_set_automatic_finalization_enabled' C function allows you
to choose whether automatic object finalization should be enabled (as
was the case until now, and still is by default.)  This is meant for
applications that are not thread-safe nor async-safe; such applications
can disable automatic finalization and call the new 'scm_run_finalizers'
function when appropriate.

See the "Garbage Collecting Smobs" and "Smobs" sections in the manual.

** Cross-compilation to ARM

More ARM cross-compilation targets are supported: "arm.*eb",
"^aarch64.*be", and "aarch64".

* New deprecation

** The undocumented and unused C function 'scm_string_hash' is now deprecated

* Bugs fixed

** Compiler
*** 'call-with-prompt' does not truncate multiple-value returns
    (<http://bugs.gnu.org/14347>)
*** Use permissions of source file for compiled file
    (<http://bugs.gnu.org/18477>)
*** Fix bug when inlining some functions with optional arguments
    (<http://bugs.gnu.org/17634>)
*** Avoid quadratic expansion time in 'and' and 'or' macros
    (<http://bugs.gnu.org/17147>)
*** Fix expander bug introduced when adding support for tail patterns
    (<http://lists.gnu.org/archive/html/guile-user/2015-09/msg00017.html>)
*** Handle ~p in 'format' warnings (<http://bugs.gnu.org/18299>)
*** Fix bug that exposed `list' invocations to CSE
    (<http://bugs.gnu.org/21899>)
*** Reduce eq? and eqv? over constants using equal?
    (<http://bugs.gnu.org/21855>)
*** Skip invalid .go files found in GUILE_LOAD_COMPILED_PATH

** Threads
*** Fix data races leading to corruption (<http://bugs.gnu.org/22152>)

** Memory management
*** Fix race between SMOB marking and finalization
    (<http://bugs.gnu.org/19883>)

** Ports
*** Setting GUILE_INSTALL_LOCALE=1 sets port default charset from locale
*** Fix port position handling on binary input ports
    (<http://bugs.gnu.org/20302>)
*** Bytevector and custom binary ports to use ISO-8859-1
    (<http://bugs.gnu.org/20200>)
*** Fix buffer overrun with unbuffered custom binary input ports
    (<http://bugs.gnu.org/19621>)
*** Fix memory corruption that arose when using 'get-bytevector-n'
    (<http://bugs.gnu.org/17466>)

** System
*** {get,set}sockopt now expect type 'int' for SO_SNDBUF/SO_RCVBUF
*** 'system*' now available on MS-Windows
*** 'open-pipe' now available on MS-Windows
*** Better support for file names containing backslashes on Windows

** Web
*** 'split-and-decode-uri-path' no longer decodes "+" to space
*** HTTP: Support date strings with a leading space for hours
    (<http://bugs.gnu.org/23421>)
*** HTTP: Accept empty reason phrases (<http://bugs.gnu.org/22273>)
*** HTTP: 'Location' header can now contain URI references, not just
    absolute URIs
*** HTTP: Improve chunked-mode support (<http://bugs.gnu.org/19939>)
*** HTTP: 'open-socket-for-uri' now sets better OS buffering parameters
    (<http://bugs.gnu.org/15368>)

** Miscellaneous
*** Fix 'atan' procedure when applied to complex numbers
*** Fix Texinfo to HTML conversion for @itemize and @acronym
    (<http://bugs.gnu.org/21772>)
*** 'bytevector-fill!' accepts fill arguments greater than 127
    (<http://bugs.gnu.org/19027>)
*** 'bytevector-copy' correctly copies SRFI-4 homogeneous vectors
   (<http://bugs.gnu.org/18866>)
*** 'strerror' no longer hangs when passed a non-integer argument
    (<http://bugs.gnu.org/18065>)
*** 'scm_boot_guile' now gracefully handles argc == 0
    (<http://bugs.gnu.org/18680>)
*** Fix 'SCM_SMOB_OBJECT_LOC' definition (<http://bugs.gnu.org/18495>)
*** Fix bug where 'bit-count*' was not using its second argument
*** SRFI-1 'length+' raises an error for non-lists and dotted lists
    (<http://bugs.gnu.org/17296>)
*** Add documentation for SXPath (<http://bugs.gnu.org/19478>)

diffstat:

 lang/guile20/Makefile                      |  10 ++++++++--
 lang/guile20/PLIST                         |   9 +++++++--
 lang/guile20/distinfo                      |  11 +++++------
 lang/guile20/patches/patch-libguile_i18n.c |  16 ----------------
 4 files changed, 20 insertions(+), 26 deletions(-)

diffs (126 lines):

diff -r 9487415affd9 -r aef4da3d3da8 lang/guile20/Makefile
--- a/lang/guile20/Makefile     Sat Jul 16 08:36:02 2016 +0000
+++ b/lang/guile20/Makefile     Sat Jul 16 09:17:53 2016 +0000
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.2 2016/05/28 15:25:56 richard Exp $
+# $NetBSD: Makefile,v 1.3 2016/07/16 09:17:53 wiz Exp $
 
-DISTNAME=      guile-2.0.11
+DISTNAME=      guile-2.0.12
 PKGNAME=       ${DISTNAME:S/guile/guile20/}
 CATEGORIES=    lang
 MASTER_SITES=  ftp://ftp.gnu.org/gnu/guile/
@@ -31,6 +31,8 @@
 USE_TOOLS+=    gmake pkg-config
 
 PKGCONFIG_OVERRIDE+=   meta/guile-2.0.pc.in
+# known broken: test-loose-ends on NetBSD/current
+# https://debbugs.gnu.org/cgi/bugreport.cgi?bug=24003
 TEST_TARGET=           check
 
 SUBST_CLASSES+=                tools
@@ -42,6 +44,10 @@
 # XXX: less tests would fail if we made libunistring use GNU iconv too
 #USE_GNU_ICONV=                yes
 
+# https://debbugs.gnu.org/cgi/bugreport.cgi?bug=24002
+post-configure:
+       ${ECHO} '#define FLEXIBLE_ARRAY_MEMBER /**/' >> ${WRKSRC}/config.h
+
 .include "../../devel/gmp/buildlink3.mk"
 .include "../../converters/libiconv/buildlink3.mk"
 .include "../../devel/gettext-lib/buildlink3.mk"
diff -r 9487415affd9 -r aef4da3d3da8 lang/guile20/PLIST
--- a/lang/guile20/PLIST        Sat Jul 16 08:36:02 2016 +0000
+++ b/lang/guile20/PLIST        Sat Jul 16 09:17:53 2016 +0000
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.1 2014/11/01 13:24:37 wiz Exp $
+@comment $NetBSD: PLIST,v 1.2 2016/07/16 09:17:53 wiz Exp $
 guile/2.0/bin/guild
 guile/2.0/bin/guile
 guile/2.0/bin/guile-config
@@ -113,6 +113,7 @@
 guile/2.0/include/guile/2.0/libguile/threads.h
 guile/2.0/include/guile/2.0/libguile/throw.h
 guile/2.0/include/guile/2.0/libguile/trees.h
+guile/2.0/include/guile/2.0/libguile/unicode.h
 guile/2.0/include/guile/2.0/libguile/uniform.h
 guile/2.0/include/guile/2.0/libguile/validate.h
 guile/2.0/include/guile/2.0/libguile/values.h
@@ -193,6 +194,7 @@
 guile/2.0/lib/guile/2.0/ccache/ice-9/threads.go
 guile/2.0/lib/guile/2.0/ccache/ice-9/time.go
 guile/2.0/lib/guile/2.0/ccache/ice-9/top-repl.go
+guile/2.0/lib/guile/2.0/ccache/ice-9/unicode.go
 guile/2.0/lib/guile/2.0/ccache/ice-9/vlist.go
 guile/2.0/lib/guile/2.0/ccache/ice-9/weak-vector.go
 guile/2.0/lib/guile/2.0/ccache/language/assembly.go
@@ -315,6 +317,7 @@
 guile/2.0/lib/guile/2.0/ccache/srfi/srfi-2.go
 guile/2.0/lib/guile/2.0/ccache/srfi/srfi-26.go
 guile/2.0/lib/guile/2.0/ccache/srfi/srfi-27.go
+guile/2.0/lib/guile/2.0/ccache/srfi/srfi-28.go
 guile/2.0/lib/guile/2.0/ccache/srfi/srfi-31.go
 guile/2.0/lib/guile/2.0/ccache/srfi/srfi-34.go
 guile/2.0/lib/guile/2.0/ccache/srfi/srfi-35.go
@@ -390,7 +393,7 @@
 guile/2.0/lib/guile/2.0/ccache/web/server/http.go
 guile/2.0/lib/guile/2.0/ccache/web/uri.go
 guile/2.0/lib/libguile-2.0.la
-guile/2.0/lib/libguile-2.0.so.22.7.2-gdb.scm
+guile/2.0/lib/libguile-2.0.so.22.8.0-gdb.scm
 guile/2.0/lib/libguilereadline-v-18.la
 guile/2.0/lib/pkgconfig/guile-2.0.pc
 guile/2.0/man/man1/guile.1
@@ -465,6 +468,7 @@
 guile/2.0/share/guile/2.0/ice-9/threads.scm
 guile/2.0/share/guile/2.0/ice-9/time.scm
 guile/2.0/share/guile/2.0/ice-9/top-repl.scm
+guile/2.0/share/guile/2.0/ice-9/unicode.scm
 guile/2.0/share/guile/2.0/ice-9/vlist.scm
 guile/2.0/share/guile/2.0/ice-9/weak-vector.scm
 guile/2.0/share/guile/2.0/language/assembly.scm
@@ -587,6 +591,7 @@
 guile/2.0/share/guile/2.0/srfi/srfi-2.scm
 guile/2.0/share/guile/2.0/srfi/srfi-26.scm
 guile/2.0/share/guile/2.0/srfi/srfi-27.scm
+guile/2.0/share/guile/2.0/srfi/srfi-28.scm
 guile/2.0/share/guile/2.0/srfi/srfi-31.scm
 guile/2.0/share/guile/2.0/srfi/srfi-34.scm
 guile/2.0/share/guile/2.0/srfi/srfi-35.scm
diff -r 9487415affd9 -r aef4da3d3da8 lang/guile20/distinfo
--- a/lang/guile20/distinfo     Sat Jul 16 08:36:02 2016 +0000
+++ b/lang/guile20/distinfo     Sat Jul 16 09:17:53 2016 +0000
@@ -1,7 +1,6 @@
-$NetBSD: distinfo,v 1.2 2015/11/03 22:50:36 agc Exp $
+$NetBSD: distinfo,v 1.3 2016/07/16 09:17:53 wiz Exp $
 
-SHA1 (guile-2.0.11.tar.gz) = 3cdd1c4956414bffadea13e5a1ca08949016a802
-RMD160 (guile-2.0.11.tar.gz) = e375607a569cba8ebecd9a15d4c25abe10abfd85
-SHA512 (guile-2.0.11.tar.gz) = dc1a30d44e6d432fab2407d72385e959af863f6feba6cca5813b4de24c92200c78b44f336d1f4fa8c7b4058dea880982787c69888c91a2236fd2fb1d313137fd
-Size (guile-2.0.11.tar.gz) = 7516053 bytes
-SHA1 (patch-libguile_i18n.c) = 814c609362097a70821cc4142ab898ab1badf3a5
+SHA1 (guile-2.0.12.tar.gz) = 51eeedadb1e12be2b728afca0a8685f69cf55f04
+RMD160 (guile-2.0.12.tar.gz) = 2967ee3a3214d1dd6f901539cf963dd2388589e6
+SHA512 (guile-2.0.12.tar.gz) = 638562b18bca8f5192ea116f89de5802c1193440c6394bbc2aad873a5b897dc9a2a05f05208c089437626d25ea4ab016bea56feb04a8cdea26d7e495cd5b3a7b
+Size (guile-2.0.12.tar.gz) = 7421088 bytes
diff -r 9487415affd9 -r aef4da3d3da8 lang/guile20/patches/patch-libguile_i18n.c
--- a/lang/guile20/patches/patch-libguile_i18n.c        Sat Jul 16 08:36:02 2016 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-$NetBSD: patch-libguile_i18n.c,v 1.1 2014/11/01 13:24:37 wiz Exp $
-
-NetBSD provides newlocale and strcoll_l, but not uselocale.
-http://debbugs.gnu.org/cgi/bugreport.cgi?bug=18898
-
---- libguile/i18n.c.orig       2014-01-21 21:25:11.000000000 +0000
-+++ libguile/i18n.c
-@@ -40,7 +40,7 @@
- #include <unicase.h>
- #include <unistr.h>
- 
--#if (defined HAVE_NEWLOCALE) && (defined HAVE_STRCOLL_L)
-+#if (defined HAVE_NEWLOCALE) && (defined HAVE_STRCOLL_L) && (defined HAVE_USELOCALE)
- /* The GNU thread-aware locale API is documented in ``Thread-Aware Locale
-    Model, a Proposal'', by Ulrich Drepper:
- 



Home | Main Index | Thread Index | Old Index