Browse Source

Merge branch 'v0.4'

Conflicts:
	src/node_version.h
v0.7.4-release
Ryan Dahl 14 years ago
parent
commit
860cb906a6
  1. 40
      ChangeLog
  2. 5
      deps/v8/src/objects.h
  3. 3
      deps/v8/src/top.cc
  4. 2
      deps/v8/src/version.cc
  5. 2
      deps/v8/src/x64/assembler-x64.cc
  6. 7
      doc/api/net.markdown
  7. 8
      doc/index.html
  8. 6
      lib/http.js
  9. 2
      wscript

40
ChangeLog

@ -1,3 +1,43 @@
2011.05.20, Version 0.4.8 (stable)
* #974 Properly report traceless errors (isaacs)
* #983 Better JSON.parse error detection in REPL (isaacs)
* #836 Agent socket errors bubble up to req only if req exists
* #1041 Fix event listener leak check timing (koichik)
* #1038 Fix dns.resolve() with 'PTR' throws Error: Unknown type "PTR"
(koichik)
* #1073 Share SSL context between server connections (Fedor Indutny)
* Disable compression with OpenSSL. Improves memory perf.
* Implement os.totalmem() and os.freemem() for SunOS (Alexandre Marangone)
* Fix a special characters in URL regression (isaacs)
* Fix idle timeouts in HTTPS (Felix Geisendörfer)
* SlowBuffer.write() with 'ucs2' throws ReferenceError. (koichik)
* http.ServerRequest 'close' sometimes gets an error argument
(Felix Geisendörfer)
* Doc improvements
* cleartextstream.destroy() should close(2) the socket. Previously was being
mapped to a shutdown(2) syscall.
* No longer compile out asserts and debug statements in normal build.
* Debugger improvements.
* Upgrade V8 to 3.1.8.16.
2011.04.22, Version 0.4.7 (stable) 2011.04.22, Version 0.4.7 (stable)
* Don't emit error on ECONNRESET from read() #670 * Don't emit error on ECONNRESET from read() #670

5
deps/v8/src/objects.h

