Ben Noordhuis [Sun, 4 Nov 2012 00:26:27 +0000 (01:26 +0100)]
build: remove _LARGEFILE_SOURCE, _FILE_OFFSET_BITS
Don't define the _LARGEFILE_SOURCE and _FILE_OFFSET_BITS flags, they're
inherited from libuv now.
Ben Noordhuis [Sun, 4 Nov 2012 00:25:06 +0000 (01:25 +0100)]
deps: upgrade libuv to 0ddf9d6
Ben Noordhuis [Fri, 2 Nov 2012 14:56:47 +0000 (15:56 +0100)]
build: make debug build on os x compile at -O0
Set GCC_OPTIMIZATION_LEVEL explicitly, otherwise GYP defaults to -Os.
Shigeki Ohtsu [Thu, 1 Nov 2012 05:14:46 +0000 (14:14 +0900)]
build: fix default dtrace flag on Linux
DTrace on Linux should not be enabled by default because not all systems will
have the proper headers installed. Only enable when --with-dtrace is passed to
the configure script.
Girish Ramakrishnan [Thu, 1 Nov 2012 08:29:33 +0000 (01:29 -0700)]
doc: tls: rejectUnauthorized defaults to true after
35607f3a
Scott Blomquist [Wed, 5 Sep 2012 19:44:15 +0000 (12:44 -0700)]
windows: generate ETW events to track v8 compiled code positions
Patch by Henry Rawas and Scott Blomquist.
Ben Noordhuis [Thu, 1 Nov 2012 00:36:41 +0000 (01:36 +0100)]
build: add --systemtap-includes configure switch
Jan Wynholds [Tue, 9 Oct 2012 22:09:07 +0000 (15:09 -0700)]
tracing: add systemtap support
Ben Noordhuis [Tue, 30 Oct 2012 22:06:03 +0000 (23:06 +0100)]
deps: upgrade libuv to 97c527a
isaacs [Thu, 1 Nov 2012 00:07:58 +0000 (17:07 -0700)]
test: Use setImmediate for recursive deferral
This should have been with 21c741f, but didn't catch it then.
Taking our own advice.
isaacs [Tue, 30 Oct 2012 17:16:28 +0000 (10:16 -0700)]
zlib: s/clear/close/ and match other close() semantics
Frederico Silva [Tue, 30 Oct 2012 22:04:29 +0000 (22:04 +0000)]
build: let gyp choose msvs version
J. Lee Coltrane [Mon, 15 Oct 2012 17:07:24 +0000 (13:07 -0400)]
url: make url.format escape delimiters in path and query
`url.format` should escape ? and # chars in pathname, and # chars in
search, because they change the semantics of the operation otherwise.
Don't escape % chars, or anything else. (see: #4082)
Brandon Philips [Tue, 30 Oct 2012 14:42:44 +0000 (07:42 -0700)]
tls: delete useless removeListener call
onclose was never attached to 'end' so this call to remove this listener
is useless. Delete it.
Ben Noordhuis [Tue, 30 Oct 2012 13:40:50 +0000 (14:40 +0100)]
zlib: pass object size hint to V8
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.
Ben Noordhuis [Tue, 30 Oct 2012 00:19:01 +0000 (01:19 +0100)]
zlib: reduce memory consumption, release early
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.
isaacs [Mon, 29 Oct 2012 17:31:50 +0000 (10:31 -0700)]
Print warning when maxTickDepth is reached
Scott Blomquist [Thu, 25 Oct 2012 23:51:46 +0000 (16:51 -0700)]
windows: correct outputs list in "node_etw" gyp target
The gyp target node_etw didn't list its output dependencies. This
was causing virgin builds to fail with a "failed to open file for
write" error.
With this corrected outputs list, gyp reliably pre-creates
required output directories.
Ben Noordhuis [Thu, 25 Oct 2012 14:08:58 +0000 (16:08 +0200)]
Merge remote-tracking branch 'origin/v0.8'
Conflicts:
configure
deps/v8/build/common.gypi
Ben Noordhuis [Wed, 24 Oct 2012 22:52:15 +0000 (00:52 +0200)]
v8: remove optimization switches
Remove compiler switches from $(TOPLEVEL)/deps/v8/build/common.gypi, we set
them globally in $(TOPLEVEL)/common.gypi.
Commit
29d12c73 accidentally reintroduced the switches again. In particular,
the 'cflags!': ['-O2','-Os'] section forced building V8 without any
optimizations, resulting in a steep (~66%) performance drop on some benchmarks.
Fixes #4191.
Ben Noordhuis [Wed, 24 Oct 2012 22:44:37 +0000 (00:44 +0200)]
build: add --unsafe-optimizations configure switch
Turns on -O3 and other optimizations that may produce buggy code with some
toolchains. Use at your own risk.
Ben Noordhuis [Tue, 23 Oct 2012 12:06:04 +0000 (14:06 +0200)]
url: parse hostnames that start with - or _
Allow hostnames like '-lovemonsterz.tumblr.com' and '_jabber._tcp.google.com'.
Fixes #4177.
Bert Belder [Tue, 31 Jul 2012 22:52:37 +0000 (00:52 +0200)]
v8: don't show performance warnings when compiling with msvc
Patch sent upstream: http://codereview.chromium.org/
10829109/
isaacs [Wed, 24 Oct 2012 17:10:57 +0000 (10:10 -0700)]
Now working on v0.9.4
isaacs [Wed, 24 Oct 2012 17:10:30 +0000 (10:10 -0700)]
Merge branch 'v0.9.3-release'
isaacs [Wed, 24 Oct 2012 17:08:58 +0000 (10:08 -0700)]
blog: Post for v0.9.3 release
isaacs [Tue, 23 Oct 2012 19:08:59 +0000 (12:08 -0700)]
2012.10.24, Version 0.9.3 (Unstable)
* V8: Upgrade to 3.13.7.4
* crypto: Default to buffers instead of binary strings (isaacs, Fedor Indutny)
* crypto: add getHashes() and getCiphers() (Ben Noordhuis)
* unix: add custom thread pool, remove libeio (Ben Noordhuis)
* util: make `inspect()` accept an "options" argument (Nathan Rajlich)
* https: fix renegotation attack protection (Ben Noordhuis)
* cluster: make 'listening' handler see actual port (Aaditya Bhatia)
* windows: use USERPROFILE to get the user's home dir (Bert Belder)
* path: add platform specific path delimiter (Paul Serby)
* http: add response.headersSent property (Pavel Lang)
* child_process: make .fork()'d child auto-exit (Ben Noordhuis)
* events: add 'removeListener' event (Ben Noordhuis)
* string_decoder: Add 'end' method, do base64 properly (isaacs)
* buffer: include encoding value in exception when invalid (Ricky Ng-Adam)
* http: make http.ServerResponse no longer emit 'end' (isaacs)
* streams: fix pipe is destructed by 'end' from destination (koichik)
isaacs [Wed, 24 Oct 2012 16:21:39 +0000 (09:21 -0700)]
V8 build: 'echo -n' considered harmful
Ben Noordhuis [Wed, 24 Oct 2012 13:35:58 +0000 (15:35 +0200)]
test: fix pummel/test-crypto-dh, pummel/test-dh-regr
Forgotten in the switch to buffers as the default output in 3570f20.
Fixes #4188.
Bert Belder [Wed, 24 Oct 2012 00:42:57 +0000 (02:42 +0200)]
repl: call resume() after setRawMode()
Solves #4178, but does not fix the underlying issue
Bert Belder [Wed, 24 Oct 2012 00:42:57 +0000 (02:42 +0200)]
repl: call resume() after setRawMode()
Solves #4178, but does not fix the underlying issue
Olivier Lalonde [Tue, 23 Oct 2012 16:45:10 +0000 (00:45 +0800)]
doc: child_process: document uid and gid spawn() options
isaacs [Tue, 23 Oct 2012 18:59:19 +0000 (11:59 -0700)]
Merge remote-tracking branch 'ry/v0.8'
Conflicts:
deps/v8/src/arm/code-stubs-arm.cc
deps/v8/src/version.cc
isaacs [Tue, 23 Oct 2012 18:50:46 +0000 (11:50 -0700)]
V8: Reapply patches
isaacs [Tue, 23 Oct 2012 18:48:55 +0000 (11:48 -0700)]
V8: Upgrade to 3.13.7.4
isaacs [Tue, 23 Oct 2012 18:38:09 +0000 (11:38 -0700)]
V8: Reapply patches
isaacs [Tue, 23 Oct 2012 18:35:27 +0000 (11:35 -0700)]
V8: Upgrade to 3.11.10.25
isaacs [Tue, 23 Oct 2012 18:34:46 +0000 (11:34 -0700)]
npm: Upgrade to 1.1.64
isaacs [Tue, 23 Oct 2012 18:26:06 +0000 (11:26 -0700)]
Merge branch 'crypto-buffers'
isaacs [Tue, 23 Oct 2012 16:08:40 +0000 (09:08 -0700)]
crypto: Style. Prefer 'char*' over 'char *'
isaacs [Tue, 23 Oct 2012 17:28:51 +0000 (10:28 -0700)]
crypto: Remove many unnecessary toObjects
isaacs [Tue, 23 Oct 2012 17:29:06 +0000 (10:29 -0700)]
crypto: pbkdf2 throws when no callback provided
isaacs [Tue, 23 Oct 2012 17:27:11 +0000 (10:27 -0700)]
doc: OpenSSL is bundled now.
isaacs [Tue, 23 Oct 2012 17:35:15 +0000 (10:35 -0700)]
crypto: Clean up buffer handling and DH methods
isaacs [Mon, 22 Oct 2012 17:37:20 +0000 (10:37 -0700)]
crypto: Add crypto.DEFAULT_ENCODING (defaults to 'buffer')
This is a flag to make it easier for users to upgrade through the
breaking crypto change, and easier for us to switch it back if it's a
problem.
Explicitly set default encoding to 'buffer' in other tests, in case it
ever changes back.
isaacs [Sat, 13 Oct 2012 01:41:30 +0000 (18:41 -0700)]
tls: Provide buffer to Connection.setSession
isaacs [Sat, 13 Oct 2012 00:36:18 +0000 (17:36 -0700)]
crypto: Binding only accepts buffers
isaacs [Wed, 10 Oct 2012 22:44:47 +0000 (15:44 -0700)]
crypto: Move encoding logic to JS, default=buffer
crypto: Hash and Hmac default to buffers
crypto: Move Cipher encoding logic to JS
crypto: Move Cipheriv encoding logic to JS
crypto: Move Decipher encoding logic to JS
crypto: Move Decipheriv into JS, default to buffers
crypto: Move Sign class to JS
crypto: Better encoding handling in Hash.update
crypto: Move Verify class to JS
crypto: Move DiffieHellman to JS, default to buffers
crypto: Move DiffieHellmanGroup to JS, default to buffers
Also, create a test for this feature
Ben Noordhuis [Tue, 23 Oct 2012 15:38:41 +0000 (17:38 +0200)]
build: re-enable gdbjit, honor --gdb again
Note that you need to start node with --gdbjit for it to become effective.
mstarzinger@chromium.org [Tue, 9 Oct 2012 08:24:58 +0000 (08:24 +0000)]
v8: make GDBJIT interface compile again
R=ulan@chromium.org
BUG=v8:1804
Review URL: https://codereview.chromium.org/
11022007
This is a back-port of upstream commits 12679, 12686 and 12738.
isaacs [Tue, 23 Oct 2012 15:22:47 +0000 (08:22 -0700)]
Merge remote-tracking branch 'ry/v0.8'
Ben Noordhuis [Tue, 23 Oct 2012 15:07:23 +0000 (17:07 +0200)]
test: add typed arrays regression test
Ensure that uint8 values >= 128 are correctly promoted to int8 <= -1.
Aaron Jacobs [Tue, 23 Oct 2012 05:43:51 +0000 (16:43 +1100)]
typed arrays: use `signed char` for signed int8s
The C standard allows plain `char` to be unsigned. The build environment
at Google trips this issue.
yangguo@chromium.org [Tue, 23 Oct 2012 13:04:05 +0000 (13:04 +0000)]
v8: use correct timezone information on Solaris
`timezone` variable contains the difference, in seconds, between UTC and
local standard time (see `man 3 localtime` on Solaris).
Call to `tzset` is required to apply contents of `TZ` variable to
`timezone` variable.
BUG=v8:2064
Review URL: https://chromiumcodereview.appspot.com/
10967066
Patch from Maciej MaĆecki <me@mmalecki.com>.
This is a back-port of upstream commit r12802.
Ben Noordhuis [Sun, 21 Oct 2012 22:18:14 +0000 (00:18 +0200)]
crypto: fix DH use-after-free and memory leak
Fix a use-after-free bug and a memory leak in the error path of
DiffieHellman::ComputeSecret().
* the BIGNUM key was used after being freed with BN_free().
* the output buffer was not freed
Ben Noordhuis [Sun, 21 Oct 2012 22:03:47 +0000 (00:03 +0200)]
crypto: fix DH 1 byte buffer underflow
Passing a bad key to DiffieHellman::ComputeSecret() made it zero the byte
before the heap allocated buffer due to an erroneous size calculation.
Ben Noordhuis [Sun, 21 Oct 2012 21:55:52 +0000 (23:55 +0200)]
test: add diffie-hellman regression test
Exercises the error path in DiffieHellman::ComputeSecret() in src/node_crypto.cc
Ben Noordhuis [Sun, 21 Oct 2012 21:06:48 +0000 (23:06 +0200)]
Merge remote-tracking branch 'origin/v0.8'
Conflicts:
deps/openssl/openssl.gyp
Soarez [Thu, 18 Oct 2012 15:53:53 +0000 (16:53 +0100)]
streams: remove useless line
The removed line was removing a calllback that was never setup
in first place. 016afe2 forgot to remove this.
Ben Noordhuis [Sat, 20 Oct 2012 13:03:48 +0000 (15:03 +0200)]
node: update description of --print
Bert Belder [Wed, 17 Oct 2012 16:33:40 +0000 (18:33 +0200)]
uv: upgrade to 1e32cb0
isaacs [Tue, 16 Oct 2012 17:59:23 +0000 (10:59 -0700)]
doc: Typo. s/arguemnt/argument/
Nathan Rajlich [Mon, 15 Oct 2012 21:51:43 +0000 (14:51 -0700)]
test: disable global variable check for "test-repl-options.js"
Previously, the "global" mode of REPLs was broken when created after another
non-global REPL (they would end up sharing the same context). Now that "global"
mode is fixed for that case (
b1e78cef097c682ed63528ad7efe294b18a9fb1d), this
test case gets its global scope modified with "module" and other REPL-specific
properties, so disable the global check.
Ben Noordhuis [Wed, 19 Sep 2012 12:37:08 +0000 (14:37 +0200)]
configure: turn on VFPv3 on ARMv7
Fixes a V8 build error caused by missing arm_fpu and arm_neon settings.
This is a back-port of commit bbf6b4e from the master branch.
Fixes #4142.
Ben Noordhuis [Mon, 15 Oct 2012 21:40:15 +0000 (23:40 +0200)]
Revert "Disable OpenSSL UI"
This reverts commit
1c88c3b3b56c6047180e116c5614dad2b13995f9.
It breaks the "read a password from stdin" functionality that OpenSSL provides.
Fixes #4059, #4143.
Conflicts:
deps/openssl/openssl.gyp
Jan Lehnardt [Sun, 14 Oct 2012 12:44:06 +0000 (14:44 +0200)]
docs: fix copy and paste error
Nathan Rajlich [Sat, 13 Oct 2012 23:16:56 +0000 (16:16 -0700)]
Merge remote-tracking branch 'origin/v0.8'
Conflicts:
AUTHORS
ChangeLog
deps/uv/test/runner-win.c
doc/api/process.markdown
lib/repl.js
src/node_crypto.cc
src/node_version.h
Dean McNamee [Fri, 12 Oct 2012 23:24:25 +0000 (01:24 +0200)]
typed arrays: remove unnecessary special-casing
Uint32Value() on undefined is equal to 0, no need to special case it.
Dean McNamee [Fri, 12 Oct 2012 23:03:22 +0000 (01:03 +0200)]
typed arrays: simplify typed array get() and set()
Instead of duplicating V8's logic (including clamping), just simply call into
V8's Get() and Set() methods, which handles all conversions and typing.
Ben Noordhuis [Fri, 12 Oct 2012 13:27:47 +0000 (15:27 +0200)]
doc: rectify http.ClientResponse close/end events
* The 'close' event doesn't emit an error object.
* It's possible for a 'close' event to come after an 'end' event, contrary to
what the documentation said.
Fixes #4116.
Ben Noordhuis [Sat, 13 Oct 2012 00:49:53 +0000 (02:49 +0200)]
crypto: sort return value of getCiphers/getHashes
Ben Noordhuis [Sat, 13 Oct 2012 00:44:11 +0000 (02:44 +0200)]
crypto: add crypto.getHashes()
Ben Noordhuis [Fri, 12 Oct 2012 23:26:14 +0000 (01:26 +0200)]
crypto: add crypto.getCiphers()
Returns a list of, unsurprisingly, the available ciphers.
Nathan Rajlich [Fri, 12 Oct 2012 23:34:36 +0000 (16:34 -0700)]
repl: ensure each REPL instance gets its own "context"
Before there was this weird module-scoped "context" variable which seemingly
shared the "context" of subsequent REPL instances, unless ".clear" was invoked
inside the REPL. To be proper, we need to ensure that each REPL gets its own
"context" object. I literally don't know why this "sharing" behavior was in place
before, but it was just plain wrong.
Ben Noordhuis [Fri, 12 Oct 2012 23:22:05 +0000 (01:22 +0200)]
dgram: remove stale code
Max Ogden [Fri, 12 Oct 2012 18:31:59 +0000 (21:31 +0300)]
doc: set default background color to white
isaacs [Fri, 12 Oct 2012 18:44:02 +0000 (11:44 -0700)]
lint
isaacs [Fri, 12 Oct 2012 15:57:25 +0000 (08:57 -0700)]
Now working on 0.8.13
isaacs [Fri, 12 Oct 2012 15:57:12 +0000 (08:57 -0700)]
blog: Post about 0.8.12
isaacs [Fri, 12 Oct 2012 15:56:53 +0000 (08:56 -0700)]
Merge branch 'v0.8.12-release' into v0.8
isaacs [Thu, 11 Oct 2012 22:53:11 +0000 (15:53 -0700)]
string_decoder: Add 'end' method, do base64 properly
isaacs [Thu, 11 Oct 2012 21:22:13 +0000 (14:22 -0700)]
2012.10.12, Version 0.8.12 (Stable)
* npm: Upgrade to 1.1.63
* crypto: Reduce stability index to 2-Unstable (isaacs)
* windows: fix handle leak in uv_fs_utime (Bert Belder)
* windows: fix application crashed popup in debug version (Bert Belder)
* buffer: report proper retained size in profiler (Ben Noordhuis)
* buffer: fix byteLength with UTF-16LE (koichik)
* repl: make "end of input" JSON.parse() errors throw in the REPL (Nathan Rajlich)
* repl: make invalid RegExp modifiers throw in the REPL (Nathan Rajlich)
* http: handle multiple Proxy-Authenticate values (Willi Eggeling)
isaacs [Thu, 11 Oct 2012 21:11:38 +0000 (14:11 -0700)]
npm: Upgrade to 1.1.63
isaacs [Thu, 11 Oct 2012 15:32:36 +0000 (08:32 -0700)]
doc: Reduce crypto stability to 2-Unstable
Ben Noordhuis [Thu, 11 Oct 2012 12:36:23 +0000 (14:36 +0200)]
deps: upgrade libuv to 47b2cd3
Ben Noordhuis [Wed, 10 Oct 2012 22:44:49 +0000 (00:44 +0200)]
buffer: report proper retained size in profiler
Make buffers report the proper retained size in heap snapshots.
Before this commit, Buffer objects would show up in the heap profiler as being
only a few hundred bytes large, even if the actual buffer was many megabytes.
Nathan Rajlich [Wed, 10 Oct 2012 20:52:56 +0000 (13:52 -0700)]
util: add a "customInspect" option to `util.inspect()`
For disabling calling the custom `inspect()` function when defined on an object
that is being inspected.
Ben Noordhuis [Wed, 10 Oct 2012 21:07:33 +0000 (23:07 +0200)]
Update AUTHORS and .mailmap
Nathan Rajlich [Wed, 10 Oct 2012 01:47:08 +0000 (18:47 -0700)]
util: make `inspect()` accept an "options" argument
Consolidates all the formatting options into an "options" object argument.
This is so that we don't have to be constantly remembering the order of
the arguments and so that we can add more formatting options easily.
Closes #4085.
Bert Belder [Wed, 10 Oct 2012 15:18:48 +0000 (17:18 +0200)]
uv: upgrade to b0c1a38
Ben Noordhuis [Wed, 10 Oct 2012 00:17:32 +0000 (02:17 +0200)]
deps: upgrade libuv to cb03e3b
Ben Noordhuis [Sun, 7 Oct 2012 23:22:44 +0000 (01:22 +0200)]
https: fix renegotation attack protection
Listen for the 'clientError' event that is emitted when a renegotation attack
is detected and close the connection.
Fixes test/pummel/test-https-ci-reneg-attack.js
Ben Noordhuis [Tue, 9 Oct 2012 14:32:49 +0000 (16:32 +0200)]
tls: remove dead code
Remove dead code. Forgotten in 76ddf06.
Aaditya Bhatia [Tue, 9 Oct 2012 01:01:03 +0000 (18:01 -0700)]
cluster: make 'listening' handler see actual port
Make the 'listening' event handler in the master process see the actual port
that the worker bound to when the worker specified port 0, i.e. a random port.
Ricky Ng-Adam [Tue, 9 Oct 2012 08:14:00 +0000 (16:14 +0800)]
buffer: include encoding value in exception when invalid
Encoding failures can be somewhat confusing, especially when they are due to
control flow frameworks auto-filling parameters from the previous step output
values to functions (such as toString and write) that developers don't expect
to take an encoding parameter. By outputting the value as part of the message,
should make it easier to track down these sort of bugs.
Bert Belder [Mon, 8 Oct 2012 22:47:38 +0000 (00:47 +0200)]
windows: use USERPROFILE to get the user's home dir
Fixes #3461
Close #3462
Close #4093
Ben Noordhuis [Sun, 7 Oct 2012 22:00:30 +0000 (00:00 +0200)]
crypto: fix -Wtautological-compare warning
Andreas Madsen [Mon, 8 Oct 2012 17:10:29 +0000 (19:10 +0200)]
doc: consistent use of the callback argument
Ben Noordhuis [Mon, 8 Oct 2012 00:18:30 +0000 (02:18 +0200)]
tls: don't use a timer to track renegotiations
It makes tls.createSecurePair(null, true) hang until the timer expires.
Using a timer here is silly. Use a timestamp instead.
Ben Noordhuis [Sun, 7 Oct 2012 22:44:47 +0000 (00:44 +0200)]
deps: upgrade libuv to 40134c3