bug#25921: pkgsrc patches: Dragonfly support

2017-03-14 Thread Andy Wingo
On Wed 01 Mar 2017 21:27, Thomas Klausner  writes:

> $NetBSD: patch-lib_signal.in.h,v 1.1 2016/12/03 03:15:33 marino Exp $
>
> DragonFly support.
>
> --- lib/signal.in.h.orig  2016-06-29 09:12:27 UTC
> +++ lib/signal.in.h
> @@ -61,6 +61,7 @@
>  #if (@GNULIB_PTHREAD_SIGMASK@ || defined GNULIB_POSIXCHECK) \
>  && ((defined __APPLE__ && defined __MACH__) \
>  || defined __FreeBSD__ || defined __OpenBSD__ || defined __osf__ \
> +|| defined __DragonFly__ \
>  || defined __sun || defined __ANDROID__) \
>  && ! defined __GLIBC__
>  # include 
>

This file comes from gnulib.  Can you send this patch there?
bug-gnu...@gnu.org.  That way you will fix it once and reap the benefits
many places.

> $NetBSD: patch-libguile_threads.c,v 1.1 2016/12/03 03:15:33 marino Exp $
>
> DragonFly support.
>
> --- libguile/threads.c.orig   2016-06-20 20:35:06 UTC
> +++ libguile/threads.c
> @@ -2252,7 +2252,7 @@ scm_ia64_ar_bsp (const void *opaque)
>return (void *) ctx->uc_mcontext.sc_ar_bsp;
>  }
>  # endif /* linux */
> -# ifdef __FreeBSD__
> +# if defined __FreeBSD__ || defined __DragonFly__
>  #  include 
>  void *

This is for ia64 support which AFAIU DragonFly doesn't do; I think you
can drop this one.

Closing this one as I think there's nothing for me to do here.

Andy





bug#25922: pkgsrc patches: older Darwin support

2017-03-14 Thread Andy Wingo
On Wed 01 Mar 2017 21:28, Thomas Klausner  writes:

