Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Squashed commit of the following: commit d84acc65a7e48f41e2bc2fea38ed473e4a051d18 Merge: 47fd23f 381312e Author: Joe Cheng <joe@rstudio.org> Date: Mon Aug 12 09:46:05 2013 -0700 Merge tag 'v0.10.13' 2013.07.26, Version 0.10.13 (Stable) Changes since version 0.10.12: * unix, windows: fix uv_fs_chown() function prototype (Ben Noordhuis) commit 381312e1fe6fecbabc943ccd56f0e7d114b3d064 Author: Timothy J Fontaine <tjfontaine@gmail.com> Date: Thu Jul 25 10:31:28 2013 -0700 2013.07.26, Version 0.10.13 (Stable) Changes since version 0.10.12: * unix, windows: fix uv_fs_chown() function prototype (Ben Noordhuis) commit d779eb53d506d40fbe7903da7b914a5bbd588954 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Tue Jul 23 13:14:44 2013 +0200 unix, windows: fix uv_fs_chown() function prototype Before this commit, uv_fs_chown() and uv_fs_fchown() took the uid and gid as signed integers which is wrong because uid_t and gid_t are unsigned on most all platforms and IDs that don't fit in a signed integer do exist. This is not an ABI change because the size of the uid and gid arguments do not change, only their sign. On Windows, uv_uid_t and uv_gid_t are typedef'd as unsigned char for reasons that are unclear. It doesn't matter: they get cast to ints when used as function arguments. The arguments themselves are unused. Partial fix for joyent/node#5890. commit 3b4e0a216fb4093fa9f6e5d3c9039b5f1d30820b Author: isaacs <i@izs.me> Date: Tue Jul 9 13:18:53 2013 -0700 Now working on v0.10.13 commit 58a46221bba726746887a661a9f36fe9ff204209 Author: isaacs <i@izs.me> Date: Tue Jul 9 13:18:50 2013 -0700 2013.07.10, Version 0.10.12 (Stable) Changes since version 0.10.11: * linux: add support for MIPS (Andrei Sedoi) * windows: uv_spawn shouldn't reject reparse points (Bert Belder) * windows: use WSAGetLastError(), not errno (Ben Noordhuis) * build: darwin: disable -fstrict-aliasing warnings (Ben Noordhuis) * build: `all` now builds static and dynamic lib (Ben Noordhuis) * unix: fix build when !defined(PTHREAD_MUTEX_ERRORCHECK) (Ben Noordhuis) commit 37d0209c8911c80115bb0c58b248c7e10bb541a9 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Fri Jul 5 12:04:43 2013 +0200 unix: fix build when !defined(PTHREAD_MUTEX_ERRORCHECK) Ancient versions of glibc (<= 2.3.1) don't have error-checking mutexes. commit 88a2c7ff209935d736f02e79b3369f2e7b646bb8 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Wed Jun 26 17:13:26 2013 +0200 build: `all` now builds static and dynamic lib The `make all` target now builds both libuv.a and libuv.{so,dylib} rather than just libuv.a. commit 5841852703c02e46d7220f1eb8d89bb8414d7cf3 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Wed Jun 26 13:02:39 2013 +0200 test: add 'start timer from check handle' test Check that a timer that is started from a check handle gets picked up correctly, i.e. that it influences the timeout used in the next tick of the event loop. commit 488b43ecc5a79143d0697e5e49d834c86c7c9894 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Wed Jun 26 13:26:45 2013 +0200 test: fix signed/unsigned compiler warning commit a0bc4cca74be7de2a540439920c8f15d0a671b74 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Wed Jun 26 13:06:26 2013 +0200 build: darwin: disable -fstrict-aliasing warnings gcc 4.2.1 as shipped with Xcode complains incessantly about aliasing warnings, which, while technically true, disregards the fact that the aliased types have the same layout in memory. Squelch the warnings. commit c8c775bd9739e0c9562b925ec482a378b50f97c2 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Wed Jun 26 01:03:36 2013 +0200 windows: use WSAGetLastError(), not errno setsockopt() doesn't touch errno on failure. Use WSAGetLastError() instead. This is a back-port of commit 30a8b44 from the master branch. commit 495d1a09fb863354e5de1c6ab4547be3672ace00 Author: Bert Belder <bertbelder@gmail.com> Date: Wed Jun 19 00:14:58 2013 +0200 windows: uv_spawn shouldn't reject reparse points This fixes an issue where uv_spawn would not try to run a reparse point, and continue to scan the PATH instead. Effectively, it was impossible to spawn a symlinked binary. This commit fixes that. Also see #748 commit 6607e702539f0affa2d1b2926d4e69a1e032c242 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Tue Jun 18 23:50:31 2013 +0200 test: open stdout fd in write-only mode Fixes #771. commit 5096f1e0961896998c4185db866c53a8a8636fab Author: Andrei Sedoi <bsnote@gmail.com> Date: Thu Jun 13 23:23:42 2013 +0300 linux: add support for MIPS commit 72e440d7e193123c0359fa12a7fabab15d7d9f51 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Wed Jun 12 21:52:05 2013 +0200 Now working on v0.10.12 commit c3b75406a66a10222a589cb173e8f469e9665c7e Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Wed Jun 12 21:52:01 2013 +0200 2013.06.13, Version 0.10.11 (Stable) Changes since version 0.10.10: * unix: unconditionally stop handle on close (Ben Noordhuis) * freebsd: don't enable dtrace if it's not available (Brian White) * build: make HAVE_DTRACE=0 should disable dtrace (Timothy J. Fontaine) * unix: remove overzealous assert (Ben Noordhuis) * unix: clear UV_STREAM_SHUTTING after shutdown() (Ben Noordhuis) * unix: fix busy loop, write if POLLERR or POLLHUP (Ben Noordhuis) commit 12210fe578623995d13cc5126427c1c67de4b6e0 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Sat Jun 8 03:20:29 2013 +0200 unix: fix busy loop, write if POLLERR or POLLHUP This fixes a busy loop by working around a quirk with Linux kernels <= 2.6.32 where an EPIPE or ECONNRESET error on a file descriptor that is polled for EPOLLOUT but not EPOLLIN gets reported by epoll_wait() as just EPOLLERR|EPOLLHUP, like this: epoll_wait(5, {{EPOLLERR|EPOLLHUP, {u32=12, u64=12}}}, 1024, 433) = 1 Before this commit, libuv called uv__read() which attempts to read from the file descriptor. With newer kernels and on other operating systems that fails like this: read(12, "", 65536) = -1 EPIPE (Broken pipe) Which tells libuv there is a connection error and it should notify the user of that. On the affected Linux kernels however, the read succeeds with an EOF: read(12, "", 65536) = 0 Which is subsequently passed on to the user. In most cases, the user will close the handle and everything is fine. Node.js however sometimes keeps the handle open in an attempt to flush pending write requests. While libuv doesn't officially support this, unofficially it works... ...except on those older kernels. Because the kernel keeps waking up the event loop without setting POLLOUT and because the read calls EOF but don't error, libuv's I/O state machine doesn't progress. That's why this commit changes uv__stream_io() to also write pending data. While the read() system call doesn't error, the write() system call will. Fixes joyent/node#5504. commit 536c5f8661af4b57f8cc8be43bf482ae27a9fcd8 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Sat Jun 8 03:14:32 2013 +0200 unix: clear UV_STREAM_SHUTTING after shutdown() Fix a state machine buglet where the UV_STREAM_SHUTTING flag didn't get cleared. commit 3ab354367b2ff16a5ade1b585fdf7e10599084d3 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Fri Jun 7 11:28:31 2013 +0200 unix: remove overzealous assert Several node.js users are hitting this assert under what appear to be mostly benign conditions. In other words, it's unclear whether it's catching real bugs or just has wrong expectations. An aborting process is rather disruptive so I'm removing the assert from the stable branch and relanding it in the master branch. commit f84becc64ea3f4653a2ee95319dab0aeee7c4044 Author: Timothy J Fontaine <tjfontaine@gmail.com> Date: Thu Jun 6 10:48:24 2013 -0700 build: make HAVE_DTRACE=0 should disable dtrace commit c8ffee3460a1b507bbc7f5f83e4e09e4a769db76 Author: Brian White <mscdex@mscdex.net> Date: Fri May 31 18:37:45 2013 -0400 freebsd: don't enable dtrace if it's not available commit 8e4b248ca6cf66367476624899442974d17092f0 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Wed Jun 5 15:01:34 2013 +0200 unix: unconditionally stop handle on close Make sure the handle is fully stopped by the time uv__stream_close() calls uv_read_stop(). Fixes the following assertion: Assertion failed: (!uv__io_active(&stream->io_watcher, UV__POLLOUT) || !ngx_queue_empty(&stream->write_completed_queue) || !ngx_queue_empty(&stream->write_queue) || stream->shutdown_req != NULL || stream->connect_req != NULL), function uv_read_stop, file ../deps/uv/src/unix/stream.c, line 1329. Fixes joyent/node#5622. commit e9ae62d13a38b89fee60ed502307530bc2b8f520 Author: isaacs <i@izs.me> Date: Tue Jun 4 12:00:31 2013 -0700 Now working on v0.10.11 commit 0d95a88bd35fce93863c57a460be613aea34d2c5 Author: isaacs <i@izs.me> Date: Tue Jun 4 12:00:29 2013 -0700 2013.06.05, Version 0.10.10 (Stable) Changes since version 0.10.9: * include: document uv_update_time() and uv_now() (Ben Noordhuis) * linux: fix cpu model parsing on newer arm kernels (Ben Noordhuis) * linux: fix memory leak in uv_cpu_info() error path (Ben Noordhuis) * linux: don't ignore OOM errors in uv_cpu_info() (Ben Noordhuis) * unix, windows: move uv_now() to uv-common.c (Ben Noordhuis) * darwin: make uv_fs_sendfile() respect length param (Wynn Wilkes) commit b9eb402fb047b9c10c9395ea555d22bc869a5901 Author: Bert Belder <bertbelder@gmail.com> Date: Thu May 30 22:54:44 2013 +0200 include: remove lame comment from uv.h commit b4c658c3c0e650590cc0496833fead4f29deea75 Author: Wynn Wilkes <wynnw@movenetworks.com> Date: Wed May 29 12:13:34 2013 -0600 darwin: make uv_fs_sendfile() respect length param The darwin sendfile implementation uses the &len parameter as input and output. The code was sending 0 (not using the value of req->len) so the behavior wasn't what the caller was expecting. This makes sure to initialize len with req->len to ensure that the caller can send portions of a file (not always everything to the end of the file). commit 081f7018ecc1c66a76f76c4b5cacb327820674b9 Author: Bert Belder <bertbelder@gmail.com> Date: Wed May 29 18:32:25 2013 +0300 test: use c-style comments Fixes a compilation problem on OS X caused by the use of c++-style comments in test-osx-select.c. commit e0bdb3dbc916d8311538de2b783c53e9739bf652 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Wed May 29 16:13:34 2013 +0200 unix, windows: move uv_now() to uv-common.c commit b93cf8b594b5eaf4617174e674961fd3db3fb0c6 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Wed May 29 01:37:36 2013 +0200 linux: don't ignore OOM errors in uv_cpu_info() commit 31282a97e70b24df7ebe4692967fee2a48aa2096 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Wed May 29 01:25:37 2013 +0200 linux: fix memory leak in uv_cpu_info() error path Any memory allocated to hold CPU model strings wasn't freed on error. commit 92c72f58bf59ee51a1680dd52b0e91a0ccae485d Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Wed May 29 00:24:02 2013 +0200 linux: fix cpu model parsing on newer arm kernels The format of /proc/cpuinfo on ARM kernels >= 3.8 has changed. Scan for the string "model name" (like x86) first, "Processor" second. Fixes #812. commit dfff2e9e2336ac7b89234c3f7744a73fc6560bb1 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Tue May 28 23:20:35 2013 +0200 include: document uv_update_time() and uv_now() commit 21c12b824a07be22a24547904b50ff022db11dd7 Author: isaacs <i@izs.me> Date: Tue May 28 12:08:49 2013 -0700 Now working on v0.10.10 commit a195f9ace23d92345baf57582678bfc3017e6632 Author: isaacs <i@izs.me> Date: Tue May 28 12:08:46 2013 -0700 2013.05.29, Version 0.10.9 (Stable) Changes since version 0.10.8: * unix: fix stream refcounting buglet (Ben Noordhuis) * unix: remove erroneous asserts (Ben Noordhuis) * unix: add uv__is_closing() macro (Ben Noordhuis) * unix: stop stream POLLOUT watcher on write error (Ben Noordhuis) commit b329d51ef4ce32f34c21a016a7c311ddeb077878 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Sun May 26 23:44:55 2013 +0200 unix: stop stream POLLOUT watcher on write error The node.js test suite sometimes hits the assert that was added in commit 4146805 that checks if there are connect, write or shutdown requests pending when the user calls uv_read_stop() while the stream is primed for writing. The libuv user (i.e. node.js) is supposed to close the stream on error. Because uv__stream_close() calls uv_read_stop(), it's possible that the POLLOUT watcher is still active. commit 8e16f8e0564a7b853c2cb0f92572e7959c6cadae Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Sun May 26 23:02:17 2013 +0200 unix: add uv__is_closing() macro commit b38c9c1004993ca4f642629f5af1b7b09bbc6887 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Sat May 25 02:36:45 2013 +0200 unix: remove erroneous asserts As of commit c53fe81, it's legal for write_queue_size > 0 when the write_queue itself is empty. Sounds illogical but it means there are error-state write requests in the write_completed_queue that will touch up the write_queue_size on the next tick of the event loop. Remove a few stray asserts that still checked for the old situation. commit 636a13b8c46c52413e1da1795a952bfc738f3c55 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Thu May 23 07:16:00 2013 +0200 unix: fix stream refcounting buglet Fix a buglet where uv_read_stop() would mark the handle as stopped even when there are in-progress write requests. This bug is unlikely to have affected anyone, the only case where it has a user-visible effect is when: a) the handle has been stopped for reading but not writing, and b) it's the last active handle in the event loop's pollset If both conditions are met, it's possible for the event loop to terminate prematurely. This reapplies commit 80f2f82 which was temporarily reverted in fe7b154 because it was making a lot of node.js tests fail on OS X with the following assertion: Assertion failed: (!uv__is_active(handle)), function uv__finish_close, file ../../deps/uv/src/unix/core.c, line 165. Expecting that the handle is inactive when the state is UV_CLOSING turns out to be a bad assumption: it's possible that the handle is executing (for example) a shutdown request when uv__finish_close() is called. That's okay, uv__stream_destroy() takes care of that. The issue wasn't specific to OS X, it was just more visible on that platform. (Slow) debug builds on Linux exhibited the same behavior. commit 7d5024e7e6564c36b99af39db075b0c9d75797f9 Author: isaacs <i@izs.me> Date: Fri May 24 14:37:56 2013 -0700 Now working on v0.10.9 commit 0f39be12926fe2d8766a9f025797a473003e6504 Author: isaacs <i@izs.me> Date: Fri May 24 14:37:53 2013 -0700 2013.05.25, Version 0.10.8 (Stable) Changes since version 0.10.7: * windows: make uv_spawn not fail under job control (Bert Belder) * darwin: assume CFRunLoopStop() isn't thread-safe (Fedor Indutny) * win: fix UV_EALREADY incorrectly set (Bert Belder) * darwin: make two uv__cf_*() functions static (Ben Noordhuis) * darwin: task_info() cannot fail (Ben Noordhuis) * unix: add mapping for ENETDOWN (Ben Noordhuis) * unix: implicitly signal write errors to libuv user (Ben Noordhuis) * unix: fix assert on signal pipe overflow (Bert Belder) * unix: turn off POLLOUT after stream connect (Ben Noordhuis) commit fe7b154476145ebc69ab70d3ca1d195116a00065 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Fri May 24 21:23:09 2013 +0200 Revert "unix: fix stream refcounting buglet" This change is making 45 out of 527 node.js tests fail on OS X with the following assertion: Assertion failed: (!uv__is_active(handle)), function uv__finish_close, file ../../deps/uv/src/unix/core.c, line 165. It's likely a manifestation of a bug elsewhere but, because there's a new node.js release going out tonight, I'm reverting it for now. This reverts commit 80f2f826bf90b84e659321c0b7fd8af419acb85e. Conflicts: src/unix/stream.c commit 41468050745bc135247f587eae1c38e958fd8377 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Thu May 23 07:37:36 2013 +0200 unix: turn off POLLOUT after stream connect Clear the POLLOUT flag after we're done connecting. Not doing so isn't really harmful but it may cause the event loop to wake up more often than it has to. commit 80f2f826bf90b84e659321c0b7fd8af419acb85e Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Thu May 23 07:16:00 2013 +0200 unix: fix stream refcounting buglet Fix a buglet where uv_read_stop() would mark the handle as stopped even when there are in-progress write requests. This bug is unlikely to have affected anyone, the only case where it has a user-visible effect is when: a) the handle has been stopped for reading but not writing, and b) it's the last active handle in the event loop's pollset If both conditions are met, it's possible for the event loop to terminate prematurely. commit c5d570ddba7b3e95fdade96758df0eb2d24cf42f Author: Bert Belder <bertbelder@gmail.com> Date: Thu May 23 14:44:45 2013 +0200 unix: fix assert on signal pipe overflow An incorrect assert() statement was causing libuv to crash when writing to an internal signal pipe would result in EAGAIN/EWOULDBLOCK. This commit doesn't solve the underlying issue that the signal pipe can overflow. This should fix joyent/node#5538 commit c53fe815442559fe58f362279bdc63f5483d6fdb Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Wed May 22 16:41:52 2013 +0200 unix: implicitly signal write errors to libuv user Fix an infinite loop in the example below when the stream encounters an EPIPE/ECONNRESET/etc. error: // keep writing until we start buffering while (stream->write_queue_size == 0) { uv_write_t* req = make_write_req(); uv_buf_t buf = uv_buf_init("PING", 4); uv_write(req, stream, &buf, 1, write_cb); } uv_write() does not return an error code on write errors, the error is only reported to the callback. Before this commit, uv_write() left stream->write_queue_size untouched on error, meaning the caller had no way to find out about that error until the next tick of the event loop - which in the example above leads to an infinite loop because that next tick is indefinitely postponed. This commit works around that at the cost of some added internal complexity. Fixes joyent/node#5516. commit 739a5b25b5704d526a46a953da8b9b8db31770d4 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Mon May 20 20:04:45 2013 +0200 unix: add mapping for ENETDOWN commit a1cb52a3ebe13f8e26a48e194e595e95c677de30 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Mon May 20 14:35:10 2013 +0200 darwin: task_info() cannot fail And if it does: assert, don't return errno. It's a mach function, it doesn't set errno. commit e515d71592afe66ddecd6bf2b1409848811cf7ff Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Fri May 17 14:42:14 2013 +0200 darwin: make two uv__cf_*() functions static commit db7dc6899d9badcfb99016ba87da2a66eae86dad Author: Bert Belder <bertbelder@gmail.com> Date: Sat May 18 20:45:36 2013 +0200 win: fix UV_EALREADY incorrectly set UV_EALREADY itself is already a libuv error, it should be set with uv__set_artifical_error and not with uv__set_sys_error. Closes #802 commit d5fa633ef22bd40c81af85dd2ee3882cce3c91c4 Author: Fedor Indutny <fedor.indutny@gmail.com> Date: Fri May 17 20:31:39 2013 +0400 darwin: assume CFRunLoopStop() isn't thread-safe Use signaling mechanism for loop termination, because CFRunLoopStop() is most likely not a thread-safe function and invoking it from other thread may sometimes result in a "dead-lock". fix #799 commit 4f61ab2058c9baffa01d9c865a376ed8d3c65820 Author: Bert Belder <bertbelder@gmail.com> Date: Thu May 16 21:29:40 2013 +0200 windows: make uv_spawn not fail under job control * Fix a potential issue introduced with 415f4d3, namely that uv_spawn can fail when the current process is under job control. This would happen on Windows versions that don't support nested jobs (versions prior to Windows 8 / Server 2012). * Change the `uv__init_global_job_handle` function signature to match what `uv_once` expects. * Add a bunch of comments that clarify how we're using job control, and how we're dealing with job control that might be established by our parent process. commit 13496e9c1ab905af0c43a3dda7bdec7dca73d1b3 Author: Bert Belder <bertbelder@gmail.com> Date: Tue May 14 16:50:22 2013 -0700 Now working on v0.10.8 commit 028baaf0846b686a81e992cb2f2f5a9b8e841fcf Author: Bert Belder <bertbelder@gmail.com> Date: Tue May 14 16:50:19 2013 -0700 2013.05.15, Version 0.10.7 (Stable) Changes since version 0.10.6: * windows: kill child processes when the parent dies (Bert Belder) commit 415f4d3e4c7ac25abf723eed3f5b40e63e045785 Author: Bert Belder <bertbelder@gmail.com> Date: Tue May 14 16:48:03 2013 -0700 windows: kill child processes when the parent dies This makes Windows behave just like Unix. This does not affect processes that are spawned with the UV_PROCESS_DETACHED flag set. commit 1fd10deec4de70ec3c13765948ec2726a0023c23 Author: isaacs <i@izs.me> Date: Tue May 14 14:40:01 2013 -0700 Now working on v0.10.7 commit 11e6613e6260d95c8cf11bf89a2759c24649319a Author: isaacs <i@izs.me> Date: Tue May 14 14:39:58 2013 -0700 2013.05.15, Version 0.10.6 (Stable) Changes since version 0.10.5: * stream: fix osx select hack (Fedor Indutny) * stream: fix small nit in select hack, add test (Fedor Indutny) * build: link with libkvm on openbsd (Ben Noordhuis) * stream: use harder sync restrictions for osx-hack (Fedor Indutny) * unix: fix EMFILE error handling (Ben Noordhuis) * darwin: fix unnecessary include headers (Daisuke Murase) * darwin: rename darwin-getproctitle.m (Ben Noordhuis) * build: convert predefined $PLATFORM to lower case (Elliot Saba) * build: set soname in shared library (Ben Noordhuis) * build: make `make test` link against .a again (Ben Noordhuis) * darwin: fix ios build, don't require ApplicationServices (Ben Noordhuis) * build: only set soname on shared object builds (Timothy J. Fontaine) commit 0564ee4a66956df1f3e0294e02296158e984d728 Author: Miroslav Bajtoš <miro.bajtos@gmail.com> Date: Wed Apr 17 00:33:25 2013 +0200 test, sunos: disable process_title test Disable unit test failing due to missing implementation of uv_(set|get)_process_title for Sun OS (SmartOS). Based on discussion with @tjfontaine, such implementation is difficult if possible at all and it won't be done anytime soon. Thus there is no point in keeping the failing test around. commit 55c150abfc11ad6c23674c196ed914db0f942224 Author: Timothy J Fontaine <tjfontaine@gmail.com> Date: Mon May 13 15:48:32 2013 -0700 build: only set soname on shared object builds commit f22163c233d4a9dedfe38ebb18a1a414cd25ba62 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Mon May 13 20:06:25 2013 +0200 darwin: fix ios build, don't require ApplicationServices commit a11d16d8f5888aee56f129ddbd54c6130a881d2c Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Sun May 12 16:42:30 2013 +0200 build: make `make test` link against .a again Commit 3eb6eb3 links the .so with -Wl,-soname which breaks the `make test` target: run-tests is linked against (for example) libuv.so.0.11 while the actual file name is libuv.so. That's relatively easy to fix by getting creative with rpaths but it's even easier to fix by simply linking statically. It also means I no longer have to remember to set LD_BIND_NOW when profiling the benchmarks. commit 3eb6eb35ccf1aedbd2297c98b73df3cb81215e3a Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Sun May 12 14:48:58 2013 +0200 build: set soname in shared library commit 96a2df80846af3769f6c0d432cae2c5963c51e2e Author: Elliot Saba <staticfloat@gmail.com> Date: Sat May 11 14:48:52 2013 -0700 build: convert predefined $PLATFORM to lower case commit fe2a3150c0244759154c4cc472af12eca79df8a8 Author: Miroslav Bajtoš <miro.bajtos@gmail.com> Date: Mon Apr 15 21:03:05 2013 +0200 test: add error logging to tty unit test commit af6e865a076af031213f9afc488c28306d6bc3d2 Author: Miroslav Bajtoš <miro.bajtos@gmail.com> Date: Mon Apr 15 20:36:56 2013 +0200 test: fix process_title failing on linux Shorten the test string from 40 to 38 characters because the title length is limited to 39 characters. Truncation of long titles was introduced intentionally by commit a0c1d84 (see discussion in joyent/node#5006). commit 2c21050956206b5e7962e86f4bdbaade1a44b6ae Author: Miroslav Bajtoš <miro.bajtos@gmail.com> Date: Sat Apr 20 06:43:31 2013 +0200 test: add RETURN_SKIP and RETURN_TODO macros Added two new flags to identify tests that are intentionally ignored (usually because we don't want to implement the tested functionality on current platform) and test serving as TODO list (usually indicating that the tested functionality should be implemented on current plaform in the near future.) commit 9b801d551b70bd4b19e1b29fd3a257bec8051842 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Thu May 2 13:59:18 2013 +0200 darwin: rename darwin-getproctitle.m Rename it to darwin-getproctitle.c, it doesn't need an Objective-C compiler. Fix up -Wpedantic warnings about void to function pointer casts and include <ApplicationServices/ApplicationServices.h> to get the GetCurrentProcess() function prototype. commit 4b0fac89907380a62c7acc15303a39839f05e011 Author: Daisuke Murase <typester@cpan.org> Date: Thu May 2 10:06:03 2013 +0900 darwin: fix unnecessary include headers This file doesn't use any Cocoa functions, CoreFoundation.h is enough here. This line causes compilation error on iOS environment. commit f6fb1dfef149b09c106538bc1040b4444d6c94bb Author: Bert Belder <bertbelder@gmail.com> Date: Thu May 2 13:15:21 2013 +0200 ChangeLog: fix incorrect release date commit b3ab332b340fb857c4d6bd43208aa708a6eb00bd Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Wed May 1 19:14:23 2013 +0200 unix: fix EMFILE error handling On Linux, the accept() and accept4() system calls checks for EMFILE before checking for EAGAIN. Refine our EMFILE error handling tactic to deal with that. Here is what used to happen: 1. The event loop calls accept() and sees EMFILE. 2. Libuv switches to EMFILE error handling mode. It closes a stashed file descriptor and calls accept() again. 3. The accept() system call fails with EAGAIN. 4. Libuv reopens the stashed file descriptor (reaching RLIMIT_NOFILE again) and returns control to the regular event loop. 5. The regular event loop calls accept(), sees EMFILE and jumps to step 2 again. Effectively an infinite loop. Avoid that by not calling accept() again when we've seen EAGAIN. Fixes joyent/node#5389. commit 67f9b91a8b76536c47045a9edabe440fa78a42c0 Author: Fedor Indutny <fedor.indutny@gmail.com> Date: Tue Apr 30 12:51:32 2013 +0400 stream: use harder sync restrictions for osx-hack Synchronize harder to avoid excessive spins, invokations of async callback and sporadic assertion failures on double-call of async callback. commit 4e5b8dc2efb7a5711b0741ff61b9da914b4920fc Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Mon Apr 29 13:38:57 2013 +0200 build: link with libkvm on openbsd The Makefile already did and now the gyp build does too. Fixes the OpenBSD build of node.js. Fixes joyent/node#5363. commit ac4e7e7ff2d947297ac2995561e49c0e3efdafd9 Author: Fedor Indutny <fedor.indutny@gmail.com> Date: Fri Apr 26 23:43:28 2013 +0400 stream: fix small nit in select hack, add test commit 2400716d875a6481c13fd0b46068ab3b6afa5345 Author: Fedor Indutny <fedor.indutny@gmail.com> Date: Tue Apr 23 22:34:43 2013 -0400 stream: fix osx select hack After latest twiddling, `stream->io_watcher.fd` doesn't contain a real stream's file descriptior anymore. The one from `select_state` should be used instead. Zero-initialize `select_state->event` field. commit a0cb926e2eb9979378f4b71854e8c035035cc3e8 Author: isaacs <i@izs.me> Date: Mon Apr 22 17:37:25 2013 -0700 Now working on v0.10.6 commit 6595a7732c52eb4f8e57c88655f72997a8567a67 Author: isaacs <i@izs.me> Date: Mon Apr 22 17:37:22 2013 -0700 2013.04.24, Version 0.10.5 (Stable) Changes since version 0.10.4: * unix: silence STATIC_ASSERT compiler warnings (Ben Noordhuis) * windows: make timers handle large timeouts (Miroslav Bajtoš) * windows: remove superfluous assert statement (Bert Belder) * unix: silence STATIC_ASSERT compiler warnings (Ben Noordhuis) * linux: don't use fopen() in uv_resident_set_memory() (Ben Noordhuis) commit cd10637d0b3c03e28831eca2d66d8bda3216b10c Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Mon Apr 22 08:24:57 2013 +0200 linux: don't use fopen() in uv_resident_set_memory() RSS is a reflection of the number of pages that a process has mapped. glibc implements fopen() in terms of mmap() which means that trying to read the number of mapped pages changes it. Switch to open(). commit 105e4dcb231f88c8e9a71cca85be9af9267022f4 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Mon Apr 22 07:46:21 2013 +0200 unix: silence STATIC_ASSERT compiler warnings Fix the following two warnings: src/unix/core.c:74:1: warning: ISO C90 forbids array 'static_assert_failed' whose size can't be evaluated [-Wvla] src/unix/core.c:76:1: warning: ISO C90 forbids array 'static_assert_failed' whose size can't be evaluated [-Wvla] commit a3963883b81ec2c2612511ff3fa885b2944d8457 Author: Bert Belder <bertbelder@gmail.com> Date: Thu Apr 18 02:55:15 2013 +0200 windows: remove superfluous assert statement commit 09ff5100e3ecae807dd19796e08a0b756bc04ddd Author: Miroslav Bajtoš <miro.bajtos@gmail.com> Date: Tue Apr 16 16:29:48 2013 +0200 windows: make timers handle large timeouts Fixes a bug where timers with very large timeouts run on the next tick. Based on a similar bug fix for unix (9b61939). Fixes joyent/node#5101. commit ef85bdaffbc878b44b24f01e97f7c7e7301c6dfe Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Fri Apr 12 19:37:52 2013 +0200 unix: silence STATIC_ASSERT compiler warnings Newer versions of gcc complain about the definition of the zero element array. Squelch that warning by turning it into a one element array. commit 5ed1d02cc0167704710d1dd4aafd26653eaf810f Author: isaacs <i@izs.me> Date: Thu Apr 11 09:00:10 2013 -0700 Now working on v0.10.5 commit 85827e26403ac6dfa331af8ec9916ea7e27bd833 Author: isaacs <i@izs.me> Date: Thu Apr 11 09:00:06 2013 -0700 2013.04.12, Version 0.10.4 (Stable) Changes since version 0.10.3: * include: update uv_backend_fd() documentation (Ben Noordhuis) * unix: include uv.h in src/version.c (Ben Noordhuis) * unix: don't write more than IOV_MAX iovecs (Fedor Indutny) * mingw-w64: don't call _set_invalid_parameter_handler (Nils Maier) * build: gyp disable thin archives (Timothy J. Fontaine) * sunos: re-export entire library when static (Timothy J. Fontaine) * unix: dtrace probes for tick-start and tick-stop (Timothy J. Fontaine) * windows: fix memory leak in fs__sendfile (Shannen Saez) * windows: remove double initialization in uv_tty_init (Shannen Saez) * build: fix dtrace-enabled out of tree build (Ben Noordhuis) * build: squelch -Wdollar-in-identifier-extension warnings (Ben Noordhuis) * inet: snprintf returns int, not size_t (Brian White) * win: refactor uv_cpu_info (Bert Belder) * build: add support for Visual Studio 2012 (Nicholas Vavilov) * build: -Wno-dollar-in-identifier-extension is clang only (Ben Noordhuis) commit 0ff06b4ac38a3d53c32e52b2c649dd2d4b3d2b0c Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Wed Apr 10 23:40:55 2013 +0200 build: -Wno-dollar-in-identifier-extension is clang only Add a compiler check because turning on the option unconditionally breaks the build when CC=gcc. This should also fix the build on versions of OS X that predate Apple's switch to clang (10.6 and older.) commit 633d33a92a4004938b8a88f661571c3fc93085db Author: mscdex <mscdex@mscdex.net> Date: Wed Apr 10 11:36:13 2013 -0400 cygwin: remove unused variable commit bc5fa794b96049e39e7fc1192137db36e1dc4dc8 Author: Nicholas Vavilov <vvnicholas@gmail.com> Date: Tue Feb 26 15:01:48 2013 +0200 build: add support for Visual Studio 2012 Closes #722 commit a9bce29f0c98187fcf09d1ba9dcd4eb5548fb30e Author: Bert Belder <bertbelder@gmail.com> Date: Wed Apr 10 16:02:24 2013 +0200 win: refactor uv_cpu_info Fixes a couple of error handling issues: * Don't free an uninitialized pointer when allocating memory for `cpu_infos` fails. * Don't return a bogus error value when NtQuerySystemInformation fails. That function returns an NTSTATUS code instead of setting the last error. * Don't clobber out parameters when an error happens. commit 9021dbcd8d1dc3b1c6cca82f46d5e774088d4ae6 Author: Brian White <mscdex@mscdex.net> Date: Wed Apr 10 14:31:50 2013 +0200 inet: snprintf returns int, not size_t commit 4d4f1496d9b600dfd3e4c4f0040d7b4a0d41043c Author: Brian White <mscdex@mscdex.net> Date: Wed Apr 10 14:29:29 2013 +0200 windows, unix: remove dead code commit 8ea49c12235fc22bfe9d192224507c5a1183ee98 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Wed Apr 10 14:31:28 2013 +0200 build: squelch -Wdollar-in-identifier-extension warnings The dtrace probes contain dollar signs. We know, llvm-gcc, and we don't care. Suppress the warnings. commit bad707db3f499decd864907809cb5d9b423d1d98 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Wed Apr 10 14:21:38 2013 +0200 gitigore: ignore auto-generated uv-dtrace.h header commit be5b16aabd1d1996ca666a48b933a79e3d37b340 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Wed Apr 10 14:19:14 2013 +0200 build: fix dtrace-enabled out of tree build commit 603915dd0081ec2f34d612291a1aeb909f6f2b76 Author: Shannen Saez <shannenlaptop@gmail.com> Date: Wed Apr 10 14:16:39 2013 +0200 windows: remove double initialization in uv_tty_init commit 7570a35b70a33258e4c36e080e900f30c3213697 Author: Shannen Saez <shannenlaptop@gmail.com> Date: Wed Apr 10 14:15:13 2013 +0200 windows: fix memory leak in fs__sendfile commit e1ffc6c0eed94a328e8435bc215820a4701ee8b5 Author: Timothy J Fontaine <tjfontaine@gmail.com> Date: Mon Apr 8 16:17:01 2013 -0700 unix: dtrace probes for tick-start and tick-stop commit 0da533e84f0a4f32d200bf9568548bce1e5e315a Author: Timothy J Fontaine <tjfontaine@gmail.com> Date: Mon Apr 8 16:31:35 2013 -0700 sunos: re-export entire library when static This is useful to make sure linker doesn't strip things like dtrace commit e294975bb4e01efac13a134b3282193e543c68c7 Author: Timothy J Fontaine <tjfontaine@gmail.com> Date: Mon Apr 8 16:30:27 2013 -0700 build: gyp disable thin archives Thin archives aren't available on all platforms, notably smartos commit 5676924c5bd7a6e59ec0abb958c31a98b667ea87 Author: Nils Maier <maierman@web.de> Date: Wed Apr 10 14:00:37 2013 +0200 mingw-w64: don't call _set_invalid_parameter_handler Check the __MSVCRT_VERSION__, as mingw-w64 always defines _WRITE_ABORT_MSG. Closes #774 commit 895e77639ee9aa3bc17b4bc9d675d63d7940c396 Author: Fedor Indutny <fedor.indutny@gmail.com> Date: Mon Apr 8 17:10:39 2013 +0400 unix: don't write more than IOV_MAX iovecs Write no more than `IOV_MAX` chunks with `writev()` at once, otherwise `writev()` returns EINVAL. commit f1215b791811e5c860152ecde038f35537dab57f Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Thu Apr 4 03:02:06 2013 +0200 unix: include uv.h in src/version.c Include uv.h so the compiler sees the right visibility attribute for uv_version() and uv_version_string(). GYP builds compile with -fvisibility=hidden. Before this commit, the symbols were not visible in libuv.so. Fixes joyent/node#5213. commit ec24bfac194419fae2b66aa2bb0d8d9d2cb4547a Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Sun Mar 31 20:02:24 2013 +0200 include: update uv_backend_fd() documentation uv_run_once() is no more, replace with uv_run(UV_RUN_NOWAIT). Fixes #759. commit 9e90cdeae72b0b55becddfef1d441aeeb588e083 Author: Bert Belder <bertbelder@gmail.com> Date: Thu Mar 28 19:59:51 2013 +0100 Now working on v0.10.4 commit 31ebe23973dd98fd8a24c042b606f37a794e99d0 Author: Bert Belder <bertbelder@gmail.com> Date: Thu Mar 28 19:56:36 2013 +0100 2013.02.04, Version 0.10.3 (Stable) Changes since version 0.10.2: * include: remove extraneous const from uv_version() (Ben Noordhuis) * doc: update README, replace `OS` by `PLATFORM` (Ben Noordhuis) * build: simplify .buildstamp rule (Ben Noordhuis) * build: disable -Wstrict-aliasing on darwin (Ben Noordhuis) * darwin: don't select(&exceptfds) in fallback path (Ben Noordhuis) * unix: don't clear flags after closing UDP handle (Saúl Ibarra Corretgé) commit a9a23dc28ec73912dfaae4fc2a8d815e20578695 Author: Saúl Ibarra Corretgé <saghul@gmail.com> Date: Thu Mar 28 15:50:42 2013 +0100 unix: don't clear flags after closing UDP handle commit 75141493ba44addf7e089308e9692357f958ceda Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Thu Mar 28 00:12:24 2013 +0100 darwin: don't select(&exceptfds) in fallback path The exceptfds set is for polling OOB data, not errors. Fixes joyent/node#5155. commit fe136cedb9f5d627e5b21934a48c97ff62f4c50e Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Thu Mar 28 00:10:44 2013 +0100 build: disable -Wstrict-aliasing on darwin The antiquated gcc/clang that ships with Xcode emits waaaay too many false positives. commit 0fb9b22ce6263d2996421c1261d39c6bb3255cb5 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Tue Mar 26 15:16:24 2013 +0100 build: simplify .buildstamp rule commit bd20b371700e6354d8d0ec3a102048946724f053 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Tue Mar 26 14:49:29 2013 +0100 doc: update README, s/OS/PLATFORM/ Commit a9740c9 changed the name of the OS var to PLATFORM but forgot to update the README. commit 3f6122b3f7e58109ff82bb217ff4db3bb310a98b Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Tue Mar 26 14:45:53 2013 +0100 include: remove extraneous const from uv_version() Fixes the following warning: include/uv.h:236:30: warning: type qualifiers ignored on function return type [-Wignored-qualifiers] UV_EXTERN const unsigned int uv_version(void); commit d5f8c1a4d3dcfc42b15c75a53427763233bd2110 Author: Bert Belder <bertbelder@gmail.com> Date: Mon Mar 25 15:38:41 2013 +0100 Now working on v0.10.3 commit 0f36a00568f3e7608f97f6c6cdb081f4800a50c9 Author: Bert Belder <bertbelder@gmail.com> Date: Mon Mar 25 15:32:44 2013 +0100 2013.03.25, Version 0.10.2 (Stable) This is the first officially versioned release of libuv. Starting now libuv will make releases independently of Node.js. Changes since Node.js v0.10.0: * test: add tap output for windows (Timothy J. Fontaine) * unix: fix uv_tcp_simultaneous_accepts() logic (Ben Noordhuis) * include: bump UV_VERSION_MINOR (Ben Noordhuis) * unix: improve uv_guess_handle() implementation (Ben Noordhuis) * stream: run try_select only for pipes and ttys (Fedor Indutny) Changes since Node.js v0.10.1: * build: rename OS to PLATFORM (Ben Noordhuis) * unix: make uv_timer_init() initialize repeat (Brian Mazza) * unix: make timers handle large timeouts (Ben Noordhuis) * build: add OBJC makefile var (Ben Noordhuis) * Add `uv_version()` and `uv_version_string()` APIs (Bert Belder) commit eeeb07934b0b284dd742326b564d59adcc5b0069 Author: Bert Belder <bertbelder@gmail.com> Date: Mon Mar 25 15:09:58 2013 +0100 Update AUTHORS and .mailmap commit c7b1c53ef1afe7c0fef0822d72b0783368b626de Author: Bert Belder <bertbelder@gmail.com> Date: Mon Mar 25 15:33:59 2013 +0100 Prepare for making releases, add uv_version/uv_version_string API commit 1487d5aea71ef20875f39ef66f0f8be46a8b3baf Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Sat Mar 23 23:16:53 2013 +0100 build: add OBJC makefile var Overrides the Objective-C compiler that is used. Defaults to $(CC). commit 9b619396d93182be26287f261ac654611aa99d95 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Thu Mar 21 14:47:38 2013 +0100 unix: make timers handle large timeouts This commit fixes two closely related integer overflow bugs: * Timers with a timeout > INT_MAX cause uv__next_timeout() to return a negative value. * Timers with very large timeouts (close or equal to ULLONG_MAX) run on the next tick. In both cases, clamp the values to prevent the overflow from happening. Fixes joyent/node#5101. commit 77cb29a723b1bda2cd4f938031d352e46bd25fed Author: Brian Mazza <louseman@gmail.com> Date: Mon Mar 4 22:17:50 2013 -0600 unix: make uv_timer_init() initialize repeat uv_timer_get_repeat() should return 0 for timers that haven't been started. commit a9740c9bc432fe0b416c4c765a6011ddc2df966f Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Sun Mar 17 00:12:42 2013 +0100 build: rename OS to PLATFORM Rename the OS make variable to PLATFORM, it conflicts with the OS env var. That is, running `make` when the OS env var is set, may cause spurious build breakage. Fixes #737. commit b45a74fab3745b695aa43d8e20d2c32b10843d5c Author: Fedor Indutny <fedor.indutny@gmail.com> Date: Fri Mar 15 21:54:45 2013 +0400 stream: run try_select only for pipes and ttys Its not necesary for TCP and other streams, since fd is always working with kqueue there. commit 7b66ea18ff47ab47aaf1ca20bc7f544a76b0e8df Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Thu Mar 14 13:36:05 2013 +0100 unix: improve uv_guess_handle() implementation Make it understand FIFOs, character devices and sockets. commit 9f714a1d25d4e99dfcf4985656b070431431523b Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Thu Mar 14 12:49:00 2013 +0100 include: bump UV_VERSION_MINOR Fixes #740. commit 905d56c1405b044b3e54e75a9fd22979d9186f3e Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Tue Mar 12 01:02:28 2013 +0100 unix: fix uv_tcp_simultaneous_accepts() logic Inverts the meaning of the 'enable' argument. Before, it actually set the UV_TCP_SINGLE_ACCEPT flag when enable=1. Now it clears it, which is what uv-win does and what you would expect it to do. commit 47fd23ffc8a175e3363960573f8e45d845569f55 Merge: 1ef1344 5462dab Author: Joe Cheng <joe@rstudio.com> Date: Mon Mar 11 10:20:57 2013 -0700 Merge tag 'node-v0.10.0' Node v0.10.0 commit 2f84a57566027a66f0f876b31f4524bde41ca91a Author: Timothy J Fontaine <tjfontaine@gmail.com> Date: Tue Mar 5 11:32:54 2013 -0800 test: add tap output for windows commit 5462dab8890c414154690d8a45b1384301b27436 Author: Bert Belder <bertbelder@gmail.com> Date: Sat Mar 9 20:19:28 2013 +0100 win/tcp: don't enable iocp sync bypass when iocp emulation is used When iocp sync bypass is in use libuv doesn't expect the system to generate events when an i/o operation completes synchronously. However when iocp emulation is enabled an event will always be generated because SetFileCompletionNotificationModes() doesn't stop OVERLAPPED.hEvent from becoming signaled. This should fix joyent/node#4959. commit f59dc221e6343a290c7c349bb1875029bedb0a9a Author: Bert Belder <bertbelder@gmail.com> Date: Sat Mar 9 18:24:59 2013 +0100 win: fix potential HANDLE corruption due to incorrect cast Closes #738. commit b68ee4049688494026c0f2a703a2d09aeff18438 Author: isaacs <i@izs.me> Date: Thu Mar 7 15:59:21 2013 -0800 win: Map ERROR_INVALID_FUNCTION to EISDIR This error is raised when calling read() or write() on a directory. A bit of googling turns up some cases where this error can be raised that are not properly mapped to EISDIR, but are also cases that libuv doesn't really care about, like the Password Manager API, GetFirmwareEnvironmentVariable, or CreateTapePartition. If libuv ever needs to handle these cases, then I suppose that the ERROR_INVALID_FUNCTION->EISDIR mapping could be done directly in the fs read() and write() functions, but doing so at this point seems premature, as it makes the error code mapping a bit more messy. Fixes joyent/node#4951 commit 8fbe43379de4b8958c45e47b54d296ff1bef79e4 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Thu Mar 7 01:54:04 2013 +0100 unix: please valgrind, free memory in threadpool.c commit dac5a758f8161b5e7aa42fea12582025a9b4e150 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Thu Mar 7 00:28:15 2013 +0100 unix: replace volatile cast with ACCESS_ONCE macro commit e0df7b687339fc035ef0148e161d77f01dcc2d9a Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Thu Mar 7 00:15:48 2013 +0100 unix: fix strict aliasing warning in udp.c commit b6a50c7295c8dc27c697a164f5bb3b594d025209 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Thu Mar 7 00:17:19 2013 +0100 unix: add uv_buf_t static asserts to core.c Verify that our uv_buf_t type is ABI-compatible with struct iovec. commit ef9b0655328baf623a9e1951b2e261ba70a3ded3 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Wed Mar 6 23:59:48 2013 +0100 unix: add STATIC_ASSERT macro commit ee9899e28b3f5ac4e3b42de8173f9237db7e1f06 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Wed Mar 6 23:43:25 2013 +0100 unix: fix strict aliasing warnings, macro-ify functions Replace a few internal functions in uv-common.h with macros to avoid strict aliasing warnings with older versions of gcc. It's not smart enough to figure out that e.g. a uv_tcp_t is an instance of uv_handle_t with similar alignment requirements and therefore no aliasing happens. More recent versions of gcc don't suffer from this. I'm not normally in the habit of catering to compiler defects but the aliasing warnings drown out legitimate warnings, hence the change. commit 1e97b4567e1717bf17316230eff6e1a7350b8034 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Wed Mar 6 23:14:37 2013 +0100 unix: honor UV_THREADPOOL_SIZE environment var Make the size of the thread pool configurable through an environment variable. For sanity reasons, the size is clamped to the range 1-128. commit f89125e0e631f6b87b3a65970d88111825d7dc59 Author: Bert Belder <bertbelder@gmail.com> Date: Tue Mar 5 20:31:52 2013 +0100 win/tty: fix typo in color attributes enumeration commit 4abad2381e126ad7a9eb18342172e495bf6e681d Author: Bert Belder <bertbelder@gmail.com> Date: Tue Mar 5 20:05:36 2013 +0100 win/tty: don't touch insert mode or quick edit mode Hopefully this fixes joyent/node#4809. commit 8a99762c0e8e7fe6fe65133a7a8faafb73641c67 Author: Bert Belder <bertbelder@gmail.com> Date: Tue Mar 5 20:03:40 2013 +0100 win/tty: fix case where uv_read_start incorrectly reports failure In very rare circumstances a uv_read_start() call on a uv_tty_t handle in raw mode would return -1 but there was no actual failure. This patch fixes that. commit 1ef1344e9c94672757fbf83b1e78e09bba6ec24f Merge: ec9708f 2a8d2a5 Author: Joe Cheng <joe@rstudio.com> Date: Tue Mar 5 10:21:58 2013 -0800 Merge tag 'node-v0.9.11' into HEAD commit 0b26af376a8d788adf00ed4cb60aba4da2f046c1 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Tue Mar 5 15:57:38 2013 +0100 unix: handle POLLERR and POLLHUP in uv__stream_io Fixes a busy loop when the file descriptor emits POLLHUP but not POLLIN or POLLOUT, e.g. when polling the read end of a pipe and the write end is closed. Fixes joyent/node#4923. commit ea0796f3bf242fdc173751a23df8c1c70a09dcdb Author: Bert Belder <bertbelder@gmail.com> Date: Mon Mar 4 20:22:25 2013 +0100 windows: link with advapi32 and shell32 libraries Older versions of GYP would set up the Visual Studio project to link with these libraries by default, but this was changed in r1584 (see https://codereview.chromium.org/12256017). Closes #728 commit 7e59f9bb5389268fb554d435333325920d7783ba Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Sat Mar 2 01:44:31 2013 +0100 linux: make uv_cpu_info() handle absent procfs Return an error when reading from /proc files fails because the procfs isn't mounted. commit 2a8d2a5b73878e00823c59b29bf887b8b4b11743 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Fri Mar 1 01:57:45 2013 +0100 darwin: fix spurious uv_write2() segfault We abuse uv_write2() to send over UDP handles to child processes. Don't call uv__stream_fd() on those handles, it's a macro that on OS X evaluates to a function that operates on a uv_stream_t with a couple of OS X specific fields. On other Unices it does (handle)->io_watcher.fd, which works but only by accident. Fixes joyent/node#4870. commit 0ad46bdb56959aee089aa261b15bed7af177de5f Author: Marc Schlaich <marc.schlaich@googlemail.com> Date: Thu Feb 28 14:29:20 2013 +0100 build, windows: return an error code on failure commit 49d2ae33ef4f871496e042ed83cf5a7c65b97857 Author: Timothy J Fontaine <tjfontaine@gmail.com> Date: Wed Feb 27 13:39:10 2013 -0800 test: fix tap output even when ok but have output commit 1821bba40898ec074b284dc457e46cc1e4f65e33 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Wed Feb 27 22:19:20 2013 +0100 test: fix tap output check Only report as an error when status != 0. Stops the platform_output test from being reported as having failed on Jenkins. commit cdf69dbed62855140e8c3c259b172af7078821a2 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Wed Feb 27 22:08:58 2013 +0100 build: add distclean target to out-of-tree builds commit dd2002520797921c5e2f8b060aa412beb41aa09e Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Wed Feb 27 22:06:43 2013 +0100 build: make clean target remove all build artifacts commit 78dcaa5cac4a53d7854005576f07dc536575cee0 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Wed Feb 27 21:46:46 2013 +0100 darwin: fix read from uninitialized struct kevent In the OS X fallback code, don't read from the struct when the kevent() syscall times out. commit 7c3b9e5a121db6c0e8f193750afd1b272994eeab Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Wed Feb 27 21:40:03 2013 +0100 unix: make stream.c internal functions static commit a924f79023b57d947c9aee2d3bafe8f0cc95520b Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Sun Feb 24 17:14:16 2013 +0100 test: remove 'is root?' check I debug tests regularly as root (because dtrace and dtruss require the additional privileges). The 'is root?' check gets in the way more often than it prevents me from doing something silly. Remove it. commit 85124d7eb5d9455316c46eb36140cdb80154409a Author: Marc Schlaich <marc.schlaich@googlemail.com> Date: Wed Feb 27 13:38:14 2013 +0100 build, windows: allow override of python executable Fixes #723. commit a0c1d84c144da61a777e9d6554b9e832e3dd8d1d Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Tue Feb 26 19:14:40 2013 +0100 linux, darwin: don't touch environ in uv_setup_args Don't overwrite the environment. On OS X, the entries in the environ table are not necessarily adjacent. It's arguably also safer for setuid binaries. Fixes joyent/node#4847. commit c5101ae9b504dc8c0ccf90a6bda6f3a1a2f9cd0b Author: Andrius Bentkus <andrius.bentkus@gmail.com> Date: Fri Feb 15 04:27:32 2013 +0100 unix, windows: add common uv_udp_* error checking commit ae2b30a48f5cf0cda91c395a5af20cfa7769d5dc Author: Saúl Ibarra Corretgé <saghul@gmail.com> Date: Tue Feb 26 11:17:49 2013 +0100 windows: initialize stop_flag explicitly The default loop lives in the bss section so it's zeroed on startup but loops created with uv_loop_new() live on the heap and contain random garbage. Initialize the stop_flag explicitly to avoid spurious bugs. commit ec9708feb100910093338ae0c70863e854b8393b Merge: 71428e3 72bbf5d Author: Joe Cheng <joe@rstudio.org> Date: Mon Feb 25 14:24:44 2013 -0800 Merge remote-tracking branch 'upstream/master' commit 72bbf5d702475e7f42ce551857b1e0ab2e8ddff5 Author: Timothy J Fontaine <tjfontaine@gmail.com> Date: Mon Feb 25 09:43:34 2013 -0800 test: don't rewind_cursor when using tap_output commit 4b957482ba1ba12e40933ef1815ee6a098450280 Author: Saúl Ibarra Corretgé <saghul@gmail.com> Date: Mon Feb 25 17:20:34 2013 +0100 windows: fix uv_stop in ONCE and NOWAIT modes Same as the fix in 492efb9 but this time for uv-win. commit 492efb95ffc5b33a179cfaeb8215dc52111fb4d6 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Mon Feb 25 16:40:58 2013 +0100 unix: make uv_stop work when embedded * Make uv_stop() work when libuv is embedded in another event loop. * Fix a small bug where loop->stop_flag was not reset when mode == UV_RUN_ONCE or UV_RUN_NOWAIT. The next call to uv_run() would return immediately without doing any work. commit bb3d1e24da288db876dcbfa4e983c9ceeb583890 Author: Saúl Ibarra Corretgé <saghul@gmail.com> Date: Wed Jan 16 09:36:20 2013 +0100 unix, windows: add uv_stop, stop running event loop commit 79880121cecb622226663d65e5e0145799a57f50 Author: Saúl Ibarra Corretgé <saghul@gmail.com> Date: Wed Jan 16 09:24:28 2013 +0100 windows: align uv_run code with unix commit ce1a266c05f8aa6e1e0072558eac287fe70cf962 Author: Marc Schlaich <marc.schlaich@googlemail.com> Date: Mon Feb 25 11:27:40 2013 +0100 build: fix misleading vcbuild.bat error message commit 6ba6f4b4d651c1e3aff6946ef3c7a2f1b2c5d6d8 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Mon Feb 25 03:43:01 2013 +0100 build: turn on strict aliasing in release builds commit 39c8a90a91211d047fa3c267814e17d5c10cc83c Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Mon Feb 25 03:22:10 2013 +0100 unix: set errno in sendfile emulation The sendfile emulation in src/unix/fs.c polls the file descriptor for write readiness. If POLLERR or POLLHUP is set, it bails out but doesn't set errno (hence it doesn't report a useful error code). Rectify that. Fixes #620. commit b04fc33ef748293498023f3cf2dc987e8c1ffdd4 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Mon Feb 25 02:25:49 2013 +0100 linux: use eventfds for async handles Use eventfds to drive async handles, fall back to regular pipes on older kernels (pre-2.6.22). Gives a nice boost on the async handle benchmarks. Before: 12,516,113 async events in 5.0 seconds (2,503,222/s, 1,048,576 unique async1: 11.95 sec (83,701/sec) async2: 11.65 sec (85,862/sec) async4: 5.20 sec (192,154/sec) async8: 9.97 sec (100,315/sec) async_pummel_1: 1,000,000 callbacks in 2.56 seconds (389,919/sec) async_pummel_2: 1,000,000 callbacks in 2.65 seconds (377,205/sec) async_pummel_4: 1,000,000 callbacks in 2.18 seconds (457,704/sec) async_pummel_8: 1,000,000 callbacks in 4.19 seconds (238,632/sec) After: 16,168,081 async events in 5.0 seconds (3,233,616/s, 1,048,576 unique async1: 11.08 sec (90,213/sec) async2: 10.17 sec (98,297/sec) async4: 4.81 sec (207,789/sec) async8: 8.98 sec (111,419/sec) async_pummel_1: 1,000,000 callbacks in 1.16 seconds (863,296/sec) async_pummel_2: 1,000,000 callbacks in 1.45 seconds (691,459/sec) async_pummel_4: 1,000,000 callbacks in 0.66 seconds (1,514,770/sec) async_pummel_8: 1,000,000 callbacks in 1.42 seconds (704,549/sec) That's a speedup from anywhere between 10% to 330%. commit 92151658eb46956b70a8976e577258486bd9071f Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Mon Feb 25 01:32:19 2013 +0100 unix: abstract away async pipe infrastructure This commit lays the groundwork for the switch to eventfds on Linux. commit e89aced8d6ca9e5fcb3d5e6159db0322beef4234 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Sun Feb 24 03:50:31 2013 +0100 darwin: implement uv_set_process_title, part 2 Make changes to the process title visible to tools like `ps`. The argv clobber technique is reasonably portable across Unices; the common code has been moved into src/unix/proctitle.c and is used on Linux and OS X. Other platforms will probably follow in the future. commit 14eb8b03919db9004503691c63c937fef9c405b1 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Sun Feb 24 02:26:28 2013 +0100 darwin: implement uv_set_process_title, part 1 Apply undocumented Carbon magic to change the process title in a way that's visible in the Activity Monitor. commit 0761fb51b2579cfec7051011a453b5203a9d8ef8 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Sun Feb 24 02:24:09 2013 +0100 build: support 64 bits darwin builds Before this commit, gyp built 32 bits versions of libuv exclusively. Enable with: $ ./gyp_uv -Dtarget_arch=x64 commit bfe269b8a0ebe89b6b0695bdfb727dbf9ac273d5 Author: Timothy J Fontaine <tjfontaine@gmail.com> Date: Thu Feb 21 11:46:59 2013 -0800 test: add tap output Given UV_TAP_OUTPUT being set, test result output should use TAP formatting commit 71428e37d88a070804b217122e89d2932fa5daa4 Merge: edee5cd c98083e Author: Joe Cheng <joe@rstudio.org> Date: Fri Feb 22 14:01:55 2013 -0800 Merge remote-tracking branch 'upstream/master' into HEAD commit c98083ef26209a1669f26aa7bbf48b2fc9402b47 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Fri Feb 22 17:02:04 2013 +0100 unix: short-circuit on no-op io watcher changes Don't add the io watcher to the watcher queue if the requested change is effectively a no-op, that is, when the event mask doesn't change. The exception here is sunos because the event ports backend requires that watched file descriptors are re-added on every turn of the event loop. This commit is a micro-optimization, it does not change the event loop's observable behavior in any way. commit da0b84d4e8408a6f92147d8127b01b3274215444 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Fri Feb 22 14:39:39 2013 +0100 unix: auto-unref spawn handle on process exit Consistent, for better or worse, with uv-win. Fixes #718. commit edee5cd40471489d7420dfc7407f71355f520002 Author: Joe Cheng <joe@rstudio.org> Date: Thu Feb 21 14:52:50 2013 -0800 Another fix for RTools toolchain commit 3348cd74075bf593ab8484d9ad915699d4b9c9fc Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Thu Feb 21 23:11:40 2013 +0100 unix: handle EINPROGRESS for unix sockets Before this commit, it was assumed that connect() on UNIX sockets never returns EINPROGRESS. It turned out to be a bad assumption: Dave Pacheco reports sporadic hangups on SmartOS because of that. It's not clear to me _why_ the Illumos kernel returns that error but that's inconsequential: whatever the cause, libuv needs to handle it and now it does. Fixes joyent/node#4785. commit 1d64c8284d373da9dc8652d71cd9a3f904915739 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Thu Feb 21 10:29:16 2013 +0100 unix: use uv__set_artificial_error in uv_write2 * Use uv__set_artificial_error(), slightly more efficient than uv__set_sys_error(). * Return UV_EINVAL instead of UV_EOPNOTSUPP. * Fix up style. commit 9a8db3c0cb97520ffec57c42d60f1f329ecc9471 Author: Saúl Ibarra Corretgé <saghul@gmail.com> Date: Thu Feb 21 10:01:27 2013 +0100 unix: reduce line count, return uv__set_sys_error commit 3f47a2da5c5b7f13d227fc99b760cc6a949f152a Author: Saúl Ibarra Corretgé <saghul@gmail.com> Date: Thu Feb 21 09:56:33 2013 +0100 unix: fail early on bad send_handle in uv_write2 Return UV_EBADF if send_handle doesn't have a valid fd. commit 26fa6f8031d35513857525197c8ec85e596d3fa7 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Wed Feb 20 21:05:38 2013 +0100 linux: fix abort() on epoll_ctl() race condition Don't check the return value of epoll_ctl(EPOLL_CTL_DEL). When the file descriptor is closed, we're potentially racing with another thread and that means the errno is not a reliable indicator of the actual error. The other event mechanisms (kqueue, event ports) are not affected because: * kqueue returns either EBADF or ENOENT. Both are handled by libuv. * event ports rearms all file descriptors on each call to port_getn(). Fixes joyent/node#4558. commit fd24a69c52b2b69dc89109d5acc624938832c0f5 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Wed Feb 20 19:50:35 2013 +0100 build: fix shared-after-static build Executing `make libuv.so` after `make libuv.a` failed because the libuv.a target compiled the files in src/ without -fPIC. Make the libuv.so target depend on files with a different suffix to keep them separated. commit 7048a80613bb63066b0af15322e6bafa3f418c01 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Wed Feb 20 17:11:50 2013 +0100 doc: document _LARGEFILE_SOURCE + _FILE_OFFSET_BITS commit 30f628834782c1639b3a794212e8f6a4fb5a027a Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Wed Feb 20 17:01:00 2013 +0100 unix, windows: make uv_timer_get_repeat() const correct commit 0cb9fbfe184e76ce8de6fe80556b9d74116b6c22 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Wed Feb 20 16:58:36 2013 +0100 unix, windows: change timer intervals to uint64_t commit d6bfedb8629d18a84c1e67d7073de56dabd540b8 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Wed Feb 20 16:42:15 2013 +0100 unix, windows: make uv_now() return uint64_t Using int64_t doesn't make sense here because the return value is never negative. commit 6bf1a56e9d60737ef26509d9e304c03e008972d4 Author: Andrius Bentkus <andrius.bentkus@gmail.com> Date: Fri Feb 15 10:12:44 2013 +0100 Return the errorcode provided by uv_set_artificial_error. This reduces the line count. commit 7480974efeec4fe6795cfe6b3bd9e30777b2925f Author: Andrius Bentkus <andrius.bentkus@gmail.com> Date: Fri Feb 15 05:26:08 2013 +0100 Adhere to the naming conventions in uv_timer_* functions. In the src/*/timer.c code the first argument is called handle, not timer. We should be consistent in the interface definition file. commit b6f72e54c46f2c5404b5c0ee79f9d4751e716dbe Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Tue Feb 12 16:18:33 2013 +0100 linux: fix O_CLOEXEC/O_NONBLOCK defines commit da71649991029bcfabc429b26685bf17bb3d48d1 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Sun Feb 10 17:30:18 2013 +0100 unix, windows: make uv_fs_t.statbuf public Make the statbuf field public. This means you no longer have to use req->ptr - though that still works and will continue to work for the foreseeable future. Fixes #704. commit fadfeaf6ecd4afce6e2781c74e5c7a4289eb524b Author: Shigeki Ohtsu <ohtsu@iij.ad.jp> Date: Thu Feb 7 13:59:17 2013 +0900 unix,windows: fix timer order in case of same timeout Compare start_id of timer handles when they have the same timeout. start_id is allocated with loop->timer_counter in uv_timer_start. commit c15d4a7c6250a44fdfa0c6efab3ebcad359abc7d Author: Fedor Indutny <fedor.indutny@gmail.com> Date: Fri Feb 8 14:48:52 2013 +0400 stream: use kevent() information before accept() Limit number of syscalls by using backlog length information provided by kevent(). commit da33bba7c04e0873b457a9a4290bed2adf620154 Author: Ben Noordhuis <info@bnoordhuis.nl> Date: Wed Feb 6 23:24:49 2013 +0100 darwin: make uv_cond_timedwait() clock skew safe Use pthread_c…
- Loading branch information