public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
* libuv
@ 2015-12-02 19:32 Mr. Coin
  2015-12-02 19:49 ` libuv Tony Kelman
  2015-12-02 20:19 ` libuv Warren Young
  0 siblings, 2 replies; 3+ messages in thread
From: Mr. Coin @ 2015-12-02 19:32 UTC (permalink / raw)
  To: cygwin

Hi,

Lots of project such as node.js or neovim are using libuv
(https://github.com/libuv/libuv) which is incompatible with Cygwin.
I've spent some time trying to build it, but I get issues with
pthread.

The wonderful Neovim project has several opened issues regarding the
portability of libuv (https://github.com/neovim/neovim/issues/873)

It seems Windows are missing some POSIX system calls that Cygwin
cannot emulate possibly regarding pthread. Unfortunately I did not
find any trustable information about the feasibility to build libuv on
Cygwin one day.

I'll take a chance to get some information about this here...

Cheers,
Yves

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

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

* Re: libuv
  2015-12-02 19:32 libuv Mr. Coin
@ 2015-12-02 19:49 ` Tony Kelman
  2015-12-02 20:19 ` libuv Warren Young
  1 sibling, 0 replies; 3+ messages in thread
From: Tony Kelman @ 2015-12-02 19:49 UTC (permalink / raw)
  To: cygwin

> Lots of project such as node.js or neovim are using libuv
> (https://github.com/libuv/libuv) which is incompatible with Cygwin.
> I've spent some time trying to build it, but I get issues with
> pthread.

The first compilation error you'll get will look like "unknown type name
'pthread_barrier_t'" but that's actually pretty simple to work around
in libuv. The harder part is the lack of support in Cygwin for epoll,
inotify, and other async IO syscalls that libuv uses on unices. It might
be possible to graft together a build configuration for libuv on Cygwin
that uses WinAPI IOCP for the async parts but cygwin's posix layer for
the rest, but it would be quite a bit of work.

-Tony


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

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

* Re: libuv
  2015-12-02 19:32 libuv Mr. Coin
  2015-12-02 19:49 ` libuv Tony Kelman
@ 2015-12-02 20:19 ` Warren Young
  1 sibling, 0 replies; 3+ messages in thread
From: Warren Young @ 2015-12-02 20:19 UTC (permalink / raw)
  To: The Cygwin Mailing List

On Dec 2, 2015, at 12:32 PM, Mr. Coin <canard@canard.ch> wrote:
> 
> Lots of project such as node.js or neovim are using libuv
> which is incompatible with Cygwin.

Why are you trying to stack two I/O abstraction layers?  The whole point of libuv is that it lets you use the same code on *ix and Windows.  Why do you also need Cygwin?

I realize that libuv doesn’t completely abstract the platform, but there are a bunch of libraries that you can use together to achieve that.  libapr for general OS facilities, Qt/Gtk for GUIs, etc.

Presumably you’re interested in libuv rather than select(2) because you need the code to be really fast and scalable.  So again, why bring Cygwin into it?  That’s just going to eat up a bunch of the speed you gained by using advanced I/O polling mechanisms.

If you’re just trying to get node running, why not use the native binaries?
--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

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

end of thread, other threads:[~2015-12-02 20:19 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-12-02 19:32 libuv Mr. Coin
2015-12-02 19:49 ` libuv Tony Kelman
2015-12-02 20:19 ` libuv Warren Young

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