1 | Revision history for Perl extension EV |
1 | Revision history for Perl extension EV |
2 | |
2 | |
3 | Changes marked with (libev) are changes in libev, and have more |
3 | Changes marked with (libev) are changes in libev, and might have more |
4 | documentation in the libev Changes file. |
4 | documentation in the libev Changes file. |
5 | |
5 | |
6 | > > midnight, to keep the example simple. If you know a way to do it correctly |
6 | 4.32 Fri Jan 24 14:21:35 CET 2020 |
7 | > > in about the same space (without requiring elaborate modules), drop me a |
7 | - (libev) fixed a bug introduced in 4.31 when timerfds and signalfds were |
8 | > > note :): |
8 | used at the same time. |
9 | > > |
9 | - (libev) 0 is now allowed as requested event mask in io watchers. |
10 | > > Dein Beispiel: |
10 | - (libev) once-per-minute wakeups will now be optimized away when |
11 | > > use Time::Local (); |
11 | timerfds are available |
12 | > > my (undef, undef, undef, $d, $m, $y) = localtime $now; |
12 | - use the new ev_io_modify in EV::IO->events, instead of the potentially |
13 | > > 86400 + Time::Local::timelocal 0, 0, 0, $d, $m, $y |
13 | slower ev_io_set. |
14 | > > |
14 | - add a bunch of mutator methods, mostly untested(!): EV::Timer->repeat, |
15 | > > Meine bevorzugte Variante: |
15 | EV::Periodic->offset, EV::Periodic->interval, |
16 | > > use Time::Local (); |
16 | EV::Periodic->reschedule_cb. |
17 | > > my (undef, undef, undef, $d, $m, $y) = localtime $now; |
17 | - minor optimisations and bugfixes. |
18 | > > (undef, undef, undef, $d, $m, $y) = localtime 86400 + 3600 + |
|
|
19 | > > Time::Local::timelocal 0, 0, 0, $d, $m, $y; |
|
|
20 | > > Time::Local::timelocal 0, 0, 0, $d, $m, $y; |
|
|
21 | > > |
|
|
22 | > > Golf: |
|
|
23 | > > use Time::Local (); |
|
|
24 | > > Time::Local::timelocal 0, 0, 0, (localtime 86400 + 3600 + |
|
|
25 | > > Time::Local::timelocal 0, 0, 0, (localtime $now)[3..5])[3..5]; |
|
|
26 | |
18 | |
27 | TODO: canary |
19 | 4.31 Fri Dec 20 21:57:00 CET 2019 |
|
|
20 | - (libev) handle backends with minimum wait time a bit better by |
|
|
21 | not waiting in the presence of already-expired timers |
|
|
22 | (behaviour reported by Felipe Gasper). |
|
|
23 | - (libev) use timerfd to detect timejumps. |
|
|
24 | - (libev) new loop flag: EVFLAG_NOTIMERFD. |
|
|
25 | |
|
|
26 | 4.30 Fri Nov 22 21:00:00 CET 2019 |
|
|
27 | - (libev) use a different and hopefully even more portable |
|
|
28 | test to disable io_uring when header files are too old, |
|
|
29 | by directly testing LINUX_VERSION_CODE. |
|
|
30 | - (libev) fix a bug in the io_uring backend that polled the wrong |
|
|
31 | backend fd, causing it to not work in many cases. |
|
|
32 | |
|
|
33 | 4.29 Fri Nov 22 15:34:29 CET 2019 |
|
|
34 | - (libev) add io uring autoconf and non-autoconf detection, |
|
|
35 | the latter of which should disable io_uring compilation |
|
|
36 | on old systems. |
|
|
37 | |
|
|
38 | 4.28 Tue Nov 19 13:55:39 CET 2019 |
|
|
39 | - (libev) fix ev_port backend, thanks to David H. Gutteridge for |
|
|
40 | - (libev) many bugfixes in linuxaio backend. |
|
|
41 | - (libev) experimental io uring interface. |
|
|
42 | reminding me to actually release the fix. |
|
|
43 | - try to name ev.h more explicitly, to hopefully improve portability. |
|
|
44 | - opportunistically round up wait times for poll and epoll backend, |
|
|
45 | to avoid unnecessary loop iterations. |
|
|
46 | - add build dependency on ev_linuxaio.c. |
|
|
47 | - quickly (re)-ported to minix 3.3 before minix crashed again. |
|
|
48 | |
|
|
49 | 4.27 Thu Jun 27 09:39:58 CEST 2019 |
|
|
50 | - (libev) completely rewritten linuxaio backend, maybe |
|
|
51 | usable as a general-use backend. |
|
|
52 | - (libev) use more aggressive assertions to catch |
|
|
53 | more usage errors. |
|
|
54 | - allow users to re-enable assert() in case it is disabled |
|
|
55 | by perl (which is typically the case). |
|
|
56 | |
|
|
57 | 4.26 Mon Jun 24 23:39:40 CEST 2019 |
|
|
58 | - (libev) included experimental linux aio backend. |
|
|
59 | - allow the linux aio backend to be used by default |
|
|
60 | only when explicitly configured during Makefile.PL time. |
|
|
61 | |
|
|
62 | 4.25 Fri Dec 21 08:04:26 CET 2018 |
|
|
63 | - (libev) updated to libev 4.25, minor fixes and enhancements. |
28 | - document the requirement to "use EV" when using EV::MakeMaker. |
64 | - document the requirement to "use EV" when using EV::MakeMaker. |
29 | - only use __register_atfork with glibc and uclibc, as musl |
65 | - only use __register_atfork with glibc and uclibc, as musl |
30 | defines __linux__, but doesn't implement the linux standard |
66 | defines __linux__, but doesn't implement the linux standard |
31 | base ABI, nor makes itself detectable via a macro, both apparently |
67 | base ABI, nor makes itself detectable via a macro, both apparently |
32 | by design, winning the "broken by design 2016 award" - well done. |
68 | by design, winning the "broken by design 2016 award" - well done. |
|
|
69 | - correct EV::periodic example 24h after midnight -> one day after |
|
|
70 | midnight (reported by Felix Ostmann). |
33 | |
71 | |
34 | 4.22 Sun Dec 20 02:34:39 CET 2015 |
72 | 4.22 Sun Dec 20 02:34:39 CET 2015 |
35 | - (libev) when epoll detects unremovable fds in the fd set, rebuild |
73 | - (libev) when epoll detects unremovable fds in the fd set, rebuild |
36 | only the epoll descriptor, not the signal pipe, to avoid |
74 | only the epoll descriptor, not the signal pipe, to avoid |
37 | SIGPIPE in ev_async_send. This doesn't solve it on fork, |
75 | SIGPIPE in ev_async_send. This doesn't solve it on fork, |