Skip to content
Commits on Mar 1, 2013
  1. @isaacs

    2013.03.01, Version 0.9.10 (Unstable)

    isaacs committed
    * V8: downgrade 3.14.5
    * openssl: update to 1.0.1e
    * darwin: Make process.title work properly (Ben Noordhuis)
    * fs: Support mode/flag options to read/append/writeFile (isaacs)
    * stream: _read() no longer takes a callback (isaacs)
    * stream: Add stream.unshift(chunk) (isaacs)
    * stream: remove lowWaterMark feature (isaacs)
    * net: omit superfluous 'connect' event (Ben Noordhuis)
    * build, windows: disable SEH (Ben Noordhuis)
    * core: remove errno global (Ben Noordhuis)
    * core: Remove the nextTick for running the main file (isaacs)
    * core: Mark exit() calls with status codes (isaacs)
    * core: Fix debug signal handler race condition lock (isaacs)
    * crypto: clear error stack (Ben Noordhuis)
    * test: optionally set common.PORT via env variable (Timothy J Fontaine)
    * path: Throw TypeError on non-string args to path.resolve/join (isaacs, Arianit Uka)
    * crypto: fix uninitialized memory access in openssl (Ben Noordhuis)
  2. @isaacs
  3. @isaacs
  4. @isaacs

    test: Put fs write test files in tmp

    isaacs committed
    This prevents fixture litter when these tests fail.
  5. @tjfontaine @bnoordhuis
  6. @isaacs

    doc: Provide 2 examples of SimpleProtocol parser

    isaacs committed
    The first example uses Readable, and shows the use of
    readable.unshift().  The second uses the Transform class, showing that
    it's much simpler in this case.
  7. @isaacs

    stream: There is no _read cb, there is only push

    isaacs committed
    This makes it so that `stream.push(chunk)` is the only way to signal the
    end of reading, removing the confusing disparity between the
    callback-style _read method, and the fact that most real-world streams
    do not have a 1:1 corollation between the "please give me data" event,
    and the actual arrival of a chunk of data.
    It is still possible, of course, to implement a `CallbackReadable` on
    top of this.  Simply provide a method like this as the callback:
        function readCallback(er, chunk) {
          if (er)
            stream.emit('error', er);
    However, *only* fs streams actually would behave in this way, so it
    makes not a lot of sense to make TCP, TLS, HTTP, and all the rest have
    to bend into this uncomfortable paradigm.
  8. @isaacs

    stream: Add stream.unshift(chunk)

    isaacs committed
  9. @isaacs

    stream: Break up the onread function

    isaacs committed
    A primary motivation of this is to make the onread function more
    inline-friendly, but also to make it more easy to explore not having
    onread at all, in favor of always using push() to signal the end of
  10. @bnoordhuis

    net: omit superfluous 'connect' event

    bnoordhuis committed
    Don't emit a 'connect' event on sockets that are handed off to
    net.Server 'connection' event listeners.
    1. It's superfluous because the connection has already been established
       at that point.
    2. The implementation is arguably wrong because the event is emitted on
       the same tick of the event loop while the rule of thumb is to always
       emit it on the next one.
    This has been tried before in commit f0a440d but was reverted again in
    ede1acc because the change was incomplete (at least one test hadn't
    been updated).
    Fixes #1047 (again).
  11. @bnoordhuis
Commits on Feb 28, 2013
  1. @bnoordhuis

    test: disable simple/test-process-getgroups on os x

    bnoordhuis committed
    The output of `id -G` is unreliable on OS X. It uses an undocumented
    Libsystem function called getgrouplist_2() that includes some auxiliary
    groups that the POSIX getgroups() function does not return.
    Or rather, not always. It leads to fun bug chases where the test fails
    in one terminal but not in another.
  2. @bnoordhuis
  3. @tjfontaine @bnoordhuis

    test: fix tap output on windows

    tjfontaine committed with bnoordhuis
    Test output is always \n and not platform dependent
  4. @bnoordhuis

    lib, src: remove errno global

    bnoordhuis committed
    Remove the errno global. It's a property on the process object now.
    Fixes #3095.
  5. @sblom
  6. @bnoordhuis

    Merge remote-tracking branch 'origin/v0.8'

    bnoordhuis committed
  7. @bnoordhuis

    build, windows: disable SEH

    bnoordhuis committed
    Turn off safe exception handlers, they're incompatible with how
    openssl is compiled / linked under MSVS 2012.
    Addresses the following build error:
      openssl.lib(x86cpuid.obj) : error LNK2026: module unsafe for SAFESEH
      image. [g:\jenkins\workspace\nodejs-oneoff\node.vcxproj]
      openssl.lib(x86.obj) : error LNK2026: module unsafe for SAFESEH
      image. [g:\jenkins\workspace\nodejs-oneoff\node.vcxproj]
      # etc. etc.
      g:\jenkins\workspace\nodejs-oneoff\Release\node.exe : fatal error
      LNK1281: Unable to generate SAFESEH image.
    Fixes #4242.
  8. @bnoordhuis

    doc: update instructions on home page

    bnoordhuis committed
    Document how to run the example on the home page in more detail.
    Apparently our Windows brethren are prone to double-clicking on the
    binary instead of running it from the command line.
    Fixes #4854.
  9. @trevnorris @isaacs

    process: separate nextTick domain logic

    trevnorris committed with isaacs
    It's cleaner to only load domain ticker logic when the domains are being
    used. This makes execution slightly quicker in both cases, and simpler
    from the spinner since there is no need to check if the latest callback
    requires use of domains.
  10. @isaacs

    core: Remove the nextTick for running the main file

    isaacs committed
    Not necessary, since we can handle the error properly on the first tick
    now, even if there are event listeners, etc.
    Additionally, this removes the unnecessary "_needTickCallback" from
    startup, since Module.loadMain() will kick off a nextTick callback right
    after it runs the main module.
    Fix #4856
Commits on Feb 27, 2013
  1. @isaacs

    core: Mark exit() calls with status codes

    isaacs committed
    Also, exit with 128+n for signal exit n, as is The Unix Way.
  2. @bnoordhuis

    crypto: clear error stack

    bnoordhuis committed
    Clear OpenSSL's error stack on return from Connection::HandleSSLError().
    This stops stale errors from popping up later in the lifecycle of the
    SSL connection where they would cause spurious failures.
    This commit causes a 1-2% performance regression on `make bench-tls`.
    We'll address that in follow-up commits if possible but let's ensure
    correctness first.
    Fixes #4771.
  3. @sblom
  4. @isaacs

    stream: Writables are not pipe()able

    isaacs committed
    This handles the fact that stream.Writable inherits from the Stream class,
    meaning that it has the legacy pipe() method.  Override that with a pipe()
    method that emits an error.
    Ensure that Duplex streams ARE still pipe()able, however.
    Since the 'readable' flag on streams is sometimes temporary, it's probably
    better not to put too much weight on that.  But if something is an instanceof
    Writable, rather than of Readable or Duplex, then it's safe to say that
    reading from it is the wrong thing to do.
    Fix #3647
  5. @isaacs
  6. @isaacs

    test: Move test-net-connect-timeout to test/internet

    isaacs committed
    It is not a valid test unless you're connected to the internet, and causes
    a lot of spurious failures on Linux anyway, as it's highly dependent on
    timing of things that we don't have any control over.
  7. @isaacs
  8. @isaacs

    test: Fix debugger repl tests

    isaacs committed
    This makes the output of simple/test-debugger-repl and
    simle/test-debugger-repl-utf8 mirror an actual debugger session, so it's
    a bit easier to reason about.
    Also, it uses the same code for both, and fixes it so that it doesn't
    leave zombie processes lying around when it crashes.
    Run 1000 times without any failures or zombies.
  9. @isaacs

    test: catch break in simple/test-debugger-client

    isaacs committed
    Handle break events that come out sometimes, by telling it to continue.
    Also, send the child a SIGTERM when it times out.
  10. @isaacs

    core: Use a uv_signal for debug listener

    isaacs committed
    Starting the debugger directly in the SIGUSR1 signal handler results in
    a malloc lock contention ~1% of the time.  It hangs the test, which is
    annoying on a daily basis to all of us, but it also is pretty terrible
    if you actually want to debug a node process that has gone sideways.
    Credit to @bnoordhuis for most of this.  I just added the unref which
    keeps it from messing up the event loop for other stuff.
Commits on Feb 26, 2013
  1. @bnoordhuis
  2. @bnoordhuis

    test: merge environment, don't overwrite

    bnoordhuis committed
    The CI system requires that some environment variables are set so merge
    our variables into the current environment instead of blindly replacing
    This will probably have to be repeated for other tests. C'est la vie.
  3. @hashseed @bnoordhuis

    v8: Hardfloat does not imply VFPv3, only VFPv2.

    hashseed committed with bnoordhuis
    Raspberry Pi is an example.
    Review URL:
    Patch from Chi-Thanh Christopher Nguyen <>.
    git-svn-id: ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    This is a backport of v8/v8@44419ad.
  4. @bnoordhuis

    v8: work around String::WriteAscii segfault

    bnoordhuis committed
    See for details.
    This commit reapplies 9668df8. The issue has been fixed upstream but
    reappeared after last night's downgrade to V8 3.14.5 in commit b15a10e.
Something went wrong with that request. Please try again.