GitHub PushEvent at 2014-08-15 00:50:49
Repository: node
Actor: chencl
Payload: {"shas":[["af69f88a9d57e302af632c047faffed7cca90772","748902ab7d31877eb5a6e67b4914e51dda4553ca@gmail.com","build: make sure changelog.html is generated","Timothy J Fontaine",true],["632c13562220f1a1f1fdf89c60cf69fd8bbac359","748902ab7d31877eb5a6e67b4914e51dda4553ca@gmail.com","src: use monotonic time for process.uptime()\n\n`process.uptime()` interface will return the amount of time the\ncurrent process has been running. To achieve this it was caching the\n`uv_uptime` value at program start, and then on the call to\n`process.uptime()` returning the delta between the two values.\n\n`uv_uptime` is defined as the number of seconds the operating system\nhas been up since last boot. On sunos this interface uses `kstat`s\nwhich can be a significantly expensive operation as it requires\nexclusive access, but because of the design of `process.uptime()` node\n*had* to always call this on start. As a result if you had many node\nprocesses all starting at the same time you would suffer lock\ncontention as they all tried to read kstats.\n\nInstead of using `uv_uptime` to achieve this, the libuv loop already\nhas a concept of current loop time in the form of `uv_now()` which is\nin fact monotonically increasing, and already stored directly on the\nloop. By using this value at start every platform performs at least\none fewer syscall during initialization.\n\nSince the interface to `uv_uptime` is defined as seconds, in the call\nto `process.uptime()` we now `uv_update_time` get our delta, divide by\n1000 to get seconds, and then convert to an `Integer`. In 0.12 we can\nmove back to `Number::New` instead and not lose precision.\n\nCaveat: For some platforms `uv_uptime` reports time monotonically\nincreasing regardless of system hibernation, `uv_now` interface is\nalso monotonically increasing but may not reflect time spent in\nhibernation.","Timothy J Fontaine",true],["bfb7de5e75f49ba250d1bb6f1b7a15bd3d6d7f2a","c824fe0afe16857dd6f587aa7c4044d2642d60fb@spanishdict.com","docs: fix links to streams\n\nSigned-off-by: Fedor Indutny <fedor@indutny.com>","William Bert",true],["1bd4f3a605216838619e4d7dc1eb1600b1deb91f","e39d94bae70283f13d24c278e04952d6dad9384b@indutny.com","child_process: fix deadlock when sending handles\n\nFix possible deadlock, when handles are sent in both direction\nsimultaneously. In such rare cases, both sides may queue their\n`NODE_HANDLE_ACK` replies and wait for them.\n\nfix #7465","Fedor Indutny",true],["9520adeb37f5ebe02a68669ec97770f4869705bb","042dc4512fa3d391c5170cf3aa61e6a638f84342@izs.me","url: treat \\ the same as /\n\nSee https://code.google.com/p/chromium/issues/detail?id=25916\n\nParse URLs with backslashes the same as web browsers, by replacing all\nbackslashes with forward slashes, except those that occur after the\nfirst # character.","isaacs",true],["75bc11cf12f53768654f7ac11f308fdf0296bd34","042dc4512fa3d391c5170cf3aa61e6a638f84342@izs.me","npm: upgrade to 1.4.7\n\n* isaacs, Robert Kowalski, Benjamin Coe: Test Improvements\n* isaacs doc: Add canonical url\n* isaacs view: handle unpublished packages properly\n* Raynos (Jake Verbaten) do not log if silent\n* Julian Gruber fix no such property error\n* isaacs npmconf@0.1.14\n* Thorsten Lorenz adding save-prefix configuration option\n* isaacs npm-registry-client@0.4.7\n* isaacs cache: treat missing versions as a 404\n* isaacs cache: Save shasum, write resolved/etc data to cache\n* isaacs cache: Always fetch root doc\n* isaacs cache: don't repack unnecessarily from tmp\n* Andrey Kislyuk Don't crash if shrinkwrap-dependencies were not passed in pkginfo\n* Robert Kowalski fix link in faq\n* Jean Lauliac Add a peerDependencies section in package.json doc\n* isaacs read-installed@2.0.2","isaacs",true],["4601e7c8927ba5655f0872f1f1794aec2b9a4d56","e39d94bae70283f13d24c278e04952d6dad9384b@indutny.com","Revert \"deps: backport b5135bbc from c-ares repo\"\n\nThis reverts commit 896e19330ad06ace8973c5d7b75d2de538228062.\n\nProper handling of TXT records requires API change, we can't afford it\nin v0.10.\n\nSee #7371 for details.","Fedor Indutny",true],["b0fa931e0751df74242b9f069388b628e1ab43c2","354106e416911844661e1603d99ecf7d1c318dda@juliangruber.com","doc: fix order in net api\n\nSigned-off-by: Fedor Indutny <fedor@indutny.com>","Julian Gruber",true],["0ee99565f9dd41225fd5d4084403db82733c575e","354106e416911844661e1603d99ecf7d1c318dda@juliangruber.com","doc: fix missing link in net api\n\nSigned-off-by: Fedor Indutny <fedor@indutny.com>","Julian Gruber",true],["f9ced08de30c37838756e8227bd091f80ad9cafa","73675debcd8a436be48ec22211dcf44fe0df0a64@strongloop.com","deps: make v8 use CLOCK_REALTIME_COARSE\n\nDate.now() indirectly calls gettimeofday() on Linux and that's a system\ncall that is extremely expensive on virtualized systems when the host\noperating system has to emulate access to the hardware clock.\n\nCase in point: output from `perf record -c 10000 -e cycles:u -g -i`\nfor a benchmark/http_simple bytes/8 benchmark with a light load of\n50 concurrent clients:\n\n    53.69%     node  node                 [.] v8::internal::OS::TimeCurrentMillis()\n               |\n               --- v8::internal::OS::TimeCurrentMillis()\n                  |\n                  |--99.77%-- v8::internal::Runtime_DateCurrentTime(v8::internal::Arguments, v8::internal::Isolate*)\n                  |          0x23587880618e\n\nThat's right - over half of user time spent inside the V8 function that\ncalls gettimeofday().\n\nNotably, nearly all system time gets attributed to acpi_pm_read(), the\nkernel function that reads the ACPI power management timer:\n\n    32.49%     node  [kernel.kallsyms]    [k] acpi_pm_read\n               |\n               --- acpi_pm_read\n                  |\n                  |--98.40%-- __getnstimeofday\n                  |          getnstimeofday\n                  |          |\n                  |          |--71.61%-- do_gettimeofday\n                  |          |          sys_gettimeofday\n                  |          |          system_call_fastpath\n                  |          |          0x7fffbbaf6dbc\n                  |          |          |\n                  |          |          |--98.72%-- v8::internal::OS::TimeCurrentMillis()\n\nThe cost of the gettimeofday() system call is normally measured in\nnanoseconds but we were seeing 100 us averages and spikes >= 1000 us.\nThe numbers were so bad, my initial hunch was that the node process was\ncontinuously getting rescheduled inside the system call...\n\nv8::internal::OS::TimeCurrentMillis()'s most frequent caller is\nv8::internal::Runtime_DateCurrentTime(), the V8 run-time function\nthat's behind Date.now().  The timeout handling logic in lib/http.js\nand lib/net.js calls into lib/timers.js and that module will happily\ncall Date.now() hundreds or even thousands of times per second.\nIf you saw exports._unrefActive() show up in --prof output a lot,\nnow you know why.\n\nThat's why this commit makes V8 switch over to clock_gettime() on Linux.\nIn particular, it checks if CLOCK_REALTIME_COARSE is available and has\na resolution <= 1 ms because in that case the clock_gettime() call can\nbe fully serviced from the vDSO.\n\nIt speeds up the aforementioned benchmark by about 100% on the affected\nsystems and should go a long way toward addressing the latency issues\nthat StrongLoop customers have been reporting.\n\nThis patch will be upstreamed as a CR against V8 3.26.  I'm sending it\nas a pull request for v0.10 first because that's what our users are\nrunning and because the delta between 3.26 and 3.14 is too big to\nreasonably back-port the patch.  I'll open a pull request for the\nmaster branch once the CR lands upstream.\n\nSigned-off-by: Trevor Norris <trev.norris@gmail.com>\nSigned-off-by: Fedor Indutny <fedor@indutny.com>","Ben Noordhuis",true],["250782d139ccec276ec24e401a78423a66dcf97a","f9f03903429036ef609ed7ca822fddfa76155c29@vagg.org","util: format as Error if instanceof Error\n\nConflicts:\n\tlib/util.js\n\ttest/simple/test-util-format.js\n\nThis is a backport to fix #7253\n\nSigned-off-by: Fedor Indutny <fedor@indutny.com>","Rod Vagg",true],["3f3a71e61e90d45293704f21c98bc0ea53bb09ff","59bd0a3ff43b32849b319e645d4798d8a5d1e889@bnoordhuis.nl","deps: fix v8 link error with glibc < 2.17\n\nCommit f9ced08 switches V8 on Linux over from gettimeofday() to\nclock_getres() and clock_gettime().  As of glibc 2.17, those functions\nlive in libc.  For older versions, we need to pull them in from librt.\n\nFixes the following link-time error;\n\n    Release/obj.target/deps/v8/tools/gyp/libv8_base.a(platform-posix.o):\n    In function `v8::internal::OS::Ticks()':\n    platform-posix.cc:(.text+0x93c):\n    undefined reference to `clock_gettime'\n    platform-posix.cc:(.text+0x989):\n    undefined reference to `clock_getres'\n\nFixes #7514.\n\nSigned-off-by: Fedor Indutny <fedor@indutny.com>","Ben Noordhuis",true],["226f98a356fb62a706bc860c36c9ebc6124d776e","aaadcb4f0eff68178146eb71b9bf7ef14c354229@gmail.com","buffer: add compare and equals methods\n\ncompare() works like String.localeCompare such that:\n\n    Buffer.compare(a, b) === a.compare(b);\n\nequals() does a native check to see if two buffers are equal.\n\nSigned-off-by: Trevor Norris <trev.norris@gmail.com>","Sean McArthur",true],["d13e0297c362c99062ba61d9569248938b2bb72a","2c50e4acca052c5b68902479636ee0b68bffad9a@yahoo.com","crypto: fix a couple of VC++ warnings\n\nSigned-off-by: Fedor Indutny <fedor@indutny.com>","Rasmus Christian Pedersen",true],["793c76e5c65031009525fcb6e5e4af78c28d1c4f","8e578d2c822d8070bf74310ade8a1195161a81fd@npmjs.com","docs: add cautionary note to emitter.removeAllListeners\n\nSigned-off-by: Fedor Indutny <fedor@indutny.com>","Forrest L Norvell",true],["26a1b712ec4e39cedc0b305165ce4660f47ba4d5","fae3efc19af241ae0bb22a83c41337a114d2dab5@irsoft.de","crypto: improve error messages\n\n1) ThrowCryptoTypeErrors was not actually used for\n   type-related errors. Removed it.\n2) For AEAD modes, OpenSSL does not set any internal\n   error information if Final does not complete suc-\n   cessfully. Therefore, \"TypeError:error:00000000:l\n   ib(0):func(0):reason(0)\" would be the error mess-\n   age. Use a default message for these cases.\n\nSigned-off-by: Fedor Indutny <fedor@indutny.com>","Ingmar Runge",true],["ab7a3d098ddb13967014c723333c1df730da4940","92fb37b64464f5ee20f58e183b0504024ecd6585@iij.ad.jp","child_process: fix assertion error in spawnSync\n\nWhen ExitCallback was not called with an error such as ENOENT in\nuv_spawn, the process handle still remains refed and needs to be closed.\n\nSigned-off-by: Timothy J Fontaine <tjfontaine@gmail.com>","Shigeki Ohtsu",true],["7b72e156655afb6b998e8fb731cc65f4facb19ee","748902ab7d31877eb5a6e67b4914e51dda4553ca@gmail.com","test: update test-dns.js after a60a9b0\n\nresolveTxt now returns a 2-d array for all the chunks string chunks\nrelating to the record","Timothy J Fontaine",true],["d0fc5538d1ac769885c7e449b0d1f6759a7d4230","928b42f72c5e646aa3a9189e4abed6635a777305@gmail.com","stream: split `objectMode` for Duplex\n\nThis commit introduces `readableObjectMode` and\n`writableObjectMode` options for Duplex streams.\nThis can be used mostly to make parsers and\nserializers with Transform streams.\n\nAlso the docs section about stream state objects\nis removed, because it is not relevant anymore.\nThe example from the section is remade to show\nnew options.\n\nfixes #6284\n\nSigned-off-by: Timothy J Fontaine <tjfontaine@gmail.com>","Vladimir Kurchatkin",true],["3d3d48d4b78d48e9b002660fc045ba8bb4a96af2","e39d94bae70283f13d24c278e04952d6dad9384b@indutny.com","deps: update uv to v0.11.25","Fedor Indutny",true]],"size":266,"ref":"refs/heads/master","head":"6c0f396765a5c541d5a8af89482f358997b5af13"}