Commit Graph

10903 Commits (9dc9ec3ce6ba6f3dd4020e00f5863e207fa08a75)

Author SHA1 Message Date
Ben Noordhuis 9dc9ec3ce6 lib: make debug client connect to 127.0.0.1
On machines without network connectivity, a DNS lookup for 'localhost'
may fail.  Connect to 127.0.0.1 to skip the host resolve step.

Fixes: https://github.com/iojs/io.js/issues/726
PR-URL: https://github.com/iojs/io.js/pull/741
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2015-02-06 16:49:47 +01:00
Vladimir Kurchatkin e7573f9111 assert: don't compare object `prototype` property
All own enumerable properties are compared already. Comparing
`prototype` property specifically can cause weird behaviour.

PR-URL: https://github.com/iojs/io.js/pull/636
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-02-06 14:40:43 +03:00
Trevor Norris 8d1179952a asyncwrap: fix nullptr parent check
The nullptr check for parent on entry to the constructor should be ==
not !=. This allows reqs that have a parent to run their own init hook
callbacks even if kCallInitHook has been disabled.
2015-02-05 16:55:07 -07:00
Ben Noordhuis 62512bb29c test: accept EPROTONOSUPPORT ipv6 error
The IPv6 test in parallel/test-dgram-error-message-address may fail
when the host system has disabled IPv6, as is the case on our FreeBSD
machines.  The test already accepted EAFNOSUPPORT as of commit 5ba307a,
now make it accept EPROTONOSUPPORT as well.

I'm not exactly thrilled by the profusion of error codes but they are
all legitimate.

PR-URL: https://github.com/iojs/io.js/pull/733
Reviewed-By: Fedor Indutny <fedor@indutny.com>
2015-02-06 00:49:00 +01:00
Trevor Norris 05f4dff975 asyncwrap: fix constructor condition for early ret
AsyncWrap should always properly propagate asynchronous calls to any
child that is created. Regardless whether kCallInitHook is currently
active. The previous logic would always return early if kCallInitHook
wasn't set.

PR-URL: https://github.com/iojs/io.js/pull/732
Reviewed-by: Ben Noordhuis <info@bnoordhuis.nl>
2015-02-05 16:10:13 -07:00
Calvin Metcalf 10277d2e57 docs: include mention of new crypto methods
Include mention of privateEncrypt and publicDecrypt in changelog.

PR-URL: https://github.com/iojs/io.js/pull/722
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
2015-02-05 19:42:50 +01:00
Zach Bruggeman 9a8f18613d child_process: add debug and error details
This commit adds debug() calls to spawn() and spawnSync(), and
attaches additional information to Error objects.

Fixes: https://github.com/iojs/io.js/issues/720
PR-URL: https://github.com/iojs/io.js/pull/721
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
2015-02-05 12:58:15 -05:00
Fedor Indutny 6f7a9784ea crypto: clear error on return in TLS methods
Methods like `X509_STORE_add_cert` may push errors onto OpenSSL's error
stack. Ensure that they won't pop up in a different places like
`tls_wrap.cc`.

Fix: https://github.com/iojs/io.js/issues/712
PR-URL: https://github.com/iojs/io.js/pull/719
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-02-05 12:33:15 +03:00
Sam Newman 50daee7243 stream: simpler stream constructon
Adds simplified constructor pattern, allowing users
to provide "read", "write", "transform", "flush", and
"writev" functions as stream options in lieu of subclassing.

Semver: minor
PR-URL: https://github.com/iojs/io.js/pull/697
Fixes: https://github.com/iojs/readable-stream/issues/102
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
2015-02-04 20:19:39 -08:00
Brian White e0730eeaa5 benchmark: allow compare via fine-grained filters
Before this commit, only benchmark targets defined in Makefile could
be used. This commit allows execution of common.js directly and
passing of filter arguments directly, allowing you to run either a
subset of benchmarks or a single specific benchmark for comparison.

PR-URL: https://github.com/iojs/io.js/pull/711
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
2015-02-04 16:55:18 -05:00
Ben Noordhuis 96ffcb9a21 src: reduce cpu profiler overhead
Reduce the overhead of the CPU profiler by suppressing SIGPROF signals
when sleeping / polling for events. Avoids unnecessary wakeups when the
CPU profiler is active.

The benefits are quite substantial on systems where it is expensive to
query the system time (most virtualized environments). Before, it was
common to see over 20% of wall clock time being spent on clock_gettime()
system calls.

PR: https://github.com/iojs/io.js/pull/466
Reviewed-by: Bert Belder <bertbelder@gmail.com>
2015-02-04 22:19:33 +01:00
Evan Lucas 3e675e44b5 benchmark: don't use template strings
When running benchmark/compare.js, it is typical to run a version of
node that does not support template strings. This provides backwards
compatibility for comparing benchmarks using older versions of node.

