1. Feb 11, 2013
    • Ben Noordhuis's avatar
      doc: update buffer/typed array documentation · 30b0bc4f
      Ben Noordhuis authored
      Clarify that typed array constructors accept buffers as their first
      argument but that the memory is not shared and why this was changed
      in v0.9.
      30b0bc4f
    • Ben Noordhuis's avatar
      typed arrays: copy Buffer in typed array constructor · 5a9d30bb
      Ben Noordhuis authored
      Convert the Buffer to an ArrayBuffer. The typed_array.buffer property
      should be an ArrayBuffer to avoid confusion: a Buffer doesn't have a
      byteLength property and more importantly, its slice() method works
      subtly different.
      
      That means that before this commit:
      
        var buf = new Buffer(1);
        var arr = new Int8Array(buf);
        assert.equal(arr.buffer, buf);
        assert(arr.buffer instanceof Buffer);
      
      And now:
      
        var buf = new Buffer(1);
        var arr = new Int8Array(buf);
        assert.notEqual(arr.buffer, buf);
        assert(arr.buffer instanceof ArrayBuffer);
      5a9d30bb
  2. Feb 10, 2013
  3. Feb 09, 2013
  4. Feb 08, 2013
    • Scott Blomquist's avatar
      windows/msi: more installer enhancements · 8164b2fd
      Scott Blomquist authored
      Noteworthy installer improvements provided here:
      * Support in the Installer UI for not installing shortcuts.
      * Support in the Installer UI for choosing a custom install directory.
      * Command line support for not installing shortcuts (ADDDEFAULT=nodejs)
      * Command line support for custom install directory (INSTALLDIR=c:\tools\node)
      8164b2fd
    • Jim Schubert's avatar
      e418df7b
    • isaacs's avatar
      Now working on v0.9.10 · c3c8eee4
      isaacs authored
      c3c8eee4
    • isaacs's avatar
      Merge branch 'v0.9.9-release' · 55c4d9b3
      isaacs authored
      55c4d9b3
    • isaacs's avatar
      2013.02.07, Version 0.9.9 (Unstable) · 4b9f0d19
      isaacs authored
      * 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)
      4b9f0d19
    • isaacs's avatar
      stream: Writable should ignore encoding for buffers · 33b2aebb
      isaacs authored
      Fix #4727
      Fix einaros/ws#159
      33b2aebb
  5. Feb 07, 2013
    • Nikhil Marathe's avatar
      Update http docs with http.IncomingMessage. · 6bcd9a4c
      Nikhil Marathe authored
      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.
      6bcd9a4c
    • isaacs's avatar
      Merge remote-tracking branch 'ry/v0.8' into master · 5cc3569f
      isaacs authored
      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
      5cc3569f
    • Ben Noordhuis's avatar
      typed arrays: copy non-ArrayBuffer in DataView ctor · 7b0770bf
      Ben Noordhuis authored
      This is commit 01ee551e, 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.
      7b0770bf
    • Fedor Indutny's avatar
      tls: port CryptoStream to streams2 · d59beb9f
      Fedor Indutny authored
      d59beb9f
    • isaacs's avatar
      blog: v0.8.19 release · 13897279
      isaacs authored
      13897279
    • isaacs's avatar
      Now working on 0.8.20 · ccf2712e
      isaacs authored
      ccf2712e
    • isaacs's avatar
      Merge branch 'v0.8.19-release' into v0.8 · 8caf6572
      isaacs authored
      8caf6572
    • isaacs's avatar
      2013.02.06, Version 0.8.19 (Stable) · 53978bdf
      isaacs authored
      * 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)
      53978bdf
    • isaacs's avatar
      npm: Upgrade to v1.2.10 · 5aef65a9
      isaacs authored
      5aef65a9
    • Fedor Indutny's avatar
      streams: both `finish` and `close` should unpipe · c024d2d8
      Fedor Indutny authored
      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.
      c024d2d8
  6. Feb 06, 2013
    • Ben Noordhuis's avatar
      test: add cluster EADDRINUSE test · b58efe77
      Ben Noordhuis authored
      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].
      b58efe77
    • Ben Noordhuis's avatar
      typed arrays: only share ArrayBuffer backing store · 01ee551e
      Ben Noordhuis authored
      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.
      01ee551e
    • Bryan Cantrill's avatar
      v8: loosen artificial mmap constraint · 202b5db4
      Bryan Cantrill authored
      Fixes #4010.
      202b5db4
    • Nathan Rajlich's avatar
      stream: make Writable#end() accept a callback function · a9c4a203
      Nathan Rajlich authored
      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.
      a9c4a203
    • Ben Noordhuis's avatar
      blog: remove dangling symlink · a86ebbe2
      Ben Noordhuis authored
      Fixes #4716.
      a86ebbe2
    • Ben Noordhuis's avatar
      zlib: pass object size hint to V8 · 6b99fd23
      Ben Noordhuis authored
      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.
      6b99fd23
    • Ben Noordhuis's avatar
      zlib: reduce memory consumption, release early · 8d146689
      Ben Noordhuis authored
      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.
      8d146689
  7. Feb 05, 2013
  8. Feb 03, 2013
  9. Feb 02, 2013
    • Ben Noordhuis's avatar
      buffer: optimize Buffer.prototype.write(s, 'hex') · cd42f561
      Ben Noordhuis authored
      Move the implementation to C++ land. This is similar to commit 3f65916f
      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');
      cd42f561
    • isaacs's avatar
      debugger: Make the debugger timeout configurable · 916aebab
      isaacs authored
      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'.
      916aebab
    • Ben Noordhuis's avatar
      buffer: optimize Buffer.prototype.toString('hex') · 3f65916f
      Ben Noordhuis authored
      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.
      3f65916f
    • isaacs's avatar
      c7c1ed01
    • Ben Noordhuis's avatar
      dns, cares: don't filter NOTIMP, REFUSED, SERVFAIL · 6aed61f1
      Ben Noordhuis authored
      Report the aforementioned DNS server failure codes as-is, stop c-ares
      from reporting them as ARES_ECONNREFUSED.
      
      Reported by Steve Freegard.
      6aed61f1
  10. Feb 01, 2013