Changes since version 1.38.1:
* unix: use relaxed loads/stores for clock id
* build,win: link to user32.lib and advapi32.lib
* unix: squelch harmless valgrind warning
* include: fx c++ style comments warnings
* build,cmake: Change installation location on MinGW
* linux: use copy_file_range for uv_fs_copyfile when possible
* win,tcp: avoid reinserting a pending request
* docs: improve the descriptions for get memory info
* test: add udp-mmsg test
* udp: add uv_udp_using_recvmmsg query
* doc: add more error constants
* zos: fix potential event loop stall
* include: add internal fields struct to uv_loop_t
* core: add API to measure event loop idle time
* win,fs: use CreateDirectoryW instead of _wmkdir
* win,nfc: fix integer comparison signedness
* win,nfc: use
* win,nfc: removed some unused variables
* win,nfc: add missing return statement
* win,nfc: disable clang-format for
* darwin: use IOKit for uv_cpu_info
* test: fix thread race in process_title_threadsafe
* win,fs: avoid implicit access to _doserrno
* test: give hrtime test a custom 20s timeout
* build: add more failed test, for qemu version bump
* unix: handle src, dest same in uv_fs_copyfile()
* unix: error when uv_setup_args() is not called
* aix: protect uv_exepath() from uv_set_process_title()
* fs: clobber req->path on uv_fs_mkstemp() error
* cmake: fix compile error C2001 on Chinese Windows
* test: avoid double evaluation in ASSERT_BASE macro
* tcp: fail instantly if local port is unbound
* doc: fix most sphinx warnings
* nfci: address some style nits
* unix: don't use _POSIX_PATH_MAX
Changes since version 1.38.0:
* test: use last matching qemu version
* win, util: rearrange uv_hrtime
* test: skip signal_multiple_loops test on QEMU
* build: add android build to CI
* test: extend fs_event_error_reporting timeout
* build: link libkvm on netbsd only
* linux: refactor /proc file reader logic
* linux: read load average from /proc/loadavg
* android: remove patch code for below 21
* win: fix visual studio 2008 build
* win,tty: fix deadlock caused by inconsistent state
* unix: use relaxed loads/stores for feature checks
* build: don't .gitignore m4/ax_pthread.m4
* unix: fix gcc atomics feature check
* darwin: work around clock jumping back in time
* udp: fix write_queue cleanup on sendmmsg error
* src: build fix for Android
Version 1.36.0
* build: add aix-common.c for AIX cmake build
* zos: explicitly mark message queue events
* zos: move mq check out of loop to save cpu cycles
* zos: add checks to ensure behavior of epoll_wait
* src: add uv__reallocf()
* build: ibmi support for cmake
* build: fix gyp build for Android API >= 28
* udp: return recvmmsg-ed datagrams in order
* zos,test: fix spawn_empty_env for shared library build
* zos: fix non-Release builds
* zos: fix return value on expired nanosleep() call
* build: fix z/OS cmake build
* test: add a bunch of ASSERT macros
* test: remove unused extern declaration
* test: canonicalize argv[0] in exepath test
* test: simplify platform_init()
* ibmi: Fix isatty EBADF handling and refactor
* test: Test EBADF tty handling
* build: make cmake build benchmarks
* win: use RtlGenRandom from advapi32.dll directly
* android: fix OOB write in uv_interface_addresses()
* test: pass test when hostname is single character
* ibmi: set the highest process priority to -10
* build: remove support for gyp
* doc: add note to README on cross-compiling
* fs: add uv_fs_lutime()
* unix: implement cpu_relax() for arm
* linux: fix uv__accept4()
* win: handle file paths in uv_fs_statfs()
* unix: fix uv_os_environ() null pointer check
* win: fix uv_os_environ() null pointer check
* unix: fix compilation on macOS 32-bit architectures
* win: replace alloca() with stack-based array
Version 1.30.0
* darwin: fall back to F_BARRIERFSYNC
* darwin: add 32 bit close$NOCANCEL implementation
* build, core, unix: add support for Haiku
* darwin,linux: more conservative minimum stack size
* threadpool: increase UV_THREADPOOL_SIZE limit
* unix: return actual error from `uv_try_write()`
* darwin: fix build error with macos 10.10
* unix: make uv_cwd() report UV_ENOBUFS
* unix: make uv_fs_read() fill all buffers
* test: give hrtime test a custom 10s timeout
* fs: fix uv_fs_copyfile if same src and dst
* build: add cmake option to skip building tests
* doc: add link to nodejs.org
* unix: fix a comment typo in signal.c
* unix: remove redundant cast in process.c
* doc: fix wrong mutex function prototypes
v1.29.0:
Changes since version 1.28.0:
* ibmi: read memory and CPU usage info
* doc: update the cmake testing instruction
* unix: fix race condition in uv_async_send()
* linux: use O_CLOEXEC instead of EPOLL_CLOEXEC
* doc: mark uv_async_send() as async-signal-safe
* linux: init st_flags and st_gen when using statx
* linux: read free/total memory from /proc/meminfo
* test: test zero-sized uv_fs_sendfile() writes
* unix: don't assert on UV_PROCESS_WINDOWS_* flags
* linux: set correct mac address for IP-aliases
* win,util: fix null pointer dereferencing
* unix,win: fix `uv_fs_poll_stop()` when active
* doc: add missing uv_fs_type entries
* doc: fix build with sphinx 2.x
* unix: don't make statx system call on Android
* unix: fix clang scan-build warning
* unix: fall back to kqueue on older macOS systems
* unix,win: add uv_get_constrained_memory()
* darwin: fix thread cancellation fd leak
* linux: fix thread cancellation fd leak
v1.24.1:
Changes since version 1.24.0:
* test: fix platform_output test on cygwin
* gitignore: ignore build/ directory
* unix: zero epoll_event before use
* darwin: use runtime check for file cloning
* doc: replace deprecated build command on macOS
* warnings: fix code that emits compiler warnings
* doc: clarify expected memory management strategy
* test: add uv_inet_ntop(AF_INET) coverage
* unix: harden string copying, introduce strscpy()
* linux: get rid of strncpy() call
* aix: get rid of strcat() calls
* aix: fix data race in uv_fs_event_start()
* win: fs: fix FILE_FLAG_NO_BUFFERING for writes
* build: don't link against -lpthread on Android
Version 1.24.0
* unix: do not require PATH_MAX to be defined
* win,doc: path encoding in uv_fs_XX is UTF-8
* unix: add missing link dependency on kFreeBSD
* unix: add support for GNU/Hurd
* test: avoid memory leak for test_output
* zos: avoid UB with NULL pointer arithmetic
* doc: add vtjnash to maintainers
* unix: restore skipping of phys_addr copy
* unix,win: make uv_interface_addresses() consistent
* unix: remove unnecessary linebreaks
* unix,win: handle zero-sized allocations uniformly
* unix: remove unused uv__dup() function
* core,bsd: refactor process_title functions
* win: Redefine NSIG to consider SIGWINCH
* test: make sure that reading a directory fails
* win, tty: remove zero-size read callbacks
* test: fix test runner getenv async-signal-safety
* test: fix test runner execvp async-signal-safety
* test,unix: fix race in test runner
* unix,win: support IDNA 2008 in uv_getaddrinfo()
* win, tcp: avoid starving the loop
* win, dl: proper error messages on some systems
* win,fs: retry if uv_fs_rename fails
* darwin: speed up uv_set_process_title()
* aix: fix race in uv_get_process_title()
* win: support more fine-grained windows hiding
v1.20.3:
* win: add Windows XP support to uv_if_indextoname()
* win: fix `'floor' undefined` compiler warning
* win, pipe: stop read for overlapped pipe
* build: fix utf-8 name of copyright holder
* zos: initialize pollfd revents
* zos,doc: add system V message queue note
* linux: don't use uv__nonblock_ioctl() on sparc
v1.20.2:
* zos: use custom semaphore
* win: fix registry API error handling
* build: add support for 64-bit AIX
* aix: guard STATIC_ASSERT for glibc work around
v1.20.1:
* doc,fs: improve documentation
* win: return a floored double from uv_uptime()
* doc: clarify platform specific pipe naming
* unix: fix uv_pipe_chmod() on macOS
* unix: work around glibc semaphore race condition
* tcp,openbsd: disable Unix TCP check for IPV6_ONLY
* test,openbsd: use RETURN_SKIP in UDP IPv6 tests
* test,openbsd: fix multicast test
* Revert "win, fs: use FILE_WRITE_ATTRIBUTES when opening files"
1.20.0:
* unix,spawn: respect user stdio flags for new pipe
* Revert "Revert "unix,tcp: avoid marking server sockets connected""
* req: revisions to uv_req_t handling
* win: remove unnecessary initialization
* win: update uv_os_homedir() to use uv_os_getenv()
* test: fix tcp_oob test flakiness
* posix: fix uv__pollfds_del() for invalidated fd's
* doc: README: add note on installing gyp
* unix: refactor uv_os_homedir to use uv_os_getenv
* unix: fix several instances of lost errno
* win,tty: update several TODO comments
* unix: add UV_FS_COPYFILE_FICLONE support
* test: fix connect_unspecified
* unix,win: add UV_FS_COPYFILE_FICLONE_FORCE support
* win: use long directory name for handle->dirw
* build: build with -D_FILE_OFFSET_BITS=64 again
* win, fs: fix uv_fs_unlink for +R -A files
* win, fs: use FILE_WRITE_ATTRIBUTES when opening files
* unix: use __PASE__ on IBM i platforms
* test,freebsd: fix flaky poll tests
* test: increase connection timeout to 1 second
* win,tcp: handle canceled connect with ECANCELED
Version 1.19.2
Changes since version 1.19.1:
* test: fix incorrect asserts
* test: fix a typo in test-fork.c
* build: remove long-obsolete gyp workarounds
* build: split off tests into separate gyp file
* test: check uv_cond_timedwait more carefully
* include,src: introduce UV__ERR() macro
* build: add url field to libuv.pc
* doc: mark IBM i as Tier 3 support
* win,build: correct C2059 errors
* zos: fix timeout for condition variable
* win: CREATE_NO_WINDOW when stdio is not inherited
* build: fix commmon.gypi comment
* doc: document uv_timer_start() on an active timer
* doc: add note about handle movability
* doc: fix syntax error in loop documentation
* osx,stream: retry sending handle on EMSGSIZE error
* unix: delay fs req register until after validation
* test: add tests for bad inputs
* unix,win: ensure req->bufs is freed
* test: add additional fs memory management checks
Version 1.19.0 (Stable):
* core: add getter/setter functions for easier ABI compat
* unix: make get(set)_process_title MT-safe
* unix,win: wait for threads to start
* test: add threadpool init/teardown test
* win, process: uv_kill improvements
* win: set _WIN32_WINNT to 0x0600
* zos: implement uv_fs_event* functions
* unix,tcp: avoid marking server sockets connected
* doc: mark Windows 7 as Tier 1 support
* win: map 0.0.0.0 and :: addresses to localhost
* build: install libuv.pc unconditionally
* test: remove custom timeout for thread test on ppc
* test: allow multicast not permitted status
* test: allow net unreachable status in udp test
* unix: use SA_RESTART when setting our sighandler
* unix,fs: fix for potential partial reads/writes
* win,build: do not build executable installer for dll
* win: allow directory symlinks to be created in a non-elevated context
* zos,test: accept SIGKILL for flaky test
* win: use RemoveDirectoryW() instead of _wmrmdir()
* unix: fix uv_cpu_info() error on FreeBSD
* zos,test: decrease pings to avoid timeout
v1.17.0:
* unix: avoid malloc() call in uv_spawn()
* doc: clarify the description of uv_loop_alive()
* win: map UV_FS_O_EXLOCK to a share mode of 0
* win: fix build on case-sensitive file systems
* win: fix test runner build with mingw64
* win: remove unused variable in test/test-fs.c
* zos: add strnlen() implementation
* unix: keep track of bound sockets sent via spawn
* unix,win: wait for threads to start
* test: add threadpool init/teardown test
* test: avoid malloc() in threadpool test
* test: lower number of tasks in threadpool test
* win: issue memory barrier in uv_thread_join()
* ibmi: add support for new platform
* test: fix test-spawn compilation
Version 1.16.0
* win: change st_blksize from `2048` to `4096`
* unix,win: add fs open flags, map O_DIRECT|O_DSYNC
* win, fs: fix non-symlink reparse points
* test: fix -Wstrict-prototypes warnings
* unix, windows: map ENOTTY errno
* unix: fall back to fsync() if F_FULLFSYNC fails
* unix: do not close invalid kqueue fd after fork
* zos: reset epoll data after fork
* zos: skip fork_threadpool_queue_work_simple
* test: keep platform_output as first test
* win: fix non-English dlopen error message
* unix,win: add uv_os_getppid()
* test: fix const qualification compiler warning
* doc: mark uv_default_loop() as not thread safe
* win, pipe: null-initialize stream->shutdown_req
* tty, win: get SetWinEventHook pointer at startup
* test: no extra new line in skipped test output
* pipe: allow access from other users
* unix,win: add uv_if_{indextoname,indextoiid}
* fs, win: add support for user symlinks
* cygwin: include uv-posix.h header
* zos: fix semaphore initialization
* zos: improve loop_count benchmark performance
* zos, test: flush out the oob data in callback
* unix,win: check for bad flags in uv_fs_copyfile()
* unix: modify argv[0] when process title is set
* unix: don't use req->loop in uv__fs_copyfile()
* doc: fix a trivial typo
* android: fix uv_cond_timedwait on API level < 21
* win: add uv__once_init() calls
* unix,windows: init all requests in fs calls
* unix,windows: return UV_EINVAL on NULL fs reqs
* windows: add POST macro to fs functions
* unix: handle partial sends in uv_fs_copyfile()
* Revert "win, test: fix double close in test runner"
* win, test: remove surplus CloseHandle
* unix: check for NULL in uv_os_unsetenv for parameter name (André Klitzing)
* doc: add thread safety warning for process title (Matthew Taylor)
* unix: always copy process title into local buffer (Matthew Taylor)
* poll: add support for OOB TCP and GPIO interrupts (CurlyMoo)
* win,build: fix appveyor properly (Refael Ackermann)
* win: include filename in dlopen error message (Ben Noordhuis)
* aix: add netmask, mac address into net interfaces (Gireesh Punathil)
* unix, windows: map EREMOTEIO errno (Ben Noordhuis)
* unix: fix wrong MAC of uv_interface_address (XadillaX)
* win,build: fix building from Windows SDK or VS console (Saúl Ibarra Corretgé)
* github: fix link to help repo in issue template (Ben Noordhuis)
* zos: remove nonexistent include from autotools build (Saúl Ibarra Corretgé)
* misc: remove reference to pthread-fixes.h from LICENSE (Saúl Ibarra Corretgé)
* docs: fix guide source code example paths (Anticrisis)
* android: fix compilation with new NDK versions (Saúl Ibarra Corretgé)
* misc: add android-toolchain to .gitignore (Saúl Ibarra Corretgé)
* win, fs: support unusual reparse points (Bartosz Sosnowski)
* android: fix detection of pthread_condattr_setclock (Saúl Ibarra Corretgé)
* android: remove no longer needed check (Saúl Ibarra Corretgé)
* doc: update instructions for building on Android (Saúl Ibarra Corretgé)
* win, process: support semicolons in PATH variable (Bartosz Sosnowski)
* doc: document uv_async_(init|send) return values (Ben Noordhuis)
* doc: add Android as a tier 3 supported platform (Saúl Ibarra Corretgé)
* unix: add missing semicolon (jBarz)
* win, test: fix double close in test runner (Bartosz Sosnowski)
* doc: update supported windows version baseline (Ben Noordhuis)
* test,zos: skip chown root test (jBarz)
* test,zos: use gid=-1 to test spawn_setgid_fails (jBarz)
* zos: fix hr timer resolution (jBarz)
* android: fix blocking recvmsg due to netlink bug (Jacob Segal)
* zos: read more accurate rss info from RSM (jBarz)
* win: allow bound/connected socket in uv_tcp_open() (Maciej Szeptuch
(Neverous))
* doc: differentiate SmartOS and SunOS support (cjihrig)
* unix: make uv_poll_stop() remove fd from pollset (Ben Noordhuis)
* unix, windows: add basic uv_fs_copyfile() (cjihrig)