PR-URL: https://github.com/iojs/io.js/pull/714
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
2015-02-04 03:53:22 -06:00
Mikeal Rogers 8ac8b760ac doc: simplified pure consensus seeking
This changes TC addition to a standard TC motion instead
of requiring unanimous consent of all members.

PR-URL: https://github.com/iojs/io.js/pull/677
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
2015-02-03 17:26:20 -08:00
Chris Dickinson 0a54b6a134 doc: update streams wg charter
PR-URL: https://github.com/iojs/io.js/pull/599
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
2015-02-03 17:23:59 -08:00
Mikeal Rogers b8ead4a23f Adjusting for feedback in the PR. 2015-02-03 15:29:49 -08:00
Mikeal Rogers 3af7f30a7c Initial documentation for working groups. 2015-02-03 15:29:49 -08:00
Chris Dickinson 513724efcc doc: add GPG fingerprint for chrisdickinson
PR-URL: https://github.com/iojs/io.js/pull/710
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-02-03 15:21:04 -08:00
Rod Vagg 4168198392 doc: add TC meeting 2015-01-28 minutes
PR-URL: https://github.com/iojs/io.js/pull/699
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
2015-02-04 09:42:03 +11:00
Chris Dickinson c4b1019019 Working on v1.1.1 2015-02-03 14:19:29 -08:00
Chris Dickinson 6629751596 2015-02-03 io.js v1.1.0 Release
Notable changes:

* debug: fix v8 post-mortem debugging.
* crypto: publicEncrypt now supports password-protected private keys.
* crypto: ~30% speedup on hashing functions.
* errors
  - better formatting via util.inspect
  - more descriptive errors from fs. This necessitated a
    NODE_MODULE_VERSION bump.
  - more descriptive errors from http.setHeader
* dep updates:
  - npm: upgrade to 2.4.1
  - http-parser: rollback to 2.3.0
  - libuv: update to 1.3.0
  - v8: update to 4.1.0.14
* http.request: inherited properties on options are now respected
* add iterable interface to buffers.
* fs: fix fd leak on `fs.createReadStream`. See 497fd72 for details.
* installer: on Windows, emit WM_SETTINGCHANGE after install to make
  other running processes aware of the PATH changes.
* Added new collaborators:
  - Vladimir Kurchatkin (@vkurchatkin)
  - Micleușanu Nicu (@micnic)
2015-02-03 14:13:21 -08:00
Rod Vagg df48fafa92 tools: add release tool and docs, remove old tools
Also added binary download documentation to the README.md and
GPG release key fingerprint for @rvagg.

PR-URL: https://github.com/iojs/io.js/pull/681
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Fedor Indutny <fedor@indutny.com>
2015-02-04 09:02:15 +11:00
Fedor Indutny 14684d3d67 v8abbr: ASCIISTRINGTAG => ONEBYTESTRINGTAG
Fix: iojs/io.js#461
PR-URL: https://github.com/iojs/io.js/pull/706
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-02-03 19:25:31 +03:00
Fedor Indutny 6a5d731f60 gyp: enable postmortem support, fix dtrace paths
Fix: iojs/io.js#461
PR-URL: https://github.com/iojs/io.js/pull/706
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-02-03 19:25:27 +03:00
Fedor Indutny 8b88ff85f1 deps: fix postmortem support in v8
Fix: iojs/io.js#461
PR-URL: https://github.com/iojs/io.js/pull/706
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-02-03 19:25:04 +03:00
Glen Keane d0b0bb4ae0 dtrace: fix removal of unused probes
Fixes Windows compile failures introduced in d75fecf6f

PR-URL: https://github.com/iojs/io.js/pull/703
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-02-03 22:37:42 +11:00
Jonathan Ong 3e67d7e46b http: replace util._extend() with [].slice()
PR-URL: https://github.com/iojs/io.js/pull/634
Reviewed-BY: Nicu Micleușanu <micnic90@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
2015-02-02 14:52:02 -08:00
Brendan Ashworth 89dd8e062f benchmark: clean up common.js
This commit cleans up `benchmark/common.js` with a few generic changes
such as the following:

- declare all `require()`'d libraries at the top instead of in the
  middle
- add some empty whitespace where it helps readability
- changes ambiguous variable names
- standardizes most if / else blocks
- missing semicolons