> Another pkgsrc patch concerns itself with supporting older Darwin
> releases, attached. Can you please merge it?
>  Thomas
>
> $NetBSD: patch-libguile_stime.c,v 1.1 2016/10/19 14:56:17 adam Exp $
>
> Fix building on Darwin.
>
> --- libguile/stime.c.orig 2016-10-19 07:55:02.0 +
> +++ libguile/stime.c
> @@ -828,7 +828,7 @@ scm_init_stime()
>if (clock_gettime (CLOCK_REALTIME, &posix_real_time_base) == 0)
>  get_internal_real_time = get_internal_real_time_posix_timer;
>  
> -#ifdef HAVE_POSIX_CPUTIME
> +#if defined(HAVE_POSIX_CPUTIME) && defined(HAVE_CLOCK_GETCPUCLOCKID)
>{
>  clockid_t dummy;
>  

I believe this was fixed in 2.1.6, so I think you can drop this one.

Andy





bug#25923: pkgsrc patches: improve mkostemp support

2017-03-14 Thread Andy Wingo
On Wed 01 Mar 2017 21:29, Thomas Klausner  writes:

> --- libguile/filesys.c.orig   2016-12-15 00:03:33.0 +
> +++ libguile/filesys.c
> @@ -1486,6 +1486,15 @@ SCM_DEFINE (scm_i_mkstemp, "mkstemp!", 1
>mode_bits = scm_i_mode_bits (mode);
>  }
>  
> +#ifdef __APPLE__
> +  /* https://debbugs.gnu.org/cgi/bugreport.cgi?bug=24862#23 */
> +  open_flags &= O_APPEND|O_SHLOCK|O_EXLOCK|O_CLOEXEC;
> +#endif
> +#ifdef __NetBSD__
> +  /* Restrict to list of flags documented in man page. */
> +  open_flags &= O_APPEND|O_DIRECT|O_SHLOCK|O_EXLOCK|O_SYNC|O_CLOEXEC;
> +#endif
> +
>SCM_SYSCALL (rv = mkostemp (c_tmpl, open_flags));
>if (rv == -1)
>  SCM_SYSERROR;

I believe this was fixed in 2.1.6 as well so you can drop this one too.

Cheers,

Andy





bug#25912: 2.1.7 segfaults on cygwin

2017-03-14 Thread Andy Wingo
On Fri 03 Mar 2017 15:32, Mike Gran  writes:

> I also can replicate the Cygwin problem as originally described.

I understand that with the fix in 2.1.8, that things are working
correctly now; closing the report.  Thanks for the sleuthing, szgyg and
Mike!

Andy





bug#25791: address argument to atomic operation must be a pointer to _Atomic type with 2.1.7 on macOS

2017-03-14 Thread Andy Wingo
On Wed 01 Mar 2017 17:43, Andy Wingo  writes:

> On Sun 19 Feb 2017 09:41, ilove zfs  writes:
>
>> On macOS 10.11 and 10.12 building with Xcode 8, guile 2.1.7 fails to
>> compile with several errors saying "address argument to atomic
>> operation must be a pointer to _Atomic type." I
>> can avoid this by setting ac_cv_header_stdatomic_h=no.
>>
>> Build logs here:
>> https://gist.github.com/ilovezfs/b18b7e6160e0a4c5da297cc430961f63
>> https://gist.github.com/57e1513e03ede26dc97c0f63eaad3a98
>>
>> Build failure is
>> ```
>>   CC   libguile_2.2_la-arrays.lo
>>   CC   libguile_2.2_la-async.lo
>> In file included from async.c:27:
>> ../libguile/atomics-internal.h:37:10: error: address argument to
>> atomic operation must be a pointer to _Atomic type ('gl_uint32_t *'
>> (aka 'unsigned int *') invalid)
>>   return atomic_fetch_sub (loc, arg);
>>  ^ ~~~
>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/8.0.0/include/stdatomic.h:149:43:
>> note: expanded from macro 'atomic_fetch_sub'
>> #define atomic_fetch_sub(object, operand) __c11_atomic_fetch_sub(object, 
>> operand, __ATOMIC_SEQ_CST)
>> ```
>> and several similar errors.
>>
>> Previously (as of guile 2.1.4) I had been able to work around the issue 
>> without setting ac_cv_header_stdatomic_h=no with this patch:
>> https://raw.githubusercontent.com/ilovezfs/formula-patches/d2798a468346a7a28fbcd1c8aa3c1ccd5627b03f/guile/guile-atomic-type.patch
>>
>> However, the patch is no longer sufficient since now void** is one the types 
>> needing _Atomic, which isn't allowed.
>
> Any ideas here?  Sure would be nice to release a Guile with atomics that
> compiles with clang.

Fixed in 2.1.8 I think.

Andy





bug#24657: Autoconf macro GUILE_PROGS only looks for guile without version suffix even if given version - patch included

2017-03-14 Thread Freja Nordsiek
Found a bug in the modifications you made. Sorry for not catching this
before it got included into the Guile 2.1.8 release.

When constructing the candidates for the guile executable
(_guile_candidates), the version numbers essentially get reverse. This
is not noticeable for 2.2 since 2.2 reversed is still 2.2. But it is a
major issue for Guile 2.0.x and 1.8.x where 0.2 and 8.1 get generated
meaning the right executables could be missed. For the current version
of GUILE_PROGS, looking for 2.0 results in the following candidates

guile-0.2 guile0.2 guile-2 guile2 guile

and for 1.8

guile-8.1 guile8.1 guile-1 guile1 guile


The fix is luckily pretty trivial. A patch is attached.

For convenience of anyone trying to reproduce this bug, here are two
shell scripts that will take the version as the first input argument
and return the generated guile executable candidates.

The version with the bug is

#!/bin/sh
_guile_required_version=$1
_guile_candidates=guile
_tmp=
for v in `echo "$_guile_required_version" | tr . ' '`; do
  if test -n "$_tmp"; then _tmp=.$_tmp; fi
  _tmp=$v$_tmp
  _guile_candidates="guile-$_tmp guile$_tmp $_guile_candidates"
done
echo $_guile_candidates

And the version with the fix is

#!/bin/sh
_guile_required_version=$1
_guile_candidates=guile
_tmp=
for v in `echo "$_guile_required_version" | tr . ' '`; do
  if test -n "$_tmp"; then _tmp=$_tmp.; fi
  _tmp=$_tmp$v
  _guile_candidates="guile-$_tmp guile$_tmp $_guile_candidates"
done
echo $_guile_candidates

On Thu, Feb 23, 2017 at 10:43 AM, Andy Wingo  wrote:
> Hi Freja,
>
> Thanks for this bug report and the patch, and sorry for the delay :)
>
> On Mon 10 Oct 2016 11:45, Freja Nordsiek  writes:
>
>> While trying to build a package that uses guile with autotools, I
>> found a problem in the provided GUILE_PROGS macro.
>>
>> The macro searches for the executables guile, guild, guile-config, and
>> guile-tools. The problem is that even if the macro is given the
>> version, it only looks for guile, guild, etc. with no version suffix.
>
> Applied your patch with some small modifications; attached.  Let me know
> if it works for you!
>
> Andy
>
From 205f41d41b94f12670394ec526dddeaf1416d740 Mon Sep 17 00:00:00 2001
From: Freja Nordsiek 
Date: Tue, 14 Mar 2017 15:14:47 +0100
Subject: [PATCH] Fixed reversed version order bug in GUILE_PROGS Autoconf
 macro.

