Hello community, here is the log from the commit of package libev for openSUSE:Factory checked in at 2017-08-06 11:24:20 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libev (Old) and /work/SRC/openSUSE:Factory/.libev.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libev" Sun Aug 6 11:24:20 2017 rev:15 rq:514058 version:4.24 Changes: -------- --- /work/SRC/openSUSE:Factory/libev/libev.changes 2016-02-12 11:21:25.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.libev.new/libev.changes 2017-08-06 11:24:21.595669129 +0200 @@ -1,0 +2,14 @@ +Mon Jul 17 08:52:41 UTC 2017 - [email protected] + +- Version update to latest release 4.24: + * bump version to 4.24, as the release tarball inexplicably + didn't have the right version in ev.h, even though the cvs-tagged + version did have the right one (reported by Ales Teska). +- Version update to release 4.23: + * move some declarations at the beginning to help certain retarded + microsoft compilers, even though their documentation claims + otherwise (reported by Ruslan Osmanov). +- Run over with spec-cleaner and remove empty comment lines +- Remove mandriva condition + +------------------------------------------------------------------- Old: ---- libev-4.22.tar.gz New: ---- libev-4.24.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libev.spec ++++++ --- /var/tmp/diff_new_pack.SnGm5r/_old 2017-08-06 11:24:22.891486576 +0200 +++ /var/tmp/diff_new_pack.SnGm5r/_new 2017-08-06 11:24:22.899485448 +0200 @@ -1,7 +1,7 @@ # # spec file for package libev # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,39 +16,27 @@ # -%if 0%{?mandriva_version:1} -%define __libtoolize /bin/true -%endif - +%define library_name libev4 Name: libev -Version: 4.22 +Version: 4.24 Release: 0 -# Summary: A full-featured and high-performance event loop library License: BSD-2-Clause Group: Development/Libraries/C and C++ -# Url: http://software.schmorp.de/pkg/libev.html Source: http://dist.schmorp.de/%{name}/%{name}-%{version}.tar.gz # Upstream has received patches to add pkg-config support for years but it always ignored them (yes, no answer at all). But since every distribution creates it we just follow. Source1: libev.pc Source99: baselibs.conf -# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch0: libev-4.15_compiler_warnings.patch -# BuildRequires: pkgconfig -# -# -BuildRoot: %{_tmppath}/%{name}-%{version}-build %description A full-featured and high-performance event loop that is loosely modelled after libevent, but without its limitations and bugs. It is used, among others, in the GNU Virtual Private Ethernet and rxvt-unicode packages. -%define library_name libev4 %package -n %{library_name} -# Summary: A full-featured and high-performance event loop library Group: Development/Libraries/C and C++ @@ -60,7 +48,6 @@ This package holds the shared libraries of libev. %package devel -# Summary: Development files for libev Group: Development/Libraries/C and C++ Requires: %{library_name} = %{version} @@ -80,7 +67,6 @@ sed -i 's;@VERSION@;%{version};' %{SOURCE1} %build -orig_CFLAGS=1; export orig_CFLAGS CFLAGS="%{optflags} -fno-strict-aliasing -Wno-unused" %configure \ --docdir=%{_docdir} \ @@ -88,21 +74,19 @@ make %{?_smp_mflags} %check -make check +make %{?_smp_mflags} check %install -%{?make_install} %{!?make_install:make install DESTDIR=%{buildroot}} +%make_install rm -v %{buildroot}%{_libdir}/libev.la mkdir -p %{buildroot}%{_libdir}/pkgconfig cp %{SOURCE1} %{buildroot}%{_libdir}/pkgconfig/libev.pc %post -n %{library_name} -p /sbin/ldconfig - %postun -n %{library_name} -p /sbin/ldconfig %files devel -%defattr(-,root,root,-) %doc LICENSE README ev.pod Changes %{_includedir}/ev++.h %{_includedir}/ev.h @@ -112,7 +96,6 @@ %{_libdir}/pkgconfig/libev.pc %files -n %{library_name} -%defattr(-,root,root,-) %{_libdir}/libev.so.4* %changelog ++++++ libev-4.22.tar.gz -> libev-4.24.tar.gz ++++++ ++++ 1843 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libev-4.22/Changes new/libev-4.24/Changes --- old/libev-4.22/Changes 2015-12-20 22:11:59.000000000 +0100 +++ new/libev-4.24/Changes 2016-12-28 05:20:48.000000000 +0100 @@ -1,18 +1,14 @@ Revision history for libev, a high-performance and full-featured event loop. -TODO: ev_loop_wakeup -TODO: EV_STANDALONE == NO_HASSEL (do not use clock_gettime in ev_standalone) -TODO: faq, process a thing in each iteration -TODO: dbeugging tips, ev_verify, ev_init twice -TODO: ev_break for immediate exit (EVBREAK_NOW?) -TODO: ev_feed_child_event -TODO: document the special problem of signals around fork. -TODO: store pid for each signal -TODO: document file descriptor usage per loop -TODO: store loop pid_t and compare isndie signal handler,store 1 for same, 2 for differign pid, clean up in loop_fork -TODO: embed watchers need updating when fd changes -TODO: document portability requirements for atomic pointer access -TODO: document requirements for function pointers and calling conventions. +4.24 Wed Dec 28 05:19:55 CET 2016 + - bump version to 4.24, as the release tarball inexplicably + didn't have the right version in ev.h, even though the cvs-tagged + version did have the right one (reported by Ales Teska). + +4.23 Wed Nov 16 18:23:41 CET 2016 + - move some declarations at the beginning to help certain retarded + microsoft compilers, even though their documentation claims + otherwise (reported by Ruslan Osmanov). 4.22 Sun Dec 20 22:11:50 CET 2015 - when epoll detects unremovable fds in the fd set, rebuild diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libev-4.22/TODO new/libev-4.24/TODO --- old/libev-4.22/TODO 1970-01-01 01:00:00.000000000 +0100 +++ new/libev-4.24/TODO 2016-11-16 18:24:42.000000000 +0100 @@ -0,0 +1,14 @@ +TODO: ev_loop_wakeup +TODO: EV_STANDALONE == NO_HASSLE (do not use clock_gettime in ev_standalone) +TODO: faq, process a thing in each iteration +TODO: dbeugging tips, ev_verify, ev_init twice +TODO: ev_break for immediate exit (EVBREAK_NOW?) +TODO: ev_feed_child_event +TODO: document the special problem of signals around fork. +TODO: store pid for each signal +TODO: document file descriptor usage per loop +TODO: store loop pid_t and compare isndie signal handler,store 1 for same, 2 for differign pid, clean up in loop_fork +TODO: embed watchers need updating when fd changes +TODO: document portability requirements for atomic pointer access +TODO: document requirements for function pointers and calling conventions. + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libev-4.22/compile new/libev-4.24/compile --- old/libev-4.22/compile 2015-12-20 22:12:45.000000000 +0100 +++ new/libev-4.24/compile 2016-12-28 05:22:55.000000000 +0100 @@ -3,7 +3,7 @@ scriptversion=2012-10-14.11; # UTC -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2014 Free Software Foundation, Inc. # Written by Tom Tromey <[email protected]>. # # This program is free software; you can redistribute it and/or modify diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libev-4.22/configure.ac new/libev-4.24/configure.ac --- old/libev-4.22/configure.ac 2015-12-20 02:33:34.000000000 +0100 +++ new/libev-4.24/configure.ac 2016-12-28 05:19:41.000000000 +0100 @@ -5,7 +5,7 @@ AC_CONFIG_SRCDIR([ev_epoll.c]) dnl also update ev.h! -AM_INIT_AUTOMAKE(libev,4.22) +AM_INIT_AUTOMAKE(libev,4.24) AC_CONFIG_HEADERS([config.h]) AM_MAINTAINER_MODE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libev-4.22/ev.3 new/libev-4.24/ev.3 --- old/libev-4.22/ev.3 2015-12-20 02:33:06.000000000 +0100 +++ new/libev-4.24/ev.3 2016-11-16 18:25:46.000000000 +0100 @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "LIBEV 3" -.TH LIBEV 3 "2015-12-20" "libev-4.20" "libev - high performance full featured event loop" +.TH LIBEV 3 "2016-11-16" "libev-4.23" "libev - high performance full featured event loop" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -2348,7 +2348,7 @@ .PP Unlike \f(CW\*(C`ev_timer\*(C'\fR, periodic watchers are not based on real time (or relative time, the physical time that passes) but on wall clock time -(absolute time, the thing you can read on your calender or clock). The +(absolute time, the thing you can read on your calendar or clock). The difference is that wall clock time can run faster or slower than real time, and time jumps are not uncommon (e.g. when you adjust your wrist-watch). @@ -5414,6 +5414,10 @@ assumes that the same (machine) code can be used to call any watcher callback: The watcher callbacks have different type signatures, but libev calls them using an \f(CW\*(C`ev_watcher *\*(C'\fR internally. +.IP "null pointers and integer zero are represented by 0 bytes" 4 +.IX Item "null pointers and integer zero are represented by 0 bytes" +Libev uses \f(CW\*(C`memset\*(C'\fR to initialise structs and arrays to \f(CW0\fR bytes, and +relies on this setting pointers and integers to null. .IP "pointer accesses must be thread-atomic" 4 .IX Item "pointer accesses must be thread-atomic" Accessing a pointer value must be atomic, it must both be readable and diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libev-4.22/ev.c new/libev-4.24/ev.c --- old/libev-4.22/ev.c 2015-12-20 22:12:53.000000000 +0100 +++ new/libev-4.24/ev.c 2016-12-28 05:23:00.000000000 +0100 @@ -1529,7 +1529,7 @@ #if EV_FEATURE_CODE # define inline_speed ecb_inline #else -# define inline_speed static noinline +# define inline_speed noinline static #endif #define NUMPRI (EV_MAXPRI - EV_MINPRI + 1) @@ -1586,7 +1586,8 @@ #include <float.h> /* a floor() replacement function, should be independent of ev_tstamp type */ -static ev_tstamp noinline +noinline +static ev_tstamp ev_floor (ev_tstamp v) { /* the choice of shift factor is not terribly important */ @@ -1628,7 +1629,8 @@ # include <sys/utsname.h> #endif -static unsigned int noinline ecb_cold +noinline ecb_cold +static unsigned int ev_linux_version (void) { #ifdef __linux @@ -1667,7 +1669,8 @@ /*****************************************************************************/ #if EV_AVOID_STDIO -static void noinline ecb_cold +noinline ecb_cold +static void ev_printerr (const char *msg) { write (STDERR_FILENO, msg, strlen (msg)); @@ -1676,13 +1679,15 @@ static void (*syserr_cb)(const char *msg) EV_THROW; -void ecb_cold +ecb_cold +void ev_set_syserr_cb (void (*cb)(const char *msg) EV_THROW) EV_THROW { syserr_cb = cb; } -static void noinline ecb_cold +noinline ecb_cold +static void ev_syserr (const char *msg) { if (!msg) @@ -1723,7 +1728,8 @@ static void *(*alloc)(void *ptr, long size) EV_THROW = ev_realloc_emul; -void ecb_cold +ecb_cold +void ev_set_allocator (void *(*cb)(void *ptr, long size) EV_THROW) EV_THROW { alloc = cb; @@ -1942,7 +1948,8 @@ return ncur; } -static void * noinline ecb_cold +noinline ecb_cold +static void * array_realloc (int elem, void *base, int *cur, int cnt) { *cur = array_nextsize (elem, *cur, cnt); @@ -1955,7 +1962,7 @@ #define array_needsize(type,base,cur,cnt,init) \ if (expect_false ((cnt) > (cur))) \ { \ - int ecb_unused ocur_ = (cur); \ + ecb_unused int ocur_ = (cur); \ (base) = (type *)array_realloc \ (sizeof (type), (base), &(cur), (cnt)); \ init ((base) + (ocur_), (cur) - ocur_); \ @@ -1977,12 +1984,14 @@ /*****************************************************************************/ /* dummy callback for pending events */ -static void noinline +noinline +static void pendingcb (EV_P_ ev_prepare *w, int revents) { } -void noinline +noinline +void ev_feed_event (EV_P_ void *w, int revents) EV_THROW { W w_ = (W)w; @@ -2122,7 +2131,8 @@ } /* something about the given fd changed */ -inline_size void +inline_size +void fd_change (EV_P_ int fd, int flags) { unsigned char reify = anfds [fd].reify; @@ -2137,7 +2147,7 @@ } /* the given fd is invalid/unusable, so make sure it doesn't hurt us anymore */ -inline_speed void ecb_cold +inline_speed ecb_cold void fd_kill (EV_P_ int fd) { ev_io *w; @@ -2150,7 +2160,7 @@ } /* check whether the given fd is actually valid, for error recovery */ -inline_size int ecb_cold +inline_size ecb_cold int fd_valid (int fd) { #ifdef _WIN32 @@ -2161,7 +2171,8 @@ } /* called on EBADF to verify fds */ -static void noinline ecb_cold +noinline ecb_cold +static void fd_ebadf (EV_P) { int fd; @@ -2173,7 +2184,8 @@ } /* called on ENOMEM in select/poll to kill some fds and retry */ -static void noinline ecb_cold +noinline ecb_cold +static void fd_enomem (EV_P) { int fd; @@ -2187,7 +2199,8 @@ } /* usually called after fork if backend needs to re-arm all fds from scratch */ -static void noinline +noinline +static void fd_rearm_all (EV_P) { int fd; @@ -2378,7 +2391,8 @@ #if EV_SIGNAL_ENABLE || EV_ASYNC_ENABLE -static void noinline ecb_cold +noinline ecb_cold +static void evpipe_init (EV_P) { if (!ev_is_active (&pipe_w)) @@ -2566,7 +2580,8 @@ ev_feed_signal (signum); } -void noinline +noinline +void ev_feed_signal_event (EV_P_ int signum) EV_THROW { WL w; @@ -2693,20 +2708,20 @@ # include "ev_select.c" #endif -int ecb_cold +ecb_cold int ev_version_major (void) EV_THROW { return EV_VERSION_MAJOR; } -int ecb_cold +ecb_cold int ev_version_minor (void) EV_THROW { return EV_VERSION_MINOR; } /* return true if we are running with elevated privileges and should ignore env variables */ -int inline_size ecb_cold +inline_size ecb_cold int enable_secure (void) { #ifdef _WIN32 @@ -2717,7 +2732,8 @@ #endif } -unsigned int ecb_cold +ecb_cold +unsigned int ev_supported_backends (void) EV_THROW { unsigned int flags = 0; @@ -2731,7 +2747,8 @@ return flags; } -unsigned int ecb_cold +ecb_cold +unsigned int ev_recommended_backends (void) EV_THROW { unsigned int flags = ev_supported_backends (); @@ -2753,7 +2770,8 @@ return flags; } -unsigned int ecb_cold +ecb_cold +unsigned int ev_embeddable_backends (void) EV_THROW { int flags = EVBACKEND_EPOLL | EVBACKEND_KQUEUE | EVBACKEND_PORT; @@ -2823,7 +2841,8 @@ #endif /* initialise a loop structure, must be zero-initialised */ -static void noinline ecb_cold +noinline ecb_cold +static void loop_init (EV_P_ unsigned int flags) EV_THROW { if (!backend) @@ -2920,7 +2939,8 @@ } /* free up a loop structure */ -void ecb_cold +ecb_cold +void ev_loop_destroy (EV_P) { int i; @@ -3072,7 +3092,8 @@ #if EV_MULTIPLICITY -struct ev_loop * ecb_cold +ecb_cold +struct ev_loop * ev_loop_new (unsigned int flags) EV_THROW { EV_P = (struct ev_loop *)ev_malloc (sizeof (struct ev_loop)); @@ -3090,7 +3111,8 @@ #endif /* multiplicity */ #if EV_VERIFY -static void noinline ecb_cold +noinline ecb_cold +static void verify_watcher (EV_P_ W w) { assert (("libev: watcher has invalid priority", ABSPRI (w) >= 0 && ABSPRI (w) < NUMPRI)); @@ -3099,7 +3121,8 @@ assert (("libev: pending watcher not on pending queue", pendings [ABSPRI (w)][w->pending - 1].w == w)); } -static void noinline ecb_cold +noinline ecb_cold +static void verify_heap (EV_P_ ANHE *heap, int N) { int i; @@ -3114,7 +3137,8 @@ } } -static void noinline ecb_cold +noinline ecb_cold +static void array_verify (EV_P_ W *ws, int cnt) { while (cnt--) @@ -3213,7 +3237,8 @@ #endif #if EV_MULTIPLICITY -struct ev_loop * ecb_cold +ecb_cold +struct ev_loop * #else int #endif @@ -3271,7 +3296,8 @@ return count; } -void noinline +noinline +void ev_invoke_pending (EV_P) { pendingpri = NUMPRI; @@ -3356,7 +3382,8 @@ #if EV_PERIODIC_ENABLE -static void noinline +noinline +static void periodic_recalc (EV_P_ ev_periodic *w) { ev_tstamp interval = w->interval > MIN_INTERVAL ? w->interval : MIN_INTERVAL; @@ -3424,7 +3451,8 @@ /* simply recalculate all periodics */ /* TODO: maybe ensure that at least one event happens when jumping forward? */ -static void noinline ecb_cold +noinline ecb_cold +static void periodics_reschedule (EV_P) { int i; @@ -3447,7 +3475,8 @@ #endif /* adjust all timers by a given offset */ -static void noinline ecb_cold +noinline ecb_cold +static void timers_reschedule (EV_P_ ev_tstamp adjust) { int i; @@ -3825,7 +3854,8 @@ /*****************************************************************************/ -void noinline +noinline +void ev_io_start (EV_P_ ev_io *w) EV_THROW { int fd = w->fd; @@ -3851,7 +3881,8 @@ EV_FREQUENT_CHECK; } -void noinline +noinline +void ev_io_stop (EV_P_ ev_io *w) EV_THROW { clear_pending (EV_A_ (W)w); @@ -3870,7 +3901,8 @@ EV_FREQUENT_CHECK; } -void noinline +noinline +void ev_timer_start (EV_P_ ev_timer *w) EV_THROW { if (expect_false (ev_is_active (w))) @@ -3894,7 +3926,8 @@ /*assert (("libev: internal timer heap corruption", timers [ev_active (w)] == (WT)w));*/ } -void noinline +noinline +void ev_timer_stop (EV_P_ ev_timer *w) EV_THROW { clear_pending (EV_A_ (W)w); @@ -3924,7 +3957,8 @@ EV_FREQUENT_CHECK; } -void noinline +noinline +void ev_timer_again (EV_P_ ev_timer *w) EV_THROW { EV_FREQUENT_CHECK; @@ -3958,7 +3992,8 @@ } #if EV_PERIODIC_ENABLE -void noinline +noinline +void ev_periodic_start (EV_P_ ev_periodic *w) EV_THROW { if (expect_false (ev_is_active (w))) @@ -3988,7 +4023,8 @@ /*assert (("libev: internal periodic heap corruption", ANHE_w (periodics [ev_active (w)]) == (WT)w));*/ } -void noinline +noinline +void ev_periodic_stop (EV_P_ ev_periodic *w) EV_THROW { clear_pending (EV_A_ (W)w); @@ -4016,7 +4052,8 @@ EV_FREQUENT_CHECK; } -void noinline +noinline +void ev_periodic_again (EV_P_ ev_periodic *w) EV_THROW { /* TODO: use adjustheap and recalculation */ @@ -4031,7 +4068,8 @@ #if EV_SIGNAL_ENABLE -void noinline +noinline +void ev_signal_start (EV_P_ ev_signal *w) EV_THROW { if (expect_false (ev_is_active (w))) @@ -4113,7 +4151,8 @@ EV_FREQUENT_CHECK; } -void noinline +noinline +void ev_signal_stop (EV_P_ ev_signal *w) EV_THROW { clear_pending (EV_A_ (W)w); @@ -4199,14 +4238,15 @@ #define NFS_STAT_INTERVAL 30.1074891 /* for filesystems potentially failing inotify */ #define MIN_STAT_INTERVAL 0.1074891 -static void noinline stat_timer_cb (EV_P_ ev_timer *w_, int revents); +noinline static void stat_timer_cb (EV_P_ ev_timer *w_, int revents); #if EV_USE_INOTIFY /* the * 2 is to allow for alignment padding, which for some reason is >> 8 */ # define EV_INOTIFY_BUFSIZE (sizeof (struct inotify_event) * 2 + NAME_MAX) -static void noinline +noinline +static void infy_add (EV_P_ ev_stat *w) { w->wd = inotify_add_watch (fs_fd, w->path, @@ -4280,7 +4320,8 @@ if (ev_is_active (&w->timer)) ev_unref (EV_A); } -static void noinline +noinline +static void infy_del (EV_P_ ev_stat *w) { int slot; @@ -4297,7 +4338,8 @@ inotify_rm_watch (fs_fd, wd); } -static void noinline +noinline +static void infy_wd (EV_P_ int slot, int wd, struct inotify_event *ev) { if (slot < 0) @@ -4343,7 +4385,8 @@ } } -inline_size void ecb_cold +inline_size ecb_cold +void ev_check_2625 (EV_P) { /* kernels < 2.6.25 are borked @@ -4451,7 +4494,8 @@ w->attr.st_nlink = 1; } -static void noinline +noinline +static void stat_timer_cb (EV_P_ ev_timer *w_, int revents) { ev_stat *w = (ev_stat *)(((char *)w_) - offsetof (ev_stat, timer)); @@ -4671,7 +4715,8 @@ #endif #if EV_EMBED_ENABLE -void noinline +noinline +void ev_embed_sweep (EV_P_ ev_embed *w) EV_THROW { ev_run (w->other, EVRUN_NOWAIT); @@ -4978,7 +5023,8 @@ /*****************************************************************************/ #if EV_WALK_ENABLE -void ecb_cold +ecb_cold +void ev_walk (EV_P_ int types, void (*cb)(EV_P_ int type, void *w)) EV_THROW { int i, j; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libev-4.22/ev.h new/libev-4.24/ev.h --- old/libev-4.22/ev.h 2015-12-20 02:32:23.000000000 +0100 +++ new/libev-4.24/ev.h 2016-12-28 05:19:49.000000000 +0100 @@ -211,7 +211,7 @@ /*****************************************************************************/ #define EV_VERSION_MAJOR 4 -#define EV_VERSION_MINOR 22 +#define EV_VERSION_MINOR 24 /* eventmask, revents, events... */ enum { @@ -515,10 +515,10 @@ /* method bits to be ored together */ enum { - EVBACKEND_SELECT = 0x00000001U, /* about anywhere */ - EVBACKEND_POLL = 0x00000002U, /* !win */ + EVBACKEND_SELECT = 0x00000001U, /* available just about anywhere */ + EVBACKEND_POLL = 0x00000002U, /* !win, !aix, broken on osx */ EVBACKEND_EPOLL = 0x00000004U, /* linux */ - EVBACKEND_KQUEUE = 0x00000008U, /* bsd */ + EVBACKEND_KQUEUE = 0x00000008U, /* bsd, broken on osx */ EVBACKEND_DEVPOLL = 0x00000010U, /* solaris 8 */ /* NYI */ EVBACKEND_PORT = 0x00000020U, /* solaris 10 */ EVBACKEND_ALL = 0x0000003FU, /* all known backends */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libev-4.22/ev.pod new/libev-4.24/ev.pod --- old/libev-4.22/ev.pod 2015-10-11 17:55:44.000000000 +0200 +++ new/libev-4.24/ev.pod 2016-03-01 20:19:23.000000000 +0100 @@ -2211,7 +2211,7 @@ Unlike C<ev_timer>, periodic watchers are not based on real time (or relative time, the physical time that passes) but on wall clock time -(absolute time, the thing you can read on your calender or clock). The +(absolute time, the thing you can read on your calendar or clock). The difference is that wall clock time can run faster or slower than real time, and time jumps are not uncommon (e.g. when you adjust your wrist-watch). @@ -5302,6 +5302,11 @@ callback: The watcher callbacks have different type signatures, but libev calls them using an C<ev_watcher *> internally. +=item null pointers and integer zero are represented by 0 bytes + +Libev uses C<memset> to initialise structs and arrays to C<0> bytes, and +relies on this setting pointers and integers to null. + =item pointer accesses must be thread-atomic Accessing a pointer value must be atomic, it must both be readable and diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libev-4.22/ev_epoll.c new/libev-4.24/ev_epoll.c --- old/libev-4.22/ev_epoll.c 2015-10-12 19:53:08.000000000 +0200 +++ new/libev-4.24/ev_epoll.c 2016-02-18 05:42:18.000000000 +0100 @@ -235,7 +235,8 @@ } } -int inline_size +inline_size +int epoll_init (EV_P_ int flags) { #ifdef EPOLL_CLOEXEC @@ -260,14 +261,16 @@ return EVBACKEND_EPOLL; } -void inline_size +inline_size +void epoll_destroy (EV_P) { ev_free (epoll_events); array_free (epoll_eperm, EMPTY); } -void inline_size +inline_size +void epoll_fork (EV_P) { close (backend_fd); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libev-4.22/ev_kqueue.c new/libev-4.24/ev_kqueue.c --- old/libev-4.22/ev_kqueue.c 2014-05-22 20:53:16.000000000 +0200 +++ new/libev-4.24/ev_kqueue.c 2016-02-18 05:42:47.000000000 +0100 @@ -43,7 +43,8 @@ #include <string.h> #include <errno.h> -void inline_speed +inline_speed +void kqueue_change (EV_P_ int fd, int filter, int flags, int fflags) { ++kqueue_changecnt; @@ -152,7 +153,8 @@ } } -int inline_size +inline_size +int kqueue_init (EV_P_ int flags) { /* initialize the kernel queue */ @@ -176,14 +178,16 @@ return EVBACKEND_KQUEUE; } -void inline_size +inline_size +void kqueue_destroy (EV_P) { ev_free (kqueue_events); ev_free (kqueue_changes); } -void inline_size +inline_size +void kqueue_fork (EV_P) { /* some BSD kernels don't just destroy the kqueue itself, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libev-4.22/ev_poll.c new/libev-4.24/ev_poll.c --- old/libev-4.22/ev_poll.c 2014-05-22 20:53:16.000000000 +0200 +++ new/libev-4.24/ev_poll.c 2016-02-18 05:43:02.000000000 +0100 @@ -39,7 +39,8 @@ #include <poll.h> -void inline_size +inline_size +void pollidx_init (int *base, int count) { /* consider using memset (.., -1, ...), which is practically guaranteed @@ -126,7 +127,8 @@ } } -int inline_size +inline_size +int poll_init (EV_P_ int flags) { backend_mintime = 1e-3; @@ -139,7 +141,8 @@ return EVBACKEND_POLL; } -void inline_size +inline_size +void poll_destroy (EV_P) { ev_free (pollidxs); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libev-4.22/ev_port.c new/libev-4.24/ev_port.c --- old/libev-4.22/ev_port.c 2014-05-22 20:53:16.000000000 +0200 +++ new/libev-4.24/ev_port.c 2016-02-18 05:43:27.000000000 +0100 @@ -55,7 +55,8 @@ #include <string.h> #include <errno.h> -void inline_speed +inline_speed +void port_associate_and_check (EV_P_ int fd, int ev) { if (0 > @@ -136,7 +137,8 @@ } } -int inline_size +inline_size +int port_init (EV_P_ int flags) { /* Initialize the kernel queue */ @@ -163,13 +165,15 @@ return EVBACKEND_PORT; } -void inline_size +inline_size +void port_destroy (EV_P) { ev_free (port_events); } -void inline_size +inline_size +void port_fork (EV_P) { close (backend_fd); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libev-4.22/ev_select.c new/libev-4.24/ev_select.c --- old/libev-4.22/ev_select.c 2014-05-22 20:53:16.000000000 +0200 +++ new/libev-4.24/ev_select.c 2016-02-18 05:43:39.000000000 +0100 @@ -271,7 +271,8 @@ #endif } -int inline_size +inline_size +int select_init (EV_P_ int flags) { backend_mintime = 1e-6; @@ -300,7 +301,8 @@ return EVBACKEND_SELECT; } -void inline_size +inline_size +void select_destroy (EV_P) { ev_free (vec_ri); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libev-4.22/missing new/libev-4.24/missing --- old/libev-4.22/missing 2015-12-20 22:12:45.000000000 +0100 +++ new/libev-4.24/missing 2016-12-28 05:22:55.000000000 +0100 @@ -3,7 +3,7 @@ scriptversion=2013-10-28.13; # UTC -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2014 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard <[email protected]>, 1996. # This program is free software; you can redistribute it and/or modify