PR-URL: https://github.com/iojs/io.js/pull/662
Reviewed-By: Nicu Micleușanu <micnic90@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
2015-02-02 14:43:16 -08:00
Calvin Metcalf 6561274d23 crypto: support passwords in publicEncrypt
Private keys may be used along with publicEncrypt since the private key
includes the public one.  This adds the ability to use encrypted private
keys which previously threw an error.  This commit also makes sure the
user exposed functions have names.

PR-URL: https://github.com/iojs/io.js/pull/626
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-02-02 23:21:49 +01:00
Sam Roberts e9eb2ec1c4 process: fix regression in unlistening signals
When the last signal listener is removed, the signal wrap should be
closed, restoring the default signal handling behaviour. This is done in
a (patched) process.removeListener(). However, events.removeAllListeners
has an optimization to avoid calling removeListener() if there are no
listeners for the 'removeListener' event, introduced in 56668f54d1. That
caused the following code to fail to terminate:

    process.stdin.resume();
    function listener() {};
    process.on('SIGINT', listener);
    process.removeAllListeners('SIGINT');
    process.kill(process.pid, 'SIGINT')

while the following will terminate:

    process.stdin.resume();
    function listener() {};
    process.on('SIGINT', listener);
    process.removeListener('SIGINT', listener);
    process.kill(process.pid, 'SIGINT')

Replace the method patching with use of the 'newListener' and
'removeListener' events, which will fire no matter which methods are
used to add or remove listeners.

PR-URL: https://github.com/iojs/io.js/pull/687
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-02-02 21:59:57 +01:00
Sam Roberts 233e333b18 events: remove indeterminancy from event ordering
The order of the `newListener` and `removeListener` events with respect
to the actual adding and removing from the underlying listeners array
should be deterministic. There is no compelling reason for leaving it
indeterminate. Changing the ordering is likely to result in breaking
code that was unwittingly relying on the current behaviour, and the
indeterminancy makes it impossible to use these events to determine when
the first or last listener is added for an event.

PR-URL: https://github.com/iojs/io.js/pull/687
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-02-02 21:59:56 +01:00
Glen Keane d75fecf6fd src: remove unused dtrace probes
Removed DTRACE_NET_SOCKET_READ and DTRACE_NET_SOCKET_WRITE
as they were never called from within the source code.

PR-URL: https://github.com/iojs/io.js/pull/694
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-02-02 21:55:56 +01:00
Yosuke Furukawa 8c0742f437 net: check close callback is function
PR-URL: https://github.com/iojs/io.js/pull/609
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Evan Lucas <evanlucas@me.com>
2015-02-02 18:45:34 +01:00
Yosuke Furukawa 207e48c934 dgram: check close callback is function
PR-URL: https://github.com/iojs/io.js/pull/609
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Evan Lucas <evanlucas@me.com>
2015-02-02 18:44:05 +01:00
cjihrig 6ac8bdc0ab lib: reduce util.is*() usage
Many of the util.is*() methods used to check data types
simply compare against a single value or the result of
typeof. This commit replaces calls to these methods with
equivalent checks. This commit does not touch calls to the
more complex methods (isRegExp(), isDate(), etc.).

Fixes: https://github.com/iojs/io.js/issues/607
PR-URL: https://github.com/iojs/io.js/pull/647
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-01-31 23:47:29 -05:00
Bert Belder bce7a2608e deps: make node-gyp work again on windows
* Fetch from the correct url.
* Link compiled addons with iojs.lib instead of node.lib.
* Disable checksum checks for iojs.lib until our website supports
  them.

PR: https://github.com/iojs/io.js/pull/422
Reviewed-by: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-by: Rod Vagg <rod@vagg.org>
2015-01-31 18:57:35 +01:00
Ben Noordhuis 1bdd74d20a deps: make node-gyp fetch tarballs from iojs.org
Apply a small patch that makes node-gyp fetch the tarballs from
https://iojs.org/ instead of http://nodejs.org/

A patch better suited for inclusion upstream will be put together
shortly.

PR-URL: https://github.com/iojs/io.js/pull/343
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-01-31 18:57:35 +01:00
Forrest L Norvell faf34ffbd3 deps: upgrade npm to 2.4.1
PR-URL: https://github.com/iojs/io.js/pull/663
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-01-31 18:57:30 +01:00
cjihrig 40e29dcbbf assert: use util.inspect() to create error messages
Currently, JSON.stringify() is used to create error messages
on failed assertions. This causes an error when stringifying
objects with circular references. This commit switches out
JSON.stringify() for util.inspect(), which can handle
circular references.

PR-URL: https://github.com/iojs/io.js/pull/668
Reviewed-By: Julien Gilli <julien.gilli@joyent.com>
Reviewed-By: Bert Belder <bertbelder@gmail.com>
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
2015-01-31 09:34:50 -05:00
Bert Belder bc2c85ceef fs: improve error messages
* Include a description for the error message
* For rename, link, and symlink, include both the source and destination
  path in the error message.
