mirror of https://github.com/lukechilds/node.git
isaacs
12 years ago
53 changed files with 1032 additions and 205 deletions
@ -0,0 +1,25 @@ |
|||
var LRU = require('lru-cache'); |
|||
|
|||
var max = +process.argv[2] || 10240; |
|||
var more = 1024; |
|||
|
|||
var cache = LRU({ |
|||
max: max, maxAge: 86400e3 |
|||
}); |
|||
|
|||
// fill cache
|
|||
for (var i = 0; i < max; ++i) { |
|||
cache.set(i, {}); |
|||
} |
|||
|
|||
var start = process.hrtime(); |
|||
|
|||
// adding more items
|
|||
for ( ; i < max+more; ++i) { |
|||
cache.set(i, {}); |
|||
} |
|||
|
|||
var end = process.hrtime(start); |
|||
var msecs = end[0] * 1E3 + end[1] / 1E6; |
|||
|
|||
console.log('adding %d items took %d ms', more, msecs.toPrecision(5)); |
File diff suppressed because one or more lines are too long
@ -1,13 +1,16 @@ |
|||
# update AUTHORS with: |
|||
# git log --all --reverse --format='%aN <%aE>' | perl -ne 'BEGIN{print "# Authors ordered by first contribution.\n"} print unless $h{$_}; $h{$_} = 1' > AUTHORS |
|||
<rm@joyent.com> <rm@fingolfin.org> |
|||
<ryan@joyent.com> <ry@tinyclouds.org> |
|||
<bertbelder@gmail.com> <info@2bs.nl> |
|||
<alan@prettyrobots.com> <alan@blogometer.com> |
|||
San-Tai Hsu <vanilla@fatpipi.com> |
|||
Isaac Z. Schlueter <i@izs.me> |
|||
Saúl Ibarra Corretgé <saghul@gmail.com> |
|||
Yuki OKUMURA <mjt@cltn.org> |
|||
Alan Gutierrez <alan@prettyrobots.com> <alan@blogometer.com> |
|||
Bert Belder <bertbelder@gmail.com> <info@2bs.nl> |
|||
Bert Belder <bertbelder@gmail.com> <user@ChrUbuntu.(none)> |
|||
Brandon Philips <brandon.philips@rackspace.com> <brandon@ifup.org> |
|||
Brian White <mscdex@mscdex.net> <mscdex@gmail.com> |
|||
Frank Denis <github@pureftpd.org> |
|||
Isaac Z. Schlueter <i@izs.me> |
|||
Robert Mustacchi <rm@joyent.com> <rm@fingolfin.org> |
|||
Ryan Dahl <ryan@joyent.com> <ry@tinyclouds.org> |
|||
Ryan Emery <seebees@gmail.com> |
|||
San-Tai Hsu <vanilla@fatpipi.com> |
|||
Saúl Ibarra Corretgé <saghul@gmail.com> |
|||
Shigeki Ohtsu <ohtsu@iij.ad.jp> <ohtsu@ohtsu.org> |
|||
Timothy J. Fontaine <tjfontaine@gmail.com> |
|||
Yasuhiro Matsumoto <mattn.jp@gmail.com> |
|||
Yuki Okumura <mjt@cltn.org> |
|||
|
@ -0,0 +1,45 @@ |
|||
2013.02.04, Version 0.10.3 (Stable) |
|||
|
|||
Changes since version 0.10.2: |
|||
|
|||
* include: remove extraneous const from uv_version() (Ben Noordhuis) |
|||
|
|||
* doc: update README, replace `OS` by `PLATFORM` (Ben Noordhuis) |
|||
|
|||
* build: simplify .buildstamp rule (Ben Noordhuis) |
|||
|
|||
* build: disable -Wstrict-aliasing on darwin (Ben Noordhuis) |
|||
|
|||
* darwin: don't select(&exceptfds) in fallback path (Ben Noordhuis) |
|||
|
|||
* unix: don't clear flags after closing UDP handle (Saúl Ibarra Corretgé) |
|||
|
|||
|
|||
2013.03.25, Version 0.10.2 (Stable) |
|||
|
|||
This is the first officially versioned release of libuv. Starting now |
|||
libuv will make releases independently of Node.js. |
|||
|
|||
Changes since Node.js v0.10.0: |
|||
|
|||
* test: add tap output for windows (Timothy J. Fontaine) |
|||
|
|||
* unix: fix uv_tcp_simultaneous_accepts() logic (Ben Noordhuis) |
|||
|
|||
* include: bump UV_VERSION_MINOR (Ben Noordhuis) |
|||
|
|||
* unix: improve uv_guess_handle() implementation (Ben Noordhuis) |
|||
|
|||
* stream: run try_select only for pipes and ttys (Fedor Indutny) |
|||
|
|||
Changes since Node.js v0.10.1: |
|||
|
|||
* build: rename OS to PLATFORM (Ben Noordhuis) |
|||
|
|||
* unix: make uv_timer_init() initialize repeat (Brian Mazza) |
|||
|
|||
* unix: make timers handle large timeouts (Ben Noordhuis) |
|||
|
|||
* build: add OBJC makefile var (Ben Noordhuis) |
|||
|
|||
* Add `uv_version()` and `uv_version_string()` APIs (Bert Belder) |
@ -0,0 +1,60 @@ |
|||
/* Copyright Joyent, Inc. and other Node contributors. All rights reserved.
|
|||
* |
|||
* 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. |
|||
*/ |
|||
|
|||
|
|||
/*
|
|||
* Versions with an even minor version (e.g. 0.6.1 or 1.0.4) are API and ABI |
|||
* stable. When the minor version is odd, the API can change between patch |
|||
* releases. |
|||
*/ |
|||
|
|||
#define UV_VERSION_MAJOR 0 |
|||
#define UV_VERSION_MINOR 10 |
|||
#define UV_VERSION_PATCH 3 |
|||
#define UV_VERSION_IS_RELEASE 1 |
|||
|
|||
|
|||
#define UV_VERSION ((UV_VERSION_MAJOR << 16) | \ |
|||
(UV_VERSION_MINOR << 8) | \ |
|||
(UV_VERSION_PATCH)) |
|||
|
|||
#define UV_STRINGIFY(v) UV_STRINGIFY_HELPER(v) |
|||
#define UV_STRINGIFY_HELPER(v) #v |
|||
|
|||
#define UV_VERSION_STRING_BASE UV_STRINGIFY(UV_VERSION_MAJOR) "." \ |
|||
UV_STRINGIFY(UV_VERSION_MINOR) "." \ |
|||
UV_STRINGIFY(UV_VERSION_PATCH) |
|||
|
|||
#if UV_VERSION_IS_RELEASE |
|||
# define UV_VERSION_STRING UV_VERSION_STRING_BASE |
|||
#else |
|||
# define UV_VERSION_STRING UV_VERSION_STRING_BASE "-pre" |
|||
#endif |
|||
|
|||
|
|||
unsigned int uv_version(void) { |
|||
return UV_VERSION; |
|||
} |
|||
|
|||
|
|||
const char* uv_version_string(void) { |
|||
return UV_VERSION_STRING; |
|||
} |
@ -0,0 +1,87 @@ |
|||
date: Thu Mar 28 13:00:39 PDT 2013 |
|||
version: 0.10.2 |
|||
category: release |
|||
title: Node v0.10.2 (Stable) |
|||
slug: node-v0-10-2-stable |
|||
|
|||
2013.03.28, Version 0.10.2 (Stable) |
|||
|
|||
* npm: Upgrade to 1.2.15 |
|||
|
|||
* uv: Upgrade to 0.10.3 |
|||
|
|||
* tls: handle SSL_ERROR_ZERO_RETURN (Fedor Indutny) |
|||
|
|||
* tls: handle errors before calling C++ methods (Fedor Indutny) |
|||
|
|||
* tls: remove harmful unnecessary bounds checking (Marcel Laverdet) |
|||
|
|||
* crypto: make getCiphers() return non-SSL ciphers (Ben Noordhuis) |
|||
|
|||
* crypto: check randomBytes() size argument (Ben Noordhuis) |
|||
|
|||
* timers: do not calculate Timeout._when property (Alexey Kupershtokh) |
|||
|
|||
* timers: fix off-by-one ms error (Alexey Kupershtokh) |
|||
|
|||
* timers: handle signed int32 overflow in enroll() (Fedor Indutny) |
|||
|
|||
* stream: Fix stall in Transform under very specific conditions (Gil Pedersen) |
|||
|
|||
* stream: Handle late 'readable' event listeners (isaacs) |
|||
|
|||
* stream: Fix early end in Writables on zero-length writes (isaacs) |
|||
|
|||
* domain: fix domain callback from MakeCallback (Trevor Norris) |
|||
|
|||
* child_process: don't emit same handle twice (Ben Noordhuis) |
|||
|
|||
* child_process: fix sending utf-8 to child process (Ben Noordhuis) |
|||
|
|||
|
|||
Source Code: http://nodejs.org/dist/v0.10.2/node-v0.10.2.tar.gz |
|||
|
|||
Macintosh Installer (Universal): http://nodejs.org/dist/v0.10.2/node-v0.10.2.pkg |
|||
|
|||
Windows Installer: http://nodejs.org/dist/v0.10.2/node-v0.10.2-x86.msi |
|||
|
|||
Windows x64 Installer: http://nodejs.org/dist/v0.10.2/x64/node-v0.10.2-x64.msi |
|||
|
|||
Windows x64 Files: http://nodejs.org/dist/v0.10.2/x64/ |
|||
|
|||
Linux 32-bit Binary: http://nodejs.org/dist/v0.10.2/node-v0.10.2-linux-x86.tar.gz |
|||
|
|||
Linux 64-bit Binary: http://nodejs.org/dist/v0.10.2/node-v0.10.2-linux-x64.tar.gz |
|||
|
|||
Solaris 32-bit Binary: http://nodejs.org/dist/v0.10.2/node-v0.10.2-sunos-x86.tar.gz |
|||
|
|||
Solaris 64-bit Binary: http://nodejs.org/dist/v0.10.2/node-v0.10.2-sunos-x64.tar.gz |
|||
|
|||
Other release files: http://nodejs.org/dist/v0.10.2/ |
|||
|
|||
Website: http://nodejs.org/docs/v0.10.2/ |
|||
|
|||
Documentation: http://nodejs.org/docs/v0.10.2/api/ |
|||
|
|||
Shasums: |
|||
|
|||
``` |
|||
860ed25d3e77d4676b5512f87f3f98b6783ee258 node-v0.10.2-darwin-x64.tar.gz |
|||
811eb3b66651dfffeaf928496e8eecab5c9304fb node-v0.10.2-darwin-x86.tar.gz |
|||
0013be477da5d066471390c9964f796356b48948 node-v0.10.2-linux-x64.tar.gz |
|||
97c3a052d833bfc799bc9b748520a15cfb189a58 node-v0.10.2-linux-x86.tar.gz |
|||
17bc5bf26af7da790e6b0c4cbb2b73ea1c9f2ed5 node-v0.10.2-sunos-x64.tar.gz |
|||
5e02e35cc15ae56953921ad4c8e45b849c736e20 node-v0.10.2-sunos-x86.tar.gz |
|||
2adb1bf5919fb8adeaf96edd8a8ed16d71a3f8f8 node-v0.10.2-x86.msi |
|||
73ff97a4d2d3bb1f468db2654b5b59a28f868cce node-v0.10.2.pkg |
|||
759a05eff48ff0b54e55748012c5c45502f7cecd node-v0.10.2.tar.gz |
|||
6c1336a61395747fed20a12c8977a2b2ecf23354 node.exe |
|||
f0775d4f649ee9c3d5614fdb26e64bc7d000cd5d node.exp |
|||
9860c6eb9062fbdc50b515f4ccab179f74dd3ec8 node.lib |
|||
d41d99a3921022533c1760e15447ce3acf050a7d node.pdb |
|||
1dbd11a5278831356daca035fe5bbbe1062798b4 x64/node-v0.10.2-x64.msi |
|||
d36abd4ecf02c522e8c75fce24eab1ce800d6458 x64/node.exe |
|||
295a950fe3c1c3ceb04249474388b891bf2a39ed x64/node.exp |
|||
b64eabafc3f9498552b3ea97bd0d922db1f90f75 x64/node.lib |
|||
1f31d6c0079e9f2c9a6de3d956649d83ca6e7a25 x64/node.pdb |
|||
``` |
@ -0,0 +1,39 @@ |
|||
// 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.
|
|||
|
|||
|
|||
// Simple tests of most basic domain functionality.
|
|||
|
|||
var common = require('../common'); |
|||
var assert = require('assert'); |
|||
|
|||
// timeouts call the callback directly from cc, so need to make sure the
|
|||
// domain will be used regardless
|
|||
setTimeout(function() { |
|||
var domain = require('domain'); |
|||
var d = domain.create(); |
|||
d.run(function() { |
|||
process.nextTick(function() { |
|||
console.trace('in nexttick', process.domain === d) |
|||
assert.equal(process.domain, d); |
|||
}); |
|||
}); |
|||
}); |
@ -0,0 +1,106 @@ |
|||
// 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 Readable = require('stream').Readable; |
|||
|
|||
(function first() { |
|||
// First test, not reading when the readable is added.
|
|||
// make sure that read(0) triggers a readable event.
|
|||
var r = new Readable({ |
|||
highWaterMark: 3 |
|||
}); |
|||
|
|||
r._read = function(n) { |
|||
r.push(new Buffer(new Array(n + 1).join('x'))); |
|||
}; |
|||
|
|||
// This triggers a 'readable' event, which is lost.
|
|||
r.push(new Buffer('blerg')); |
|||
|
|||
var caughtReadable = false; |
|||
setTimeout(function() { |
|||
r.on('readable', function() { |
|||
caughtReadable = true; |
|||
}); |
|||
}); |
|||
|
|||
process.on('exit', function() { |
|||
assert(caughtReadable); |
|||
console.log('ok 1'); |
|||
}); |
|||
})(); |
|||
|
|||
(function second() { |
|||
// second test, make sure that readable is re-emitted if there's
|
|||
// already a length, while it IS reading.
|
|||
|
|||
var r = new Readable({ |
|||
highWaterMark: 3 |
|||
}); |
|||
|
|||
r._read = function(n) { |
|||
setTimeout(function() { |
|||
r.push(new Buffer(new Array(n + 1).join('x'))); |
|||
}); |
|||
}; |
|||
|
|||
// This triggers a 'readable' event, which is lost.
|
|||
r.push(new Buffer('blerg')); |
|||
|
|||
var caughtReadable = false; |
|||
process.nextTick(function() { |
|||
r.on('readable', function() { |
|||
caughtReadable = true; |
|||
}); |
|||
}); |
|||
|
|||
process.on('exit', function() { |
|||
assert(caughtReadable); |
|||
console.log('ok 2'); |
|||
}); |
|||
})(); |
|||
|
|||
(function third() { |
|||
// Third test, not reading when the stream has not passed
|
|||
// the highWaterMark but *has* reached EOF.
|
|||
var r = new Readable({ |
|||
highWaterMark: 30 |
|||
}); |
|||
|
|||
// This triggers a 'readable' event, which is lost.
|
|||
r.push(new Buffer('blerg')); |
|||
r.push(null); |
|||
|
|||
var caughtReadable = false; |
|||
setTimeout(function() { |
|||
r.on('readable', function() { |
|||
caughtReadable = true; |
|||
}); |
|||
}); |
|||
|
|||
process.on('exit', function() { |
|||
assert(caughtReadable); |
|||
console.log('ok 3'); |
|||
}); |
|||
})(); |
@ -0,0 +1,68 @@ |
|||
// 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.
|
|||
|
|||
if (!process.versions.openssl) { |
|||
console.error('Skipping because node compiled without OpenSSL.'); |
|||
process.exit(0); |
|||
} |
|||
|
|||
var common = require('../common'); |
|||
var common = require('../common'); |
|||
var tls = require('tls'); |
|||
var fs = require('fs'); |
|||
var assert = require('assert'); |
|||
|
|||
var options = { |
|||
key: fs.readFileSync(common.fixturesDir + '/test_key.pem'), |
|||
cert: fs.readFileSync(common.fixturesDir + '/test_cert.pem') |
|||
}; |
|||
|
|||
var gotError = 0, |
|||
gotRequest = 0, |
|||
connected = 0; |
|||
|
|||
var server = tls.createServer(options, function(c) { |
|||
gotRequest++; |
|||
c.on('data', function(data) { |
|||
console.log(data.toString()); |
|||
}); |
|||
|
|||
c.on('close', function() { |
|||
server.close(); |
|||
}); |
|||
}).listen(common.PORT, function() { |
|||
var c = tls.connect(common.PORT, { rejectUnauthorized: false }, function() { |
|||
connected++; |
|||
c.pair.ssl.shutdown(); |
|||
c.write('123'); |
|||
c.destroy(); |
|||
}); |
|||
|
|||
c.once('error', function() { |
|||
gotError++; |
|||
}); |
|||
}); |
|||
|
|||
process.once('exit', function() { |
|||
assert.equal(gotError, 1); |
|||
assert.equal(gotRequest, 1); |
|||
assert.equal(connected, 1); |
|||
}); |
Loading…
Reference in new issue