Guile 64-bit Windows support, redux

2023-06-06 Thread Mike Gran
Hello Guile,

There have been a few times where I made Guile work on 
MinGW -- usually the 32-bit, unthreaded variety -- because I wanted it
for my own entertainment.  Often around the time of the Lisp Game Jam.
The Game Jam just happened, so I was poking it again.  Although
I never actually delivered my game this year.

Janneke has also poked at Windows support a few times as well, and
he actually got it to run on 64-bit Windows.

I'd be willing [1] to update the patches for MinGW support for
review and inclusion into the main branch
for 3.0.10 or 3.2 but, only if maintainers are open, in principle,
to committing the most disruptive patch: the one where all
long integers become intptr_t to deal with Window's stupid
4-byte longs on 64-bit OSs.  Without agreeing on that as a
possibility, 64-bit Windows support is DOA.

There are a couple of slightly outdated versions of janekke's 64-bit patch.
Here, for example:

https://git.savannah.gnu.org/cgit/guile.git/commit/?h=wip-mingw&id=76950b4281c7dfff78b9ead6d3d62c070bbc1f13

Lately, with GitHub providing decent zero-cost Windows images
for their CI/CD actions, it should be possible to do a nightly pull
and 'make distcheck' off the main branch for Windows, Ubuntu,
and MacOS, without requiring the developer to use non-free tools
directly.  (But lots of non-free Javascript and who-knows-what on
GitHub's side of things.)

If this could be set up, it might stop the Windows build from getting
stale so quickly.

Also, it might be that this isn't worth doing.  After all, you can run
Guile on Cygwin and Guix on WSL on Windows 10/11 already. 
But some projects that depend on Guile do deliver on
Windows using customized versions of 2.2 or 1.8.

Let me know what you think.

-Mike Gran

[1] Last two times I volunteered myself for something on Guile/Guix,
I got quite ill. Let's not hope for a repeat.



Re: Guile 64-bit Windows support, redux

2023-06-06 Thread Jean Abou Samra
Le mardi 06 juin 2023 à 20:50 +, Mike Gran a écrit :
> Also, it might be that this isn't worth doing.  After all, you can run
> Guile on Cygwin and Guix on WSL on Windows 10/11 already. 
> But some projects that depend on Guile do deliver on
> Windows using customized versions of 2.2 or 1.8.


I would like to stress the importance of Windows support in Guile, and I thank 
you for working on it.

In spite of LilyPond being compatible with Guile 3 for more than a year, we are 
still on Guile 2.2 solely because of lack of Windows support in Guile 3. 
LilyPond is not primarily targeted at
programmers but musicians, so a large part of our user base is on Windows and 
it is absolutely unthinkable for us to drop our Windows binaries.

Jean



signature.asc
Description: This is a digitally signed message part


[EXT] Guile 64-bit Windows support, redux

2023-06-06 Thread Thompson, David
Hi Mike,

On Tue, Jun 6, 2023 at 4:51 PM Mike Gran  wrote:
>
> Hello Guile,
>
> There have been a few times where I made Guile work on
> MinGW -- usually the 32-bit, unthreaded variety -- because I wanted it
> for my own entertainment.  Often around the time of the Lisp Game Jam.
> The Game Jam just happened, so I was poking it again.  Although
> I never actually delivered my game this year.

Game jam time is also when I lament the lack of real Windows support.
I'm very interested in being able to provide Windows releases of games
built with guile-sdl2 and/or chickadee. The Common Lisp and Fennel
folks have no problem shipping things for Windows users.

> Janneke has also poked at Windows support a few times as well, and
> he actually got it to run on 64-bit Windows.

Did JIT work? When I tried this years ago it didn't. Would be a major
victory if it works now.

> I'd be willing [1] to update the patches for MinGW support for
> review and inclusion into the main branch
> for 3.0.10 or 3.2 but, only if maintainers are open, in principle,
> to committing the most disruptive patch: the one where all
> long integers become intptr_t to deal with Window's stupid
> 4-byte longs on 64-bit OSs.  Without agreeing on that as a
> possibility, 64-bit Windows support is DOA.
>
> There are a couple of slightly outdated versions of janekke's 64-bit patch.
> Here, for example:
>
> https://git.savannah.gnu.org/cgit/guile.git/commit/?h=wip-mingw&id=76950b4281c7dfff78b9ead6d3d62c070bbc1f13
>
> Lately, with GitHub providing decent zero-cost Windows images
> for their CI/CD actions, it should be possible to do a nightly pull
> and 'make distcheck' off the main branch for Windows, Ubuntu,
> and MacOS, without requiring the developer to use non-free tools
> directly.  (But lots of non-free Javascript and who-knows-what on
> GitHub's side of things.)

I'm obviously not a maintainer but I do want to be vocal in my support
for a good Windows story.  Despite how much I personally do not want
to use Windows, I do want users who do to be able to run my software.

> If this could be set up, it might stop the Windows build from getting
> stale so quickly.
>
> Also, it might be that this isn't worth doing.  After all, you can run
> Guile on Cygwin and Guix on WSL on Windows 10/11 already.
> But some projects that depend on Guile do deliver on
> Windows using customized versions of 2.2 or 1.8.

WSL is cool and all, but personally I want to ship native Windows
stuff that "just works" as much as possible.  I'm not sure what the
graphics story is like on WSL these days, but in the past dealing with
X11 compatibility and GPUs was not easy, or so I've heard. So for me,
I'd really like to see the MinGW build work acceptably (threads, JIT,
etc.)  Building with MSVC would be even better but I'll take what I
can get. :) I just get jealous whenever I look at some new language
implementation (or just some other Scheme) and see that it can do
native Windows, Linux, and MacOS builds.

- Dave



Re: [EXT] Guile 64-bit Windows support, redux

2023-06-06 Thread Mike Gran
On Tuesday, June 6, 2023 at 02:10:25 PM PDT, Thompson, David 
 wrote: 

...

>> Janneke has also poked at Windows support a few times as well, and
>> he actually got it to run on 64-bit Windows.

>Did JIT work? When I tried this years ago it didn't. Would be a major
>victory if it works now.

There were patches that made it compile, but, I don't think it ever
properly worked.  I always build without JIT.
I haven't tried to build with JIT in a while.

...

> I'm obviously not a maintainer but I do want to be vocal in my support
> for a good Windows story.  Despite how much I personally do not want
> to use Windows, I do want users who do to be able to run my software.

Same.
...

> WSL is cool and all, but personally I want to ship native Windows
> stuff that "just works" as much as possible.  I'm not sure what the 
> graphics story is like on WSL these days, but in the past dealing with
> X11 compatibility and GPUs was not easy, or so I've heard. So for me,
> I'd really like to see the MinGW build work acceptably (threads, JIT,
> etc.)  Building with MSVC would be even better but I'll take what I
> can get. :) I just get jealous whenever I look at some new language
> implementation (or just some other Scheme) and see that it can do
> native Windows, Linux, and MacOS builds.

I have seen guile-gi launch a program on MinGW using MinGW's
Gtk libraries.  I have no benchmarks.

I did attempt a build with MSVC (which is a nightmare because you have
to run autoconf in MSYS and use a batch script to translate gcc
flags into cl flags). It looked pretty bad: so many compilation errors.
I think you'd have to fix all of gnulib and then pull all of gnulib
into Guile, haha.

-Mike