---
 meta/guile.m4 | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/meta/guile.m4 b/meta/guile.m4
index 4a2e285..501a21c 100644
--- a/meta/guile.m4
+++ b/meta/guile.m4
@@ -234,8 +234,8 @@ AC_DEFUN([GUILE_PROGS],
   _guile_candidates=guile
   _tmp=
   for v in `echo "$_guile_required_version" | tr . ' '`; do
-if test -n "$_tmp"; then _tmp=.$_tmp; fi
-_tmp=$v$_tmp
+if test -n "$_tmp"; then _tmp=$_tmp.; fi
+_tmp=$_tmp$v
 _guile_candidates="guile-$_tmp guile$_tmp $_guile_candidates"
   done
 
-- 
2.9.3



bug#24657: Autoconf macro GUILE_PROGS only looks for guile without version suffix even if given version - patch included

2017-03-14 Thread Andy Wingo
On Tue 14 Mar 2017 15:25, Freja Nordsiek  writes:

> Found a bug in the modifications you made. Sorry for not catching this
> before it got included into the Guile 2.1.8 release.

Thank you!  Applied.  Note that in the gnu coding standards you need an
entry in the commit log for every file you modify.  Blah, I know, but
that's how it is.

Andy





bug#26058: utf16->string and utf32->string don't conform to R6RS

2017-03-14 Thread Taylan Ulrich Bayırlı/Kammer
Andy Wingo  writes:

> On Mon 13 Mar 2017 19:10, taylanbayi...@gmail.com (Taylan Ulrich 
> "Bayırlı/Kammer") writes:
>
>> If I do binary I/O, the following situations are possible:
>>
>> 1. I'm guaranteed to get any possible bytes that happen to form a valid
>>BOM at the start of the stream as-is in the returned bytevector; the
>>binary I/O interface doesn't see such bytes as anything special, as
>>it could simply be coincidence that the stream starts with such
>>bytes.
>
> (1).  But I thought this bug was about using a bytevector as a source
> and then doing textual I/O on it, no?

I have a feeling we're somehow talking past each other. :-) As far as
I'm concerned, the bug is just that the procedures don't conform to the
specification.

It would of course be good if the behavior of these procedures was
somehow in harmony with the behavior of I/O operations, but I don't see
any issues arising from adopting the R6RS behavior of the procedures
utf16->string and utf32->string.  Do you?

Taylan





bug#26058: utf16->string and utf32->string don't conform to R6RS

2017-03-14 Thread Andy Wingo
On Tue 14 Mar 2017 16:03, taylanbayi...@gmail.com (Taylan Ulrich 
"Bayırlı/Kammer") writes:

> Andy Wingo  writes:
>
>> On Mon 13 Mar 2017 19:10, taylanbayi...@gmail.com (Taylan Ulrich 
>> "Bayırlı/Kammer") writes:
>>
>>> If I do binary I/O, the following situations are possible:
>>>
>>> 1. I'm guaranteed to get any possible bytes that happen to form a valid
>>>BOM at the start of the stream as-is in the returned bytevector; the
>>>binary I/O interface doesn't see such bytes as anything special, as
>>>it could simply be coincidence that the stream starts with such
>>>bytes.
>>
>> (1).  But I thought this bug was about using a bytevector as a source
>> and then doing textual I/O on it, no?
>
> I have a feeling we're somehow talking past each other. :-) As far as
> I'm concerned, the bug is just that the procedures don't conform to the
> specification.
>
> It would of course be good if the behavior of these procedures was
> somehow in harmony with the behavior of I/O operations, but I don't see
> any issues arising from adopting the R6RS behavior of the procedures
> utf16->string and utf32->string.  Do you?

Adopting the behavior is more or less fine.  If it can be done while
relying on the existing behavior, that is better than something ad-hoc
in a module.

Andy