From b21c8e0bfd7539859c79fab63da88a53abe4f25a Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Sat, 4 Aug 2012 02:18:16 +0200 Subject: [PATCH 01/52] installer: honor --without-npm, default install path * honor the --without-waf and --without-npm configure switches * a small logic bug made the installer script install to $PWD instead of /usr/local if --prefix= was not passed to configure --- tools/install.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/install.py b/tools/install.py index 66e51d0ae3..85e8bc01d0 100755 --- a/tools/install.py +++ b/tools/install.py @@ -188,8 +188,8 @@ def files(action): # with dtrace support now (oracle's "unbreakable" linux) action(['src/node.d'], 'lib/dtrace/') - if variables.get('node_install_waf'): waf_files(action) - if variables.get('node_install_npm'): npm_files(action) + if 'true' == variables.get('node_install_waf'): waf_files(action) + if 'true' == variables.get('node_install_npm'): npm_files(action) def run(args): global dst_dir, node_prefix, target_defaults, variables @@ -202,7 +202,7 @@ def run(args): target_defaults = conf['target_defaults'] # argv[2] is a custom install prefix for packagers (think DESTDIR) - dst_dir = node_prefix = variables.get('node_prefix', '/usr/local') + dst_dir = node_prefix = variables.get('node_prefix') or '/usr/local' if len(args) > 2: dst_dir = abspath(args[2] + '/' + dst_dir) cmd = args[1] if len(args) > 1 else 'install' From 110e499fe7dc65429a2fade29fe1573c35d97059 Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Sat, 4 Aug 2012 02:41:32 +0200 Subject: [PATCH 02/52] installer: prevent ETXTBSY errors The installer does what amounts to `cp -p`. If the node binary is in use at the time of the copy, it'd fail with a ETXTBSY error. That's why it's unlinked first now. --- tools/install.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/install.py b/tools/install.py index 85e8bc01d0..d03aae9d1c 100755 --- a/tools/install.py +++ b/tools/install.py @@ -62,6 +62,7 @@ def try_copy(path, dst): source_path, target_path = mkpaths(path, dst) print 'installing %s' % target_path try_mkdir_r(os.path.dirname(target_path)) + try_unlink(target_path) # prevent ETXTBSY errors return shutil.copy2(source_path, target_path) def try_remove(path, dst): From 57f785151aa68b1d01c6ca1b08be379fc5e8b538 Mon Sep 17 00:00:00 2001 From: Nathan Rajlich Date: Sat, 4 Aug 2012 00:10:58 -0700 Subject: [PATCH 03/52] install: install the "wafadmin" files into the correct directory Before they were just being copied into "lib/node/". Now they go into "lib/node/wafadmin/". --- tools/install.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/install.py b/tools/install.py index d03aae9d1c..2ee9903824 100755 --- a/tools/install.py +++ b/tools/install.py @@ -125,7 +125,7 @@ def waf_files(action): 'tools/wafadmin/Tools/xlc.py', 'tools/wafadmin/Tools/xlcxx.py', 'tools/wafadmin/Utils.py'], - 'lib/node/') + 'lib/node/wafadmin/') def update_shebang(path, shebang): print 'updating shebang of %s' % path From a7f3288a87c563f0910f17cbed503574b6ceea54 Mon Sep 17 00:00:00 2001 From: isaacs Date: Sat, 4 Aug 2012 11:30:44 -0700 Subject: [PATCH 04/52] blog post for 0.6.21 --- doc/blog/release/0.6.21.md | 43 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 doc/blog/release/0.6.21.md diff --git a/doc/blog/release/0.6.21.md b/doc/blog/release/0.6.21.md new file mode 100644 index 0000000000..6257b680c5 --- /dev/null +++ b/doc/blog/release/0.6.21.md @@ -0,0 +1,43 @@ +version: 0.6.21 +title: Version 0.6.21 (maintenance) +category: release +slug: node-v0-6-21-maintenance +date: Fri Aug 03 2012 14:44:02 GMT-0700 (PDT) + +2012.08.03 Version 0.6.21 (maintenance) + +* sunos: work around OS bug to prevent fs.watch() from spinning (Bryan Cantrill) + +* net: make pause/resume work with connecting sockets (Bert Belder) + + +Source Code: http://nodejs.org/dist/v0.6.21/node-v0.6.21.tar.gz + +Windows Installer: http://nodejs.org/dist/v0.6.21/node-v0.6.21.msi + +Windows x64 Files: http://nodejs.org/dist/v0.6.21/x64/ + +Macintosh Installer (Universal): http://nodejs.org/dist/v0.6.21/node-v0.6.21.pkg + +Other release files: http://nodejs.org/dist/v0.6.21/ + +Website: http://nodejs.org/docs/v0.6.21/ + +Documentation: http://nodejs.org/docs/v0.6.21/api/ + +Shasums: + +``` +04f58b0da23c3db291d84ac55a924332ad83c427 node-v0.6.21.pkg +31f564bf34c64b07cae3b9a88a87b4a08bab4dc5 node-v0.6.21.tar.gz +1e3184fe2cfe7140a88b5dcc9c2ec7d32f1f5af5 node.exe +b8887a056152622c08ee10f5867bd27910260477 node.exp +c6468ffe2e145e7db1bb3e2d66adb9f5d50271ad node.lib +2a896bcb7c83f2fa710650116580daf4ac5e6c4c node.msi +207441e8c3dc184c478367b775dc7ece1ee36501 node.pdb +715ad9946db5f97c54a53bdea6bbe9ba69f2f299 x64/node.exe +2fa2c2d82fedeec1ed8be5d908b790f473d4a7c2 x64/node.exp +b403cb71d4cf21e97a78d446403cedc9795bcf69 x64/node.lib +ef47520dbc6a1a68ec37d290c421031cfd670048 x64/node.msi +fb15e3991c420f3ae67ade92b11b07bb9112124a x64/node.pdb +``` From b48684c6f1958930741e2cf34a6a6d5cafa7f478 Mon Sep 17 00:00:00 2001 From: Tyler Neylon Date: Fri, 3 Aug 2012 12:38:09 -0700 Subject: [PATCH 05/52] child_process: Fix stdout=null when stdio=['pipe'] Previously, a command with a short stdio array would result in the child's stdout and stderr objects set to null. For example: var c = child_process.spawn(cmd, args, {stdio: ['pipe']}); // results in c.stdout === null. The expected behavior is the above line functioning the same as this one: var c = child_process.spawn(cmd, args, {stdio: ['pipe', null, null]}); // provides correct (non-null) c.stdout; as does the above, after this fix. --- lib/child_process.js | 7 ++--- test/simple/test-child-process-stdio.js | 36 +++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 3 deletions(-) create mode 100644 test/simple/test-child-process-stdio.js diff --git a/lib/child_process.js b/lib/child_process.js index 34edbc25ad..5b0c3f318b 100644 --- a/lib/child_process.js +++ b/lib/child_process.js @@ -709,9 +709,10 @@ ChildProcess.prototype.spawn = function(options) { } // At least 3 stdio will be created - if (stdio.length < 3) { - stdio = stdio.concat(new Array(3 - stdio.length)); - } + // Don't concat() a new Array() because it would be sparse, and + // stdio.reduce() would skip the sparse elements of stdio. + // See http://stackoverflow.com/a/5501711/3561 + while (stdio.length < 3) stdio.push(undefined); // Translate stdio into C++-readable form // (i.e. PipeWraps or fds) diff --git a/test/simple/test-child-process-stdio.js b/test/simple/test-child-process-stdio.js new file mode 100644 index 0000000000..32da15f5f5 --- /dev/null +++ b/test/simple/test-child-process-stdio.js @@ -0,0 +1,36 @@ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +var common = require('../common'); +var assert = require('assert'); +var spawn = require('child_process').spawn; + +var options = {stdio: ['pipe']}; +var child = common.spawnPwd(options); + +assert.notEqual(child.stdout, null); +assert.notEqual(child.stderr, null); + +options = {stdio: 'ignore'}; +child = common.spawnPwd(options); + +assert.equal(child.stdout, null); +assert.equal(child.stderr, null); From f4a4ef7a2da34ec9d155f82df0133b40382c53e9 Mon Sep 17 00:00:00 2001 From: Dominic Tarr Date: Wed, 25 Jul 2012 02:40:58 +1200 Subject: [PATCH 06/52] zlib: Emit 'close' on destroy(). --- lib/zlib.js | 1 + test/simple/test-zlib-destroy.js | 36 ++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 test/simple/test-zlib-destroy.js diff --git a/lib/zlib.js b/lib/zlib.js index f05f6d1399..7837f3f7bc 100644 --- a/lib/zlib.js +++ b/lib/zlib.js @@ -455,6 +455,7 @@ Zlib.prototype.destroy = function() { this.readable = false; this.writable = false; this._ended = true; + this.emit('close'); }; util.inherits(Deflate, Zlib); diff --git a/test/simple/test-zlib-destroy.js b/test/simple/test-zlib-destroy.js new file mode 100644 index 0000000000..7a1120e284 --- /dev/null +++ b/test/simple/test-zlib-destroy.js @@ -0,0 +1,36 @@ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +var common = require('../common'); +var assert = require('assert'); +var zlib = require('zlib'); + +['Deflate', 'Inflate', 'Gzip', 'Gunzip', 'DeflateRaw', 'InflateRaw', 'Unzip'] + .forEach(function (name) { + var a = false; + var zStream = new zlib[name](); + zStream.on('close', function () { + a = true; + }); + zStream.destroy(); + + assert.equal(a, true, name+'#destroy() must emit \'close\''); + }); From 3254caceefda268247826cd9bb8178725a9f0b08 Mon Sep 17 00:00:00 2001 From: Nathan Rajlich Date: Sat, 4 Aug 2012 00:12:52 -0700 Subject: [PATCH 07/52] install: use os.path.join() to create the npm shebang Prettier formatting for the shebang if the "prefix" ends with a / --- tools/install.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/install.py b/tools/install.py index 2ee9903824..988626f203 100755 --- a/tools/install.py +++ b/tools/install.py @@ -128,7 +128,7 @@ def waf_files(action): 'lib/node/wafadmin/') def update_shebang(path, shebang): - print 'updating shebang of %s' % path + print 'updating shebang of %s to %s' % (path, shebang) s = open(path, 'r').read() s = re.sub(r'#!.*\n', '#!' + shebang + '\n', s) open(path, 'w').write(s) @@ -153,7 +153,8 @@ def npm_files(action): action([link_path], 'bin/npm') elif action == install: try_symlink('../lib/node_modules/npm/bin/npm-cli.js', link_path) - update_shebang(link_path, node_prefix + '/bin/node') + shebang = os.path.join(node_prefix, 'bin/node') + update_shebang(link_path, shebang) else: assert(0) # unhandled action type From 93be4ffd4b224ec10476340dcc7747ac20d4ac13 Mon Sep 17 00:00:00 2001 From: isaacs Date: Sun, 5 Aug 2012 11:26:18 -0700 Subject: [PATCH 08/52] test-message: fix message output 1. The net changes add a stack frame to stdin errors. 2. The error line numbers were overly strict in many places. --- test/message/eval_messages.out | 40 +++++++++++++-------------- test/message/stdin_messages.out | 48 ++++++++++++++++----------------- test/message/testcfg.py | 15 ++++++++++- 3 files changed, 58 insertions(+), 45 deletions(-) diff --git a/test/message/eval_messages.out b/test/message/eval_messages.out index f56bbdbddb..378fe948f8 100644 --- a/test/message/eval_messages.out +++ b/test/message/eval_messages.out @@ -4,11 +4,11 @@ with(this){__filename} ^^^^ SyntaxError: Strict mode code may not include a with statement - at Object. ([eval]-wrapper:6:22) - at Module._compile (module.js:449:26) - at evalScript (node.js:282:25) - at startup (node.js:76:7) - at node.js:623:3 + at Object. ([eval]-wrapper:*:*) + at Module._compile (module.js:*:*) + at evalScript (node.js:*:*) + at startup (node.js:*:*) + at node.js:*:* 42 42 @@ -17,22 +17,22 @@ throw new Error("hello") ^ Error: hello at [eval]:1:7 - at Object. ([eval]-wrapper:6:22) - at Module._compile (module.js:449:26) - at evalScript (node.js:282:25) - at startup (node.js:76:7) - at node.js:623:3 + at Object. ([eval]-wrapper:*:*) + at Module._compile (module.js:*:*) + at evalScript (node.js:*:*) + at startup (node.js:*:*) + at node.js:*:* [eval]:1 throw new Error("hello") ^ Error: hello at [eval]:1:7 - at Object. ([eval]-wrapper:6:22) - at Module._compile (module.js:449:26) - at evalScript (node.js:282:25) - at startup (node.js:76:7) - at node.js:623:3 + at Object. ([eval]-wrapper:*:*) + at Module._compile (module.js:*:*) + at evalScript (node.js:*:*) + at startup (node.js:*:*) + at node.js:*:* 100 [eval]:1 @@ -40,11 +40,11 @@ var x = 100; y = x; ^ ReferenceError: y is not defined at [eval]:1:16 - at Object. ([eval]-wrapper:6:22) - at Module._compile (module.js:449:26) - at evalScript (node.js:282:25) - at startup (node.js:76:7) - at node.js:623:3 + at Object. ([eval]-wrapper:*:*) + at Module._compile (module.js:*:*) + at evalScript (node.js:*:*) + at startup (node.js:*:*) + at node.js:*:* [eval]:1 var ______________________________________________; throw 10 diff --git a/test/message/stdin_messages.out b/test/message/stdin_messages.out index acf9a23335..7cdd79edb0 100644 --- a/test/message/stdin_messages.out +++ b/test/message/stdin_messages.out @@ -4,12 +4,12 @@ with(this){__filename} ^^^^ SyntaxError: Strict mode code may not include a with statement - at Object. ([stdin]-wrapper:6:22) - at Module._compile (module.js:449:26) - at evalScript (node.js:282:25) - at Socket. (node.js:152:11) - at Socket.EventEmitter.emit (events.js:85:17) - at Pipe.onread (net.js:424:51) + at Object. ([stdin]-wrapper:*:*) + at Module._compile (module.js:*:*) + at evalScript (node.js:*:*) + at Socket. (node.js:*:*) + at Socket.EventEmitter.emit (events.js:*:*) + at Pipe.onread (net.js:*:*) 42 42 @@ -18,24 +18,24 @@ throw new Error("hello") ^ Error: hello at [stdin]:1:7 - at Object. ([stdin]-wrapper:6:22) - at Module._compile (module.js:449:26) - at evalScript (node.js:282:25) - at Socket. (node.js:152:11) - at Socket.EventEmitter.emit (events.js:85:17) - at Pipe.onread (net.js:424:51) + at Object. ([stdin]-wrapper:*:*) + at Module._compile (module.js:*:*) + at evalScript (node.js:*:*) + at Socket. (node.js:*:*) + at Socket.EventEmitter.emit (events.js:*:*) + at Pipe.onread (net.js:*:*) [stdin]:1 throw new Error("hello") ^ Error: hello at [stdin]:1:7 - at Object. ([stdin]-wrapper:6:22) - at Module._compile (module.js:449:26) - at evalScript (node.js:282:25) - at Socket. (node.js:152:11) - at Socket.EventEmitter.emit (events.js:85:17) - at Pipe.onread (net.js:424:51) + at Object. ([stdin]-wrapper:*:*) + at Module._compile (module.js:*:*) + at evalScript (node.js:*:*) + at Socket. (node.js:*:*) + at Socket.EventEmitter.emit (events.js:*:*) + at Pipe.onread (net.js:*:*) 100 [stdin]:1 @@ -43,12 +43,12 @@ var x = 100; y = x; ^ ReferenceError: y is not defined at [stdin]:1:16 - at Object. ([stdin]-wrapper:6:22) - at Module._compile (module.js:449:26) - at evalScript (node.js:282:25) - at Socket. (node.js:152:11) - at Socket.EventEmitter.emit (events.js:85:17) - at Pipe.onread (net.js:424:51) + at Object. ([stdin]-wrapper:*:*) + at Module._compile (module.js:*:*) + at evalScript (node.js:*:*) + at Socket. (node.js:*:*) + at Socket.EventEmitter.emit (events.js:*:*) + at Pipe.onread (net.js:*:*) [stdin]:1 var ______________________________________________; throw 10 diff --git a/test/message/testcfg.py b/test/message/testcfg.py index 7d1b72e62d..105fac667d 100644 --- a/test/message/testcfg.py +++ b/test/message/testcfg.py @@ -43,7 +43,7 @@ class MessageTestCase(test.TestCase): def IgnoreLine(self, str): """Ignore empty lines and valgrind output.""" - if not str: return True + if not str.strip(): return True else: return str.startswith('==') or str.startswith('**') def IsFailureOutput(self, output): @@ -66,9 +66,22 @@ class MessageTestCase(test.TestCase): raw_lines = (output.stdout + output.stderr).split('\n') outlines = [ s for s in raw_lines if not self.IgnoreLine(s) ] if len(outlines) != len(patterns): + print "length differs." + print "expect=%d" % len(patterns) + print "actual=%d" % len(outlines) + print "patterns:" + for i in xrange(len(patterns)): + print "pattern = %s" % patterns[i] + print "outlines:" + for i in xrange(len(outlines)): + print "outline = %s" % outlines[i] return True for i in xrange(len(patterns)): if not re.match(patterns[i], outlines[i]): + print "match failed" + print "line=%d" % i + print "expect=%s" % patterns[i] + print "actual=%s" % outlines[i] return True return False From 7bb814f9db02185c7a0900f73c2bbd52247a1907 Mon Sep 17 00:00:00 2001 From: isaacs Date: Sun, 5 Aug 2012 14:22:44 -0700 Subject: [PATCH 09/52] errnoException must be done immediately --- lib/net.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/net.js b/lib/net.js index 861d289663..a97da67f3b 100644 --- a/lib/net.js +++ b/lib/net.js @@ -888,8 +888,9 @@ Server.prototype._listen2 = function(address, port, addressType, backlog, fd) { if (!self._handle) { self._handle = createServerHandle(address, port, addressType, fd); if (!self._handle) { + var error = errnoException(errno, 'listen'); process.nextTick(function() { - self.emit('error', errnoException(errno, 'listen')); + self.emit('error', error); }); return; } From 4ff56aa15e21372ab5d46baabea01d741d81431e Mon Sep 17 00:00:00 2001 From: isaacs Date: Sun, 5 Aug 2012 14:47:23 -0700 Subject: [PATCH 10/52] doc: util.pump is deprecated. Use Stream.pipe --- doc/api/util.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/api/util.markdown b/doc/api/util.markdown index db12ab598a..2c1b7634b7 100644 --- a/doc/api/util.markdown +++ b/doc/api/util.markdown @@ -147,7 +147,7 @@ Returns `true` if the given "object" is an `Error`. `false` otherwise. ## util.pump(readableStream, writableStream, [callback]) -Experimental + Stability: 0 - Deprecated: Use readableStream.pipe(writableStream) Read the data from `readableStream` and send it to the `writableStream`. When `writableStream.write(data)` returns `false` `readableStream` will be From bc7479d2321f7cbfe7567195a5bcf59d92acbb90 Mon Sep 17 00:00:00 2001 From: Kyle Robinson Young Date: Sat, 4 Aug 2012 12:45:50 -0700 Subject: [PATCH 11/52] doc: fix typos in child_process --- doc/api/child_process.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/api/child_process.markdown b/doc/api/child_process.markdown index 3bd79f2130..76a785b68e 100644 --- a/doc/api/child_process.markdown +++ b/doc/api/child_process.markdown @@ -181,7 +181,7 @@ Here is an example of sending a server: child.send('server', server); }); -And the child would the recive the server object as: +And the child would the receive the server object as: process.on('message', function(m, server) { if (m === 'server') { @@ -196,7 +196,7 @@ that some connections will be handled by the parent and some by the child. **send socket object** -Here is an example of sending a socket. It will spawn two childs and handle +Here is an example of sending a socket. It will spawn two children and handle connections with the remote address `74.125.127.100` as VIP by sending the socket to a "special" child process. Other sockets will go to a "normal" process. @@ -228,7 +228,7 @@ The `child.js` could look like this: Note that once a single socket has been sent to a child the parent can no longer keep track of when the socket is destroyed. To indicate this condition the `.connections` property becomes `null`. -It is also recomended not to use `.maxConnections` in this condition. +It is also recommended not to use `.maxConnections` in this condition. ### child.disconnect() From 6bdd4d0205a86ad40f78d3140144eebb83f703ca Mon Sep 17 00:00:00 2001 From: Nathan Rajlich Date: Sat, 4 Aug 2012 11:06:14 -0700 Subject: [PATCH 12/52] install: install the "wafadmin/Tools" files into the correct dir Previously they were going into just "wafadmin" and node-waf wasn't working. --- tools/install.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/tools/install.py b/tools/install.py index 988626f203..d11d281a86 100755 --- a/tools/install.py +++ b/tools/install.py @@ -91,7 +91,9 @@ def waf_files(action): 'tools/wafadmin/Scripting.py', 'tools/wafadmin/TaskGen.py', 'tools/wafadmin/Task.py', - 'tools/wafadmin/Tools/ar.py', + 'tools/wafadmin/Utils.py'], + 'lib/node/wafadmin/') + action(['tools/wafadmin/Tools/ar.py', 'tools/wafadmin/Tools/cc.py', 'tools/wafadmin/Tools/ccroot.py', 'tools/wafadmin/Tools/compiler_cc.py', @@ -123,9 +125,8 @@ def waf_files(action): 'tools/wafadmin/Tools/unittestw.py', 'tools/wafadmin/Tools/winres.py', 'tools/wafadmin/Tools/xlc.py', - 'tools/wafadmin/Tools/xlcxx.py', - 'tools/wafadmin/Utils.py'], - 'lib/node/wafadmin/') + 'tools/wafadmin/Tools/xlcxx.py'], + 'lib/node/wafadmin/Tools/') def update_shebang(path, shebang): print 'updating shebang of %s to %s' % (path, shebang) From 7a9db6cfb139a6cb5941b2ae09ab5671e474e160 Mon Sep 17 00:00:00 2001 From: Nathan Rajlich Date: Mon, 6 Aug 2012 10:18:27 -0700 Subject: [PATCH 13/52] install: add a "portable" mode to the shebang-rewriting logic This "portable" mode rewrites the npm shebang to use the "node" executable in the same directory relative to the "npm" script. This makes the "npm" script "just work" even when "node" is not in the user's $PATH. This mode is necessary for the precompiled binary packages that may potentially be extracted to anywhere. The regular shebang-rewriting logic would normally set the npm script's shebang to "/bin/node" which will not be present on anyone's machine. In the end, we want the precompiled packages to be as user-friendly as possible. --- tools/install.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/tools/install.py b/tools/install.py index d11d281a86..1dd039a865 100755 --- a/tools/install.py +++ b/tools/install.py @@ -154,7 +154,15 @@ def npm_files(action): action([link_path], 'bin/npm') elif action == install: try_symlink('../lib/node_modules/npm/bin/npm-cli.js', link_path) - shebang = os.path.join(node_prefix, 'bin/node') + if os.environ['PORTABLE']: + # This crazy hack is necessary to make the shebang execute the copy + # of node relative to the same directory as the npm script. The precompiled + # binary tarballs use a prefix of "/" which gets translated to "/bin/node" + # in the regular shebang modifying logic, which is incorrect since the + # precompiled bundle should be able to be extracted anywhere and "just work" + shebang = '/bin/sh\n// 2>/dev/null; exec "`dirname "$0"`/node" "$0" "$@"' + else: + shebang = os.path.join(node_prefix, 'bin/node') update_shebang(link_path, shebang) else: assert(0) # unhandled action type From 42aac41b9399dbdb14e3f250f358c14ec13ee5e4 Mon Sep 17 00:00:00 2001 From: Nathan Rajlich Date: Sat, 4 Aug 2012 12:07:17 -0700 Subject: [PATCH 14/52] Makefile: add target for precompiled binary tarballs This target compiles node with "/" as the prefix and installs into a directory like: "node-v0.8.6-darwin-x86_64". Then it creates a gzipped-tarball of that directory, called something like: "node-v0.8.6-darwin-x86_64.tar.gz". --- Makefile | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Makefile b/Makefile index 869eafac9a..826cd89fee 100644 --- a/Makefile +++ b/Makefile @@ -192,8 +192,12 @@ docclean: -rm -rf out/doc VERSION=v$(shell $(PYTHON) tools/getnodeversion.py) +PLATFORM=$(shell uname | tr '[:upper:]' '[:lower:]') +ARCH=$(shell uname -m) TARNAME=node-$(VERSION) TARBALL=$(TARNAME).tar.gz +BINARYNAME=$(TARNAME)-$(PLATFORM)-$(ARCH) +BINARYTAR=$(BINARYNAME).tar.gz PKG=out/$(TARNAME).pkg packagemaker=/Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker @@ -256,6 +260,18 @@ $(TARBALL): node doc rm -rf $(TARNAME) gzip -f -9 $(TARNAME).tar +$(BINARYTAR): + rm -rf $(BINARYNAME) + rm -rf out/deps out/Release + ./configure --prefix=/ --without-snapshot + $(MAKE) install DESTDIR=$(BINARYNAME) V=$(V) PORTABLE=1 + cp README.md $(BINARYNAME) + cp LICENSE $(BINARYNAME) + cp ChangeLog $(BINARYNAME) + tar -cf $(BINARYNAME).tar $(BINARYNAME) + rm -rf $(BINARYNAME) + gzip -f -9 $(BINARYNAME).tar + dist-upload: $(TARBALL) $(PKG) ssh node@nodejs.org mkdir -p web/nodejs.org/dist/$(VERSION) scp $(TARBALL) node@nodejs.org:~/web/nodejs.org/dist/$(VERSION)/$(TARBALL) From bd10bf44181909ce3aca8c312117482dcc14d066 Mon Sep 17 00:00:00 2001 From: Nathan Rajlich Date: Sat, 4 Aug 2012 12:12:22 -0700 Subject: [PATCH 15/52] Makefile: add `make tar` helper target --- Makefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 826cd89fee..d1b2492511 100644 --- a/Makefile +++ b/Makefile @@ -260,6 +260,8 @@ $(TARBALL): node doc rm -rf $(TARNAME) gzip -f -9 $(TARNAME).tar +tar: $(TARBALL) + $(BINARYTAR): rm -rf $(BINARYNAME) rm -rf out/deps out/Release @@ -296,4 +298,4 @@ cpplint: lint: jslint cpplint -.PHONY: lint cpplint jslint bench clean docopen docclean doc dist distclean check uninstall install install-includes install-bin all staticlib dynamiclib test test-all website-upload pkg blog blogclean +.PHONY: lint cpplint jslint bench clean docopen docclean doc dist distclean check uninstall install install-includes install-bin all staticlib dynamiclib test test-all website-upload pkg blog blogclean tar From eadc2ec5c8d1f3697d22515d7808ca583ea43f45 Mon Sep 17 00:00:00 2001 From: Nathan Rajlich Date: Sat, 4 Aug 2012 12:12:37 -0700 Subject: [PATCH 16/52] Makefile: add `make binary` helper target --- Makefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index d1b2492511..b0f8f02723 100644 --- a/Makefile +++ b/Makefile @@ -274,6 +274,8 @@ $(BINARYTAR): rm -rf $(BINARYNAME) gzip -f -9 $(BINARYNAME).tar +binary: $(BINARYTAR) + dist-upload: $(TARBALL) $(PKG) ssh node@nodejs.org mkdir -p web/nodejs.org/dist/$(VERSION) scp $(TARBALL) node@nodejs.org:~/web/nodejs.org/dist/$(VERSION)/$(TARBALL) @@ -298,4 +300,4 @@ cpplint: lint: jslint cpplint -.PHONY: lint cpplint jslint bench clean docopen docclean doc dist distclean check uninstall install install-includes install-bin all staticlib dynamiclib test test-all website-upload pkg blog blogclean tar +.PHONY: lint cpplint jslint bench clean docopen docclean doc dist distclean check uninstall install install-includes install-bin all staticlib dynamiclib test test-all website-upload pkg blog blogclean tar binary From dc9ae01ef7a6fcafd82b306d80b9f715d72ed670 Mon Sep 17 00:00:00 2001 From: Nathan Rajlich Date: Sat, 4 Aug 2012 12:24:34 -0700 Subject: [PATCH 17/52] Makefile: allow the dest-cpu to be specified for `make binary` Needed for 64-bit Solaris, and 32-bit OS X --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index b0f8f02723..004d074f42 100644 --- a/Makefile +++ b/Makefile @@ -265,7 +265,7 @@ tar: $(TARBALL) $(BINARYTAR): rm -rf $(BINARYNAME) rm -rf out/deps out/Release - ./configure --prefix=/ --without-snapshot + ./configure --prefix=/ --without-snapshot --dest-cpu=$(DESTCPU) $(MAKE) install DESTDIR=$(BINARYNAME) V=$(V) PORTABLE=1 cp README.md $(BINARYNAME) cp LICENSE $(BINARYNAME) From 8b11f29cf3881cdc0e1e1a553c543f561128daed Mon Sep 17 00:00:00 2001 From: Nathan Rajlich Date: Sat, 4 Aug 2012 12:39:54 -0700 Subject: [PATCH 18/52] Makefile: properly set the ARCH variable when forcing a DESTCPU --- Makefile | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Makefile b/Makefile index 004d074f42..da07637813 100644 --- a/Makefile +++ b/Makefile @@ -193,7 +193,15 @@ docclean: VERSION=v$(shell $(PYTHON) tools/getnodeversion.py) PLATFORM=$(shell uname | tr '[:upper:]' '[:lower:]') +ifeq ($(DESTCPU),x64) +ARCH=x86_64 +else +ifeq ($(DESTCPU),ia32) +ARCH=i386 +else ARCH=$(shell uname -m) +endif +endif TARNAME=node-$(VERSION) TARBALL=$(TARNAME).tar.gz BINARYNAME=$(TARNAME)-$(PLATFORM)-$(ARCH) From dc818135a573fa35a502417322e811f20e488e4c Mon Sep 17 00:00:00 2001 From: Nathan Rajlich Date: Sat, 4 Aug 2012 15:34:04 -0700 Subject: [PATCH 19/52] Makefile: move the release verification logic into a `make release-only` target --- Makefile | 50 ++++++++++++++++++++++++++------------------------ 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/Makefile b/Makefile index da07637813..31a2dde735 100644 --- a/Makefile +++ b/Makefile @@ -213,9 +213,31 @@ dist: doc $(TARBALL) $(PKG) PKGDIR=out/dist-osx +release-only: + @if [ "$(shell git status --porcelain | egrep -v '^\?\? ')" = "" ]; then \ + exit 0 ; \ + else \ + echo "" >&2 ; \ + echo "The git repository is not clean." >&2 ; \ + echo "Please commit changes before building release tarball." >&2 ; \ + echo "" >&2 ; \ + git status --porcelain | egrep -v '^\?\?' >&2 ; \ + echo "" >&2 ; \ + exit 1 ; \ + fi + @if [ $(shell ./node --version) = "$(VERSION)" ]; then \ + exit 0; \ + else \ + echo "" >&2 ; \ + echo "$(shell ./node --version) doesn't match $(VERSION)." >&2 ; \ + echo "Did you remember to update src/node_version.cc?" >&2 ; \ + echo "" >&2 ; \ + exit 1 ; \ + fi + pkg: $(PKG) -$(PKG): +$(PKG): release-only rm -rf $(PKGDIR) rm -rf out/deps out/Release ./configure --prefix=$(PKGDIR)/32/usr/local --without-snapshot --dest-cpu=ia32 @@ -236,27 +258,7 @@ $(PKG): --out $(PKG) SIGN="$(SIGN)" PKG="$(PKG)" bash tools/osx-productsign.sh -$(TARBALL): node doc - @if [ "$(shell git status --porcelain | egrep -v '^\?\? ')" = "" ]; then \ - exit 0 ; \ - else \ - echo "" >&2 ; \ - echo "The git repository is not clean." >&2 ; \ - echo "Please commit changes before building release tarball." >&2 ; \ - echo "" >&2 ; \ - git status --porcelain | egrep -v '^\?\?' >&2 ; \ - echo "" >&2 ; \ - exit 1 ; \ - fi - @if [ $(shell ./node --version) = "$(VERSION)" ]; then \ - exit 0; \ - else \ - echo "" >&2 ; \ - echo "$(shell ./node --version) doesn't match $(VERSION)." >&2 ; \ - echo "Did you remember to update src/node_version.cc?" >&2 ; \ - echo "" >&2 ; \ - exit 1 ; \ - fi +$(TARBALL): release-only node doc git archive --format=tar --prefix=$(TARNAME)/ HEAD | tar xf - mkdir -p $(TARNAME)/doc/api cp doc/node.1 $(TARNAME)/doc/node.1 @@ -270,7 +272,7 @@ $(TARBALL): node doc tar: $(TARBALL) -$(BINARYTAR): +$(BINARYTAR): release-only rm -rf $(BINARYNAME) rm -rf out/deps out/Release ./configure --prefix=/ --without-snapshot --dest-cpu=$(DESTCPU) @@ -308,4 +310,4 @@ cpplint: lint: jslint cpplint -.PHONY: lint cpplint jslint bench clean docopen docclean doc dist distclean check uninstall install install-includes install-bin all staticlib dynamiclib test test-all website-upload pkg blog blogclean tar binary +.PHONY: lint cpplint jslint bench clean docopen docclean doc dist distclean check uninstall install install-includes install-bin all staticlib dynamiclib test test-all website-upload pkg blog blogclean tar binary release-only From cc6034ac862e058ee9faa5306f240d11150f960e Mon Sep 17 00:00:00 2001 From: Nathan Rajlich Date: Mon, 6 Aug 2012 11:57:47 -0700 Subject: [PATCH 20/52] email-footer: add links to the expected common binary packages We can do other OSs like 32 and 64-bit OS X, but we should encourage users to use the installer on OS X so we'll omit it here. --- tools/email-footer.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tools/email-footer.md b/tools/email-footer.md index e6115c9dd5..d25580f646 100644 --- a/tools/email-footer.md +++ b/tools/email-footer.md @@ -8,6 +8,14 @@ Windows x64 Installer: http://nodejs.org/dist/__VERSION__/x64/node-__VERSION__-x Windows x64 Files: http://nodejs.org/dist/__VERSION__/x64/ +Linux 32-bit Binary Package: http://nodejs.org/dist/__VERSION__/node-__VERSION__-linux-i686.tar.gz + +Linux 64-bit Binary Package: http://nodejs.org/dist/__VERSION__/node-__VERSION__-linux-x86_64.tar.gz + +Solaris 32-bit Binary Package: http://nodejs.org/dist/__VERSION__/node-__VERSION__-sunos-i386.tar.gz + +Solaris 64-bit Binary Package: http://nodejs.org/dist/__VERSION__/node-__VERSION__-sunos-x86_64.tar.gz + Other release files: http://nodejs.org/dist/__VERSION__/ Website: http://nodejs.org/docs/__VERSION__/ From 9badc002b4b109b237466c14de08278ef9be1e90 Mon Sep 17 00:00:00 2001 From: isaacs Date: Mon, 6 Aug 2012 12:40:28 -0700 Subject: [PATCH 21/52] uv: Upgrade to dfb6be0 --- deps/uv/src/win/error.c | 1 + 1 file changed, 1 insertion(+) diff --git a/deps/uv/src/win/error.c b/deps/uv/src/win/error.c index 6490547dc6..91f5111ed2 100644 --- a/deps/uv/src/win/error.c +++ b/deps/uv/src/win/error.c @@ -86,6 +86,7 @@ uv_err_code uv_translate_sys_error(int sys_errno) { case ERROR_INVALID_REPARSE_DATA: return UV_ENOENT; case ERROR_MOD_NOT_FOUND: return UV_ENOENT; case ERROR_PATH_NOT_FOUND: return UV_ENOENT; + case WSANO_DATA: return UV_ENOENT; case ERROR_ACCESS_DENIED: return UV_EPERM; case ERROR_PRIVILEGE_NOT_HELD: return UV_EPERM; case ERROR_NOACCESS: return UV_EACCES; From caf69aa91a94c7c05574afc9fcc97f45aa8d5ea5 Mon Sep 17 00:00:00 2001 From: isaacs Date: Mon, 6 Aug 2012 13:07:31 -0700 Subject: [PATCH 22/52] npm: Upgrade to 1.1.47 --- deps/npm/.travis.yml | 2 +- deps/npm/AUTHORS | 3 + deps/npm/Makefile | 4 +- deps/npm/doc/cli/json.md | 5 + deps/npm/html/api/bin.html | 2 +- deps/npm/html/api/bugs.html | 4 +- deps/npm/html/api/commands.html | 2 +- deps/npm/html/api/config.html | 4 +- deps/npm/html/api/deprecate.html | 4 +- deps/npm/html/api/docs.html | 4 +- deps/npm/html/api/edit.html | 6 +- deps/npm/html/api/explore.html | 4 +- deps/npm/html/api/help-search.html | 4 +- deps/npm/html/api/init.html | 10 +- deps/npm/html/api/install.html | 8 +- deps/npm/html/api/link.html | 6 +- deps/npm/html/api/load.html | 4 +- deps/npm/html/api/ls.html | 6 +- deps/npm/html/api/npm.html | 26 +- deps/npm/html/api/outdated.html | 4 +- deps/npm/html/api/owner.html | 6 +- deps/npm/html/api/pack.html | 4 +- deps/npm/html/api/prefix.html | 6 +- deps/npm/html/api/prune.html | 6 +- deps/npm/html/api/publish.html | 6 +- deps/npm/html/api/rebuild.html | 4 +- deps/npm/html/api/restart.html | 10 +- deps/npm/html/api/root.html | 6 +- deps/npm/html/api/run-script.html | 6 +- deps/npm/html/api/search.html | 10 +- deps/npm/html/api/shrinkwrap.html | 8 +- deps/npm/html/api/start.html | 4 +- deps/npm/html/api/stop.html | 4 +- deps/npm/html/api/submodule.html | 4 +- deps/npm/html/api/tag.html | 4 +- deps/npm/html/api/test.html | 4 +- deps/npm/html/api/uninstall.html | 6 +- deps/npm/html/api/unpublish.html | 2 +- deps/npm/html/api/update.html | 4 +- deps/npm/html/api/version.html | 2 +- deps/npm/html/api/view.html | 30 +-- deps/npm/html/api/whoami.html | 6 +- deps/npm/html/doc/README.html | 50 ++-- deps/npm/html/doc/adduser.html | 2 +- deps/npm/html/doc/bin.html | 2 +- deps/npm/html/doc/bugs.html | 6 +- deps/npm/html/doc/build.html | 2 +- deps/npm/html/doc/bundle.html | 2 +- deps/npm/html/doc/cache.html | 2 +- deps/npm/html/doc/changelog.html | 14 +- deps/npm/html/doc/coding-style.html | 64 ++--- deps/npm/html/doc/completion.html | 4 +- deps/npm/html/doc/config.html | 104 ++++---- deps/npm/html/doc/deprecate.html | 4 +- deps/npm/html/doc/developers.html | 48 ++-- deps/npm/html/doc/disputes.html | 22 +- deps/npm/html/doc/docs.html | 6 +- deps/npm/html/doc/edit.html | 8 +- deps/npm/html/doc/explore.html | 4 +- deps/npm/html/doc/faq.html | 74 +++--- deps/npm/html/doc/folders.html | 44 ++-- deps/npm/html/doc/help-search.html | 4 +- deps/npm/html/doc/help.html | 6 +- deps/npm/html/doc/index.html | 8 +- deps/npm/html/doc/init.html | 6 +- deps/npm/html/doc/install.html | 20 +- deps/npm/html/doc/json.html | 267 +++++++++++---------- deps/npm/html/doc/link.html | 6 +- deps/npm/html/doc/list.html | 6 +- deps/npm/html/doc/npm.html | 32 +-- deps/npm/html/doc/outdated.html | 2 +- deps/npm/html/doc/owner.html | 4 +- deps/npm/html/doc/pack.html | 4 +- deps/npm/html/doc/prefix.html | 2 +- deps/npm/html/doc/prune.html | 6 +- deps/npm/html/doc/publish.html | 4 +- deps/npm/html/doc/rebuild.html | 2 +- deps/npm/html/doc/registry.html | 34 +-- deps/npm/html/doc/removing-npm.html | 10 +- deps/npm/html/doc/restart.html | 10 +- deps/npm/html/doc/root.html | 2 +- deps/npm/html/doc/run-script.html | 4 +- deps/npm/html/doc/scripts.html | 66 ++--- deps/npm/html/doc/search.html | 4 +- deps/npm/html/doc/semver.html | 36 +-- deps/npm/html/doc/shrinkwrap.html | 106 ++++---- deps/npm/html/doc/star.html | 8 +- deps/npm/html/doc/start.html | 4 +- deps/npm/html/doc/stop.html | 4 +- deps/npm/html/doc/submodule.html | 4 +- deps/npm/html/doc/tag.html | 2 +- deps/npm/html/doc/test.html | 4 +- deps/npm/html/doc/uninstall.html | 2 +- deps/npm/html/doc/unpublish.html | 2 +- deps/npm/html/doc/update.html | 2 +- deps/npm/html/doc/version.html | 8 +- deps/npm/html/doc/view.html | 10 +- deps/npm/html/doc/whoami.html | 2 +- deps/npm/lib/cache.js | 2 +- deps/npm/lib/install.js | 2 +- deps/npm/lib/owner.js | 12 +- deps/npm/lib/utils/lifecycle.js | 8 - deps/npm/man/man1/README.1 | 2 +- deps/npm/man/man1/adduser.1 | 2 +- deps/npm/man/man1/bin.1 | 2 +- deps/npm/man/man1/bugs.1 | 2 +- deps/npm/man/man1/build.1 | 2 +- deps/npm/man/man1/bundle.1 | 2 +- deps/npm/man/man1/cache.1 | 2 +- deps/npm/man/man1/changelog.1 | 2 +- deps/npm/man/man1/coding-style.1 | 2 +- deps/npm/man/man1/completion.1 | 2 +- deps/npm/man/man1/config.1 | 2 +- deps/npm/man/man1/deprecate.1 | 2 +- deps/npm/man/man1/developers.1 | 6 +- deps/npm/man/man1/disputes.1 | 2 +- deps/npm/man/man1/docs.1 | 2 +- deps/npm/man/man1/edit.1 | 2 +- deps/npm/man/man1/explore.1 | 2 +- deps/npm/man/man1/faq.1 | 28 +-- deps/npm/man/man1/folders.1 | 7 +- deps/npm/man/man1/help-search.1 | 2 +- deps/npm/man/man1/help.1 | 2 +- deps/npm/man/man1/index.1 | 2 +- deps/npm/man/man1/init.1 | 2 +- deps/npm/man/man1/install.1 | 4 +- deps/npm/man/man1/json.1 | 9 +- deps/npm/man/man1/link.1 | 2 +- deps/npm/man/man1/list.1 | 4 +- deps/npm/man/man1/npm.1 | 4 +- deps/npm/man/man1/outdated.1 | 2 +- deps/npm/man/man1/owner.1 | 2 +- deps/npm/man/man1/pack.1 | 2 +- deps/npm/man/man1/prefix.1 | 2 +- deps/npm/man/man1/prune.1 | 2 +- deps/npm/man/man1/publish.1 | 2 +- deps/npm/man/man1/rebuild.1 | 2 +- deps/npm/man/man1/registry.1 | 4 +- deps/npm/man/man1/removing-npm.1 | 2 +- deps/npm/man/man1/restart.1 | 2 +- deps/npm/man/man1/root.1 | 2 +- deps/npm/man/man1/run-script.1 | 2 +- deps/npm/man/man1/scripts.1 | 4 +- deps/npm/man/man1/search.1 | 2 +- deps/npm/man/man1/semver.1 | 2 +- deps/npm/man/man1/shrinkwrap.1 | 2 +- deps/npm/man/man1/star.1 | 2 +- deps/npm/man/man1/start.1 | 2 +- deps/npm/man/man1/stop.1 | 2 +- deps/npm/man/man1/submodule.1 | 2 +- deps/npm/man/man1/tag.1 | 2 +- deps/npm/man/man1/test.1 | 2 +- deps/npm/man/man1/uninstall.1 | 2 +- deps/npm/man/man1/unpublish.1 | 2 +- deps/npm/man/man1/update.1 | 2 +- deps/npm/man/man1/version.1 | 2 +- deps/npm/man/man1/view.1 | 2 +- deps/npm/man/man1/whoami.1 | 2 +- deps/npm/man/man3/bin.3 | 2 +- deps/npm/man/man3/bugs.3 | 2 +- deps/npm/man/man3/commands.3 | 2 +- deps/npm/man/man3/config.3 | 2 +- deps/npm/man/man3/deprecate.3 | 2 +- deps/npm/man/man3/docs.3 | 2 +- deps/npm/man/man3/edit.3 | 2 +- deps/npm/man/man3/explore.3 | 2 +- deps/npm/man/man3/help-search.3 | 2 +- deps/npm/man/man3/init.3 | 2 +- deps/npm/man/man3/install.3 | 2 +- deps/npm/man/man3/link.3 | 2 +- deps/npm/man/man3/load.3 | 2 +- deps/npm/man/man3/ls.3 | 2 +- deps/npm/man/man3/npm.3 | 4 +- deps/npm/man/man3/outdated.3 | 2 +- deps/npm/man/man3/owner.3 | 2 +- deps/npm/man/man3/pack.3 | 2 +- deps/npm/man/man3/prefix.3 | 2 +- deps/npm/man/man3/prune.3 | 2 +- deps/npm/man/man3/publish.3 | 2 +- deps/npm/man/man3/rebuild.3 | 2 +- deps/npm/man/man3/restart.3 | 2 +- deps/npm/man/man3/root.3 | 2 +- deps/npm/man/man3/run-script.3 | 2 +- deps/npm/man/man3/search.3 | 2 +- deps/npm/man/man3/shrinkwrap.3 | 2 +- deps/npm/man/man3/start.3 | 2 +- deps/npm/man/man3/stop.3 | 2 +- deps/npm/man/man3/submodule.3 | 2 +- deps/npm/man/man3/tag.3 | 2 +- deps/npm/man/man3/test.3 | 2 +- deps/npm/man/man3/uninstall.3 | 2 +- deps/npm/man/man3/unpublish.3 | 2 +- deps/npm/man/man3/update.3 | 2 +- deps/npm/man/man3/version.3 | 2 +- deps/npm/man/man3/view.3 | 2 +- deps/npm/man/man3/whoami.3 | 2 +- deps/npm/node_modules/request/package.json | 3 + deps/npm/package.json | 6 +- 198 files changed, 855 insertions(+), 839 deletions(-) diff --git a/deps/npm/.travis.yml b/deps/npm/.travis.yml index 698bc9abdf..a385519bd1 100644 --- a/deps/npm/.travis.yml +++ b/deps/npm/.travis.yml @@ -1,4 +1,4 @@ language: node_js before_install: "make &>out || cat out; rm out" node_js: - - 0.6 + - 0.8 diff --git a/deps/npm/AUTHORS b/deps/npm/AUTHORS index 32f5abc053..57fdf6afa8 100644 --- a/deps/npm/AUTHORS +++ b/deps/npm/AUTHORS @@ -72,3 +72,6 @@ James Halliday Jeremy Cantrell Ribettes Don Park +Kei Son +Nicolas Morel +Mark Dube diff --git a/deps/npm/Makefile b/deps/npm/Makefile index 9c38f97675..8a856e9fa4 100644 --- a/deps/npm/Makefile +++ b/deps/npm/Makefile @@ -92,7 +92,7 @@ doc/cli/index.md: $(markdowns) scripts/index-build.js scripts/doc-build.sh packa node scripts/index-build.js > $@ node_modules/.bin/ronn: - node cli.js install https://github.com/isaacs/ronnjs/tarball/master + node cli.js install doc: man @@ -127,7 +127,7 @@ doc-publish: doc node@npmjs.org:/home/node/npm-www/static/ zip-publish: release - scp release/* izs.me:/var/www/izs.me/static/public/npm/ + scp release/* node@nodejs.org:dist/npm/ release: @bash scripts/release.sh diff --git a/deps/npm/doc/cli/json.md b/deps/npm/doc/cli/json.md index b6bf89ca37..46df441895 100644 --- a/deps/npm/doc/cli/json.md +++ b/deps/npm/doc/cli/json.md @@ -23,6 +23,11 @@ npm will default some values based on package contents. If there is a `wscript` file in the root of your package, npm will default the `preinstall` command to compile using node-waf. +* `"scripts":{"preinstall": "node-gyp rebuild"}` + + If there is a `binding.gyp` file in the root of your package, npm will + default the `preinstall` command to compile using node-gyp. + * `"contributors": [...]` If there is an `AUTHORS` file in the root of your package, npm will diff --git a/deps/npm/html/api/bin.html b/deps/npm/html/api/bin.html index 95d225ad71..de99c6463a 100644 --- a/deps/npm/html/api/bin.html +++ b/deps/npm/html/api/bin.html @@ -19,7 +19,7 @@

