--- libeio/Changes 2010/01/02 13:02:20 1.11 +++ libeio/Changes 2015/06/13 00:06:13 1.54 @@ -1,8 +1,22 @@ Revision history for libeio -TODO: maybe add mincore support? available on at leats darwin, solaris, linux, freebsd +TODO: maybe add mincore support? available on at least darwin, solaris, linux, freebsd +TODO: openbsd requires stdint.h for intptr_t - why posix? +TODO: make mtouch/readdir maybe others cancellable in-request +TODO: fadvise request +TODO: fdopendir/utimensat +TODO: maybe work around 3.996gb barrier in pread/pwrite as well, maybe readahead etc.? 1.0 + - for simple request api, initialise result/errorno to -1/ECANCELED. + - fix a deadlock where a wakeup signal could be missed when + a timeout occured at the same time. + - use nonstandard but maybe-working-on-bsd fork technique. + - use fewer time() syscalls when waiting for new requests. + - fix a path-memory-leak in readdir when using the wrappers + (reported by Thomas L. Shinnick). + - support a max_idle value of 0. + - support setting of idle timeout value (eio_set_idle_timeout). - readdir: correctly handle malloc failures. - readdir: new flags argument, can return inode and possibly filetype, can sort in various ways. @@ -18,4 +32,48 @@ - "outbundled" from IO::AIO. - eio_set_max_polltime did not properly convert time to ticks. - tentatively support darwin in sendfile. + - fix freebsd/darwin sendfile. + - also use sendfile emulation for ENOTSUP and EOPNOTSUPP + error codes. + - add OS-independent EIO_MT_* and EIO_MS_* flag enums. + - add eio_statvfs/eio_fstatvfs. + - add eio_mlock/eio_mlockall and OS-independent MCL_* flag enums. + - no longer set errno to 0 before making syscalls, this only lures + people into the trap of believing errno shows success or failure. + - "fix" demo.c so that it works as non-root. + - suppoert utimes seperately from futimes, as some systems have + utimes but not futimes. + - use _POSIX_MEMLOCK_RANGE for mlock. + - do not (errornously) overwrite CFLAGS in configure.ac. + - mknod used int3 for dev_t (ยง2 bit), not offs (64 bit). + - fix memory corruption in eio_readdirx for the flags + combination EIO_READDIR_STAT_ORDER | EIO_READDIR_DIRS_FIRST. + - port to openbsd (another blatantly broken non-UNIX/POSIX platform). + - fix eio_custom prototype. + - work around a Linux (and likely FreeBSD and other kernels) bug + where sendfile would not transfer all the requested bytes on + large transfers, using a heuristic. + - use libecb, and apply lots of minor space optimisations. + - disable sendfile on darwin, broken as everything else. + - add realpath request and implementation. + - cancelled requests will still invoke their request callbacks. + - add fallocate. + - do not acquire any locks when forking. + - incorporated some mingw32 changes by traviscline. + - added syncfs support, using direct syscall. + - set thread name on linux (ps -L/Hcx, top, gdb). + - remove useless use of volatile variables. + - fix memory leak when reaping threads. + - use utime now uses nanosecond resolution on posix 2008 systems. + - allow taking advantage of posix 2008 xxxat functions and fdopendir + by implementing a working directory abstraction. + - make readahead emulation behave more like actual readahead by never failing. + - added EIO_LSEEK (untested). + - added EIO_FALLOC_FL_PUNCH_HOLE. + - wtf. etp_proc returned 0, and no compiler ever complained. + - remove pread/pwrite emulation, as the only system that lacked them + (cygwin) provides them for a while now. + - provide pread/pwrite implementations for win32. + - implement aio_realpath for windows. + - add EIO_FALLOC_FL_COLLAPSE_RANGE anbd EIO_FALLOC_FL_ZERO_RANGE.