unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
* GNU Guile 3.0.9rc1 available for testing!
@ 2023-01-20 15:58 Ludovic Courtès
  2023-01-20 16:18 ` Thompson, David
                   ` (2 more replies)
  0 siblings, 3 replies; 22+ messages in thread
From: Ludovic Courtès @ 2023-01-20 15:58 UTC (permalink / raw)
  To: guile-devel; +Cc: Rob Browning

[-- Attachment #1: Type: text/plain, Size: 1121 bytes --]

Hello Guilers!

(Cc’ing packagers I know; feel free to ping other packagers!)

I pushed the ‘v3.0.9rc1’ tag on the ‘main’ branch and uploaded the
tarballs produced by “make distcheck” from that tag:

  https://alpha.gnu.org/gnu/guile/guile-3.0.9rc1.tar.gz
  SHA256: f34dac704b388e16541dfca5305ee48da1e5bf8e43a899f1e7927cc7c888dc65

  https://alpha.gnu.org/gnu/guile/guile-3.0.9rc1.tar.lz
  SHA256: 25507afe7733ad72f14615e7b9d5f4c5cb5abcbaa880ef15edd083d7f333d6ee

  https://alpha.gnu.org/gnu/guile/guile-3.0.9rc1.tar.xz
  SHA256: 9590a56a31de60c11b673fbbc9d0166364e270e5f7c6890d3282272fcfb2e871

These files come with a detached OpenPGP signature (a ‘.sig’ file) made
with my key, 3CE464558A84FDC69DB40CFB090B11993D9AEBB5.

Please report any issues you may find.  I’m particularly interested in
portability regressions (NetBSD and other BSDs, macOS, MinGW, as well as
architectures other than x86_64).

The SONAME has been bumped to its value as it will appear in 3.0.9.

If nothing bad comes up, I propose publishing 3.0.9 in a week or so.

Thanks in advance!

Ludo’.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 853 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: GNU Guile 3.0.9rc1 available for testing!
  2023-01-20 15:58 GNU Guile 3.0.9rc1 available for testing! Ludovic Courtès
@ 2023-01-20 16:18 ` Thompson, David
  2023-01-21 14:58   ` Jan Nieuwenhuizen
  2023-01-20 17:50 ` Aleix Conchillo Flaqué
  2023-01-22  2:12 ` Greg Troxel
  2 siblings, 1 reply; 22+ messages in thread
From: Thompson, David @ 2023-01-20 16:18 UTC (permalink / raw)
  To: Ludovic Courtès
  Cc: guile-devel, Rob Browning,
	Aleix Conchillo Flaqué <aconchillo@gmail.com>, Greg Troxel <gdt@lexort.com>, Sergei Trofimovich

Hi Ludo,

On Fri, Jan 20, 2023 at 10:58 AM Ludovic Courtès <ludo@gnu.org> wrote:
>
> Please report any issues you may find.  I’m particularly interested in
> portability regressions (NetBSD and other BSDs, macOS, MinGW, as well as
> architectures other than x86_64).

I was curious about the MinGW build, so I used a Guix command you
shared to build it:

guix build guile-next --with-git-url=guile-next=$HOME/Code/guile
--with-branch=guile-next=main --target=x86_64-w64-mingw32

I then copied the resulting /gnu/store directory somewhere writable,
copied over all the DLLs (libgc, libunistring, etc.) it needed from
/gnu/store into the 'bin' directory, and tried running with wine64 but
it failed:

```
$ guix shell wine64 -- wine64 guile.exe
MESA-INTEL: warning: Performance support disabled, consider sysctl
dev.i915.perf_stream_paranoid=0

0084:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
0084:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
0084:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
0084:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
Mingw-w64 runtime failure:
32 bit pseudo relocation at 0000000140001568 out of range, targeting
0000000319370E80, yielding the value 00000001D936F914.

abnormal program termination
```

Maybe someone else would like to give it a shot? Or even try running
it on Windows?  I hadn't tried in years, but my last experience with a
Guile MinGW build required either disabling threads and JIT or trying
to apply various patches people had floating around. So, to see a
build complete with just the upstream source and without disabling
anything is very promising!

Thanks for all the hard work on the release!

- Dave



^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: GNU Guile 3.0.9rc1 available for testing!
  2023-01-20 15:58 GNU Guile 3.0.9rc1 available for testing! Ludovic Courtès
  2023-01-20 16:18 ` Thompson, David
@ 2023-01-20 17:50 ` Aleix Conchillo Flaqué
  2023-01-23 10:45   ` Ludovic Courtès
  2023-01-22  2:12 ` Greg Troxel
  2 siblings, 1 reply; 22+ messages in thread
From: Aleix Conchillo Flaqué @ 2023-01-20 17:50 UTC (permalink / raw)
  To: Ludovic Courtès
  Cc: guile-devel, Rob Browning,
	Aleix Conchillo Flaqué <aconchillo@gmail.com>, Greg Troxel <gdt@lexort.com>, Sergei Trofimovich

[-- Attachment #1: Type: text/plain, Size: 542 bytes --]

On Fri, Jan 20, 2023 at 7:58 AM Ludovic Courtès <ludo@gnu.org> wrote:

> Hello Guilers!
>
> (Cc’ing packagers I know; feel free to ping other packagers!)
>
> I pushed the ‘v3.0.9rc1’ tag on the ‘main’ branch and uploaded the
> tarballs produced by “make distcheck” from that tag:
>
>
Awesome! Thank you!

Not because I worked on it :-), but missing JIT support on Apple Silicon
chips in the NEWS, which makes Guile *fast* on that hardware.

https://debbugs.gnu.org/cgi/bugreport.cgi?bug=44505

Best,

Aleix

[-- Attachment #2: Type: text/html, Size: 1371 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: GNU Guile 3.0.9rc1 available for testing!
  2023-01-20 16:18 ` Thompson, David
@ 2023-01-21 14:58   ` Jan Nieuwenhuizen
  2023-01-23 10:42     ` Ludovic Courtès
  0 siblings, 1 reply; 22+ messages in thread
From: Jan Nieuwenhuizen @ 2023-01-21 14:58 UTC (permalink / raw)
  To: Thompson, David; +Cc: Ludovic Courtès, guile-devel

Thompson, David writes:

Hello!

> On Fri, Jan 20, 2023 at 10:58 AM Ludovic Courtès <ludo@gnu.org> wrote:
>>
>> Please report any issues you may find.  I’m particularly interested in
>> portability regressions (NetBSD and other BSDs, macOS, MinGW, as well as
>> architectures other than x86_64).
>
> I was curious about the MinGW build, so I used a Guix command you
> shared to build it:
>
> guix build guile-next --with-git-url=guile-next=$HOME/Code/guile
> --with-branch=guile-next=main --target=x86_64-w64-mingw32

I've tried twice, but the build didn't finish -- too long silence
time somewhere?  Last time it got to

    ...
    wrote `scripts/generate-autoload.go'
      BOOTSTRAP(stage0) GUILEC scripts/help.go
    wrote `scripts/help.go'
      BOOTSTRAP(stage0) GUILEC scripts/lint.go

where it hangs, the build server showing nothing no guix-build-* in
/tmp, and a rebuild doesn't fetch the built package.  So yeah, dunno.

> I then copied the resulting /gnu/store directory somewhere writable,
> copied over all the DLLs (libgc, libunistring, etc.) it needed from
> /gnu/store into the 'bin' directory, and tried running with wine64 but
> it failed:

Yeah, I've been using something like

WINEPATH=$(guix shell wine64 -- winepath -w                                     \
    $(echo $(guix gc -R                                                         \
                  $(GUIX_PACKAGE_PATH=guix guix build                           \
                                     --target=x86_64-w64-mingw32 guile-mingw))) \
               | sed 's,$,/bin,g' | tr '\n' ';')                                \
        guix shell wine64 -- wine                                               \
        $(GUIX_PACKAGE_PATH=guix guix build --target=x86_64-w64-mingw32         \
                           guile-mingw)/bin/guile.exe                           \
        -c '(format #t "Hello  ~a world!\n" %host-type)'

that's on the wip-mingw branch that has a guile-mingw package in a
guix/

> $ guix shell wine64 -- wine64 guile.exe
[..]
> Mingw-w64 runtime failure:
> 32 bit pseudo relocation at 0000000140001568 out of range, targeting
> 0000000319370E80, yielding the value 00000001D936F914.
>
> abnormal program termination
> ```

Yeah, you need at least

    76950b428 Support for x86_64-w64-mingw32.

or something similar, or another approach for addressing the
SIZEOF_LONG==4 issue on MinGW.  And compile with --disable-jit, AFAIK
nobody got that to work just yet.

> Thanks for all the hard work on the release!

+1

Greetings,
Janneke

-- 
Jan Nieuwenhuizen <janneke@gnu.org>  | GNU LilyPond https://lilypond.org
Freelance IT https://JoyOfSource.com | Avatar® https://AvatarAcademy.com



^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: GNU Guile 3.0.9rc1 available for testing!
  2023-01-20 15:58 GNU Guile 3.0.9rc1 available for testing! Ludovic Courtès
  2023-01-20 16:18 ` Thompson, David
  2023-01-20 17:50 ` Aleix Conchillo Flaqué
@ 2023-01-22  2:12 ` Greg Troxel
  2023-01-22 14:30   ` lloda
  2023-01-22 17:41   ` Greg Troxel
  2 siblings, 2 replies; 22+ messages in thread
From: Greg Troxel @ 2023-01-22  2:12 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guile-devel

Ludovic Courtès <ludo@gnu.org> writes:

> Hello Guilers!
>
> (Cc’ing packagers I know; feel free to ping other packagers!)

I dropped the CC as I suspect all are on guile-devel.

> Please report any issues you may find.  I’m particularly interested in
> portability regressions (NetBSD and other BSDs, macOS, MinGW, as well as
> architectures other than x86_64).

Thanks for being welcoming to portability issues.

I am building from git via autogen first.  I'll try the tarball next.

(We do have a JIT/PaX issue on NetBSD which is worked around in
packaging, but that's not new and I don't want to ask you to hold this
micro over it.  I'll write a more coherent note about that separately.)

The build failed with:

----------------------------------------
make  all-recursive
Making all in lib
make  all-recursive
Making all in meta
Making all in libguile
make  all-am
  CC       libguile_3.0_la-posix.lo
In file included from ../config.h:3293:0,
                 from ../../libguile/posix.c:24:
../../libguile/posix.c:109:9: error: lvalue required as unary '&' operand
 verify (WEXITSTATUS (W_EXITCODE (127, 0)) == 127);
         ^
../../lib/verify.h:305:20: note: in expansion of macro '_GL_VERIFY'
 # define verify(R) _GL_VERIFY (R, "verify (" #R ")", -)
                    ^~~~~~~~~~
../../libguile/posix.c:109:1: note: in expansion of macro 'verify'
 verify (WEXITSTATUS (W_EXITCODE (127, 0)) == 127);
 ^~~~~~
../../libguile/posix.c:109:9: error: expression in static assertion is not an integer
 verify (WEXITSTATUS (W_EXITCODE (127, 0)) == 127);
         ^
../../lib/verify.h:305:20: note: in expansion of macro '_GL_VERIFY'
 # define verify(R) _GL_VERIFY (R, "verify (" #R ")", -)
                    ^~~~~~~~~~
../../libguile/posix.c:109:1: note: in expansion of macro 'verify'
 verify (WEXITSTATUS (W_EXITCODE (127, 0)) == 127);
 ^~~~~~
*** Error code 1

Stop.
make[3]: stopped in /home/n0/gdt/SOFTWARE/GUILE/guile/BUILD/libguile
*** Error code 1

Stop.
make[2]: stopped in /home/n0/gdt/SOFTWARE/GUILE/guile/BUILD/libguile
*** Error code 1

Stop.
make[1]: stopped in /home/gdt/SOFTWARE/GUILE/guile/BUILD
*** Error code 1

Stop.
make: stopped in /home/gdt/SOFTWARE/GUILE/guile/BUILD
----------------------------------------

NetBSD has:

  /usr/include/sys/wait.h:#define WEXITSTATUS(x)  ((int)(((unsigned int)_W_INT(x)) >> 8) & 0xff)

which looks similar enough at first glance.


Next I'll try the tarball in pkgsrc.



^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: GNU Guile 3.0.9rc1 available for testing!
  2023-01-22  2:12 ` Greg Troxel
@ 2023-01-22 14:30   ` lloda
  2023-01-22 14:39     ` Greg Troxel
  2023-01-22 17:41   ` Greg Troxel
  1 sibling, 1 reply; 22+ messages in thread
From: lloda @ 2023-01-22 14:30 UTC (permalink / raw)
  To: Greg Troxel; +Cc: Ludovic Courtès, guile-devel@gnu.org

[-- Attachment #1: Type: text/plain, Size: 118 bytes --]


This looks like https://debbugs.gnu.org/60971 <https://debbugs.gnu.org/60971> on mac os.

Regards

	Daniel



[-- Attachment #2: Type: text/html, Size: 617 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: GNU Guile 3.0.9rc1 available for testing!
  2023-01-22 14:30   ` lloda
@ 2023-01-22 14:39     ` Greg Troxel
  2023-01-23 10:48       ` Ludovic Courtès
  0 siblings, 1 reply; 22+ messages in thread
From: Greg Troxel @ 2023-01-22 14:39 UTC (permalink / raw)
  To: lloda; +Cc: Ludovic Courtès, guile-devel@gnu.org

lloda <lloda@sarc.name> writes:

> This looks like https://debbugs.gnu.org/60971 <https://debbugs.gnu.org/60971> on mac os.

Yes, it does.

My quick reaction is that if the POSIX-required macros operation on
system types that might be struct, then faking up ints for testing is
unsound.

Maybe only do verify if guile has to define macros, and don't try to
test the OS?



^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: GNU Guile 3.0.9rc1 available for testing!
  2023-01-22  2:12 ` Greg Troxel
  2023-01-22 14:30   ` lloda
@ 2023-01-22 17:41   ` Greg Troxel
  2023-01-22 23:10     ` Greg Troxel
  2023-01-23 11:19     ` Ludovic Courtès
  1 sibling, 2 replies; 22+ messages in thread
From: Greg Troxel @ 2023-01-22 17:41 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guile-devel

My second approach is using the rc tarball in pkgsrc.  I had to patch
out the verify call.  pkgsrc already works around PaX issues mostly, via
paxctl on things that do jit, after build and before use, and by

  --- libguile/loader.c.orig      2018-01-08 16:21:04.790894906 +0000
  +++ libguile/loader.c
  @@ -484,7 +484,7 @@ map_file_contents (int fd, size_t len, i
     char *data;

   #ifdef HAVE_SYS_MMAN_H
  -  data = mmap (NULL, len, PROT_READ, MAP_PRIVATE, fd, 0);
  +  data = mmap (NULL, len, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0);
     if (data == MAP_FAILED)
       SCM_SYSERROR;
     *is_read_only = 1;

because (something like, am fuzzy) mprotect (at least ours) can only
reduce not add permissions.  I still don't understand why this isn't a
more widespread issue.

With the rc tarball, the build almost works, and now stops at:

  Making all in guile-readline
  gmake[2]: Entering directory '/tmp/work/lang/guile30/work/guile-3.0.9rc1/guile-readline'
  /usr/pkg/bin/gmake  all-am
  gmake[3]: Entering directory '/tmp/work/lang/guile30/work/guile-3.0.9rc1/guile-readline'
  gmake[3]: *** No rule to make target 'ice-9/readline.scm', needed by 'ice-9/readline.go'.  Stop.
  gmake[3]: Leaving directory '/tmp/work/lang/guile30/work/guile-3.0.9rc1/guile-readline'
  gmake[2]: *** [Makefile:1984: all] Error 2
  gmake[2]: Leaving directory '/tmp/work/lang/guile30/work/guile-3.0.9rc1/guile-readline'
  gmake[1]: *** [Makefile:2152: all-recursive] Error 1
  gmake[1]: Leaving directory '/tmp/work/lang/guile30/work/guile-3.0.9rc1'
  gmake: *** [Makefile:2038: all] Error 2
  *** Error code 2

with or without -j2.   I see ice-9/readline.scm in git but not in the
rc tarball.




^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: GNU Guile 3.0.9rc1 available for testing!
  2023-01-22 17:41   ` Greg Troxel
@ 2023-01-22 23:10     ` Greg Troxel
  2023-01-23 11:02       ` Ludovic Courtès
  2023-01-23 11:19     ` Ludovic Courtès
  1 sibling, 1 reply; 22+ messages in thread
From: Greg Troxel @ 2023-01-22 23:10 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guile-devel

Greg Troxel <gdt@lexort.com> writes:

> with or without -j2.   I see ice-9/readline.scm in git but not in the
> rc tarball.

and, in guile-readline/Makefile.am I see

  if HAVE_READLINE

  SOURCES += ice-9/readline.scm

and I don't see an else with EXTRA_DIST.  I think it's a bug for make
dist contents to vary with whether or not libs are available on the
local system.



^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: GNU Guile 3.0.9rc1 available for testing!
  2023-01-21 14:58   ` Jan Nieuwenhuizen
@ 2023-01-23 10:42     ` Ludovic Courtès
  2023-01-23 13:23       ` Janneke Nieuwenhuizen
  0 siblings, 1 reply; 22+ messages in thread
From: Ludovic Courtès @ 2023-01-23 10:42 UTC (permalink / raw)
  To: Jan Nieuwenhuizen
  Cc: Thompson, David, guile-devel, Rob Browning,
	Aleix Conchillo Flaqué, Greg Troxel

Hi Jan,

Jan Nieuwenhuizen <janneke@gnu.org> skribis:

> Yeah, you need at least
>
>     76950b428 Support for x86_64-w64-mingw32.
>
> or something similar, or another approach for addressing the
> SIZEOF_LONG==4 issue on MinGW.

Oh sorry, I had completely overlooked that patch (and branch).

I’m hesitant about applying it at this late stage, also because I
haven’t thought about the possible choices and implications.  Maybe this
will have to wait until the next round (bah!)?

> And compile with --disable-jit, AFAIK nobody got that to work just
> yet.

OK.

Thanks for the heads-up!

Ludo’.



^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: GNU Guile 3.0.9rc1 available for testing!
  2023-01-20 17:50 ` Aleix Conchillo Flaqué
@ 2023-01-23 10:45   ` Ludovic Courtès
  2023-01-23 17:01     ` Aleix Conchillo Flaqué
  0 siblings, 1 reply; 22+ messages in thread
From: Ludovic Courtès @ 2023-01-23 10:45 UTC (permalink / raw)
  To: Aleix Conchillo Flaqué
  Cc: guile-devel, Rob Browning,
	Aleix Conchillo Flaqué <aconchillo@gmail.com>, Greg Troxel <gdt@lexort.com>, Sergei Trofimovich

Hola!

Aleix Conchillo Flaqué <aconchillo@gmail.com> skribis:

> Not because I worked on it :-), but missing JIT support on Apple Silicon
> chips in the NEWS, which makes Guile *fast* on that hardware.
>
> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=44505

Oops, my bad; added to NEWS!

You confirm that building from the tarball still works, right?

Thanks,
Ludo’.



^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: GNU Guile 3.0.9rc1 available for testing!
  2023-01-22 14:39     ` Greg Troxel
@ 2023-01-23 10:48       ` Ludovic Courtès
  2023-01-23 18:04         ` lloda
                           ` (2 more replies)
  0 siblings, 3 replies; 22+ messages in thread
From: Ludovic Courtès @ 2023-01-23 10:48 UTC (permalink / raw)
  To: Greg Troxel; +Cc: lloda, guile-devel@gnu.org, 60971

[-- Attachment #1: Type: text/plain, Size: 510 bytes --]

Hi,

Greg Troxel <gdt@lexort.com> skribis:

> lloda <lloda@sarc.name> writes:
>
>> This looks like https://debbugs.gnu.org/60971 <https://debbugs.gnu.org/60971> on mac os.
>
> Yes, it does.
>
> My quick reaction is that if the POSIX-required macros operation on
> system types that might be struct, then faking up ints for testing is
> unsound.
>
> Maybe only do verify if guile has to define macros, and don't try to
> test the OS?

So something like the patch below?

Thanks,
Ludo’.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 314 bytes --]

diff --git a/libguile/posix.c b/libguile/posix.c
index 74c743119..0b1fe2637 100644
--- a/libguile/posix.c
+++ b/libguile/posix.c
@@ -105,8 +105,8 @@
 # else
 #  define W_EXITCODE(ret, sig)   ((ret) << 8 | (sig))
 # endif
-#endif
 verify (WEXITSTATUS (W_EXITCODE (127, 0)) == 127);
+#endif
 
 
 #include <signal.h>

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: GNU Guile 3.0.9rc1 available for testing!
  2023-01-22 23:10     ` Greg Troxel
@ 2023-01-23 11:02       ` Ludovic Courtès
  0 siblings, 0 replies; 22+ messages in thread
From: Ludovic Courtès @ 2023-01-23 11:02 UTC (permalink / raw)
  To: Greg Troxel; +Cc: guile-devel

Hi,

Greg Troxel <gdt@lexort.com> skribis:

> and, in guile-readline/Makefile.am I see
>
>   if HAVE_READLINE
>
>   SOURCES += ice-9/readline.scm
>
> and I don't see an else with EXTRA_DIST.  I think it's a bug for make
> dist contents to vary with whether or not libs are available on the
> local system.

Oops, good catch.  I’ve fixed the machinery to require ‘HAVE_READLINE’
when running ‘make dist’ (that sounded more reliable than duplicating
the list of source files in ‘guile-readline/Makefile.am’).

Thanks,
Ludo’.



^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: GNU Guile 3.0.9rc1 available for testing!
  2023-01-22 17:41   ` Greg Troxel
  2023-01-22 23:10     ` Greg Troxel
@ 2023-01-23 11:19     ` Ludovic Courtès
  2023-01-24 15:43       ` Greg Troxel
  1 sibling, 1 reply; 22+ messages in thread
From: Ludovic Courtès @ 2023-01-23 11:19 UTC (permalink / raw)
  To: Greg Troxel; +Cc: guile-devel

Greg Troxel <gdt@lexort.com> skribis:

> My second approach is using the rc tarball in pkgsrc.  I had to patch
> out the verify call.  pkgsrc already works around PaX issues mostly, via
> paxctl on things that do jit, after build and before use, and by
>
>   --- libguile/loader.c.orig      2018-01-08 16:21:04.790894906 +0000
>   +++ libguile/loader.c
>   @@ -484,7 +484,7 @@ map_file_contents (int fd, size_t len, i
>      char *data;
>
>    #ifdef HAVE_SYS_MMAN_H
>   -  data = mmap (NULL, len, PROT_READ, MAP_PRIVATE, fd, 0);
>   +  data = mmap (NULL, len, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0);
>      if (data == MAP_FAILED)
>        SCM_SYSERROR;
>      *is_read_only = 1;
>
> because (something like, am fuzzy) mprotect (at least ours) can only
> reduce not add permissions.  I still don't understand why this isn't a
> more widespread issue.

My understanding is that the expectation of being able to later mprotect
that mapping to make it writable is a valid one per POSIX.  Quoth
<https://pubs.opengroup.org/onlinepubs/9699919799/functions/mprotect.html>:

  If PROT_WRITE is specified, the application shall ensure that it has
  opened the mapped objects in the specified address range with write
  permission, unless MAP_PRIVATE was specified in the original mapping,
  regardless of whether the file descriptors used to map the objects
  have since been closed.

Here the original file descriptors are O_RDONLY, but the mapping is
MAP_PRIVATE.

I’m not sure how to best address that.

Thoughts?

Ludo’.



^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: GNU Guile 3.0.9rc1 available for testing!
  2023-01-23 10:42     ` Ludovic Courtès
@ 2023-01-23 13:23       ` Janneke Nieuwenhuizen
  0 siblings, 0 replies; 22+ messages in thread
From: Janneke Nieuwenhuizen @ 2023-01-23 13:23 UTC (permalink / raw)
  To: Ludovic Courtès
  Cc: Thompson, David, guile-devel, Rob Browning,
	Aleix Conchillo Flaqué, Greg Troxel

Ludovic Courtès writes:

Hi Ludo,

> Jan Nieuwenhuizen <janneke@gnu.org> skribis:
>
>> Yeah, you need at least
>>
>>     76950b428 Support for x86_64-w64-mingw32.
>>
>> or something similar, or another approach for addressing the
>> SIZEOF_LONG==4 issue on MinGW.
>
> Oh sorry, I had completely overlooked that patch (and branch).

No problem.  Mike has been looking into this as well.  Also, there are
commits that should probably be squashed into this, such as

    9a29293a8 More long integer fixes for x86_64-w64-mingw32
    46bb667f2 MinGW 64: fixes hash out-of-range error for 64-bit negative numbers

> I’m hesitant about applying it at this late stage, also because I
> haven’t thought about the possible choices and implications.  Maybe this
> will have to wait until the next round (bah!)?

Yeah, that seems wise.

Also there is still an unresolved problem with file-name-convention.

We probably want

    2d82b49cf mingw: canonicalize-path: Also canonicalize drive letter and '/'.

Also, during a (cross)build, file-name-convention from build host is
used/assumed.  I tried to creat a fix

   9bfd0b544 squash! Fix 'absolute-file-name?' and others for cross-build to MinGW.
   96597fa21 Fix 'absolute-file-name?' and others for cross-build to MinGW.

but iirc, Mike found a problem with these.  Hairy stuff.

>> And compile with --disable-jit, AFAIK nobody got that to work just
>> yet.
>
> OK.
>
> Thanks for the heads-up!

You're welcome, it's great that guile at least builds with MintGW now.

Greetings,
Janneke

-- 
Janneke Nieuwenhuizen <janneke@gnu.org>  | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com




^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: GNU Guile 3.0.9rc1 available for testing!
  2023-01-23 10:45   ` Ludovic Courtès
@ 2023-01-23 17:01     ` Aleix Conchillo Flaqué
  0 siblings, 0 replies; 22+ messages in thread
From: Aleix Conchillo Flaqué @ 2023-01-23 17:01 UTC (permalink / raw)
  To: Ludovic Courtès
  Cc: guile-devel, Rob Browning,
	Aleix Conchillo Flaqué <aconchillo@gmail.com>, Greg Troxel <gdt@lexort.com>, Sergei Trofimovich

[-- Attachment #1: Type: text/plain, Size: 1523 bytes --]

On Mon, Jan 23, 2023 at 2:45 AM Ludovic Courtès <ludo@gnu.org> wrote:

> Hola!
>
>
Hola!

> Aleix Conchillo Flaqué <aconchillo@gmail.com> skribis:
>
> > Not because I worked on it :-), but missing JIT support on Apple Silicon
> > chips in the NEWS, which makes Guile *fast* on that hardware.
> >
> > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=44505
>
> Oops, my bad; added to NEWS!
>
>
Mmm.... still don't see it.


> You confirm that building from the tarball still works, right?
>
>
Actually, it doesn't. Just tried it. I'll see if I have time tonight to fix
it. Hang tight!

  CC       libguile_3.0_la-posix.lo
posix.c:109:9: error: cannot take the address of an rvalue of type 'int'
verify (WEXITSTATUS (W_EXITCODE (127, 0)) == 127);
~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/wait.h:144:27:
note: expanded from macro 'WEXITSTATUS'
#define WEXITSTATUS(x)  ((_W_INT(x) >> 8) & 0x000000ff)
                          ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/wait.h:131:34:
note: expanded from macro '_W_INT'
#define _W_INT(w)       (*(int *)&(w))  /* convert union wait to int */
                                 ^
../lib/verify.h:305:32: note: expanded from macro 'verify'
# define verify(R) _GL_VERIFY (R, "verify (" #R ")", -)
                   ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~

[-- Attachment #2: Type: text/html, Size: 3075 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: GNU Guile 3.0.9rc1 available for testing!
  2023-01-23 10:48       ` Ludovic Courtès
@ 2023-01-23 18:04         ` lloda
  2023-01-23 21:59           ` bug#60971: build failure of v3.0.9rc1 on mac os 12.6 Ludovic Courtès
  2023-01-23 18:47         ` GNU Guile 3.0.9rc1 available for testing! Aleix Conchillo Flaqué
  2023-01-25  1:44         ` Greg Troxel
  2 siblings, 1 reply; 22+ messages in thread
From: lloda @ 2023-01-23 18:04 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: Greg Troxel, guile-devel@gnu.org, 60971


lgtm, no other issues on mac os.

thanks

  Daniel





^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: GNU Guile 3.0.9rc1 available for testing!
  2023-01-23 10:48       ` Ludovic Courtès
  2023-01-23 18:04         ` lloda
@ 2023-01-23 18:47         ` Aleix Conchillo Flaqué
  2023-01-25  1:44         ` Greg Troxel
  2 siblings, 0 replies; 22+ messages in thread
From: Aleix Conchillo Flaqué @ 2023-01-23 18:47 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: Greg Troxel, lloda, guile-devel@gnu.org, 60971

[-- Attachment #1: Type: text/plain, Size: 715 bytes --]

On Mon, Jan 23, 2023 at 2:48 AM Ludovic Courtès <ludo@gnu.org> wrote:

> Hi,
>
> Greg Troxel <gdt@lexort.com> skribis:
>
> > lloda <lloda@sarc.name> writes:
> >
> >> This looks like https://debbugs.gnu.org/60971 <
> https://debbugs.gnu.org/60971> on mac os.
> >
> > Yes, it does.
> >
> > My quick reaction is that if the POSIX-required macros operation on
> > system types that might be struct, then faking up ints for testing is
> > unsound.
> >
> > Maybe only do verify if guile has to define macros, and don't try to
> > test the OS?
>
> So something like the patch below?
>

Oh, I missed the other report. Yes, this works on macOS as just reported by
Daniel. No other issues.

Aleix

[-- Attachment #2: Type: text/html, Size: 1706 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: bug#60971: build failure of v3.0.9rc1 on mac os 12.6
  2023-01-23 18:04         ` lloda
@ 2023-01-23 21:59           ` Ludovic Courtès
  0 siblings, 0 replies; 22+ messages in thread
From: Ludovic Courtès @ 2023-01-23 21:59 UTC (permalink / raw)
  To: lloda; +Cc: 60971-done, guile-devel@gnu.org, Greg Troxel

lloda <lloda@sarc.name> skribis:

> lgtm, no other issues on mac os.

Awesome, pushed as 9b20ca275dba758a194073936cde7c95311bd51e.

Ludo’.



^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: GNU Guile 3.0.9rc1 available for testing!
  2023-01-23 11:19     ` Ludovic Courtès
@ 2023-01-24 15:43       ` Greg Troxel
  0 siblings, 0 replies; 22+ messages in thread
From: Greg Troxel @ 2023-01-24 15:43 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guile-devel

Ludovic Courtès <ludo@gnu.org> writes:

> My understanding is that the expectation of being able to later mprotect
> that mapping to make it writable is a valid one per POSIX.  Quoth
> <https://pubs.opengroup.org/onlinepubs/9699919799/functions/mprotect.html>:
>
>   If PROT_WRITE is specified, the application shall ensure that it has
>   opened the mapped objects in the specified address range with write
>   permission, unless MAP_PRIVATE was specified in the original mapping,
>   regardless of whether the file descriptors used to map the objects
>   have since been closed.
>
> Here the original file descriptors are O_RDONLY, but the mapping is
> MAP_PRIVATE.
>
> I’m not sure how to best address that.
>
> Thoughts?

Thanks.  Definitely, let's keep this separate from 3.0.9.  It is not new
and it is easy for me to keep the workaround in pkgsrc.   I will consult
with our POSIX lawyers and see what comes of that.   If it turns out, as
seems likely, that this is a NetBSD bug, it will almost certainly be
fixed.

Either way, it might be good to have an ifdef with the workaround,  but
maybe with pkgsrc and few building not from pkgsrc, especially on
systems that wouldn't get the likely fix, it might be better to just not
do anything.  I think we should wait until we understand the POSIX
issues better.



^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: GNU Guile 3.0.9rc1 available for testing!
  2023-01-23 10:48       ` Ludovic Courtès
  2023-01-23 18:04         ` lloda
  2023-01-23 18:47         ` GNU Guile 3.0.9rc1 available for testing! Aleix Conchillo Flaqué
@ 2023-01-25  1:44         ` Greg Troxel
  2023-01-25 10:32           ` Ludovic Courtès
  2 siblings, 1 reply; 22+ messages in thread
From: Greg Troxel @ 2023-01-25  1:44 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guile-devel@gnu.org

Ludovic Courtès <ludo@gnu.org> writes:

> So something like the patch below?
>
> Thanks,
> Ludo’.
>
> diff --git a/libguile/posix.c b/libguile/posix.c
> index 74c743119..0b1fe2637 100644
> --- a/libguile/posix.c
> +++ b/libguile/posix.c
> @@ -105,8 +105,8 @@
>  # else
>  #  define W_EXITCODE(ret, sig)   ((ret) << 8 | (sig))
>  # endif
> -#endif
>  verify (WEXITSTATUS (W_EXITCODE (127, 0)) == 127);
> +#endif
>  
>  
>  #include <signal.h>

I see you pushed that to master and I have done a full build from master
with the pkgsrc JIT workarounds.  It mostly worked and I got this, which
may be because I purged not-needed packages (but the guile build didn't
complain at configure or check time, like it did for missing gperf which
I put back).  Or maybe I just haven't gotten this far with 3.0.9-ish.

    CC       test_foreign_object_c-test-foreign-object-c.o
    CCLD     test-foreign-object-c
  ld: ../../libguile/.libs/libguile-3.0.so: warning: warning: tmpnam() possibly used unsafely, use mkstemp() or mkdtemp()
  ld: /tmp//ccOnwVqC.ltrans0.ltrans.o: in function `finalizer':
  /home/n0/gdt/SOFTWARE/GUILE/guile/BUILD/test-suite/standalone/../../../test-suite/standalone/test-foreign-object-c.c:42: undefined reference to `rpl_free'

LTO seems enabled, but I see ranlib complaints in the build log.  I know
LTO is not new in this micro.  Maybe I'm trailing edge but it seems
slightly like living dangerously if not known to be ok -- but
--disable-lto is easy enough so no worries.

I kicked off a new build with --disable-lto, and that succeeded.  Tests
are not entirely ok, but that's not a regression.  I used the distfile
as a faux release to build guile pkgsrc from, and that built fine and
runs.

There are some issues for me to work through eventually, but for 3.0.9 I
have arrived at being ok with you releasing the current state of git
master (3 commits past rc1) as not having anything I can claim is a
regression and not anything I can't work around as before.

Greg



^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: GNU Guile 3.0.9rc1 available for testing!
  2023-01-25  1:44         ` Greg Troxel
@ 2023-01-25 10:32           ` Ludovic Courtès
  0 siblings, 0 replies; 22+ messages in thread
From: Ludovic Courtès @ 2023-01-25 10:32 UTC (permalink / raw)
  To: Greg Troxel; +Cc: guile-devel@gnu.org

[-- Attachment #1: Type: text/plain, Size: 1961 bytes --]

Hi Greg,

Greg Troxel <gdt@lexort.com> skribis:

> Ludovic Courtès <ludo@gnu.org> writes:
>
>> So something like the patch below?
>>
>> Thanks,
>> Ludo’.
>>
>> diff --git a/libguile/posix.c b/libguile/posix.c
>> index 74c743119..0b1fe2637 100644
>> --- a/libguile/posix.c
>> +++ b/libguile/posix.c
>> @@ -105,8 +105,8 @@
>>  # else
>>  #  define W_EXITCODE(ret, sig)   ((ret) << 8 | (sig))
>>  # endif
>> -#endif
>>  verify (WEXITSTATUS (W_EXITCODE (127, 0)) == 127);
>> +#endif
>>  
>>  
>>  #include <signal.h>
>
> I see you pushed that to master and I have done a full build from master
> with the pkgsrc JIT workarounds.  It mostly worked and I got this, which
> may be because I purged not-needed packages (but the guile build didn't
> complain at configure or check time, like it did for missing gperf which
> I put back).  Or maybe I just haven't gotten this far with 3.0.9-ish.
>
>     CC       test_foreign_object_c-test-foreign-object-c.o
>     CCLD     test-foreign-object-c
>   ld: ../../libguile/.libs/libguile-3.0.so: warning: warning: tmpnam() possibly used unsafely, use mkstemp() or mkdtemp()
>   ld: /tmp//ccOnwVqC.ltrans0.ltrans.o: in function `finalizer':
>   /home/n0/gdt/SOFTWARE/GUILE/guile/BUILD/test-suite/standalone/../../../test-suite/standalone/test-foreign-object-c.c:42: undefined reference to `rpl_free'

I believe this is because these C files in test-suite/standalone end up
including Gnulib headers (like <stdlib.h>), which really shouldn’t be
necessary, without linking against libgnu.a.

I believe the patch below fixes that.

[...]

> There are some issues for me to work through eventually, but for 3.0.9 I
> have arrived at being ok with you releasing the current state of git
> master (3 commits past rc1) as not having anything I can claim is a
> regression and not anything I can't work around as before.

Sounds good.

Thanks for your feedback!

Ludo’.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 1205 bytes --]

diff --git a/test-suite/standalone/Makefile.am b/test-suite/standalone/Makefile.am
index 547241afa..0b5d05ddb 100644
--- a/test-suite/standalone/Makefile.am
+++ b/test-suite/standalone/Makefile.am
@@ -1,7 +1,7 @@
 ## Process this file with automake to produce Makefile.in.
 ##
 ## Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-##   2011, 2012, 2013, 2014, 2020, 2021, 2022 Free Software Foundation, Inc.
+##   2011, 2012, 2013, 2014, 2020, 2021, 2022, 2023 Free Software Foundation, Inc.
 ##
 ## This file is part of GUILE.
 ##
@@ -39,8 +39,7 @@ TESTS_ENVIRONMENT =						\
 
 ## Check for headers in $(srcdir) and build dir before $(CPPFLAGS), which
 ## may point us to an old, installed version of guile.
-AM_CPPFLAGS = -I$(top_srcdir) -I$(top_builddir) \
-	      -I$(top_srcdir)/lib -I$(top_builddir)/lib
+AM_CPPFLAGS = -I$(top_srcdir) -I$(top_builddir)
 
 test_cflags =					\
   -I$(top_srcdir)/test-suite/standalone -I.	\
@@ -55,7 +54,7 @@ LIBGUILE_LDADD =							\
 
 
 snarfcppopts =						\
-  -I$(top_srcdir) -I$(top_srcdir)/lib -I$(top_builddir)/lib -I$(top_builddir) \
+  -I$(top_srcdir) -I$(top_builddir)			\
   -I. $(DEFS) $(DEFAULT_INCLUDES) $(CPPFLAGS) $(CFLAGS)
 
 SUFFIXES = .x

^ permalink raw reply related	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2023-01-25 10:32 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-20 15:58 GNU Guile 3.0.9rc1 available for testing! Ludovic Courtès
2023-01-20 16:18 ` Thompson, David
2023-01-21 14:58   ` Jan Nieuwenhuizen
2023-01-23 10:42     ` Ludovic Courtès
2023-01-23 13:23       ` Janneke Nieuwenhuizen
2023-01-20 17:50 ` Aleix Conchillo Flaqué
2023-01-23 10:45   ` Ludovic Courtès
2023-01-23 17:01     ` Aleix Conchillo Flaqué
2023-01-22  2:12 ` Greg Troxel
2023-01-22 14:30   ` lloda
2023-01-22 14:39     ` Greg Troxel
2023-01-23 10:48       ` Ludovic Courtès
2023-01-23 18:04         ` lloda
2023-01-23 21:59           ` bug#60971: build failure of v3.0.9rc1 on mac os 12.6 Ludovic Courtès
2023-01-23 18:47         ` GNU Guile 3.0.9rc1 available for testing! Aleix Conchillo Flaqué
2023-01-25  1:44         ` Greg Troxel
2023-01-25 10:32           ` Ludovic Courtès
2023-01-22 17:41   ` Greg Troxel
2023-01-22 23:10     ` Greg Troxel
2023-01-23 11:02       ` Ludovic Courtès
2023-01-23 11:19     ` Ludovic Courtès
2023-01-24 15:43       ` Greg Troxel

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).