This function should not be used programmatically. Instead, just refer to the npm.bin member.

- + -

An example: Webserver

@@ -204,7 +129,7 @@ server.listen(1337, '127.0.0.1'); -
- -
-

Downloads

-

- To install Node.js and npm use the appropriate installer for your platform, or discover what's new in Node.js __VERSION__. -

+ diff --git a/doc/images/platform-icon-generic.png b/doc/images/platform-icon-generic.png new file mode 100644 index 0000000000000000000000000000000000000000..90fc36a08c1aaa7c2161067e24b978de2c73ce0f GIT binary patch literal 5526 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 Y0Iqgve5XkZ<^TWy07*qoM6N<$g4nZ;H~;_u literal 0 HcmV?d00001 diff --git a/doc/images/platform-icon-osx.png b/doc/images/platform-icon-osx.png new file mode 100644 index 0000000000000000000000000000000000000000..0bd6582c4cf8dbdbb619eef0e2ab830378240ac4 GIT binary patch literal 4076 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

V>-_ zFRdaViIP9cJr~)PpZ@t3+)I_SB}~WinicNNR^v z9r9p9jex0>--{fVAz`v~5jv@UCyOg$?Qj*T%yqPyueXwTtrdrUl2~&t%n)uz!UFJg ztpJl8u3hY52J^DuVMh^kr~B2tQD&4i?Jh&UHYI+_(K^GDdWV%ve{knnCng9_`m9Aj zZH#xo#?XV%Ne5r~K^aiGsOl9^f~+eVZ5u>F2rouPKTeWrYVU*3M(k$6_>JHMhInMD zZsRHC1}rI=0l0+>OGngdqmmad5(&w3kqnPf8-7~8=QYrH67+dFJ<~KHdorwrr@p`8 z_F-@yFRM``L+a_rP2#d>pq->~3eeeA>UI#(#&{WMqSiaL5ODC&7DU~S!^D7dbz%fJSrwX37A zk$|6-@~Xtae9jL#35aF-{W~#Y0r0C(ERVyBP0*JNG&}Tc$&)MKc3KiflvbS$PH9y9 z$k6c!gz}UJ?Q7wE#MsuVh&!#y6XJzRUX9Fcj<|G*)})K0b@xWyGU1a|cW1<|SeE}5 zU@MdNYx*q_wO=o^|NIy`4#qOKX)-yY6>o#9(tYsWsA;!5E#9n5hy$!9+)BXJPBwWP zTQK6rB*ult^$Z(9xy-%3^nM-Le%xZl(2i1V=-!kGu^R*7aZLvoF(!N9hFC5bRMES2 z2djB_Wx4uU1I-zh%z(NFqW(P=lAOX3^+cthbhd=kJSlQFxxYJ7HfV53F8rrg!K$>E zPvuQwlgUIExpfgY+SH3sC=SEZVX=F-!AY_g-WT=!^J*%Oi=EOE%T^m2=v0rq(M|^| z7ri6|oXU#CX~D2XRPHZGyGO;7sxC+EMEIN)hpt3N@HULxuZQu{7{1Kml-lS``> z+^L|EYM%r3WPH{Qe5lgIl+l;`80az(Q^n~qMb}EwY0Y&6EONKq(x}{_tERXU*45Fv zTdV}+RKz>nl*Ytv0(+*}jj(K>lRY@sX*Jg}(Xg~`fg2~`fLDQEklXbd7pV~NW2G^e zj(2-C=_b6|6ev3_gpsRQwY*HkyH$r!V!%qlwXq!B=;Uydlg0IXT}~~Xt_pOgRSn$P zWB4@JJzFsehRHjSsjX4Fb)ntB9UgCRa)FmJ6P@^W1|h8cfvM`W*z3;1PpcDRXRV;O ztMPbCb}l$)ePt&#FySUp&Gb(A=+g5guMFcvqxa(|{D@0zN!vPRT-}ph4Ij)5;QL8R z+ts|lJR6(ZB)nEF;9J<7Y(k&L^)8IQ6*} zdKpJJ8Oo{s<^*VNFV2+u)6eE>y8Ei}*}wyL<`{ghJSM(ZIBfLWS^uM5*TMtb7SU{( zD2<3G$BFQRfX>Dg^|KCAw2xry^9)bJ4mn*rTJH7hx!7 zlv2~kBD;o#z=h^smACB?HW}P?k%nt|NA)-558YWg!ehG_hY1lMyrSw=rFFTTl-y9X zg1nR!5FyYk!Lvi~LtXbQe@TGm+u%$}_yafG3xeI;N!#3AF^Y*Nx311xLU0Y9xJbW( zaYg)AR-#itrq6_Izrk6R*T?tCKPR95*yV1SV2_K7BFRYq+?|2L(5&6K(DO===#$H} zQ7ogNRCrT-fpp|Q=hnc-+t%X8?KEDc-*d4y*q#?=&|XGfyhtwH_s3rg9-2H}MR^g? zxnh7mMY2ee-4f&{_lqx9CgoQXo$5o$75KaSyIY3SXurc#%f6NbY_na$14S&D8-AWE zjljdj(;U%rqiez}33W1xm!dWFIf@ztp}#8=~8xGvd&?=s_JORNoVBuO8j z_t=Ya{&i^?)Vz{7Qk@pBkZSt5J1d?qPvUE)CF{+lqHF5hM*qr1bbUqZ2iPyuDs4f~ z0=fls>u3Sp0=fls>u3Sp0=jjyfNlZ(D}MZ+00RJ4*2W6VDti_H0000 Date: Wed, 15 Aug 2012 09:20:56 -0700 Subject: [PATCH 41/52] 2012.08.15, Version 0.8.7 (Stable) * npm: Upgrade to 1.1.49 * website: download page (Golo Roden) * crypto: fix uninitialized memory access in openssl (Ben Noordhuis) * buffer, crypto: fix buffer decoding (Ben Noordhuis) * build: compile with -fno-tree-vrp when gcc >= 4.0 (Ben Noordhuis) * tls: handle multiple CN fields when verifying cert (Ben Noordhuis) * doc: remove unused util from child_process (Kyle Robinson Young) * build: rework -fvisibility=hidden detection (Ben Noordhuis) * windows: don't duplicate invalid stdio handles (Bert Belder) * windows: fix typos in process-stdio.c (Bert Belder) --- AUTHORS | 1 + ChangeLog | 25 ++++++++++++++++++++++++- src/node_version.h | 2 +- 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/AUTHORS b/AUTHORS index 5739530899..662f87a7c2 100644 --- a/AUTHORS +++ b/AUTHORS @@ -354,3 +354,4 @@ Peter Rybin Eugen Dueck Gil Pedersen Tyler Neylon +Golo Roden diff --git a/ChangeLog b/ChangeLog index 41c196a81d..08fd4942ed 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,27 @@ -2012.08.07, Version 0.8.6 (Stable) +2012.08.15, Version 0.8.7 (Stable) + +* npm: Upgrade to 1.1.49 + +* website: download page (Golo Roden) + +* crypto: fix uninitialized memory access in openssl (Ben Noordhuis) + +* buffer, crypto: fix buffer decoding (Ben Noordhuis) + +* build: compile with -fno-tree-vrp when gcc >= 4.0 (Ben Noordhuis) + +* tls: handle multiple CN fields when verifying cert (Ben Noordhuis) + +* doc: remove unused util from child_process (Kyle Robinson Young) + +* build: rework -fvisibility=hidden detection (Ben Noordhuis) + +* windows: don't duplicate invalid stdio handles (Bert Belder) + +* windows: fix typos in process-stdio.c (Bert Belder) + + +2012.08.07, Version 0.8.6 (Stable), 0544a586ca6b6b900a42e164033dbf350765700a * npm: Upgrade to v1.1.48 diff --git a/src/node_version.h b/src/node_version.h index b54b61d387..f088b729df 100644 --- a/src/node_version.h +++ b/src/node_version.h @@ -25,7 +25,7 @@ #define NODE_MAJOR_VERSION 0 #define NODE_MINOR_VERSION 8 #define NODE_PATCH_VERSION 7 -#define NODE_VERSION_IS_RELEASE 0 +#define NODE_VERSION_IS_RELEASE 1 #ifndef NODE_STRINGIFY #define NODE_STRINGIFY(n) NODE_STRINGIFY_HELPER(n) From b6cf0454a9357bef156c8e4feb0153e8ac0ac35f Mon Sep 17 00:00:00 2001 From: isaacs Date: Wed, 15 Aug 2012 17:23:59 -0700 Subject: [PATCH 42/52] blog: release 0.8.7 --- doc/blog/release/v0.8.7.md | 75 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 doc/blog/release/v0.8.7.md diff --git a/doc/blog/release/v0.8.7.md b/doc/blog/release/v0.8.7.md new file mode 100644 index 0000000000..0ee89ee8cb --- /dev/null +++ b/doc/blog/release/v0.8.7.md @@ -0,0 +1,75 @@ +version: 0.8.7 +title: Version 0.8.7 (stable) +category: release +slug: node-v0-8-7-stable +date: 2012-08-15T23:23:16.131Z + +2012.08.15, Version 0.8.7 (Stable) + +* npm: Upgrade to 1.1.49 + +* website: download page (Golo Roden) + +* crypto: fix uninitialized memory access in openssl (Ben Noordhuis) + +* buffer, crypto: fix buffer decoding (Ben Noordhuis) + +* build: compile with -fno-tree-vrp when gcc >= 4.0 (Ben Noordhuis) + +* tls: handle multiple CN fields when verifying cert (Ben Noordhuis) + +* doc: remove unused util from child_process (Kyle Robinson Young) + +* build: rework -fvisibility=hidden detection (Ben Noordhuis) + +* windows: don't duplicate invalid stdio handles (Bert Belder) + +* windows: fix typos in process-stdio.c (Bert Belder) + + +Source Code: http://nodejs.org/dist/v0.8.7/node-v0.8.7.tar.gz + +Macintosh Installer (Universal): http://nodejs.org/dist/v0.8.7/node-v0.8.7.pkg + +Windows Installer: http://nodejs.org/dist/v0.8.7/node-v0.8.7-x86.msi + +Windows x64 Installer: http://nodejs.org/dist/v0.8.7/x64/node-v0.8.7-x64.msi + +Windows x64 Files: http://nodejs.org/dist/v0.8.7/x64/ + +Linux 32-bit Binary Package: http://nodejs.org/dist/v0.8.7/node-v0.8.7-linux-i686.tar.gz + +Linux 64-bit Binary Package: http://nodejs.org/dist/v0.8.7/node-v0.8.7-linux-x86_64.tar.gz + +Solaris 32-bit Binary Package: http://nodejs.org/dist/v0.8.7/node-v0.8.7-sunos-i386.tar.gz + +Solaris 64-bit Binary Package: http://nodejs.org/dist/v0.8.7/node-v0.8.7-sunos-x86_64.tar.gz + +Other release files: http://nodejs.org/dist/v0.8.7/ + +Website: http://nodejs.org/docs/v0.8.7/ + +Documentation: http://nodejs.org/docs/v0.8.7/api/ + +Shasums: + +``` +3ff82e65a845a2d5f27ea57e8a1e29e6d10f5128 node-v0.8.7-darwin-x64.tar.gz +d72ac02727aaefa094f8d06a0a124078da007df0 node-v0.8.7-darwin-x86.tar.gz +0882e19157e98c3e2214e772e3ae714125863ae6 node-v0.8.7-linux-x64.tar.gz +3e388d47f6e79acccfab117cceaeed19ceb1b14c node-v0.8.7-linux-x86.tar.gz +ffb81708df10d3c225d8f2ce57965a40db6ca556 node-v0.8.7-sunos-x64.tar.gz +19df6ae999e4a5c1dada83b72516b3941eeb701e node-v0.8.7-sunos-x86.tar.gz +19f90a0cfa41c7eaf683393d46d06aecc2f99f84 node-v0.8.7-x86.msi +0c2dcf2d5491be7b429681193a13c18de1ba488a node-v0.8.7.pkg +58ffb5884304e2f8415d8cee7921c42f66fc8d7b node-v0.8.7.tar.gz +ecaee480f0337e92870ca83aed1b49863b3f659d node.exe +ea2e25daad114692357383bfc8b4ac910fe02d99 node.exp +70c8f054a5c42f6d4e3ca5154ca1a360f549d66f node.lib +180bcc036cd5deaef49bf12fddeeafc2e78152e3 node.pdb +12ad712ff9e28eb1bdf7e508ce3a2b872ec37d4d x64/node-v0.8.7-x64.msi +c30607099ad4699b11e3ca37f94a9da196a36dc6 x64/node.exe +f864ed339952604c2205e25927fb4851da5b79b6 x64/node.exp +ce711929befe756f942a039213aeece2ef3edcc1 x64/node.lib +11bb755b054bc6ee2e441758f7d42d131cf6d557 x64/node.pdb +``` From 073c7b4d083384cde62bcc4009f34888f44c793e Mon Sep 17 00:00:00 2001 From: isaacs Date: Wed, 15 Aug 2012 17:25:25 -0700 Subject: [PATCH 43/52] Now working on 0.8.8 --- src/node_version.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/node_version.h b/src/node_version.h index f088b729df..871b258de3 100644 --- a/src/node_version.h +++ b/src/node_version.h @@ -24,8 +24,8 @@ #define NODE_MAJOR_VERSION 0 #define NODE_MINOR_VERSION 8 -#define NODE_PATCH_VERSION 7 -#define NODE_VERSION_IS_RELEASE 1 +#define NODE_PATCH_VERSION 8 +#define NODE_VERSION_IS_RELEASE 0 #ifndef NODE_STRINGIFY #define NODE_STRINGIFY(n) NODE_STRINGIFY_HELPER(n) From c0558ff7748849ecb8d0224fd5f8c83c66502db6 Mon Sep 17 00:00:00 2001 From: isaacs Date: Wed, 15 Aug 2012 17:33:03 -0700 Subject: [PATCH 44/52] website: fix font-size on 'explore' list items --- doc/pipe.css | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/pipe.css b/doc/pipe.css index 392589daff..56d27d2ca7 100644 --- a/doc/pipe.css +++ b/doc/pipe.css @@ -413,6 +413,7 @@ h1 a, h2 a, h3 a, h4 a } #explore li { + font-size:12px; list-style-type: none; color: #d2d8ba; line-height: 14px; From f9df96b950885d6510ee6f5b4e525036fb4aba4e Mon Sep 17 00:00:00 2001 From: Nathan Rajlich Date: Wed, 15 Aug 2012 18:05:33 -0700 Subject: [PATCH 45/52] email-footer: update the binary package links to x86/x64 --- tools/email-footer.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/email-footer.md b/tools/email-footer.md index d25580f646..3eb22d9ff0 100644 --- a/tools/email-footer.md +++ b/tools/email-footer.md @@ -8,13 +8,13 @@ Windows x64 Installer: http://nodejs.org/dist/__VERSION__/x64/node-__VERSION__-x Windows x64 Files: http://nodejs.org/dist/__VERSION__/x64/ -Linux 32-bit Binary Package: http://nodejs.org/dist/__VERSION__/node-__VERSION__-linux-i686.tar.gz +Linux 32-bit Binary: http://nodejs.org/dist/__VERSION__/node-__VERSION__-linux-x86.tar.gz -Linux 64-bit Binary Package: http://nodejs.org/dist/__VERSION__/node-__VERSION__-linux-x86_64.tar.gz +Linux 64-bit Binary: http://nodejs.org/dist/__VERSION__/node-__VERSION__-linux-x64.tar.gz -Solaris 32-bit Binary Package: http://nodejs.org/dist/__VERSION__/node-__VERSION__-sunos-i386.tar.gz +Solaris 32-bit Binary: http://nodejs.org/dist/__VERSION__/node-__VERSION__-sunos-x86.tar.gz -Solaris 64-bit Binary Package: http://nodejs.org/dist/__VERSION__/node-__VERSION__-sunos-x86_64.tar.gz +Solaris 64-bit Binary: http://nodejs.org/dist/__VERSION__/node-__VERSION__-sunos-x64.tar.gz Other release files: http://nodejs.org/dist/__VERSION__/ From 226d37bb6883bcf5d409f82a9d6e910d46f175a9 Mon Sep 17 00:00:00 2001 From: isaacs Date: Wed, 15 Aug 2012 18:56:48 -0700 Subject: [PATCH 46/52] blog: Fix binary links for 0.8.7 post --- doc/blog/release/v0.8.7.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/blog/release/v0.8.7.md b/doc/blog/release/v0.8.7.md index 0ee89ee8cb..35031cd0b7 100644 --- a/doc/blog/release/v0.8.7.md +++ b/doc/blog/release/v0.8.7.md @@ -37,13 +37,13 @@ Windows x64 Installer: http://nodejs.org/dist/v0.8.7/x64/node-v0.8.7-x64.msi Windows x64 Files: http://nodejs.org/dist/v0.8.7/x64/ -Linux 32-bit Binary Package: http://nodejs.org/dist/v0.8.7/node-v0.8.7-linux-i686.tar.gz +Linux 32-bit Binary: http://nodejs.org/dist/v0.8.7/node-v0.8.7-linux-x86.tar.gz -Linux 64-bit Binary Package: http://nodejs.org/dist/v0.8.7/node-v0.8.7-linux-x86_64.tar.gz +Linux 64-bit Binary: http://nodejs.org/dist/v0.8.7/node-v0.8.7-linux-x64.tar.gz -Solaris 32-bit Binary Package: http://nodejs.org/dist/v0.8.7/node-v0.8.7-sunos-i386.tar.gz +Solaris 32-bit Binary: http://nodejs.org/dist/v0.8.7/node-v0.8.7-sunos-x86.tar.gz -Solaris 64-bit Binary Package: http://nodejs.org/dist/v0.8.7/node-v0.8.7-sunos-x86_64.tar.gz +Solaris 64-bit Binary: http://nodejs.org/dist/v0.8.7/node-v0.8.7-sunos-x64.tar.gz Other release files: http://nodejs.org/dist/v0.8.7/ From 73976b6c9ddbd2d22209ea292968ce700e97f1a2 Mon Sep 17 00:00:00 2001 From: isaacs Date: Thu, 16 Aug 2012 14:42:39 -0700 Subject: [PATCH 47/52] v8: Upgrade to 3.11.10.18 --- deps/v8/build/common.gypi | 11 ++++++++--- deps/v8/src/hydrogen-instructions.cc | 7 +++++-- deps/v8/src/version.cc | 2 +- deps/v8/tools/gyp/v8.gyp | 3 --- 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/deps/v8/build/common.gypi b/deps/v8/build/common.gypi index 1609197876..7f084b8c1d 100644 --- a/deps/v8/build/common.gypi +++ b/deps/v8/build/common.gypi @@ -239,6 +239,7 @@ 'WIN32', ], 'msvs_configuration_attributes': { + 'OutputDirectory': '<(DEPTH)\\build\\$(ConfigurationName)', 'IntermediateDirectory': '$(OutDir)\\obj\\$(ProjectName)', 'CharacterSet': '1', }, @@ -270,7 +271,7 @@ 'target_conditions': [ ['_toolset=="host"', { 'variables': { - 'm32flag': ' /dev/null 2>&1) && echo "-m32" || true)', + 'm32flag': ' /dev/null 2>&1) && echo -n "-m32" || true)', }, 'cflags': [ '<(m32flag)' ], 'ldflags': [ '<(m32flag)' ], @@ -280,7 +281,7 @@ }], ['_toolset=="target"', { 'variables': { - 'm32flag': ' /dev/null 2>&1) && echo "-m32" || true)', + 'm32flag': ' /dev/null 2>&1) && echo -n "-m32" || true)', }, 'cflags': [ '<(m32flag)' ], 'ldflags': [ '<(m32flag)' ], @@ -323,7 +324,7 @@ }, 'conditions': [ ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd"', { - 'cflags': [ '-Wno-unused-parameter', + 'cflags': [ '-Wall', '<(werror)', '-W', '-Wno-unused-parameter', '-Wnon-virtual-dtor', '-Woverloaded-virtual' ], }], ], @@ -332,6 +333,10 @@ 'conditions': [ ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd" \ or OS=="android"', { + 'cflags!': [ + '-O2', + '-Os', + ], 'cflags': [ '-fdata-sections', '-ffunction-sections', diff --git a/deps/v8/src/hydrogen-instructions.cc b/deps/v8/src/hydrogen-instructions.cc index 4bb25096f7..db3c3f3f78 100644 --- a/deps/v8/src/hydrogen-instructions.cc +++ b/deps/v8/src/hydrogen-instructions.cc @@ -1631,6 +1631,7 @@ static bool PrototypeChainCanNeverResolve( if (current->IsJSGlobalProxy() || current->IsGlobalObject() || !current->IsJSObject() || + JSObject::cast(current)->map()->has_named_interceptor() || JSObject::cast(current)->IsAccessCheckNeeded() || !JSObject::cast(current)->HasFastProperties()) { return false; @@ -1685,7 +1686,8 @@ HLoadNamedFieldPolymorphic::HLoadNamedFieldPolymorphic(HValue* context, types_.Add(types->at(i), zone); break; case MAP_TRANSITION: - if (PrototypeChainCanNeverResolve(map, name)) { + if (!map->has_named_interceptor() && + PrototypeChainCanNeverResolve(map, name)) { negative_lookups.Add(types->at(i), zone); } break; @@ -1693,7 +1695,8 @@ HLoadNamedFieldPolymorphic::HLoadNamedFieldPolymorphic(HValue* context, break; } } else if (lookup.IsCacheable()) { - if (PrototypeChainCanNeverResolve(map, name)) { + if (!map->has_named_interceptor() && + PrototypeChainCanNeverResolve(map, name)) { negative_lookups.Add(types->at(i), zone); } } diff --git a/deps/v8/src/version.cc b/deps/v8/src/version.cc index 75abe57148..f6afc47cca 100644 --- a/deps/v8/src/version.cc +++ b/deps/v8/src/version.cc @@ -35,7 +35,7 @@ #define MAJOR_VERSION 3 #define MINOR_VERSION 11 #define BUILD_NUMBER 10 -#define PATCH_LEVEL 17 +#define PATCH_LEVEL 18 // Use 1 for candidates and 0 otherwise. // (Boolean macro values are not supported by all preprocessors.) #define IS_CANDIDATE_VERSION 0 diff --git a/deps/v8/tools/gyp/v8.gyp b/deps/v8/tools/gyp/v8.gyp index f742cc6f3c..ea82d31814 100644 --- a/deps/v8/tools/gyp/v8.gyp +++ b/deps/v8/tools/gyp/v8.gyp @@ -721,9 +721,6 @@ '../../src/win32-math.h', ], 'msvs_disabled_warnings': [4351, 4355, 4800], - 'direct_dependent_settings': { - 'msvs_disabled_warnings': [4351, 4355, 4800], - }, 'link_settings': { 'libraries': [ '-lwinmm.lib', '-lws2_32.lib' ], }, From b7223abbdc9ff8dd38da2bda6b87b28437edea9c Mon Sep 17 00:00:00 2001 From: isaacs Date: Tue, 24 Jul 2012 14:19:50 -0700 Subject: [PATCH 48/52] v8: Reapply floating patches --- deps/v8/build/common.gypi | 11 +++-------- deps/v8/tools/gyp/v8.gyp | 3 +++ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/deps/v8/build/common.gypi b/deps/v8/build/common.gypi index 7f084b8c1d..1609197876 100644 --- a/deps/v8/build/common.gypi +++ b/deps/v8/build/common.gypi @@ -239,7 +239,6 @@ 'WIN32', ], 'msvs_configuration_attributes': { - 'OutputDirectory': '<(DEPTH)\\build\\$(ConfigurationName)', 'IntermediateDirectory': '$(OutDir)\\obj\\$(ProjectName)', 'CharacterSet': '1', }, @@ -271,7 +270,7 @@ 'target_conditions': [ ['_toolset=="host"', { 'variables': { - 'm32flag': ' /dev/null 2>&1) && echo -n "-m32" || true)', + 'm32flag': ' /dev/null 2>&1) && echo "-m32" || true)', }, 'cflags': [ '<(m32flag)' ], 'ldflags': [ '<(m32flag)' ], @@ -281,7 +280,7 @@ }], ['_toolset=="target"', { 'variables': { - 'm32flag': ' /dev/null 2>&1) && echo -n "-m32" || true)', + 'm32flag': ' /dev/null 2>&1) && echo "-m32" || true)', }, 'cflags': [ '<(m32flag)' ], 'ldflags': [ '<(m32flag)' ], @@ -324,7 +323,7 @@ }, 'conditions': [ ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd"', { - 'cflags': [ '-Wall', '<(werror)', '-W', '-Wno-unused-parameter', + 'cflags': [ '-Wno-unused-parameter', '-Wnon-virtual-dtor', '-Woverloaded-virtual' ], }], ], @@ -333,10 +332,6 @@ 'conditions': [ ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd" \ or OS=="android"', { - 'cflags!': [ - '-O2', - '-Os', - ], 'cflags': [ '-fdata-sections', '-ffunction-sections', diff --git a/deps/v8/tools/gyp/v8.gyp b/deps/v8/tools/gyp/v8.gyp index ea82d31814..f742cc6f3c 100644 --- a/deps/v8/tools/gyp/v8.gyp +++ b/deps/v8/tools/gyp/v8.gyp @@ -721,6 +721,9 @@ '../../src/win32-math.h', ], 'msvs_disabled_warnings': [4351, 4355, 4800], + 'direct_dependent_settings': { + 'msvs_disabled_warnings': [4351, 4355, 4800], + }, 'link_settings': { 'libraries': [ '-lwinmm.lib', '-lws2_32.lib' ], }, From 060141c58a7cd49b1d243e8f5686195897ff83c4 Mon Sep 17 00:00:00 2001 From: isaacs Date: Thu, 16 Aug 2012 09:56:31 -0700 Subject: [PATCH 49/52] website: Improved install button behavior Just install whatever's best for the OS. Detect host os and architecture from the navigator properties. If we can't make a good guess, then they get the tarball, and of course everything we have is on the full download page. --- doc/download/index.html | 15 ++++++++++++ doc/index.html | 52 +++++++++++++++++++++++++++++++++-------- doc/pipe.css | 35 +++++++++++++++++---------- 3 files changed, 80 insertions(+), 22 deletions(-) diff --git a/doc/download/index.html b/doc/download/index.html index b1afb89d77..bb753fd450 100644 --- a/doc/download/index.html +++ b/doc/download/index.html @@ -101,6 +101,20 @@

+ + @@ -132,6 +146,7 @@
  • Installing from package managers
  • Other release files
  • +
  • Other releases
  • diff --git a/doc/index.html b/doc/index.html index 2bb5ee9544..fc26d9b8a7 100644 --- a/doc/index.html +++ b/doc/index.html @@ -29,12 +29,51 @@ lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.

    - Download - Docs -

    __VERSION__

    + Fork me on GitHub + + +

    Node.js in the Industry

      @@ -148,13 +187,6 @@ server.listen(1337, '127.0.0.1'); - -
    64-bit
    Linux Binaries (.tar.gz) 32-bit