unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
From: Andy Wingo <wingo@pobox.com>
To: "Mike Gran" <spk121@yahoo.com>
Cc: guile-devel@gnu.org
Subject: Re: Cygwin port of Guile 2.2
Date: Fri, 14 Apr 2017 10:35:34 +0200	[thread overview]
Message-ID: <87lgr38jzd.fsf@pobox.com> (raw)
In-Reply-To: <874ly49l54.fsf@joshua.spikycactus.dnsalias.com> (Mike Gran's message of "Tue, 04 Apr 2017 09:45:43 -0700")

On Tue 04 Apr 2017 18:45, "Mike Gran" <spk121@yahoo.com> writes:

> I push a branch that mostly makes Guile 2.2 work on Cygwin.

Neat.  LGTM with some nits, with the exception of the "(throw
'unresolved)" patch -- the corresponding catch is in
test-suite/test-suite/lib.scm:344.

> Cygwin's uselocale is broken and can segrault.  I fell back
> to the standard nl-langinfo.  I understand the issue and may
> push a patch upstream to Cygwin sometime.

That would be great.  Can you add a comment to this effect to the line
where you force the nl_langinfo path?  It would be nice to be able to
remove this in the future.

> Also Cygwin's langinfo is incomplete with regards to LC
> MONETARY.  This also is fixable upstream in Cygwin.

I didn't recall seeing a patch here but if there was, please note this
situation there.

> Cygwin requires stability on both ends of a pipe being used
> for inter-thread communication.  If one tries to read from a
> pipe that is closing on the other end, Cygwin may fault.  I
> worked around this by replacing pipes with a
> producer/consumer pattern of semaphores and mutex-protected
> variables.  A dirty workaround.

This was the part I liked least, as you can imagine :)  Oh well
though.  I think it is fine as it is, if you add a comment as to why
it's there.  Of course if you can find a solution that works with pipes,
that would be ideal!

> Lastly, Cygwin's fork just doesn't play well with Guile's
> new GC and threading model.  Despite a copy of days in the
> guts of it all, I don't understand the specifics of the
> issue.  So, in the branch, I disabled forking altogether,
> and by extension, popen and friends.

I guess the new thing being the finalizer thread?  In theory before the
fork, Guile will stop the finalizer thread.  If that's not working, that
could be it.

Another option would be to disable fork() but only if Guile is built
with threads.  Actually this is probably better -- I bet there are Guile
people that expect to be able to fork on Cygwin and would be OK if their
Guile had no threads.

Please feel free to push to master once there are adequate comments.
Someone will come later and want to enable fork() on Cygwin with threads
and will need to know why it's disabled and what they could do to fix it
:)

Thanks!

Andy



  parent reply	other threads:[~2017-04-14  8:35 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-04 16:45 Cygwin port of Guile 2.2 Mike Gran
2017-04-04 17:03 ` Eli Zaretskii
2017-04-14  8:35 ` Andy Wingo [this message]
2017-04-14 13:41   ` Derek Upham
2017-04-17  8:04     ` Andy Wingo
2017-04-17 15:05       ` Derek Upham
2017-05-01 20:48         ` Derek Upham
2017-05-02 19:35           ` Andy Wingo
2017-05-03  3:18             ` Derek Upham
2017-05-03  9:24               ` Andy Wingo
2017-05-03  9:39                 ` szgyg
2017-05-03 14:21                 ` Derek Upham
2017-05-09 19:08                   ` Andy Wingo
2017-05-12 14:13                     ` Derek Upham
2017-05-15 20:06                       ` Andy Wingo
2017-05-04  5:21               ` zv

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87lgr38jzd.fsf@pobox.com \
    --to=wingo@pobox.com \
    --cc=guile-devel@gnu.org \
    --cc=spk121@yahoo.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).