yshui / picom

A lightweight compositor for X11 with animation support
https://picom.app/
Other
4.1k stars 585 forks source link

Replace libev with libuv #1222

Closed theoparis closed 6 months ago

theoparis commented 6 months ago

It seems like the github repository for libev hasn't been updated for 8 years, and there is a PR that fixes compatibility with C++17 that will never be merged due to the github repository being unmaintained. Additionally, libev seems to have design issues - I tried to fork it but it turns out the ev_loop struct is defined in a C file instead of a .h file and it is hard to move it to the h file without rewriting the macro system it uses. Additionally, the libev website only supports http 😬

Example of the design issues from there being no struct defined in ev.h: image

yshui commented 6 months ago

None of the things you quoted are problems of libev. Not exposing ev_loop in headers is a common C design pattern (read about it here: https://en.wikipedia.org/wiki/Opaque_pointer)

If we actually found a bug in libev, then replacing it would become necessary. I don't see a point for now.

yshui commented 6 months ago

Also duplicate of #1163