* Expose the destination path as the `dest` property on the error object.
* Fix a bug where `ThrowUVException()` would incorrectly delegate to
  `Environment::TrowErrnoException()`.

API impact:
* Adds an extra overload for node::UVException() which takes 6
  arguments.

PR: https://github.com/iojs/io.js/pull/675
Fixes: https://github.com/iojs/io.js/issues/207
Closes: https://github.com/iojs/io.js/pull/293
Reviewed-by: Ben Noordhuis <info@bnoordhuis.nl>
2015-01-31 11:54:56 +01:00
Ben Noordhuis 0767c2feb1 lib: fix max size check in Buffer constructor
A number -> uint32 type coercion bug made buffer sizes
larger than kMaxLength (0x3fffffff) wrap around.

Instead of rejecting the requested size with an exception,
the constructor created a buffer with the wrong size.

PR-URL: https://github.com/iojs/io.js/pull/657
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
2015-01-31 10:13:50 +01:00
Sam Roberts 65b1e4f56f dgram: implicit binds should be exclusive
Server sockets should be shared by default, and client sockets should be
exclusive by default. For net/TCP, this is how it is, for dgram/UDP, its
a little less clear what a client socket is, but a socket that is
auto-bound during a dgram.send() is not usefully shared among cluster
workers, any more than an outgoing TCP connection would be usefully
shared.

Since implicit binds become exclusive, implicit/client dgram sockets can
now be used with cluster on Windows. Before, neither explicit nor
implicitly bound sockets could be used, causing dgram to be completely
unsupported with cluster on Windows. After this change, they become half
supported.

PR: https://github.com/iojs/io.js/pull/325
PR: https://github.com/joyent/node/pull/8643
Reviewed-by: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-by: Bert Belder <bertbelder@gmail.com>
2015-01-31 00:10:39 +01:00
Brendan Ashworth 083c421b5c benchmark: remove extra spacing in http options
This commit removes the benchmark spacing modification in
`client-request-body.js` and `end-vs-write-end.js` which adds two spaces
to the end of some variables to make sure the lines line up.

The reason behind this is that its totally pointless (the lines don't
actually line up with it) and it disallows you to parse the output with
a tool like awk, or at least makes it a lot harder.

PR-URL: https://github.com/iojs/io.js/pull/650
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
2015-01-30 16:09:10 -05:00
Fedor Indutny e17e6fb2fa util: use on-stack buffer for Utf8Value
Improves `crypto.createHash().update().digest()` performance by 10%.

PR-URL: https://github.com/iojs/io.js/pull/670
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-01-30 22:08:17 +03:00
Fedor Indutny 3d4e96f3ce crypto: use on-stack storage in HashUpdate
Boosts speed up to 10% on primitive `createHash().update().digest()`
benchmark.

PR-URL: https://github.com/iojs/io.js/pull/664
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-01-30 17:41:59 +03:00
Fedor Indutny aca2011251 string_bytes: introduce InlineDecoder
PR-URL: https://github.com/iojs/io.js/pull/664
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-01-30 17:41:54 +03:00
Fedor Indutny c6367e7f2a node: speed up ParseEncoding
Handle most popular cases in a trie-style, branching on a first
character.

Remove useless HandleScope which was only eating time without producing
any value.

PR-URL: https://github.com/iojs/io.js/pull/664
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-01-30 17:41:34 +03:00
Calvin Metcalf 7604e6decc docs: add note about default padding in crypto
Adds a note that the default padding for publicDecrypt/privateEncrypt
is RSA_PKCS1_PADDING instead of RSA_PKCS1_OAEP_PADDING as it is for
privateDecrypt/publicEncrypt.

PR-URL: https://github.com/iojs/io.js/pull/659
Reviewed-By: Brendan Ashworth <brendan.ashworth@me.com>
2015-01-29 18:42:36 -08:00
Qasim Zaidi cf3e908b70 http: more descriptive setHeader errors
PR-URL: https://github.com/iojs/io.js/pull/480
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
2015-01-29 16:58:36 -08:00
Ben Noordhuis cbc1262bd9 deps: upgrade v8 to 4.1.0.14
PR-URL: https://github.com/iojs/io.js/pull/656
Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com>
2015-01-29 18:12:27 +01:00
Micleusanu Nicu 00f822f276 doc: add micnic as collaborator
PR-URL: https://github.com/iojs/io.js/pull/651
Reviewed-By: Brendan Ashworth <brendan.ashworth@me.com>
2015-01-29 08:35:54 +02:00