--- IO-AIO/Changes 2011/12/30 07:52:12 1.285 +++ IO-AIO/Changes 2015/06/25 15:47:01 1.324 @@ -1,13 +1,122 @@ Revision history for IO::AIO -TODO: better autoconf.pm that can return LIBS etc. +TODO: scandir - some dirs mostly contain subdirs - invert logic? TODO: aio_cptree/mvtree TODO: reduce condvar fairness: schedule hot-cache-threads first? -TODO: splice/tee/vmsplice? (http://kerneltrap.org/node/6505 http://lwn.net/Articles/178199/) +TODO: vmsplice? (http://kerneltrap.org/node/6505 http://lwn.net/Articles/178199/) TODO: aio_fcntl, at least for file-locking TODO: aio_mincore? TODO: getxattr etc.? TODO: F_DUPFD_CLOEXEC +TODO: emulation for splice? +TODO: eio_mmap|mlock|munmap|splice... +TODO: syncfs/sync windows: +TODO: F_SETPIPE_SZ, F_GETPIPE_SZ +TODO: posix_fallocate when flags=0 +http://stackoverflow.com/questions/65170/how-to-get-name-associated-with-open-handle/5286888#5286888 +http://blogs.msdn.com/b/adioltean/archive/2005/04/16/408947.aspx +http://msdn.microsoft.com/en-us/library/aa366789%28v=vs.85%29.aspx +http://msdn.microsoft.com/en-us/library/windows/desktop/aa366789%28v=vs.85%29.aspx +http://msdn.microsoft.com/en-us/library/windows/desktop/aa364425%28v=vs.85%29.aspx +http://msdn.microsoft.com/en-us/library/windows/desktop/aa364963%28v=vs.85%29.aspx +http://msdn.microsoft.com/en-us/library/windows/desktop/aa364996%28v=vs.85%29.aspx +http://msdn.microsoft.com/en-us/library/windows/desktop/aa364994%28v=vs.85%29.aspx +TODO: extra socket/tcp constants &c? +TODO: getrandom, GRND_NONBLOCK, GRND_NONBLOCK +TODO: http://lwn.net/Articles/593918/ SHMEM_SET_SEALS, SHMEM_GET_SEALS, SEAL_SHRINK, SEAL_GROW, SEAL_WRITE, int memfd_create(const char *name, u64 size, u64 flags);, MFD_CLOEXEC, int fd = open("/tmp", O_RDWR | O_TMPFILE | O_EXCL, S_IRWXU); +TODO: O_TMPFILE +TODO: FALLOC_FL_COLLAPSE_RANGE +TODO: FALLOC_FL_ZERO_RANGE +TODO: renameat RENAME_EXCHANGE, RENAME_NOREPLACE, RENAME_EXCHANGE +TODO: fcntl F_GETLKP/F_SETLKP/F_SETLKPW, http://lwn.net/Articles/586904/ +TODO: flink + AT_EMPTY_PATH +TODO: name_to_handle_At + open_by_handle_at = clone fds + +TODO: rewrite rmtree et al. to support working directories (also speed them up) +TODO: maybe IO::AIO leaks fds when requests are cancelled? maybe initialise result to -1? + + - add IO::AIO::pipe2 function. + - added support for FALLOC_FL_COLLAPSE_RANGE and FALLOC_FL_ZERO_RANGE + constants. + - added support for O_TMPFILE and O_PATH constants. + - added support for MAP_FIXED, MAP_GROWSDOWN,MAP_32BIT, MAP_HUGETLB, MAP_STACK + consdtants, whether they can be sensibly used or not. + - use NO_INIT where applicable. + - update libecb. + - added stability canary support. + +4.32 Wed Feb 11 20:32:11 CET 2015 + - replace off_t by STRLEN where appropriate, should not result in + user-visible changes. + - update ecb.h for C11 compatibility. + +4.31 Tue Jun 3 03:29:27 CEST 2014 + - work around more 5.20 bugs. backwards compatibility my ass. + +4.3 Fri Apr 11 06:22:38 CEST 2014 + - perl5porters broke Async::Interrupt, BDB, EV, IO::AIO, OpenCL + without warning by switching the meaning of USE_SOCKETS_AS_HANDLES + in 5.18. What's so attractive about giving a shit about backwards + compatibility - I will never understand. + +4.2 Sat Jan 25 01:13:14 CET 2014 + - aio_group could corrupt memory because it didn't restore + the stack after req_submit. + - be more careful on (e.g. permission) errors in bin/treescan. + - work around changes in ExtUtils::MakeMaker. + - (libeio) implement aio_realpath for win32. + - (xthread) work around compile time bugs in ptw32. + - added IO::AIO::pipesize. + - (libecb) insignificant update. + +4.19 Sun Jan 6 12:47:26 CET 2013 + - avoid endless loop in fiemap with some XFS files. + - in aio_rename and aio_rmdir, specialcase the case of [$wd, "."] + and call rename/rmdir instead of renameat/unlinkat. + +4.18 Thu Oct 11 07:01:26 CEST 2012 + - fix unintended xthread_create by intentionalising it :) + +4.17 Thu Oct 11 05:19:47 CEST 2012 + - rename aio_fallocate to aio_allocate, to match documentation. + - add list of linux fsid values to aio_statvfs docs. + - work around a bug in btrfs' FIEMAP ioctl implementation. + - work around AIX bug: statvfs.f_fsid is a struct, not unsigned long + as per unix spec. + +4.16 Tue Aug 14 05:39:03 CEST 2012 + - aio_statvfs was wromgly marked for wd emulation, causing + it to malfunction for paths. + - fix a crash in aio_fiemap, when used on ranges without any + extents. + - work around linux kernel bug (at least in 3.2): kernel might + trash fiemap input arguments. + - work around linux kernel bug (at least in 3.2): kernel does not + set FIEMAP_EXTENT_LAST on last segment. + - work around linux kernel bug (at least in 3.2): kernel silently + truncates segment count if a file. + - make fh argument of IO::AIO::mmap optional, also add mmap/munmap + to quick overview. + - splice can corrupt data. + - (libeio) remove pread/pwrite emulation. + - do not grow mmaped scalars in aio_read. + - add FALLOC_FL_PUNCH_HOLE and document fallocate. + - provide pread/pwrite for win32, making it link again on native win32. + +4.15 Tue Apr 10 06:59:00 CEST 2012 + - always include linux/types.h for fiemap, for compatibility to + ancient systems (Paul Howarth). + - experimental support for IO::AIO::splice and ::tee (no aio_...). + - provide SEEK_HOLE and SEEK_DATA, if available. + - work around (again!) an immensely stupid bug in RHEL, defining + autoconf macros in linux system headers (analysed by Paul Howarth). + +4.14 Sat Apr 7 02:45:18 CEST 2012 + - fix stat structure usage on windows, which caused bogus stat results. + - (libeio) make readahead emulation behave more like actual readahead by never failing. + - new request aio_seek. + - new request aio_fiemap. + - autogenerate the #ifdef/#define 0 blocks for symbols we export. 4.12 Fri Dec 30 08:51:25 CET 2011 - realpath would return a random value if the name was too long,