Permalink
Commits on Jan 18, 2013
  1. 2013.01.18, Version 0.9.7 (Unstable)

    * V8: Upgrade to 3.15.11.7
    
    * npm: Upgrade to 1.2.2
    
    * punycode: Upgrade to 1.2.0 (Mathias Bynens)
    
    * repl: make built-in modules available by default (Felix Böhm)
    
    * windows: add support for '_Total' perf counters (Scott Blomquist)
    
    * cluster: make --prof work for workers (Ben Noordhuis)
    
    * child_process: do not keep list of sent sockets (Fedor Indutny)
    
    * tls: Follow RFC6125 more strictly (Fedor Indutny)
    
    * buffer: floating point read/write improvements (Trevor Norris)
    
    * TypedArrays: Improve dataview perf without endian param (Dean McNamee)
    
    * module: assert require() called with a non-empty string (Felix Böhm, James Campos)
    
    * stdio: Set readable/writable flags properly (isaacs)
    
    * stream: Properly handle large reads from push-streams (isaacs)
    isaacs committed Jan 18, 2013
  2. doc: Remove mention of child.send 'track' option

    Will be removed very soon.  No point making it public.
    isaacs committed Jan 18, 2013
  3. npm: Upgrade to 1.2.2

    isaacs committed Jan 18, 2013
  4. cluster: make --prof work for workers

    Profiling in clustered environments doesn't work out of the box.
    
    By default, V8 writes the profile data of all processes to a single
    v8.log.
    
    Running that log file through a tick processor produces bogus numbers
    because many events won't match up with the recorded memory mappings
    and you end up with graphs where 80+% of ticks is unaccounted for.
    
    Fixing the tick processor to deal with multi-process output is not very
    useful because the processes may be running wildly disparate workloads.
    
    That's why we fix up the command line arguments to include
    a "--logfile=v8-%p.log" argument (where %p is expanded to the PID)
    unless it already contains a --logfile argument.
    
    Fixes #4617.
    bnoordhuis committed Jan 18, 2013
  5. v8: add %p option to --logfile, expands to pid

    Useful when you are profiling multiple instances of V8 concurrently.
    Submitted upstream: http://code.google.com/p/v8/issues/detail?id=2503
    
    Refs #4617.
    bnoordhuis committed Jan 18, 2013
