Subject: bug#74805: 30.0.92; Trying to build scratch/igc on Cygwin

From: Eli Zaretskii <[email-masked]>
Date: Sat, 21 Dec 2024 09:24:22 +0200

> Date: Fri, 20 Dec 2024 18:48:37 -0500
> Cc: [email-masked], Richard Brooksby <[email-masked]>
> From: Ken Brown <[email-masked]>
> 
> This is an update on my attempts to port the MPS to Cygwin and build the 
> scratch/igc branch.  The GitHub repo that I cited above now consists of 
> 4 branches:
> 
> 1. The "master" branch is an MPS fork with README.Cygwin added.  This 
> file explains in detail what I'm summarizing here.
> 
> 2. The "w3" branch attempts to use the Windows interface on Cygwin.  For 
> example, it uses direct calls to VirtualAlloc instead of Cygwin's mmap. 
> This attempt fails because it's not compatible with Cygwin's fork.
> 
> 3. The "mmap" branch is a straightforward port, mostly imitating the 
> FreeBSD port.  It currently (with Cygwin 3.5.5) fails because of a 
> limitation of Cygwin's mmap.  But I have a simple patch to Cygwin in the 
> works that removes that limitation.  With that patch, 37 of the 38 MPS 
> tests pass.  I still need to debug the failing test.  I'm cautiously 
> optimistic that I can get this approach to work.  Either way, I expect 
> the Cygwin patch to soon be available in a test release of Cygwin 3.6.0 
> so that other Cygwin users can try it.
> 
> 4. The "generic" branch uses generic implementations of some of the MPS 
> features.  For example, it uses malloc instead of mmap.  This passes all 
> of the MPS tests, and Emacs seems to work well so far in limited 
> testing.  I suspect that there may be some performance problems, but I 
> haven't seen them yet.
> 
> Once I've determined whether or not the mmap approach will work, I'll 
> post the MPS patches here either for the mmap branch or the generic branch.

Thanks for the update, I think this is very good news.