@ -585,6 +585,7 @@ enum CompareResult {
class StringStream; class StringStream;
class ObjectVisitor; class ObjectVisitor;
class Failure;
struct ValueInfo : public Malloced { struct ValueInfo : public Malloced {
ValueInfo() : type(FIRST_TYPE), ptr(NULL), str(NULL), number(0) { } ValueInfo() : type(FIRST_TYPE), ptr(NULL), str(NULL), number(0) { }
@ -611,6 +612,10 @@ class MaybeObject BASE_EMBEDDED {
*obj = reinterpret_cast<Object*>(this); *obj = reinterpret_cast<Object*>(this);
return true; return true;
} }
inline Failure* ToFailureUnchecked() {
ASSERT(IsFailure());
return reinterpret_cast<Failure*>(this);
}
inline Object* ToObjectUnchecked() { inline Object* ToObjectUnchecked() {
ASSERT(!IsFailure()); ASSERT(!IsFailure());
return reinterpret_cast<Object*>(this); return reinterpret_cast<Object*>(this);

3
deps/v8/src/top.cc

@ -1,4 +1,4 @@
// Copyright 2006-2008 the V8 project authors. All rights reserved. // Copyright 2011 the V8 project authors. All rights reserved.
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
// met: // met:
@ -740,6 +740,7 @@ Failure* Top::ReThrow(MaybeObject* exception, MessageLocation* location) {
// Set the exception being re-thrown. // Set the exception being re-thrown.
set_pending_exception(exception); set_pending_exception(exception);
if (exception->IsFailure()) return exception->ToFailureUnchecked();
return Failure::Exception(); return Failure::Exception();
} }

2
deps/v8/src/version.cc

@ -35,7 +35,7 @@
#define MAJOR_VERSION 3 #define MAJOR_VERSION 3
#define MINOR_VERSION 1 #define MINOR_VERSION 1
#define BUILD_NUMBER 8 #define BUILD_NUMBER 8
#define PATCH_LEVEL 14 #define PATCH_LEVEL 16
#define CANDIDATE_VERSION false #define CANDIDATE_VERSION false
// Define SONAME to have the SCons build the put a specific SONAME into the // Define SONAME to have the SCons build the put a specific SONAME into the

2
deps/v8/src/x64/assembler-x64.cc

@ -1379,7 +1379,7 @@ void Assembler::jmp(NearLabel* L) {
EnsureSpace ensure_space(this); EnsureSpace ensure_space(this);
last_pc_ = pc_; last_pc_ = pc_;
if (L->is_bound()) { if (L->is_bound()) {
const int short_size = sizeof(int8_t); const int short_size = 2;
int offs = L->pos() - pc_offset(); int offs = L->pos() - pc_offset();
ASSERT(offs <= 0); ASSERT(offs <= 0);
ASSERT(is_int8(offs - short_size)); ASSERT(is_int8(offs - short_size));

7
doc/api/net.markdown

@ -104,12 +104,13 @@ when the server has been bound.
Start a server listening for connections on the given file descriptor. Start a server listening for connections on the given file descriptor.
This file descriptor must have already had the `bind(2)` and `listen(2)` system This file descriptor must have already had the `bind(2)` and `listen(2)` system
calls invoked on it. calls invoked on it. Additionally, it must be set non-blocking; try
`fcntl(fd, F_SETFL, O_NONBLOCK)`.
#### server.pause(msecs) #### server.pause(msecs)
Stop accepting connections for the given number of milliseconds (default is Stop accepting connections for the given number of milliseconds (default is
one second). This could be useful for throttling new connections against one second). This could be useful for throttling new connections against
DoS attacks or other oversubscription. DoS attacks or other oversubscription.
#### server.close() #### server.close()

8
doc/index.html

@ -26,7 +26,7 @@
<li><a href="#download">Download</a></li> <li><a href="#download">Download</a></li>
<li><a href="https://github.com/joyent/node/raw/v0.4/ChangeLog">ChangeLog</a></li> <li><a href="https://github.com/joyent/node/raw/v0.4/ChangeLog">ChangeLog</a></li>
<li><a href="#about">About</a></li> <li><a href="#about">About</a></li>
<li><a href="http://nodejs.org/docs/v0.4.7/api">v0.4.7 docs</a></li> <li><a href="http://nodejs.org/docs/v0.4.8/api">v0.4.8 docs</a></li>
<br/> <br/>
<li><a href="https://github.com/joyent/node/wiki">Wiki</a></li> <li><a href="https://github.com/joyent/node/wiki">Wiki</a></li>
<li><a href="http://blog.nodejs.org/">Blog</a></li> <li><a href="http://blog.nodejs.org/">Blog</a></li>
@ -108,9 +108,9 @@ server.listen(1337, "127.0.0.1");
</p> </p>
<p> <p>
2011.04.22 2011.05.20
<a href="http://nodejs.org/dist/node-v0.4.7.tar.gz">node-v0.4.7.tar.gz</a> <a href="http://nodejs.org/dist/node-v0.4.8.tar.gz">node-v0.4.8.tar.gz</a>
(<a href="http://nodejs.org/docs/v0.4.7/api/index.html">Documentation</a>) (<a href="http://nodejs.org/docs/v0.4.8/api/index.html">Documentation</a>)
</p> </p>
<p>Historical: <a href="http://nodejs.org/dist">versions</a>, <a href="http://nodejs.org/docs">docs</a></p> <p>Historical: <a href="http://nodejs.org/dist">versions</a>, <a href="http://nodejs.org/docs">docs</a></p>

6
lib/http.js

@ -1089,7 +1089,11 @@ function connectionListener(socket) {
// When we're finished writing the response, check if this is the last // When we're finished writing the response, check if this is the last
// respose, if so destroy the socket. // respose, if so destroy the socket.
res.on('finish', function() { res.on('finish', function() {
assert(incoming[0] === req); // Usually the first incoming element should be our request. it may
// be that in the case abortIncoming() was called that the incoming
// array will be empty.
assert(incoming.length == 0 || incoming[0] === req);
incoming.shift(); incoming.shift();
res.detachSocket(socket); res.detachSocket(socket);

2
wscript

@ -875,7 +875,7 @@ def build(bld):
, 'CPPFLAGS' : " ".join(program.env["CPPFLAGS"]).replace('"', '\\"') , 'CPPFLAGS' : " ".join(program.env["CPPFLAGS"]).replace('"', '\\"')
, 'LIBFLAGS' : " ".join(program.env["LIBFLAGS"]).replace('"', '\\"') , 'LIBFLAGS' : " ".join(program.env["LIBFLAGS"]).replace('"', '\\"')
, 'PREFIX' : safe_path(program.env["PREFIX"]) , 'PREFIX' : safe_path(program.env["PREFIX"])
, 'VERSION' : '0.4.7' # FIXME should not be hard-coded, see NODE_VERSION_STRING in src/node_version. , 'VERSION' : '0.4.8' # FIXME should not be hard-coded, see NODE_VERSION_STRING in src/node_version.
} }
return x return x

Loading…
Cancel
Save