Commits on Jan 17, 2013
  1. child_process: do not keep list of sent sockets

    Keeping list of all sockets that were sent to child process causes memory
    leak and thus unacceptable (see #4587). However `server.close()` should
    still work properly.
    
    This commit introduces two options:
    
    * child.send(socket, { track: true }) - will send socket and track its status.
      You should use it when you want to receive `close` event on sent sockets.
    * child.send(socket) - will send socket without tracking it status. This
      performs much better, because of smaller number of RTT between master and
      child.
    
    With both of these options `server.close()` will wait for all sent
    sockets to get closed.
    indutny committed Jan 14, 2013
  2. Revert "child_process: do not keep list of sent sockets"

    This reverts commit db5ee0b.
    indutny committed Jan 17, 2013
  3. child_process: do not keep list of sent sockets

    Keeping list of all sockets that were sent to child process causes memory
    leak and thus unacceptable (see #4587). However `server.close()` should
    still work properly.
    
    This commit introduces two options:
    
    * child.send(socket, { track: true }) - will send socket and track its status.
      You should use it when you want `server.connections` to be a reliable
      number, and receive `close` event on sent sockets.
    * child.send(socket) - will send socket without tracking it status. This
      performs much better, because of smaller number of RTT between master and
      child.
    
    With both of these options `server.close()` will wait for all sent
    sockets to get closed.
    indutny committed with isaacs Jan 14, 2013
  4. Revert "events: Don't crash on events named __proto__"

    Unfortunately, it's just too slow to do this in events.js.  Users will
    just have to live with not having events named __proto__ or toString.
    
    This reverts commit b48e303.
    isaacs committed Jan 17, 2013
  5. stdio: Set readable/writable flags properly

    Set the readable/writable flags properly in net streams that have
    a handle passed in (such as TTY streams).
    
    Fix #4606
    isaacs committed Jan 17, 2013
  6. events: Don't crash on events named __proto__

    This prefixes all event names internally with 'ev'.
    isaacs committed Jan 16, 2013
  7. doc: modify documentation style about 'Stability: 5'

    'Stability: 5' is described as 'Locked' not as 'API Locked'
    in other documents.
    
    For example:
    - `/doc/api/assert.markdown`
    - `/doc/api/util.markdown`
    
    This word was injected in 192192a.
    tricknotes committed with bnoordhuis Jan 17, 2013
Commits on Jan 16, 2013
  1. module: assert that require() is called with a string

    as requested in #4577
    fb55 committed with isaacs Jan 16, 2013
  2. repl: fix how to module requiring in code comment

    This module requiring style is old.
    This API has been changed in Node 0.1.16 726865a.
    tricknotes committed with isaacs Dec 11, 2012
  3. TypedArrays: Improve dataview perf without endian param

    V8 seems to be particularly slow converting an undefined value to false
    in BooleanValue.
    
    Revert this when we upgrade to V8 3.17, or whenever the fix discussed
    in http://code.google.com/p/v8/issues/detail?id=2487 lands in V8.
    deanm committed with isaacs Jan 15, 2013
  4. stream: Properly handle large reads from push-streams

    Problem 1: If stream.push() triggers a 'readable' event, and the user
    calls `read(n)` with some n > the highWaterMark, then the push() will
    return false (indicating that they should not push any more), but no
    future 'readable' event is coming (because we're above the
    highWaterMark).
    
    Solution: return true from push() when needReadable is set.
    
    Problem 2: A read(n) for n != 0, after the stream had encountered an
    EOF, would not trigger the 'end' event if the EOF was pushed in
    synchronously by the _read() function.
    
    Solution: Check for ended in stream.read() and schedule an end event if
    the length now equals 0.
    
    Fix #4585
    isaacs committed Jan 16, 2013
  5. buffer: improve read/write speed with assert

    Improved assert check order of execution and added additional checks on
    parameters to ensure no bad values make it through (e.g. negative offset
    values).
    trevnorris committed with isaacs Jan 11, 2013
  6. buffer: floating point read/write improvements

    Improvements:
    * floating point operations are approx 4x's faster
    * Now write quiet NaN's
    * all read/write on floating point now done in C, so no more need for
      lib/buffer_ieee754.js
    * float values have more accurate min/max value checks
    * add additional benchmarks for buffers read/write
    * created benchmark/_bench_timer.js which is a simple library that
      can be included into any benchmark and provides an intelligent tracker
      for sync and async tests
    * add benchmarks for DataView set methods
    * add checks and tests to make sure offset is greater than 0
    trevnorris committed with isaacs Dec 22, 2012
  7. http: fix duplicate var initialization

    IncomingMessage function contained duplicate initialization
    of this._pendings. Line with one of those expressions has been
    removed.
    FZambia committed with bnoordhuis Jan 10, 2013
  8. punycode: update to v1.2.0

    This update adds support for RFC 3490 separators for improved
    compatibility with web browsers.
    mathiasbynens committed with bnoordhuis Jan 11, 2013
Commits on Jan 15, 2013
  1. v8: work around String::WriteAscii segfault

    See http://code.google.com/p/v8/issues/detail?id=2493 for details.
    Once the patch lands in upstream V8, this commit can be reverted.
    bnoordhuis committed Jan 15, 2013
  2. tls: follow RFC6125 more stricly

    * Allow wildcards only in left-most part of hostname identifier.
    * Do not match CN if altnames are present
    indutny committed with isaacs Jan 14, 2013
  3. streams2: Do not allow hwm < lwm

    There was previously an assert() in there, but this part of the code is
    so high-volume that the added cost made a measurable dent in http_simple.
    
    Just checking inline is fine, though, and prevents a lot of potential
    hazards.
    isaacs committed Jan 15, 2013
Commits on Jan 14, 2013
  1. stream: Do not call endReadable on a non-empty stream

    Say that a stream's current read queue has 101 bytes in it, and the
    underlying resource has ended (ie, reached EOF).
    
    If you do something like this:
    
        stream.read(100); // leave a byte behind
        stream.read(0); // read(0) for some reason
    
    then the read(0) will get 0 from the howMuchToRead function.  Since the
    stream was ended, this was incorrectly treating the 0 as a "there is no
    more in the buffer", and emitting 'end' before that last byte was read.
    
    Why have the read(0) in the first place?  We do this in some cases to
    trigger the last few bytes of a net socket (such as a child process's
    stdio pipes).  This was causing issues when piping a `git archive` job
    to a file: the resulting tarball was incomplete, because it occasionally
    was not getting the last chunk.
    isaacs committed Jan 14, 2013
  2. tls: allow wildcards in common name

    see #4592
    indutny committed Jan 14, 2013
Commits on Jan 13, 2013
  1. v8: Hardfloat does not imply VFPv3, only VFPv2.

    Raspberry Pi is an example.
    
    BUG=v8:2393
    
    Review URL: https://chromiumcodereview.appspot.com/11570061
    Patch from Chi-Thanh Christopher Nguyen <nguyenchithanh@gmail.com>.
    
    git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@13232 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    
    This is a backport of v8/v8@44419ad.
    hashseed committed with bnoordhuis Dec 18, 2012