ChanServ changed the topic of #wayland to: https://wayland.freedesktop.org | Discussion about the Wayland protocol and its implementations, plus libinput | register your nick to speak
fmuellner_ has quit [Ping timeout: 480 seconds]
smallville7123 has joined #wayland
<smallville7123>
hi
<smallville7123>
hmmm Header "time.h" has symbol "CLOCK_MONOTONIC" : NO
<smallville7123>
hmmm C shared or static library 'rt' not found
<smallville7123>
Dependency "expat" not found
<repetitivestrain>
all of these are not present on windows, i think
<repetitivestrain>
aside from expat
<smallville7123>
expat can be built via vcpkg :)
<smallville7123>
wonder what the performance will be like
<smallville7123>
hmmm seems like we need libxml
<smallville7123>
wonder if libxml2 will work
nerdopolis has joined #wayland
<smallville7123>
repetitivestrain: ;)
<smallville7123>
:) *
<repetitivestrain>
what?
co1umbarius has joined #wayland
columbarius has quit [Ping timeout: 480 seconds]
<smallville7123>
hmmm egl\meson.build:14:0: ERROR: Program 'nm' not found or not executable
floof58 has quit [Read error: Connection reset by peer]
floof58 has joined #wayland
Company has quit [Quit: Leaving]
junaid has joined #wayland
jgrulich has joined #wayland
mvlad has joined #wayland
Major_Biscuit has joined #wayland
manuel1985 has joined #wayland
<smallville7123>
it seems i might be able to build it in cygwin
<smallville7123>
unfortunately i get sys/epoll.h: No such file or directory
<smallville7123>
but the meson configuration succeeds without needing to modify it tho
kts has joined #wayland
tzimmermann has joined #wayland
<smallville7123>
$ cygcheck -p sys/epoll.h Found 0 matches for sys/epoll.h
smallville7123 is now known as Guest49
smallville7123 has joined #wayland
rasterman has joined #wayland
danvet has joined #wayland
<daniels>
epoll isn’t there on Windows
<daniels>
if you want to make the library work on Windows, you’ll need to spend some serious time understanding a) what it is that’s being used, b) how they’re used, c) what an appropriate replacement would be
Guest49 has quit [Ping timeout: 480 seconds]
smallville7123 has quit [Ping timeout: 480 seconds]
<smallville7123>
hmm "Cygwin doesn't implement epoll() at all, its poll() implementation is done in terms of select() (therefore giving no speed advantage at all)"
<pq>
smallville7123, while I said it's easier to port libwayland, sorry if I gave the impression that it would be easy. :-)
<pq>
It's still easier than reinventing it all from scratch.
<smallville7123>
:)
<smallville7123>
welp now i gotta work out if cygwin sockets or winsocks sockets would be faster
<smallville7123>
in terms of attempting to re-implement epoll
<pq>
wouldn't the epoll equivalent be more like WatchForMultipleObjects or whatwasit?
<smallville7123>
" Use WaitForMultipleObjects to wait on all the events at once. This has the disadvantage of only being able to wait on MAXIMUM_WAIT_OBJECTS objects at once (64)"
<smallville7123>
oof
<pq>
ah, that
<pq>
and wow, what a limit
<pq>
or, you could replace the libwayland event loop implementation with an actual portable event loop library
<smallville7123>
hmmm
<pq>
hopefully
<smallville7123>
could we just use `select` instead of `epoll` for now?
<smallville7123>
assuming epoll is just a fast version of select
<pq>
if you can re-shuffle the fds so that you actually can use select(), sure
<smallville7123>
hmmm ok
<pq>
read the API doc, it's quite very different in its limitations
<repetitivestrain>
wow, what a limit indeed
<repetitivestrain>
64 objects is shocking, that's less than you can wait for with even plain old `select' (assuming of course your fds are in range)
<smallville7123>
and cygwin does not possess kqueue :(
<kennylevinsen>
What you are looking for in Windows might be an I/O completion port, which does not have the 64-way restriction. See WSAConnect/WSAAccept/WSARead/etc.
* any1
would start by trying to replace epoll with something like libev, libevent or libuv.
<any1>
Or just read the sources for those libraries and see how they do it.
andyrtr_ has joined #wayland
<repetitivestrain>
smallville7123: how are you going to replace POSIX shared memory? you might want to work out that problem first
<repetitivestrain>
before bothering with replacing pselect/ppoll/whatever
andyrtr has quit [Read error: Connection reset by peer]
andyrtr_ is now known as andyrtr
smallville7123 has quit [Ping timeout: 480 seconds]
<pq>
I think that libwayland rolling its own event loop stuff was ultimately a mistake. It shouldn't be in libwayland in the first place, just let everyone use their favorite event loop lib instead.
<pq>
But cannot remove it now, because that would break the ABI.
<pq>
smallville7123, *you* could remove it though, because you're working on a downstream fork.