From 9a16f1c7d0ab6847bb8826e7e08eb7853a5a5f77 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Wojciech=20Wn=C4=99trzak?=
Date: Thu, 14 Jul 2011 13:17:40 +0200
Subject: [PATCH 1/7] added information about relative paths in File System
module
---
doc/api/fs.markdown | 3 +++
1 file changed, 3 insertions(+)
diff --git a/doc/api/fs.markdown b/doc/api/fs.markdown
index faf1b47ece..6cfb43c431 100644
--- a/doc/api/fs.markdown
+++ b/doc/api/fs.markdown
@@ -52,6 +52,9 @@ In busy processes, the programmer is _strongly encouraged_ to use the
asynchronous versions of these calls. The synchronous versions will block
the entire process until they complete--halting all connections.
+Relative path to filename can be used, remember however that this path will be relative
+to `process.cwd()`.
+
### fs.rename(path1, path2, [callback])
Asynchronous rename(2). No arguments other than a possible exception are given
From e8bc80cf152973037519f37da4d356a05cc704e1 Mon Sep 17 00:00:00 2001
From: koichik
Date: Sat, 16 Jul 2011 09:45:43 +0900
Subject: [PATCH 2/7] Doc improvements
Fixes #1334.
---
doc/api/http.markdown | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/doc/api/http.markdown b/doc/api/http.markdown
index 7fe52403a5..d789ce7bef 100644
--- a/doc/api/http.markdown
+++ b/doc/api/http.markdown
@@ -38,10 +38,10 @@ per connection (in the case of keep-alive connections).
### Event: 'connection'
-`function (stream) { }`
+`function (socket) { }`
- When a new TCP stream is established. `stream` is an object of type
- `net.Stream`. Usually users will not want to access this event. The
+ When a new TCP stream is established. `socket` is an object of type
+ `net.Socket`. Usually users will not want to access this event. The
`stream` can also be accessed at `request.connection`.
### Event: 'close'
@@ -239,7 +239,7 @@ Resumes a paused request.
### request.connection
-The `net.Stream` object associated with the connection.
+The `net.Socket` object associated with the connection.
With HTTPS support, use request.connection.verifyPeer() and
From 9f9a4cb9284794cea04098735f0dcc4c771db153 Mon Sep 17 00:00:00 2001
From: Ben Noordhuis
Date: Sat, 16 Jul 2011 16:00:06 +0200
Subject: [PATCH 3/7] Fix Math.pow crashes on machines without SSE2.
This is a back-port of r8577 from V8's upstream 3.1 branch.
Fixes #829.
---
deps/v8/src/ia32/full-codegen-ia32.cc | 8 ++++++--
deps/v8/src/version.cc | 2 +-
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/deps/v8/src/ia32/full-codegen-ia32.cc b/deps/v8/src/ia32/full-codegen-ia32.cc
index 67e0e8fac9..375ff2e1ec 100644
--- a/deps/v8/src/ia32/full-codegen-ia32.cc
+++ b/deps/v8/src/ia32/full-codegen-ia32.cc
@@ -2772,8 +2772,12 @@ void FullCodeGenerator::EmitMathPow(ZoneList* args) {
VisitForStackValue(args->at(0));
VisitForStackValue(args->at(1));
- MathPowStub stub;
- __ CallStub(&stub);
+ if (CpuFeatures::IsSupported(SSE2)) {
+ MathPowStub stub;
+ __ CallStub(&stub);
+ } else {
+ __ CallRuntime(Runtime::kMath_pow, 2);
+ }
context()->Plug(eax);
}
diff --git a/deps/v8/src/version.cc b/deps/v8/src/version.cc
index f70e405915..b7c59dcde4 100644
--- a/deps/v8/src/version.cc
+++ b/deps/v8/src/version.cc
@@ -35,7 +35,7 @@
#define MAJOR_VERSION 3
#define MINOR_VERSION 1
#define BUILD_NUMBER 8
-#define PATCH_LEVEL 25
+#define PATCH_LEVEL 26
#define CANDIDATE_VERSION false
// Define SONAME to have the SCons build the put a specific SONAME into the
From 973153d1ccdbb06f9067f3698578e8a5685a87c4 Mon Sep 17 00:00:00 2001
From: Reid Burke
Date: Thu, 7 Jul 2011 21:04:27 -0700
Subject: [PATCH 4/7] Properly respond to HEAD during end(body) hot path
During write(), _hasBody is checked to make sure a body
is allowed -- this is now also checked during end(body)
when write() isn't used.
Concise final chunk for HEAD req's res.end(data).
Instead of simply clearing data, check _hasBody
earlier to avoid sending cruft when chunkedEncoding
is used.
Fixes #1291.
---
lib/http.js | 7 +++
...test-http-head-response-has-no-body-end.js | 55 +++++++++++++++++++
2 files changed, 62 insertions(+)
create mode 100644 test/simple/test-http-head-response-has-no-body-end.js
diff --git a/lib/http.js b/lib/http.js
index 14befd15df..e5291fbf9a 100644
--- a/lib/http.js
+++ b/lib/http.js
@@ -652,6 +652,12 @@ OutgoingMessage.prototype.end = function(data, encoding) {
this._implicitHeader();
}
+ if (data && !this._hasBody) {
+ console.error('This type of response MUST NOT have a body. ' +
+ 'Ignoring data passed to end().');
+ data = false;
+ }
+
var ret;
var hot = this._headerSent === false &&
@@ -667,6 +673,7 @@ OutgoingMessage.prototype.end = function(data, encoding) {
// res.writeHead();
// res.end(blah);
// HACKY.
+
if (this.chunkedEncoding) {
var l = Buffer.byteLength(data, encoding).toString(16);
ret = this.connection.write(this._header + l + CRLF +
diff --git a/test/simple/test-http-head-response-has-no-body-end.js b/test/simple/test-http-head-response-has-no-body-end.js
new file mode 100644
index 0000000000..ed91394ce2
--- /dev/null
+++ b/test/simple/test-http-head-response-has-no-body-end.js
@@ -0,0 +1,55 @@
+// 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 http = require('http');
+
+// This test is to make sure that when the HTTP server
+// responds to a HEAD request with data to res.end,
+// it does not send any body.
+
+var server = http.createServer(function(req, res) {
+ res.writeHead(200);
+ res.end('FAIL'); // broken: sends FAIL from hot path.
+});
+server.listen(common.PORT);
+
+var responseComplete = false;
+
+server.addListener('listening', function() {
+ var req = http.createClient(common.PORT).request('HEAD', '/');
+ common.error('req');
+ req.end();
+ req.addListener('response', function(res) {
+ common.error('response');
+ res.addListener('end', function() {
+ common.error('response end');
+ server.close();
+ responseComplete = true;
+ });
+ });
+});
+
+process.addListener('exit', function() {
+ assert.ok(responseComplete);
+});
From ddfc6b78cc15202789e58b9220c1897e9d9aa525 Mon Sep 17 00:00:00 2001
From: isaacs
Date: Tue, 19 Jul 2011 11:56:44 -0700
Subject: [PATCH 5/7] Close #1360 url: Allow _ in hostnames.
---
lib/url.js | 4 ++--
test/simple/test-url.js | 9 +++++++++
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/lib/url.js b/lib/url.js
index 8b01c8548f..6a26ed314b 100644
--- a/lib/url.js
+++ b/lib/url.js
@@ -44,8 +44,8 @@ var protocolPattern = /^([a-z0-9]+:)/i,
.concat(unwise).concat(autoEscape),
nonAuthChars = ['/', '@', '?', '#'].concat(delims),
hostnameMaxLen = 255,
- hostnamePartPattern = /^[a-zA-Z0-9][a-z0-9A-Z-]{0,62}$/,
- hostnamePartStart = /^([a-zA-Z0-9][a-z0-9A-Z-]{0,62})(.*)$/,
+ hostnamePartPattern = /^[a-zA-Z0-9][a-z0-9A-Z_-]{0,62}$/,
+ hostnamePartStart = /^([a-zA-Z0-9][a-z0-9A-Z_-]{0,62})(.*)$/,
// protocols that can allow "unsafe" and "unwise" chars.
unsafeProtocol = {
'javascript': true,
diff --git a/test/simple/test-url.js b/test/simple/test-url.js
index ea85bc967f..8cee8eb279 100644
--- a/test/simple/test-url.js
+++ b/test/simple/test-url.js
@@ -274,8 +274,17 @@ var parseTests = {
'search' : '?search=foo',
'query' : 'search=foo',
'hash' : '#bar'
+ },
+ 'http://bucket_name.s3.amazonaws.com/image.jpg': {
+ protocol: 'http:',
+ slashes: true,
+ host: 'bucket_name.s3.amazonaws.com',
+ hostname: 'bucket_name.s3.amazonaws.com',
+ pathname: '/image.jpg',
+ href: 'http://bucket_name.s3.amazonaws.com/image.jpg'
}
};
+
for (var u in parseTests) {
var actual = url.parse(u),
expected = parseTests[u];
From 1b8dd65d6e3b82b6863ef38835cc436c5d30c1d5 Mon Sep 17 00:00:00 2001
From: Ryan Dahl
Date: Tue, 19 Jul 2011 10:46:40 -0700
Subject: [PATCH 6/7] Bump version to v0.4.10
---
AUTHORS | 18 +++++++++++++++++-
ChangeLog | 27 +++++++++++++++++++++++++++
doc/index.html | 34 +++++++++++++++-------------------
doc/logos/index.html | 16 ----------------
doc/pipe.css | 4 ++++
src/node_version.h | 2 +-
wscript | 2 +-
7 files changed, 65 insertions(+), 38 deletions(-)
diff --git a/AUTHORS b/AUTHORS
index 6378303907..1eb73d6df8 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -172,4 +172,20 @@ Scott McWhirter
Jakub Lekstan
Tim Baumann
Robert Mustacchi
-
+George Miroshnykov
+Marcel Laverdet
+Alexandre Marangone
+Mark Cavage
+Ryan Petrello
+Siddharth Mahendraker
+Mathias Buus
+Yoshihiro KIKUCHI
+Brett Kiefer
+Mariano Iglesias
+Jörn Horstmann
+Joe Shaw
+Alex Xu
+Kip Gebhardt
+Stefan Rusu
+Wojciech Wnętrzak
+Reid Burke
diff --git a/ChangeLog b/ChangeLog
index 47c408e602..37102d7c55 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,30 @@
+2011.07.19, Version 0.4.10 (stable)
+
+* #394 Fix Buffer drops last null character in UTF-8
+
+* #829 Backport r8577 from V8 (Ben Noordhuis)
+
+* #877 Don't wait for HTTP Agent socket pool to establish connections.
+
+* #915 Find kqueue on FreeBSD correctly (Brett Kiefer)
+
+* #1085 HTTP: Fix race in abort/dispatch code (Stefan Rusu)
+
+* #1274 debugger improvement (Yoshihiro Kikuchi)
+
+* #1291 Properly respond to HEAD during end(body) hot path (Reid Burke)
+
+* #1304 TLS: Fix race in abort/connection code (Stefan Rusu)
+
+* #1360 Allow _ in url hostnames.
+
+* Revert 37d529f8 - unbreaks debugger command parsing.
+
+* Bring back global execScript
+
+* Doc improvements
+
+
2011.06.29, Version 0.4.9 (stable)
* Improve documentation
diff --git a/doc/index.html b/doc/index.html
index ba874daf93..4e3fc5c774 100644
--- a/doc/index.html
+++ b/doc/index.html
@@ -26,8 +26,8 @@
Download
ChangeLog
About
- v0.4.9 docs
- v0.5.0 docs
+ v0.4.10 docs
+ v0.5.1 docs
Wiki
Blog
@@ -110,17 +110,18 @@ server.listen(1337, "127.0.0.1");
git repo
-
- 2011.06.29 (stable)
- node-v0.4.9.tar.gz
- (Documentation)
-
+ 2011.07.19 v0.4.10 (stable)
+
-
- 2011.07.05 (unstable)
- node-v0.5.0.tar.gz
- (Documentation)
-
+ 2011.07.14 v0.5.1 (unstable)
+
Historical: versions, docs
@@ -193,13 +194,8 @@ server.listen(1337, "127.0.0.1");
But what about multiple-processor concurrency? Aren't threads
necessary to scale programs to multi-core computers?
- Processes are necessary to scale to multi-core computers, not
- memory-sharing threads. The fundamentals of scalable systems are
- fast networking and non-blocking design—the rest is message
- passing. In future versions, Node will be able to fork new
- processes (using the Web
- Workers API ) which fits well into the current design.
+ You can start new processes via child_process.fork()
+ these other processes will be scheduled in parallel.
diff --git a/doc/logos/index.html b/doc/logos/index.html
index 6d8e662e8b..0d9d2a3f91 100644
--- a/doc/logos/index.html
+++ b/doc/logos/index.html
@@ -17,22 +17,6 @@
Node.js Logos
-
diff --git a/doc/pipe.css b/doc/pipe.css
index 3cc2b88c35..4f576e7aea 100644
--- a/doc/pipe.css
+++ b/doc/pipe.css
@@ -97,3 +97,7 @@ a:hover { text-decoration: underline; }
.desktops {
font-size: 14px;
}
+
+.release {
+ margin: 0 0 0 2em;
+}
diff --git a/src/node_version.h b/src/node_version.h
index 617704bb06..fefdc051cd 100644
--- a/src/node_version.h
+++ b/src/node_version.h
@@ -28,7 +28,7 @@
#define NODE_MAJOR_VERSION 0
#define NODE_MINOR_VERSION 4
#define NODE_PATCH_VERSION 10
-#define NODE_VERSION_IS_RELEASE 0
+#define NODE_VERSION_IS_RELEASE 1
#ifndef NODE_STRINGIFY
#define NODE_STRINGIFY(n) NODE_STRINGIFY_HELPER(n)
diff --git a/wscript b/wscript
index 302ed0f64e..eab6990c46 100644
--- a/wscript
+++ b/wscript
@@ -866,7 +866,7 @@ def build(bld):
, 'CPPFLAGS' : " ".join(program.env["CPPFLAGS"]).replace('"', '\\"')
, 'LIBFLAGS' : " ".join(program.env["LIBFLAGS"]).replace('"', '\\"')
, 'PREFIX' : safe_path(program.env["PREFIX"])
- , 'VERSION' : '0.4.9' # FIXME should not be hard-coded, see NODE_VERSION_STRING in src/node_version.
+ , 'VERSION' : '0.4.10' # FIXME should not be hard-coded, see NODE_VERSION_STRING in src/node_version.
}
return x
From effc4469d00f53c0ce4057d385a968093db3d645 Mon Sep 17 00:00:00 2001
From: Ryan Dahl
Date: Wed, 20 Jul 2011 00:37:26 -0700
Subject: [PATCH 7/7] Now working on v0.4.11
---
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 fefdc051cd..8dbd3c44ef 100644
--- a/src/node_version.h
+++ b/src/node_version.h
@@ -27,8 +27,8 @@
#define NODE_MAJOR_VERSION 0
#define NODE_MINOR_VERSION 4
-#define NODE_PATCH_VERSION 10
-#define NODE_VERSION_IS_RELEASE 1
+#define NODE_PATCH_VERSION 11
+#define NODE_VERSION_IS_RELEASE 0
#ifndef NODE_STRINGIFY
#define NODE_STRINGIFY(n) NODE_STRINGIFY_HELPER(n)