summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* 2013.02.07, Version 0.9.9 (Unstable)v0.9.9v0.9.9-releaseisaacs2013-02-073-2/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | * tls: port CryptoStream to streams2 (Fedor Indutny) * typed arrays: only share ArrayBuffer backing store (Ben Noordhuis) * stream: make Writable#end() accept a callback function (Nathan Rajlich) * buffer: optimize 'hex' handling (Ben Noordhuis) * dns, cares: don't filter NOTIMP, REFUSED, SERVFAIL (Ben Noordhuis) * readline: treat bare \r as a line ending (isaacs) * readline: make \r\n emit one 'line' event (Ben Noordhuis) * cluster: support datagram sockets (Bert Belder) * stream: Correct Transform class backpressure (isaacs) * addon: Pass module object to NODE_MODULE init function (isaacs, Rod Vagg) * buffer: slow buffer copy compatibility fix (Trevor Norris) * Add bytesWritten to tls.CryptoStream (Andy Burke)
* stream: Writable should ignore encoding for buffersisaacs2013-02-072-2/+13
| | | | | Fix #4727 Fix einaros/ws#159
* Update http docs with http.IncomingMessage.Nikhil Marathe2013-02-071-157/+96
| | | | | | | http.ServerRequest and http.ClientResponse are merged into http.IncomingMessage which has fields for both, and acts as a Readable Stream and EventEmitter. Fixes #3851.
* Merge remote-tracking branch 'ry/v0.8' into masterisaacs2013-02-06263-523/+1145
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: AUTHORS ChangeLog deps/npm/html/api/bin.html deps/npm/html/api/bugs.html deps/npm/html/api/commands.html deps/npm/html/api/config.html deps/npm/html/api/deprecate.html deps/npm/html/api/docs.html deps/npm/html/api/edit.html deps/npm/html/api/explore.html deps/npm/html/api/help-search.html deps/npm/html/api/init.html deps/npm/html/api/install.html deps/npm/html/api/link.html deps/npm/html/api/load.html deps/npm/html/api/ls.html deps/npm/html/api/npm.html deps/npm/html/api/outdated.html deps/npm/html/api/owner.html deps/npm/html/api/pack.html deps/npm/html/api/prefix.html deps/npm/html/api/prune.html deps/npm/html/api/publish.html deps/npm/html/api/rebuild.html deps/npm/html/api/restart.html deps/npm/html/api/root.html deps/npm/html/api/run-script.html deps/npm/html/api/search.html deps/npm/html/api/shrinkwrap.html deps/npm/html/api/start.html deps/npm/html/api/stop.html deps/npm/html/api/submodule.html deps/npm/html/api/tag.html deps/npm/html/api/test.html deps/npm/html/api/uninstall.html deps/npm/html/api/unpublish.html deps/npm/html/api/update.html deps/npm/html/api/version.html deps/npm/html/api/view.html deps/npm/html/api/whoami.html deps/npm/html/doc/README.html deps/npm/html/doc/adduser.html deps/npm/html/doc/bin.html deps/npm/html/doc/bugs.html deps/npm/html/doc/build.html deps/npm/html/doc/bundle.html deps/npm/html/doc/cache.html deps/npm/html/doc/changelog.html deps/npm/html/doc/coding-style.html deps/npm/html/doc/completion.html deps/npm/html/doc/config.html deps/npm/html/doc/dedupe.html deps/npm/html/doc/deprecate.html deps/npm/html/doc/developers.html deps/npm/html/doc/disputes.html deps/npm/html/doc/docs.html deps/npm/html/doc/edit.html deps/npm/html/doc/explore.html deps/npm/html/doc/faq.html deps/npm/html/doc/folders.html deps/npm/html/doc/global.html deps/npm/html/doc/help-search.html deps/npm/html/doc/help.html deps/npm/html/doc/index.html deps/npm/html/doc/init.html deps/npm/html/doc/install.html deps/npm/html/doc/json.html deps/npm/html/doc/link.html deps/npm/html/doc/ls.html deps/npm/html/doc/npm.html deps/npm/html/doc/outdated.html deps/npm/html/doc/owner.html deps/npm/html/doc/pack.html deps/npm/html/doc/prefix.html deps/npm/html/doc/prune.html deps/npm/html/doc/publish.html deps/npm/html/doc/rebuild.html deps/npm/html/doc/registry.html deps/npm/html/doc/removing-npm.html deps/npm/html/doc/restart.html deps/npm/html/doc/rm.html deps/npm/html/doc/root.html deps/npm/html/doc/run-script.html deps/npm/html/doc/scripts.html deps/npm/html/doc/search.html deps/npm/html/doc/semver.html deps/npm/html/doc/shrinkwrap.html deps/npm/html/doc/star.html deps/npm/html/doc/start.html deps/npm/html/doc/stop.html deps/npm/html/doc/submodule.html deps/npm/html/doc/tag.html deps/npm/html/doc/test.html deps/npm/html/doc/uninstall.html deps/npm/html/doc/unpublish.html deps/npm/html/doc/update.html deps/npm/html/doc/version.html deps/npm/html/doc/view.html deps/npm/html/doc/whoami.html deps/npm/man/man1/global.1 deps/npm/man/man1/ls.1 deps/npm/man/man1/npm.1 deps/npm/man/man1/rm.1 deps/npm/man/man3/npm.3 deps/npm/node_modules/glob/glob.js deps/npm/node_modules/glob/package.json deps/npm/node_modules/node-gyp/package.json deps/npm/node_modules/npm-registry-client/package.json deps/npm/node_modules/npmconf/package.json deps/npm/node_modules/read-installed/package.json deps/npm/node_modules/rimraf/package.json deps/npm/node_modules/rimraf/rimraf.js deps/npm/package.json deps/uv/src/win/error.c doc/api/crypto.markdown lib/zlib.js src/node_version.h src/node_zlib.cc test/simple/test-buffer.js
| * blog: v0.8.19 releaseisaacs2013-02-061-0/+72
| |
| * Now working on 0.8.20isaacs2013-02-061-2/+2
| |
| * Merge branch 'v0.8.19-release' into v0.8isaacs2013-02-063-2/+25
| |\
| | * 2013.02.06, Version 0.8.19 (Stable)v0.8.19v0.8.19-releaseisaacs2013-02-063-2/+25
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * npm: Upgrade to v1.2.10 * zlib: pass object size hint to V8 (Ben Noordhuis) * zlib: reduce memory consumption, release early (Ben Noordhuis) * buffer: slow buffer copy compatibility fix (Trevor Norris) * zlib: don't assert on malformed dictionary (Ben Noordhuis) * zlib: don't assert on missing dictionary (Ben Noordhuis) * windows: better ipv6 support (Bert Belder) * windows: add error mappings related to unsupported protocols (Bert Belder) * windows: map ERROR_DIRECTORY to UV_ENOENT (Bert Belder)
| * npm: Upgrade to v1.2.10isaacs2013-02-06270-749/+2139
| |
| * blog: remove dangling symlinkBen Noordhuis2013-02-051-1/+0
| | | | | | | | Fixes #4716.
| * zlib: pass object size hint to V8Ben Noordhuis2013-02-051-0/+6
| | | | | | | | | | | | | | Inform V8 that the zlib context object is tied to a large off-heap buffer. This makes the GC run more often (in theory) and improves the accuracy of --trace_external_memory.
| * zlib: reduce memory consumption, release earlyBen Noordhuis2013-02-052-3/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In zlibBuffer(), don't wait for the garbage collector to reclaim the zlib memory but release it manually. Reduces memory consumption by a factor of 10 or more with some workloads. Test case: function f() { require('zlib').deflate('xxx', g); } function g() { setTimeout(f, 5); } f(); Observe RSS memory usage with and without this commit. After 10,000 iterations, RSS stabilizes at ~35 MB with this commit. Without, RSS is over 300 MB and keeps growing. Cause: whenever the JS object heap hits the high-water mark, the V8 GC sweeps it clean, then tries to grow it in order to avoid more sweeps in the near future. Rule of thumb: the bigger the JS heap, the lazier the GC can be. A side effect of a bigger heap is that objects now live longer. This is harmless in general but it affects zlib context objects because those are tied to large buffers that live outside the JS heap, on the order of 16K per context object. Ergo, don't wait for the GC to reclaim the memory - it may take a long time. Fixes #4172.
| * doc: don't suggest to reuse net.Socket objectsBen Noordhuis2013-02-051-2/+1
| | | | | | | | | | | | | | Using Socket.prototype.connect() to reconnect an existing Socket object is not reliable. Users should just create a new Socket object. See #4698.
| * blog: Correct shasums for v0.9.8 releaseisaacs2013-02-021-3/+5
| |
| * deps: upgrade libuv to 034ea31Bert Belder2013-01-305-115/+130
| |
| * doc: fix typo in cluster module documentationRick Yakubowski2013-01-271-1/+1
| | | | | | | | Fix a small typo in the cluster.settings documentation.
| * buffer: slow buffer copy compatibility fixTrevor Norris2013-01-253-6/+14
| | | | | | | | | | | | | | | | | | | | Fix issue where SlowBuffers couldn't be passed as target to Buffer copy(). Also included checks to see if Argument parameters are defined before assigning their values. This offered ~3x's performance gain. Backport of 16bbecc from master branch. Closes #4633.
| * benchmark: Port http.sh from masterisaacs2013-01-241-6/+37
| |
| * doc: fix typo in crypto Hash.digest() noteJacob Gable2013-01-241-1/+1
| | | | | | | | | | Added the word 'has' to the sentence. Closes #4652.
| * blog: Post for v0.9.8isaacs2013-01-241-0/+74
| |
| * doc: document PYTHON env var in READMEBen Noordhuis2013-01-221-0/+8
| |
| * zlib: don't assert on malformed dictionaryBen Noordhuis2013-01-222-3/+23
| | | | | | | | | | | | | | | | | | | | | | | | Handle Z_DATA_ERROR errors from inflateSetDictionary() gracefully. Fixes the following assertion: node: ../src/node_zlib.cc:167: static void node::ZCtx::Process (uv_work_t*): Assertion `ctx->err_ == 0 && "Failed to set dictionary"' failed. Aborted (core dumped) Fixes #4632.
| * zlib: don't assert on missing dictionaryBen Noordhuis2013-01-222-14/+51
| | | | | | | | | | | | | | | | | | | | | | Handle Z_NEED_DICT errors graciously. Fixes the following assertion: node: ../src/node_zlib.cc:161: static void node::ZCtx::Process (uv_work_t*): Assertion`ctx->dictionary_ != __null && "Stream has no dictionary"' failed. Aborted (core dumped) Fixes #4632.
* | typed arrays: copy non-ArrayBuffer in DataView ctorBen Noordhuis2013-02-062-4/+28
| | | | | | | | | | | | | | This is commit 01ee551, except for the DataView type this time. Make the behavior of DataView consistent with that of typed arrays: make a copy of the backing store.
* | tls: port CryptoStream to streams2Fedor Indutny2013-02-061-386/+280
| |
* | streams: both `finish` and `close` should unpipeFedor Indutny2013-02-062-5/+50
| | | | | | | | | | | | | | | | | | Otherwise sockets that are 'finish'ed won't be unpiped and `writing to ended stream` error will arise. This might sound unrealistic, but it happens in net.js. When `socket.allowHalfOpen === false`, EOF will cause `.destroySoon()` call which ends the writable side of net.Socket.
* | test: add cluster EADDRINUSE testBen Noordhuis2013-02-061-0/+63
| | | | | | | | | | | | Check that having a worker bind to a port that's already taken doesn't leave the master process in a confused state. Releasing the port and trying again should Just Work[TM].
* | typed arrays: only share ArrayBuffer backing storeBen Noordhuis2013-02-062-38/+103
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Follow browser behavior, only share the backing store when it's a ArrayBuffer. That is: var abuf = new ArrayBuffer(32); var a = new Int8Array(abuf); var b = new Int8Array(abuf); a[0] = 0; b[0] = 1; assert(a[0] === b[0]); // a and b share memory But: var a = new Int8Array(32); var b = new Int8Array(a); a[0] = 0; b[0] = 1; assert(a[0] !== b[0]); // a and b don't share memory The typed arrays spec allows both `a[0] === b[0]` and `a[0] !=== b[0]` but Chrome and Firefox implement the behavior where memory is not shared. Copying the memory is less efficient but let's do it anyway for the sake of the Principle of Least Surprise. Fixes #4714.
* | v8: loosen artificial mmap constraintBryan Cantrill2013-02-061-4/+13
| | | | | | | | Fixes #4010.
* | stream: make Writable#end() accept a callback functionNathan Rajlich2013-02-052-2/+44
| | | | | | | | | | | | | | This is more backwards-compatible with stream1 streams like `fs.WriteStream` which would allow a callback function to be passed in as the only argument. Closes #4719.
* | buffer: optimize Buffer.prototype.write(s, 'hex')Ben Noordhuis2013-02-023-30/+68
| | | | | | | | | | | | | | | | | | | | | | | | Move the implementation to C++ land. This is similar to commit 3f65916 but this time for the write() function and the Buffer(s, 'hex') constructor. Speeds up the benchmark below about 24x (2.6s vs 1:02m). var s = 'f'; for (var i = 0; i < 26; ++i) s += s; // 64 MB Buffer(s, 'hex');
* | debugger: Make the debugger timeout configurableisaacs2013-02-014-1/+5
| | | | | | | | | | | | | | | | | | If the NODE_DEBUGGER_TIMEOUT environment variable is set, then use that as the number of ms to wait for the debugger to start. This is primarily to work around a race condition that almost never happens in real usage with the debugger, but happens EVERY FRACKING TIME when the debugger tests run as part of 'make test'.
* | buffer: optimize Buffer.prototype.toString('hex')Ben Noordhuis2013-02-013-15/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | Move the implementation to C++ land. The old JS implementation used string concatenation, was dog slow and consumed copious amounts of memory for large buffers. Example: var buf = Buffer(0x1000000); // 16 MB buf.toString('hex') // Used 3+ GB of memory. The new implementation operates in O(n) time and space. Fixes #4700.
* | gitignore: Ignore release tarballs and shasum filesisaacs2013-02-011-0/+4
| |
* | dns, cares: don't filter NOTIMP, REFUSED, SERVFAILBen Noordhuis2013-02-011-1/+5
| | | | | | | | | | | | | | Report the aforementioned DNS server failure codes as-is, stop c-ares from reporting them as ARES_ECONNREFUSED. Reported by Steve Freegard.
* | stream: Don't stop reading on zero-length decoded outputisaacs2013-01-312-55/+88
| | | | | | | | Fixes regression introduced in 7e1cf84c9efd491d72b25968a70656458ecb6b7c
* | stream: Don't signal EOF on '' or Buffer(0)isaacs2013-01-312-7/+99
| | | | | | | | | | | | | | | | | | | | | | | | | | Those values, if passed to the _read() cb, will not signal an EOF. Only null or undefined will mark the end of data, and trigger the end event. However, great care must be taken if you are returning an empty string or buffer! There must be some other thing somewhere that will trigger a read() call, because there will never be a readable event fired later. This is in preparation for CryptoStreams being ported to streams2, where it is safe to simply stop reading, because the crypto cycle process will cause it to read(0) again at some future date.
* | node: Do not use fn.apply() in process._makeCallbackisaacs2013-01-302-15/+41
| |
* | lintisaacs2013-01-291-1/+1
| |
* | os: rename tmpDir() to tmpdir() for consistencyBen Noordhuis2013-01-303-6/+8
| | | | | | | | | | Make the casing consistent with the other os.* functions but keep os.tmpDir() around as an alias.
* | readline: treat bare \r as a line endingisaacs2013-01-292-4/+56
| | | | | | | | Fixes #3305
* | readline: make \r\n emit one 'line' eventBen Noordhuis2013-01-292-3/+21
| | | | | | | | | | | | | | | | | | Make lines ending \r\n emit one 'line' event, not two (where the second one is an empty string). This adds a new keypress name: 'return' (as in: 'carriage return'). Fixes #3305.
* | Revert "net: Avoid tickDepth warnings on small writes"isaacs2013-01-282-85/+7
| | | | | | | | | | | | | | | | | | This commit breaks simple/test-stream2-stderr-sync. Need to figure out a better way, or just accept that `(function W(){stream.write(b,W)})()` is going to be noisy. People should really be using the `'drain'` event for this use-case anyway. This reverts commit 02f7d1bfd8b5b75620352774967dce63b0934037.
* | net: Avoid tickDepth warnings on small writesisaacs2013-01-282-7/+85
| | | | | | | | | | | | | | | | | | Always defer the _write callback. The optimization here was only relevant in some oddball edge cases that we don't actually care about. Our benchmarks confirm that just always deferring the Socket._write cb is perfectly fine to do, and in some cases, even slightly more performant.
* | dgram: avoid EventEmitter leak warningBert Belder2013-01-281-3/+14
| | | | | | | | | | | | | | | | | | When a datagram socket hasn't been bound yet, node will defer `send()` operations until binding has completed. Before this patch a `listening` listener would be installed every time `send` was called. This triggered an EventEmitter leak warning when more than 10 packets were sent in a tight loop. Therefore switch to using a single `listening` listener, and use an array to enqueue outbound packets.
* | cluster: support datagram socketsBert Belder2013-01-289-49/+356
| |
* | child_process: move binding init in constructorFedor Indutny2013-01-282-4/+4
| | | | | | | | | | Doing this in net.Socket constructor has much more overhead, and error is actually may happen before the construction of socket object.
* | net: Initialize _connection, _handle in Socket ctorisaacs2013-01-281-0/+3
| | | | | | | | The better to reduce the hidden classes
* | http: Don't dump twiceisaacs2013-01-281-0/+3
| |
* | stream: Correct Transform class backpressureisaacs2013-01-282-50/+86
| | | | | | | | | | | | | | | | | | | | | | | | The refactor in b43e544140ccf68580c02e71c56d19b82e1e1d32 to use stream.push() in Transform inadvertently caused it to immediately consume all the written data, regardless of whether or not the readable side was being consumed. Only pull data through the _transform() process when the readable side is being consumed. Fix #4667