Compare commits

...

514 Commits

Author SHA1 Message Date
isaacs
5cda2542fd 2012.03.30, Version 0.7.7 (unstable)
* Upgrade V8 to 3.9.24.7

* Upgrade npm to 1.1.15

* Handle Emoji characters properly (Erik Corry, Bert Belder)

* readline: migrate ansi/vt100 logic from tty to readline (Nathan Rajlich)

* readline: Fix multiline handling (Alex Kocharin)

* add a -i/--interactive flag to force the REPL (Nathan Rajlich)

* debugger: add breakOnException command (Fedor Indutny)

* cluster: kill workers when master dies (Andreas Madsen)

* cluster: add graceful disconnect support (Andreas Madsen)

* child_process: Separate 'close' event from 'exit' (Charlie McConnell)

* typed arrays: add Uint8ClampedArray (Mikael Bourges-Sevenier)

* buffer: Fix byte alignment issues (Ben Noordhuis, Erik Lundin)

* tls: fix CryptoStream.setKeepAlive() (Shigeki Ohtsu)

* Expose http parse error codes (Felix Geisendörfer)

* events: don't delete the listeners array (Ben Noordhuis, Nathan Rajlich)

* process: add process.config to view node's ./configure settings (Nathan Rajlich)

* process: process.execArgv to see node's arguments (Micheil Smith)

* process: fix process.title setter (Ben Noordhuis)

* timers: handle negative or non-numeric timeout values (Ben Noordhuis)
2012-03-29 20:20:23 -07:00
isaacs
9a70d99980 Upgrade npm to 1.1.15 2012-03-29 20:20:23 -07:00
isaacs
7abbda8ba2 Make rules for release blog post and email message 2012-03-29 16:04:48 -07:00
isaacs
6ebe9e0c1d Upgrade V8 to 3.9.24.7 2012-03-29 16:04:48 -07:00
Nathan Rajlich
304f1fcf86 tty: clarify that tty.setRawMode() has moved to process.stdin
Technically saying `tty.ReadStream#setRawMode()` is correct,
but since a typical use cannot instantiate `tty.ReadStream` themselves,
and 99% of the time the only instance is `process.stdin`,
then a little clarification seemed necessary.
2012-03-29 13:15:24 -07:00
isaacs
6aa755070a More logging in simple/test-eio-race
Travis-CI is failing on this test repeatedly, but other Linux systems
seem to be fine with it.  Alter the logging so it's more clear which
part is timing out.
2012-03-29 08:41:51 -07:00
Ben Noordhuis
11770bf5e2 test: move pummel/test-tls-fragmentation to benchmark/
Said test takes over 90 seconds on my Core 2 Duo which is too long, even for
the pummel tests.
2012-03-29 17:25:37 +02:00
Yosef Dinerstein
d7c96cf289 tls: reduce memory overhead, reuse buffer
Instead of allocating a new 64KB buffer each time when checking if there is
something to transform, continue to use the same buffer. Once the buffer is
exhausted, allocate a new buffer. This solves the problem of huge allocations
when small fragments of data are processed, but will also continue to work
well with big pieces of data.
2012-03-29 17:17:15 +02:00
Ben Noordhuis
daa6b95b08 test: move simple/test-crypto-dh to pummel/
The test is too slow / CPU intensive for the main test harness.
2012-03-29 17:12:26 +02:00
Ben Noordhuis
5e7cb68be9 test: remove simple/test-module-load-list
Said test adds little value and only serves to annoy me when moving around
modules. It was broken anyway: it passed inside the test runner and failed
when run from the command line thanks to the environment sniffing it did.
2012-03-29 17:11:37 +02:00
ssuda
44eb279ef8 zlib: don't use C++ templates
Reduces the executable's size by a few kilobytes.
2012-03-29 14:22:37 +02:00
Shigeki Ohtsu
26b6da134f doc: change stability index of tty and readline to Unstable 2012-03-28 20:13:28 -07:00
Shigeki Ohtsu
238e12af22 tty: show deprecated warn of tty.setRawMode() 2012-03-28 20:13:23 -07:00
Shigeki Ohtsu
b521ff3b4f tty: add keypress event for backwards-compat 2012-03-28 20:12:38 -07:00
isaacs
af90faf198 Patches floating on V8 2012-03-28 19:54:01 -07:00
isaacs
4b64542fe0 Upgrade V8 to 3.9.24.6 2012-03-28 19:51:38 -07:00
isaacs
8a15147bc5 Reapply "debug: Wait 50ms before running the main module"
This reapplies commit c781f17742
This reverts commit 00224771e3
2012-03-28 19:41:29 -07:00
isaacs
cda3b6ff52 Upgrade npm to 1.1.14 2012-03-28 19:36:44 -07:00
Ben Noordhuis
b031671138 tty, readline: fix style errors 2012-03-29 01:36:46 +02:00
Erik Lundin
973bbecf1a typed arrays: prevent unaligned typed array views on top of buffers 2012-03-29 01:36:45 +02:00
Ben Noordhuis
285d8c6589 buffer: align fast buffers on 8 byte boundary
Prevents alignment issues when people create a typed array from a buffer.
Unaligned loads or stores are less efficent and (on some architectures) unsafe.
2012-03-29 01:31:31 +02:00
Mikael Bourges-Sevenier
67fc1dafd0 typed arrays: add Uint8ClampedArray 2012-03-28 22:57:15 +02:00
Nathan Rajlich
48bbdde66b repl: don't write a newline on the readline 'end' event
In the case of the input stream *actually* having been closed, then we
can't write to a closed socket.

Fixes test/simple/test-repl.js
2012-03-28 08:42:40 -07:00
mstarzinger@chromium.org
eb1ff03418 v8: Fix missing initialization of mark-compact flags.
R=svenpanne@chromium.org

Review URL: https://chromiumcodereview.appspot.com/9662056

Cherry-pick of https://v8.googlecode.com/svn/branches/bleeding_edge@11006
2012-03-28 13:04:56 +02:00
Nathan Rajlich
208b230744 repl: add a 'useColors' option to the repl
This should only be minimally used, since the `terminal` value will usually be
what you are expecting. This option is specifically for the case where `terminal`
is false, but you still want colors to be output (or vice-versa).
2012-03-27 18:00:59 -07:00
Nathan Rajlich
a33d1c959a repl: add test case verifying the repl options usage 2012-03-27 17:49:10 -07:00
Nathan Rajlich
b187e96ec9 repl: add a 'writer' option to the repl
Previously this was a module-level setting, meaning that all REPL instances
had to share the same writer function. Turning it into one of the options
allows individual REPL instances to use their own writer function.
2012-03-27 17:39:14 -07:00
Nathan Rajlich
228ddddc1c repl: ensure that 'repl.ignoreUndefined' is a boolean 2012-03-27 17:35:33 -07:00
Nathan Rajlich
e7065eaa93 repl: ensure that 'repl.useGlobal' is a boolean 2012-03-27 17:34:55 -07:00
Nathan Rajlich
f41901cdf6 repl: make ^D emit an 'end' event on the readline instance
Also emit 'exit' on the repl when 'end' is emitted on the readline.

Fixes `node debug test/fixtures/breakpoints.js` when ^D is pressed.
2012-03-27 13:54:49 -07:00
Fedor Indutny
00224771e3 Revert "debug: Wait 50ms before running the main module"
This reverts commit c781f17742.
2012-03-28 01:40:45 +07:00
Fedor Indutny
5e8c2b0768 debugger: use v8 api to wait for a connection
Use v8::Debug::EnableAgent(_, _, true) to wait for incoming
debugger-client connection before emitting any break (or other) events.

This commit should fix test/simple/test-debugger-repl faults.
2012-03-28 01:37:54 +07:00
Nathan Rajlich
698e795a5f repl: fix 'terminal' mode autodetection on global repls
Fixes test/simple/test-force-repl.js
2012-03-26 19:06:58 -07:00
Nathan Rajlich
aad12d0b26 readline: migrate ansi/vt100 logic from tty to readline
The overall goal here is to make readline more interoperable with other node
Streams like say a net.Socket instance, in "terminal" mode.

See #2922 for all the details.
Closes #2922.
2012-03-26 15:21:25 -07:00
Alex Kocharin
ab518ae50e readline: fix for terminals that insert newlines automatically
Fixes #2985.
2012-03-26 09:21:55 -07:00
Shigeki Ohtsu
e7792e5d46 test: add test of tls.createServer(honorCipherOrder=true) 2012-03-26 05:03:51 -07:00
Zachary Scott
0dd8e0167d doc: document fs.createReadStream() encodings
Fixes #2700.
2012-03-26 00:25:45 +02:00
Andreas Madsen
83aae35b8e doc: fix markup in cluster docs 2012-03-26 00:20:17 +02:00
Shigeki Ohtsu
4515987058 doc: fix default dgram multicast ttl to 1 2012-03-23 17:24:10 +01:00
Shigeki Ohtsu
75face6139 doc: fix TLS cipher names 2012-03-23 17:11:13 +01:00
Shigeki Ohtsu
8727e5f2be test: add test of cleartextStream.getCipher() in tls 2012-03-23 17:09:50 +01:00
Shigeki Ohtsu
2cf5f040a5 doc: add cleartextStream.getCipher() in tls 2012-03-23 17:09:50 +01:00
ssuda
249c3c165a Avoiding unnecessary ToString() calls
String::Utf8Value and String::AsciiValue constructors take Handle<Value>
So no need to convert to Handle<String>
2012-03-23 01:02:59 +01:00
Shigeki Ohtsu
e1199fa335 tls: fix CryptoStream.setKeepAlive() 2012-03-23 00:20:46 +01:00
Lal Jérémy
ef046bf4f6 test: generate 1024-bit keys, pacify openssl 1.0.1 2012-03-22 23:35:22 +01:00
Nathan Rajlich
feaa8a41c7 cmd: add a -i / --interactive flag to force the REPL
This is the only way to spawn a node child process in REPL mode, and will
also be needed to be able to use the REPL in MinTTY.
2012-03-21 00:05:25 -07:00
isaacs
d2389f8fab debug repl tests: Add visibility, remove test that times out
The 'Can't backtrace now' message takes over 10 seconds to return.
That's too much time to have to wait for a test, and when it times
out, it was causing an orphaned node process.

This cleans up the node process, and also removes the test that's
timing out, so that the case is hit less often.

Todo: Make the backtrace message come back faster.
2012-03-20 19:48:07 -07:00
isaacs
c781f17742 debug: Wait 50ms before running the main module 2012-03-20 19:46:36 -07:00
isaacs
81cd3a3cd6 lint readline.js - single-quotes preferred 2012-03-20 19:42:34 -07:00
Erik Lundin
4b1d492561 test: merge typed arrays tests
Merge simple/test-typed-arrays-typenames into simple/test-typed-arrays.
2012-03-21 01:59:40 +01:00
Erik Lundin
f2ebf2469b test: fix simple/test-typed-arrays
* It incorrectly uses assert(a, b) instead of assert.equal(a, b), meaning all
  relevant assertions will pass regardless of whether they're supposed to when
  a == true.

* It makes the assumption that elements in typed arrays for numerical types
  spanning more than one byte, like Uint32Array, are stored little-endian first
  on all machines.

* It contains assorted mistakes like assert(Int32Array, typeof v4) (that one
  only passes thanks to point 1).
2012-03-21 01:59:33 +01:00
Johannes Wüller
7817f48322 fixed booleans being treated as strings, resulting in missing node-waf and npm 2012-03-20 17:46:08 -07:00
Alex Kocharin
06a058d731 readline: row-agnostic multiline readline implementation
Fixes #2959.
2012-03-20 15:37:06 -07:00
Nathan Rajlich
8517089b3e Revert "readline: add multiline support"
This reverts commit 443071db57.

Patch was overly compilicated and made some incorrect assumptions about the
position of the cursor being at the bottom of the screen. @rlidwka and I are
working on getting a proper implementation written.
2012-03-20 15:37:06 -07:00
ssuda
253ec6a63d process: don't use strdup()
file and cwd can be directly used from Utf8Value.
2012-03-20 17:59:21 +01:00
Alex Kocharin
415bff26fe repl: fix space autocompletion bug
Tapping <SP> + <TAB> would exit the REPL.
2012-03-20 12:27:59 +01:00
Felix Geisendörfer
18240193ba Expose http parse error codes
Currently http parse errors do not expose the error details available
from http_parser. This patch exposes the error code as `err.code`.
2012-03-19 19:00:16 -07:00
Shigeki Ohtsu
891f9defeb No need to have NativeModule.require('fs') in Module._findPath() 2012-03-19 18:58:58 -07:00
isaacs
dce8682827 cluster: English language fixing 2012-03-19 14:28:39 -07:00
Andreas Madsen
94d337eb0f cluster: kill workers when master dies
This patch will kill the worker once it has lost its connection with the parent.
However if the worker are doing a suicide, other measures will be used.
2012-03-19 14:22:36 -07:00
Andreas Madsen
d927fbc9ab cluster: add graceful disconnect support
This patch add a worker.disconnect() method there will stop the worker from accepting
new connections and then stop the IPC. This allow the worker to die graceful.
When the IPC has been disconnected a 'disconnect' event will emit.

The patch also add a cluster.disconnect() method, this will call worker.disconnect() on
all connected workers. When the workers are disconneted it will then close all server
handlers. This allow the cluster itself to self terminate in a graceful way.
2012-03-19 13:29:01 -07:00
Andreas Madsen
ab32e9e043 child_process: emit 'channel closed' error instead of throwing 2012-03-19 11:55:41 -07:00
isaacs
89653cb32f Upgrade npm to 1.1.10 2012-03-19 09:59:57 -07:00
Fedor Indutny
7418905aef debugger: breakOnException
Do not break automatically on exception, fixes #2926
2012-03-19 22:21:29 +06:00
Fedor Indutny
b6cb6ce0d3 debugger: remove 'repl' command from builtinLibs
* It was displaying useless warning
2012-03-19 22:21:28 +06:00
Fedor Indutny
f61d4b7a87 debugger: exit process on repl exit
* When entering repl - clone 'SIGINT' listeners array (instead of using
existing), as it will be spliced in .removeAllListeners() call later.
2012-03-19 22:21:28 +06:00
Ben Noordhuis
d8c4ecea0b test: fix race in simple/test-cluster-master-error
Said test checks that the workers shut down when the master errors but it failed
intermittently. Insert a small delay before doing the 'is dead?' check to give
the workers a chance to shut down.
2012-03-19 17:12:52 +01:00
Your Name
fb47a337ba test: changed instances of == to === 2012-03-19 14:24:46 +01:00
Nathan Rajlich
70e68893fe build: make --openssl-use-sys a boolean option
Before you had to enter a truthy value like: --openssl-use-sys=1
2012-03-17 12:57:24 -07:00
isaacs
815169383e Fix include logic was replacing https include with http 2012-03-17 11:11:07 -07:00
isaacs
7bee98bae2 Ignore 'making a build' artifacts 2012-03-17 11:11:03 -07:00
Alex Xu
5abcdc9671 build: fix configure with spaces in CC 2012-03-16 16:01:53 -07:00
isaacs
76a771b749 doc: Remove extraneous index.html's from hyperlinks 2012-03-16 08:19:26 -07:00
isaacs
46376888cd Remove hard-coded version number from docs 2012-03-16 08:13:41 -07:00
isaacs
ec735cbce0 Merge remote-tracking branch 'ry/v0.6' into merge-v0.6
Conflicts:
	ChangeLog
	deps/npm/AUTHORS
	deps/npm/html/api/bin.html
	deps/npm/html/api/bugs.html
	deps/npm/html/api/commands.html
	deps/npm/html/api/config.html
	deps/npm/html/api/deprecate.html
	deps/npm/html/api/docs.html
	deps/npm/html/api/edit.html
	deps/npm/html/api/explore.html
	deps/npm/html/api/help-search.html
	deps/npm/html/api/init.html
	deps/npm/html/api/install.html
	deps/npm/html/api/link.html
	deps/npm/html/api/load.html
	deps/npm/html/api/ls.html
	deps/npm/html/api/npm.html
	deps/npm/html/api/outdated.html
	deps/npm/html/api/owner.html
	deps/npm/html/api/pack.html
	deps/npm/html/api/prefix.html
	deps/npm/html/api/prune.html
	deps/npm/html/api/publish.html
	deps/npm/html/api/rebuild.html
	deps/npm/html/api/restart.html
	deps/npm/html/api/root.html
	deps/npm/html/api/run-script.html
	deps/npm/html/api/search.html
	deps/npm/html/api/shrinkwrap.html
	deps/npm/html/api/start.html
	deps/npm/html/api/stop.html
	deps/npm/html/api/submodule.html
	deps/npm/html/api/tag.html
	deps/npm/html/api/test.html
	deps/npm/html/api/uninstall.html
	deps/npm/html/api/unpublish.html
	deps/npm/html/api/update.html
	deps/npm/html/api/version.html
	deps/npm/html/api/view.html
	deps/npm/html/api/whoami.html
	deps/npm/html/doc/README.html
	deps/npm/html/doc/adduser.html
	deps/npm/html/doc/bin.html
	deps/npm/html/doc/bugs.html
	deps/npm/html/doc/build.html
	deps/npm/html/doc/bundle.html
	deps/npm/html/doc/cache.html
	deps/npm/html/doc/changelog.html
	deps/npm/html/doc/coding-style.html
	deps/npm/html/doc/completion.html
	deps/npm/html/doc/config.html
	deps/npm/html/doc/deprecate.html
	deps/npm/html/doc/developers.html
	deps/npm/html/doc/disputes.html
	deps/npm/html/doc/docs.html
	deps/npm/html/doc/edit.html
	deps/npm/html/doc/explore.html
	deps/npm/html/doc/faq.html
	deps/npm/html/doc/folders.html
	deps/npm/html/doc/help-search.html
	deps/npm/html/doc/help.html
	deps/npm/html/doc/index.html
	deps/npm/html/doc/init.html
	deps/npm/html/doc/install.html
	deps/npm/html/doc/json.html
	deps/npm/html/doc/link.html
	deps/npm/html/doc/list.html
	deps/npm/html/doc/npm.html
	deps/npm/html/doc/outdated.html
	deps/npm/html/doc/owner.html
	deps/npm/html/doc/pack.html
	deps/npm/html/doc/prefix.html
	deps/npm/html/doc/prune.html
	deps/npm/html/doc/publish.html
	deps/npm/html/doc/rebuild.html
	deps/npm/html/doc/registry.html
	deps/npm/html/doc/removing-npm.html
	deps/npm/html/doc/restart.html
	deps/npm/html/doc/root.html
	deps/npm/html/doc/run-script.html
	deps/npm/html/doc/scripts.html
	deps/npm/html/doc/search.html
	deps/npm/html/doc/semver.html
	deps/npm/html/doc/shrinkwrap.html
	deps/npm/html/doc/star.html
	deps/npm/html/doc/start.html
	deps/npm/html/doc/stop.html
	deps/npm/html/doc/submodule.html
	deps/npm/html/doc/tag.html
	deps/npm/html/doc/test.html
	deps/npm/html/doc/uninstall.html
	deps/npm/html/doc/unpublish.html
	deps/npm/html/doc/update.html
	deps/npm/html/doc/version.html
	deps/npm/html/doc/view.html
	deps/npm/html/doc/whoami.html
	deps/npm/man/man1/npm.1
	deps/npm/man/man3/npm.3
	deps/npm/node_modules/node-gyp/README.md
	deps/npm/node_modules/node-gyp/lib/build.js
	deps/npm/node_modules/node-gyp/lib/configure.js
	deps/npm/node_modules/node-gyp/lib/install.js
	deps/npm/node_modules/node-gyp/lib/node-gyp.js
	deps/npm/node_modules/node-gyp/node_modules/ansi/package.json
	deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/package.json
	deps/npm/node_modules/node-gyp/node_modules/glob/package.json
	deps/npm/node_modules/node-gyp/package.json
	deps/npm/package.json
	doc/about/index.html
	doc/api/path.markdown
	doc/community/index.html
	doc/index.html
	doc/logos/index.html
	src/node_version.h
2012-03-16 08:06:54 -07:00
Shigeki Ohtsu
534264d209 doc: Add condition to emit close event of net.Server 2012-03-16 16:01:18 +01:00
Rod Vagg
90b785c09a doc: fix # links from (and within) api/fs 2012-03-16 15:51:33 +01:00
Rod Vagg
6628a3b6ea doc: fix # links from (and within) api/fs 2012-03-16 15:42:26 +01:00
isaacs
0fb4fb4797 Document ChildProcess exit/close event difference 2012-03-15 17:23:39 -07:00
Nathan Rajlich
7cb0f5f84a install: update install.js to use process.config
Now that the node_prefix is available from within node, we can use it :)
2012-03-15 17:15:49 -07:00
Nathan Rajlich
11d8823791 process: add process.config
This is the JS representation of the `config.gypi` file that was used when
compiling node. With this information, you can tell whether the current node
binary has shared or static dependencies, or any other configuration options
that may have been used.
2012-03-15 17:15:18 -07:00
Nathan Rajlich
95fd517431 node.gyp: include the config.gypi file in the js2c inputs list 2012-03-15 17:12:45 -07:00
Nathan Rajlich
bea2e15864 js2c: fix to support files other than ones ending with 2 char extensions
Previously this was basically hard-coded for *.js files, but now we
need to include the 'config.gypi' file in there as well.
2012-03-15 17:12:37 -07:00
Charlie McConnell
c7b8073afc child_process: Separate 'close' event from 'exit'
Currently, a child process does not emit the 'exit' event until 'close' events
have been received on all three of the child's stdio streams.  This change makes
the child object emit 'exit' when the child exits, and a new 'close' event when
all stdio streams are closed.
2012-03-15 17:07:11 -07:00
Nathan Rajlich
928ea564d1 events: don't delete the listeners array in removeListener() 2012-03-15 17:01:29 -07:00
Ben Noordhuis
761a82bc9a test: make .removeAllListeners() test more exhaustive
Also test removal of multiple listeners, it's a separate code path.
2012-03-16 00:25:42 +01:00
Ben Noordhuis
78dc13fbf9 events: don't delete the listeners array
The documentation implies that .removeAllListeners() leaves the listeners array
untouched. Make it so.
2012-03-16 00:20:10 +01:00
Ben Noordhuis
f9aa01de32 test: don't let debugger listen on common.PORT
simple/test-debugger-repl has a tendency to fail and leave behind a stray
process that listens on common.PORT, making later tests fail with EADDRINUSE.
2012-03-16 00:20:10 +01:00
Nathan Rajlich
dc752327bb vcbuild: run the 'configure' script in vcbuild.bat
So that a 'config.gypi' file gets generated, which is
required for the `process.config` object (see #2928).
2012-03-15 16:12:19 -07:00
Ben Noordhuis
1a97998644 process: fix process.title setter
Commit 19fd530 broke the argv initialization logic that's used on linux and
freebsd to update the process name (as displayed in tools like `top`).

Fixes test/simple/test-setproctitle.js.
2012-03-15 23:10:32 +01:00
isaacs
702b46c80d Fix invalid timer test
Previously, setTimeout(fn, 0) would create a new Timer() object,
which has a close() method (and is a bit slower).  The recent
change to more closely emulate browser setTimeout behavior dodges
this path, so this assertion is no longer valid.
2012-03-15 14:53:17 -07:00
Ben Noordhuis
7fc835afe3 timers: handle negative or non-numeric timeout values
Follows browser behaviour by scheduling the callback on the next tick.

Fixes #593.
2012-03-15 13:56:30 -07:00
Maciej Małecki
9a35656210 test: test if forks are spawned with parent's process.execArgv 2012-03-15 13:48:06 -07:00
Maciej Małecki
0113f5a72d test: test process.execArgv 2012-03-15 13:48:05 -07:00
Micheil Smith
19fd5301bf Expose original argv as process.execArgv for cluster and child_process.fork() 2012-03-15 13:47:43 -07:00
Matt Ezell
96e3be3aa3 Added trailing backslash to npm path
Fix #2377: $PATH issues reported for MSI installer
2012-03-15 13:28:01 -07:00
isaacs
b9bd2d3eb9 Now working on v0.6.14 2012-03-15 10:33:33 -07:00
isaacs
9726a259bf Merge branch 'v0.6.13-release' into v0.6 2012-03-15 10:32:58 -07:00
isaacs
9f7f86b534 2012.03.15 Version 0.6.13 (stable)
* Windows: Many libuv test fixes (Bert Belder)

* Windows: avoid uv_guess_handle crash in when fd < 0 (Bert Belder)

* Map EBUSY and ENOTEMPTY errors (Bert Belder)

* Windows: include syscall in fs errors (Bert Belder)

* Fix fs.watch ENOSYS on Linux kernel version mismatch (Ben Noordhuis)

* Update npm to 1.1.9
  - upgrade node-gyp to 0.3.5 (Nathan Rajlich)
  - Fix isaacs/npm#2249 Add cache-max and cache-min configs
  - Properly redirect across https/http registry requests
  - log config usage if undefined key in set function (Kris Windham)
  - Add support for os/cpu fields in package.json (Adam Blackburn)
  - Automatically node-gyp packages containing a binding.gyp
  - Fix failures unpacking in UNC shares
  - Never create un-listable directories
  - Handle cases where an optionalDependency fails to build
2012-03-15 08:45:35 -07:00
isaacs
06bf0707f7 makefile: Fix 'make doc' 2012-03-15 08:22:36 -07:00
isaacs
571a51989e Upgrade libuv to 66a959c4052 2012-03-15 08:18:37 -07:00
isaacs
f631c1d73b Update npm to 1.1.9 2012-03-14 16:44:36 -07:00
isaacs
ad5a108dfd Update uv to 5d21056 2012-03-14 16:44:36 -07:00
Artur Adib
c834ef409e Doc highlight fix 2012-03-14 16:44:36 -07:00
Rod Vagg
c12a1dc5d8 path.exists*() as 2nd level head not 3rd 2012-03-14 16:20:40 -07:00
Shigeki Ohtsu
d2fba2bf35 test: Fix path to require hello-world module 2012-03-14 11:00:52 -07:00
Nathan Rajlich
35043ad8ac process: use NODE_STRINGIFY macro to set process.versions.uv 2012-03-14 01:40:29 +01:00
isaacs
bda08bfa04 Now working on 0.7.7 2012-03-13 14:03:51 -07:00
isaacs
73c874698b Merge branch 'v0.7.6-release' 2012-03-13 14:03:07 -07:00
isaacs
f06abda6f5 2012.03.13, Version 0.7.6 (unstable)
* Upgrade v8 to 3.9.17

* Upgrade npm to 1.1.8
  - Add support for os/cpu fields in package.json (Adam Blackburn)
  - Automatically node-gyp packages containing a binding.gyp
  - Fix failures unpacking in UNC shares
  - Never create un-listable directories
  - Handle cases where an optionalDependency fails to build

* events: newListener emit correct fn when using 'once' (Roly Fentanes)

* url: Ignore empty port component (Łukasz Walukiewicz)

* module: replace 'children' array (isaacs)

* tls: parse multiple values of a key in ssl certificate (Sambasiva Suda)

* cluster: support passing of named pipes (Ben Noordhuis)

* Windows: include syscall in fs errors (Bert Belder)

* http: #2888 Emit end event only once (Igor Zinkovsky)

* readline: add multiline support (Rlidwka)

* process: add `process.hrtime()` (Nathan Rajlich)

* net, http, https: add localAddress option (Dmitry Nizovtsev)

* addon improvements (Nathan Rajlich)

* build improvements (Ben Noordhuis, Sadique Ali, T.C. Hollingsworth, Nathan Rajlich)

* add support for "SEARCH" request methods (Nathan Rajlich)

* expose the zlib and http_parser version in process.versions (Nathan Rajlich)
2012-03-13 13:02:38 -07:00
isaacs
10dc129a4b Update npm to 1.1.8 2012-03-13 13:02:02 -07:00
Nathan Rajlich
884a209ccf docs: document the repl "exit" event 2012-03-13 19:58:54 +01:00
Nathan Rajlich
f9da776b33 process: listen for the "exit" even on the main repl 2012-03-13 19:58:53 +01:00
Nathan Rajlich
f214758dd1 repl: better SIGINT handling behavior
Before:

☮ ~ (master)  node
> asdf
(^C again to quit)
> sdcasd☮ ~ (master) 

Now:

☮ ~/node (repl)  ./node
> asfs
> sda
>
(^C again to quit)
> scdsdc
> sdcsdc
>
(^C again to quit)
> sdc
>
(^C again to quit)
>
☮ ~/node (repl) 

^ note that each new line above is a ctrl+c sequence
2012-03-13 19:58:52 +01:00
Nathan Rajlich
6b5a34cdf3 repl: remove redundant check of rli.rine.length
It get's set to '' 1 line above, so we know that that's always 0.
2012-03-13 19:58:52 +01:00
Nathan Rajlich
b7ddd30181 repl: make sure the REPL always flushes with a newline 2012-03-13 19:58:51 +01:00
Nathan Rajlich
659d449460 repl: make REPLServer emit an "exit" event
This can happen when "SIGINT" is processed by the readline interface,
or when the user types ".exit" into the REPL.
2012-03-13 19:58:50 +01:00
Nathan Rajlich
4f63f9f327 repl: make REPLServer inherit from EventEmitter
This is because it should emit an "exit" event when "SIGINT" is received
from the readline interface, or when ".exit" is typed by the user.
2012-03-13 19:58:50 +01:00
Nathan Rajlich
109b16d488 repl: use path.resolve() for the module.filename
Windows was seeing: "C:\\path\\to\\cwd/repl"
2012-03-13 19:58:49 +01:00
isaacs
8b79a31333 shebang should make file executable as well 2012-03-13 10:00:59 -07:00
Trent Mick
1cdadb1e3b issue #2697: have 'make install' set npm shebang to use its node 2012-03-13 09:35:42 -07:00
Artur Adib
1cecfee634 Doc highlight fix 2012-03-13 09:30:32 -07:00
isaacs
943c396b86 Fix merge conflict in doc/api/readline.markdown 2012-03-13 09:16:48 -07:00
Christian Ress
c15e6905c4 Added destroy method to Zlib object in zlib.js module 2012-03-13 08:24:09 -07:00
isaacs
4e85257c6e Patches floating on V8 2012-03-12 21:50:31 -07:00
isaacs
e4fc2cbfd3 Upgrade v8 to 3.9.17 2012-03-12 21:46:36 -07:00
isaacs
bcb0cc0b18 Upgrade npm to 1.1.6
* Fix #472 Adds support for os/cpu fields in package.json (Adam Blackburn)
* Don't use existing pkg if explicit
* Install missing deps, even if they are in bundleDependencies
* bundle node-gyp
* Automatically node-gyp build stuff with a bindings.gyp
* Fix #2230 Unpack in place. No folder renaming malarky
* Never create un-listable directories
* Fix cases where an optionalDependency fails to build
* Always ignore .wafpickle-7 files
* fix shrinkwrap test
* Fix: bundleDependencies being re-installed unnecessarily
2012-03-12 21:34:07 -07:00
Nathan Rajlich
9701f1c4b2 process: expose the zlib version in use in process.versions 2012-03-12 23:29:20 +01:00
Ben Noordhuis
531eba18a6 zlib: fix include of zlib.h
Including <zlib.h> may lead to false positives when the user specifies a bad
path in `./configure --shared-zlib --shared-zlib-includes=/path/to/zlib`. If
a zlib.h exists somewhere on the system include path (common on UNIX systems),
the compiler will include that instead, possibly leading to header mismatch
errors that are hard to debug.
2012-03-12 23:22:48 +01:00
Łukasz Walukiewicz
677c2c112c Ignore an empty port component when parsing URLs. 2012-03-12 12:46:56 -07:00
isaacs
a10cfba766 module: remove 'exited', replace 'children' array 2012-03-12 10:27:11 -07:00
Yoshihiro Kikuchi
c450ac343f docs: fix using legacy api in the buffer doc 2012-03-12 15:04:53 +01:00
Nao Iizuka
f8ce384446 docs: correct the description of assert.ok() 2012-03-12 02:27:55 +01:00
Ben Noordhuis
4472f7bbc3 http: use HTTP_METHOD_MAP macro 2012-03-12 02:23:34 +01:00
Ben Noordhuis
79cbe1fdbb deps: upgrade http_parser to 8bec3ea 2012-03-12 02:20:52 +01:00
Ben Noordhuis
407ecc6b5f docs: console.dir() prints to stdout, not stderr 2012-03-12 01:37:34 +01:00
ssuda
9b672bcaa2 tls: parsing multiple values of a key in ssl certificate
Fixes #2864.
2012-03-10 23:43:16 +09:00
Nathan Rajlich
36761b2055 process: expose the http_parser version in process.versions 2012-03-10 00:22:42 +01:00
Ben Noordhuis
ff4a9d381d core: use proper #include directives 2012-03-10 00:14:14 +01:00
Ben Noordhuis
8c02f9b7c8 buffer: throw from constructor if length > kMaxLength
Throw, don't abort. `new Buffer(0x3fffffff + 1)` used to bring down the process
with the following error message:

  FATAL ERROR: v8::Object::SetIndexedPropertiesToExternalArrayData() length
  exceeds max acceptable value

Fixes #2280.
2012-03-09 23:57:03 +01:00
Ben Noordhuis
2589d55611 core: add ThrowError(), ThrowTypeError(), ThrowRangeError() 2012-03-09 23:31:03 +01:00
Ben Noordhuis
296b7a580b cluster: support passing of named pipes
Fixes triggered assertion:

  Assertion failed: (0 && "bad address family"), function GetPeerName,
  file ../src/tcp_wrap.cc, line 237.

Fixes #2870.
2012-03-09 09:42:13 -08:00
Ben Noordhuis
9d72a742e3 uv: upgrade 8c78cb4 2012-03-09 09:42:12 -08:00
Igor Zinkovsky
0c68604823 add jslint to vcbuild.bat 2012-03-08 11:39:39 -08:00
Bert Belder
31ad1d29c7 Merge branch 'v0.6' 2012-03-08 03:14:48 +01:00
Bert Belder
3733a85d8d Windows: include syscall in fs errors 2012-03-08 02:57:44 +01:00
Bert Belder
daaccc7cb7 uv: upgrade to 1ac71a31 2012-03-08 02:57:37 +01:00
Igor Zinkovsky
5ad0140f48 Emit end event only once
fixes #2888

Previously a pair of end events would be emitted if a response was
paused/resumed, and the underlying socket was closed while the
response was paused
2012-03-07 13:37:39 -08:00
Yoshihiro Kikuchi
f82ef0f7c3 http: remove ClientRequest.prototype.pause()
ClientRequest.prototype.pause() is not needed. ClientRequest is a writable
stream and deferring to OutgoingMessage.prototype.pause() is broken, the method
does not exist.
2012-03-07 20:17:36 +01:00
Shea Levy
024451c65c fork: don't clear environment by default
- Set options.env to process.env instead of {} by default.
- Shallow clone the passed options.env in case the user passed process.env directly.
2012-03-07 17:25:59 +01:00
Colton Baker
c84b3c4b73 readline: ignore stray escape sequence
Fixes #2876.
2012-03-07 15:05:34 +01:00
Bert Belder
408f450286 client latency benchmark: don't require('request') 2012-03-07 04:52:29 +01:00
isaacs
150053b3fa Typo in http_server_lag.js script
Thanks, @mscdex
2012-03-06 19:31:16 -08:00
isaacs
fb53986a80 Bash script for running http-simple benchmarks 2012-03-06 18:19:17 -08:00
isaacs
17da4242b0 A server with configurable lag for testing 2012-03-06 18:19:17 -08:00
isaacs
d5fca08da4 A benchmark script for measuring client latency 2012-03-06 18:19:17 -08:00
ssuda
b72d43cbf9 dgram: fix when we call .close() inside 'listening' 2012-03-06 22:20:23 +01:00
Ming Liu
b6023905ff docs: correct repl eval callback signature 2012-03-06 20:46:27 +01:00
Nathan Rajlich
07c886f944 process: add process.hrtime()
This commit adds a high-resolution timer function.
2012-03-06 20:43:55 +01:00
Ben Noordhuis
544e5ee1fb bench: add http_simple_auto benchmark
Starts a server and benchmarks it with ab.
2012-03-06 18:11:53 +01:00
Rlidwka
443071db57 readline: add multiline support 2012-03-06 13:37:42 +01:00
Dmitry Nizovtsev
1e9bcf26ce net, http, https: add localAddress option
Binds to a local address before making the outgoing connection.
2012-03-06 13:35:49 +01:00
Igor Zinkovsky
9ea5a4c468 fix simple/test-process-argv-0 on windows 2012-03-05 16:51:04 -08:00
Shigeki Ohtsu
59c3923672 process: show detailed error message in process.dlopen() 2012-03-06 01:34:39 +01:00
Nathan Rajlich
39ce94276a addon: use absolute paths for the node include dirs
This fixes running gyp_addon from across filesystems on Windows.

This is essentially a gyp bug where it's not relativizing properly
across filesystems. See TooTallNate/node-gyp#15 for the gory details.
2012-03-05 22:53:16 +01:00
Nathan Rajlich
1520c7bf5b addon: add module_root_dir gyp variable
For native modules to use in their gyp files.

It gives the absolute path to the root of the module directory, i.e. where your
main binding.gyp file is located.

This seems helpful for some modules where the build system is more advanced and
using absolute paths is a requirement.
2012-03-05 22:39:12 +01:00
Igor Zinkovsky
e10bd5177f disable simple/test-signal-handler on Windows 2012-03-05 13:20:13 -08:00
isaacs
33f9074a62 Mention marked, and add license to doc generator 2012-03-05 10:59:14 -08:00
isaacs
8258bd467a doc: 'filename' arg not guaranteed ever. 2012-03-05 10:28:47 -08:00
Ben Noordhuis
5ebc05f560 build: disable -fvisibility=hidden if gcc < 4.0.0 2012-03-05 17:03:27 +01:00
Ben Noordhuis
5062741bd7 build: make CC command in -fstrict-aliasing check configurable 2012-03-05 17:03:15 +01:00
Sadique Ali
707863c1fb build: make CC command in host check configurable 2012-03-05 16:56:52 +01:00
Ben Noordhuis
c97b4f1971 build: remove unnecessary link flags from node.gyp 2012-03-05 16:41:51 +01:00
Ben Noordhuis
e0796b6f1f uv: upgrade to a93dc7e 2012-03-05 15:38:43 +01:00
isaacs
959a19e118 lint 2012-03-03 23:48:57 -08:00
isaacs
1d5b6f26fe Merge remote-tracking branch 'ry/v0.6' into v0.6-merge
Conflicts:
	ChangeLog
	Makefile
	deps/npm/AUTHORS
	deps/npm/html/api/bin.html
	deps/npm/html/api/bugs.html
	deps/npm/html/api/commands.html
	deps/npm/html/api/config.html
	deps/npm/html/api/deprecate.html
	deps/npm/html/api/docs.html
	deps/npm/html/api/edit.html
	deps/npm/html/api/explore.html
	deps/npm/html/api/help-search.html
	deps/npm/html/api/init.html
	deps/npm/html/api/install.html
	deps/npm/html/api/link.html
	deps/npm/html/api/load.html
	deps/npm/html/api/ls.html
	deps/npm/html/api/npm.html
	deps/npm/html/api/outdated.html
	deps/npm/html/api/owner.html
	deps/npm/html/api/pack.html
	deps/npm/html/api/prefix.html
	deps/npm/html/api/prune.html
	deps/npm/html/api/publish.html
	deps/npm/html/api/rebuild.html
	deps/npm/html/api/restart.html
	deps/npm/html/api/root.html
	deps/npm/html/api/run-script.html
	deps/npm/html/api/search.html
	deps/npm/html/api/shrinkwrap.html
	deps/npm/html/api/start.html
	deps/npm/html/api/stop.html
	deps/npm/html/api/submodule.html
	deps/npm/html/api/tag.html
	deps/npm/html/api/test.html
	deps/npm/html/api/uninstall.html
	deps/npm/html/api/unpublish.html
	deps/npm/html/api/update.html
	deps/npm/html/api/version.html
	deps/npm/html/api/view.html
	deps/npm/html/api/whoami.html
	deps/npm/html/doc/README.html
	deps/npm/html/doc/adduser.html
	deps/npm/html/doc/bin.html
	deps/npm/html/doc/bugs.html
	deps/npm/html/doc/build.html
	deps/npm/html/doc/bundle.html
	deps/npm/html/doc/cache.html
	deps/npm/html/doc/changelog.html
	deps/npm/html/doc/coding-style.html
	deps/npm/html/doc/completion.html
	deps/npm/html/doc/config.html
	deps/npm/html/doc/deprecate.html
	deps/npm/html/doc/developers.html
	deps/npm/html/doc/disputes.html
	deps/npm/html/doc/docs.html
	deps/npm/html/doc/edit.html
	deps/npm/html/doc/explore.html
	deps/npm/html/doc/faq.html
	deps/npm/html/doc/folders.html
	deps/npm/html/doc/help-search.html
	deps/npm/html/doc/help.html
	deps/npm/html/doc/index.html
	deps/npm/html/doc/init.html
	deps/npm/html/doc/install.html
	deps/npm/html/doc/json.html
	deps/npm/html/doc/link.html
	deps/npm/html/doc/list.html
	deps/npm/html/doc/npm.html
	deps/npm/html/doc/outdated.html
	deps/npm/html/doc/owner.html
	deps/npm/html/doc/pack.html
	deps/npm/html/doc/prefix.html
	deps/npm/html/doc/prune.html
	deps/npm/html/doc/publish.html
	deps/npm/html/doc/rebuild.html
	deps/npm/html/doc/registry.html
	deps/npm/html/doc/removing-npm.html
	deps/npm/html/doc/restart.html
	deps/npm/html/doc/root.html
	deps/npm/html/doc/run-script.html
	deps/npm/html/doc/scripts.html
	deps/npm/html/doc/search.html
	deps/npm/html/doc/semver.html
	deps/npm/html/doc/shrinkwrap.html
	deps/npm/html/doc/star.html
	deps/npm/html/doc/start.html
	deps/npm/html/doc/stop.html
	deps/npm/html/doc/submodule.html
	deps/npm/html/doc/tag.html
	deps/npm/html/doc/test.html
	deps/npm/html/doc/uninstall.html
	deps/npm/html/doc/unpublish.html
	deps/npm/html/doc/update.html
	deps/npm/html/doc/version.html
	deps/npm/html/doc/view.html
	deps/npm/html/doc/whoami.html
	deps/npm/lib/install.js
	deps/npm/lib/ls.js
	deps/npm/man/man1/npm.1
	deps/npm/man/man1/shrinkwrap.1
	deps/npm/man/man3/npm.3
	deps/npm/man/man3/shrinkwrap.3
	deps/npm/node_modules/request/main.js
	deps/npm/node_modules/request/package.json
	deps/npm/package.json
	deps/uv/src/unix/core.c
	deps/v8/src/conversions-inl.h
	deps/v8/src/elements.cc
	deps/v8/src/version.cc
	doc/about/index.html
	doc/api/assert.markdown
	doc/api/child_process.markdown
	doc/api/cluster.markdown
	doc/api/crypto.markdown
	doc/api/debugger.markdown
	doc/api/dgram.markdown
	doc/api/dns.markdown
	doc/api/documentation.markdown
	doc/api/events.markdown
	doc/api/fs.markdown
	doc/api/globals.markdown
	doc/api/http.markdown
	doc/api/https.markdown
	doc/api/modules.markdown
	doc/api/net.markdown
	doc/api/os.markdown
	doc/api/path.markdown
	doc/api/process.markdown
	doc/api/querystring.markdown
	doc/api/readline.markdown
	doc/api/stdio.markdown
	doc/api/stream.markdown
	doc/api/timers.markdown
	doc/api/tls.markdown
	doc/api/tty.markdown
	doc/api/url.markdown
	doc/api/util.markdown
	doc/api/vm.markdown
	doc/api/zlib.markdown
	doc/api_assets/style.css
	doc/community/index.html
	doc/index.html
	doc/logos/index.html
	doc/template.html
	src/node_version.h
	tools/doc/html.js
	tools/gyp/test/mac/app-bundle/empty.c
2012-03-03 23:38:52 -08:00
isaacs
5ca5ec33cc doc: css consistency on anchor links 2012-03-03 22:58:47 -08:00
isaacs
f1742c93d7 doc: Don't prune Stability indicators 2012-03-03 22:58:29 -08:00
isaacs
a42b4ad44e doc: Typo'd some stability indicators. 2012-03-03 22:12:43 -08:00
isaacs
1d59a73fef doc: Change 'file_system' module to 'fs' as it should be 2012-03-03 17:14:06 -08:00
isaacs
cf6e4d82e7 Use shorter url for /docs/latest/api 2012-03-03 17:08:46 -08:00
isaacs
2e487379ad doc: Stability and Caveats for fs.watch/watchFile 2012-03-03 17:04:02 -08:00
isaacs
f70be203e4 doc: indentation and structure in fs.markdown 2012-03-03 17:04:02 -08:00
isaacs
c368e46e7f doc: Document JSON docs 2012-03-03 17:03:59 -08:00
isaacs
3dfa98c991 doc: Add link to JSON version of doc 2012-03-03 17:03:56 -08:00
isaacs
2d44dcc8be doc: Add stability indicators to documentation 2012-03-03 17:03:52 -08:00
isaacs
4053c01b53 First arg to fs.fchown is an int, not a string
Bug introduced by 26bfb6bea4

Fix isaacs/npm#2225
2012-03-03 14:40:29 -08:00
Igor Zinkovsky
61be6844aa disable fs.watchFile tests on windows 2012-03-03 14:35:21 -08:00
ssuda
578ba76e6c util: fix util.format() formatting of %% 2012-03-03 18:22:34 +01:00
Shigeki Ohtsu
d6f0ecc622 build: fix gcc version check 2012-03-03 18:07:39 +01:00
Shigeki Ohtsu
b6595c4d60 build: remove unused import from configure script 2012-03-03 18:07:22 +01:00
Jimb Esser
78db18739a tls: proxy set(Timeout|NoDelay|KeepAlive) methods
- fix crash calling ClientRequest::setKeepAlive if the underlying request is
  HTTPS.
- fix discarding of callback parameter when calling ClientRequest::setTimeout on
  HTTPS requests.
- fix discarding of noDelay parameter when calling ClientRequest::setNoDelay on
  HTTPS requests.
2012-03-03 00:28:43 +01:00
isaacs
2f256af412 Now working on v0.6.13 2012-03-02 13:09:09 -08:00
isaacs
353bfbaf93 Merge branch 'v0.6.12-release' into v0.6 2012-03-02 13:09:00 -08:00
isaacs
48a2d34cfe 2012.03.02 Version 0.6.12 (stable)
* Upgrade V8 to 3.6.6.24

* dtrace ustack helper improvements (Dave Pacheco)

* API Documentation refactor (isaacs)

* #2827 net: fix race write() before and after connect() (koichik)

* #2554 #2567 throw if fs args for 'start' or 'end' are strings (AJ ONeal)

* punycode: Update to v1.0.0 (Mathias Bynens)

* Make a fat binary for the OS X pkg (isaacs)

* Fix hang on accessing process.stdin (isaacs)

* repl: make tab completion work on non-objects (Nathan Rajlich)

* Fix fs.watch on OS X (Ben Noordhuis)

* Fix #2515 nested setTimeouts cause premature process exit (Ben Noordhuis)

* windows: fix time conversion in stat (Igor Zinkovsky)

* windows: fs: handle EOF in read (Brandon Philips)

* windows: avoid IOCP short-circuit on non-ifs lsps (Igor Zinkovsky)

* Upgrade npm to 1.1.4 (isaacs)
  - windows fixes
  - Bundle nested bundleDependencies properly
  - install: support --save with url install targets
  - shrinkwrap: behave properly with url-installed modules
  - support installing uncompressed tars or single file modules from urls etc.
  - don't run make clean on rebuild
  - support HTTPS-over-HTTP proxy tunneling
2012-03-02 12:36:45 -08:00
isaacs
ef5b0f4c8e css: Fix fonts on api index page navigation 2012-03-02 12:36:45 -08:00
Dave Pacheco
b47ba2c431 disable omit-frame-pointer on solaris systems 2012-03-02 11:26:06 -08:00
isaacs
2d6a076ab3 Patches floating on v8 2012-03-02 11:26:05 -08:00
isaacs
c0c4e008aa Upgrade V8 to 3.6.6.24 2012-03-02 11:26:05 -08:00
isaacs
1bf3a14353 Upgrade npm to 1.1.4 (minor bugfix) 2012-03-02 09:48:25 -08:00
isaacs
054127112c Upgrade npm to 1.1.3
* Update request to support HTTPS-over-HTTP proxy tunneling
* Throw on undefined envs in config settings
* Update which to 1.0.5
* Fix windows UNC busyloop in findPrefix
* Bundle nested bundleDependencies properly
* Alias adduser to add-user
* Doc updates  (Christian Howe, Henrik Hodne, Andrew Lunny)
* ignore logfd/outfd streams in makeEnv() (Rod Vagg)
* shrinkwrap: Behave properly with url-installed deps
* install: Support --save with url install targets
* Support installing naked tars or single-file modules from urls etc.
* init: Don't add engines section
* Don't run make clean on rebuild
* Added missing unicode replacement (atomizer)
2012-03-02 09:31:46 -08:00
Dave Pacheco
edea94c332 dtrace ustack helper improvements
Fixes #2852
2012-03-02 09:29:18 -08:00
Ben Noordhuis
30b29d8f87 build: disable -fstrict-aliasing if gcc < 4.6.0
A compiler bug in older versions of gcc makes it do unsafe optimizations at -O1
and higher. This manifested itself with (at least) gcc 4.5.2 on SmartOS because
it made V8 hang in a busy loop.

See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45883
2012-03-02 09:26:35 -08:00
isaacs
d8c5ba2185 Change test fixture from symlink to regular file
The only test using this is test/simple/test-fs-chmod.js, and it was
treating a.js and a1.js as two separate files, resulting in a race
condition.  (Interestingly enough, it was *not* using the symlink file to
test lchmod, which uses a different temp file.)
2012-03-02 09:17:09 -08:00
Ben Noordhuis
0613af0a20 build: remove --shared-cares configure switch
c-ares is a) bundled with libuv now, and b) contains out-of-tree patches. It no
longer makes sense to link against a shared library.

Fixes #2117.
2012-03-02 16:24:37 +01:00
Igor Zinkovsky
5e803219d8 update libuv to 702f905f73 2012-03-01 14:40:04 -08:00
Igor Zinkovsky
9be20afeb5 update libuv to 6bbccf1fe0 2012-03-01 14:12:19 -08:00
Igor Zinkovsky
67b10f816c fix test-net-pipe-connect-errors for windows 2012-03-01 14:09:10 -08:00
Ben Noordhuis
3aa2fd3b2c uv: upgrade to b3fe183 2012-03-01 17:02:20 +01:00
Vincent Ollivier
8cdbf014bd test: fix typo in test-child-process-stdout-flush 2012-03-01 16:52:46 +01:00
isaacs
a63ce6ea94 Merge branch 'json-api-v0.6' into v0.6 2012-02-29 16:05:18 -08:00
isaacs
4ca3fd0a01 Handle miscs better 2012-02-29 16:04:56 -08:00
isaacs
86d077da00 Debugger should be a misc, not 'concept' 2012-02-29 16:04:55 -08:00
isaacs
17db291b5c 'Events' is a module, not an event named 's' 2012-02-29 16:04:55 -08:00
isaacs
7bfa5cf284 s/streams/stream/ 2012-02-29 16:04:55 -08:00
isaacs
674416fbc9 s/buffers/buffer/ 2012-02-29 16:04:55 -08:00
isaacs
b34feeeb86 doc refactor: zlib 2012-02-29 16:04:55 -08:00
isaacs
169b0820f0 doc refactor: vm 2012-02-29 16:04:55 -08:00
isaacs
3c195d04f3 doc refactor: util 2012-02-29 16:04:54 -08:00
isaacs
c417de409d doc refactor: url 2012-02-29 16:04:54 -08:00
isaacs
c2f6405a0f doc refactor: tty 2012-02-29 16:04:54 -08:00
isaacs
c0446edcc2 doc refactor: tls 2012-02-29 16:04:54 -08:00
isaacs
4ed05da2be doc refactor: timers 2012-02-29 16:04:54 -08:00
isaacs
8d1e5d3ae1 doc refactor: synopsis 2012-02-29 16:04:54 -08:00
isaacs
774c289ba8 doc refactor: streams 2012-02-29 16:04:53 -08:00
isaacs
8e22004cb5 doc refactor: stdio 2012-02-29 16:04:53 -08:00
isaacs
d39297251f doc refactor: repl 2012-02-29 16:04:53 -08:00
isaacs
3b6c1d74c7 doc refactor: readline 2012-02-29 16:04:53 -08:00
isaacs
798f8a0dc1 doc refactor: querystring 2012-02-29 16:04:53 -08:00
isaacs
e083720d54 doc refactor: process 2012-02-29 16:04:53 -08:00
isaacs
3ce782b7f2 doc refactor: path 2012-02-29 16:04:52 -08:00
isaacs
8a121fa0e7 doc refactor: os 2012-02-29 16:04:52 -08:00
isaacs
e8ad5b9c1c doc refactor: net 2012-02-29 16:04:52 -08:00
isaacs
e88a1ba74a doc refactor: modules 2012-02-29 16:04:52 -08:00
isaacs
c205d3b53a doc refactor: https 2012-02-29 16:04:52 -08:00
isaacs
4f24b20fcb doc refactor: http 2012-02-29 16:04:52 -08:00
isaacs
a62ec4437b doc refactor: globals 2012-02-29 16:04:51 -08:00
isaacs
2a6ff3f56b doc refactor: fs 2012-02-29 16:04:51 -08:00
isaacs
14d4fbb002 doc refactor: events 2012-02-29 16:04:51 -08:00
isaacs
cacb28c92c doc refactor: dns 2012-02-29 16:04:51 -08:00
isaacs
db8c55e77c doc refactor: dgram 2012-02-29 16:04:51 -08:00
isaacs
f775c5cea4 doc refactor: debugger 2012-02-29 16:04:50 -08:00
isaacs
032b877f31 doc refactor: crypto 2012-02-29 16:04:50 -08:00
isaacs
6738d82e38 doc refactor: cluster 2012-02-29 15:24:27 -08:00
isaacs
03d6aa07ea doc refactor: buffers 2012-02-29 15:23:04 -08:00
isaacs
d383954ffe doc refactor: assert 2012-02-29 15:23:00 -08:00
isaacs
5d4e3d2d0c doc refactor: appendix_1 2012-02-29 15:22:56 -08:00
isaacs
df5be65415 doc refactor: addons 2012-02-29 15:22:53 -08:00
isaacs
d71f9944cc Add 'about these docs' section 2012-02-29 15:22:48 -08:00
isaacs
f28d482cd4 s/child_processes/child_process/
Conflicts:

	doc/api/child_process.markdown
2012-02-29 15:20:53 -08:00
isaacs
5824881e4a Remove empty sections 2012-02-29 15:20:13 -08:00
isaacs
1a181315eb Increase contrast of links, decrease contrast of bullets 2012-02-29 15:20:06 -08:00
isaacs
63629614cb Update styles to reflect changed api doc html structure 2012-02-29 15:19:59 -08:00
isaacs
8cd13eb74e Update template to use new token style
Conflicts:

	doc/template.html
2012-02-29 15:19:47 -08:00
isaacs
ffcdcc7ff0 Use new doc generation tool
Conflicts:

	Makefile
2012-02-29 15:18:51 -08:00
isaacs
4051c2843b docs: Move images out of the dist tarball
This puts all images in doc/images/ and references them via
http://nodejs.org/images/.

Any complaints about copyright usage etc. can thus be node/joyent's
problem, rather than the problem of a downstream distribution channel.

Conflicts:

	Makefile
2012-02-29 15:17:55 -08:00
isaacs
217bb47b02 New documentation generation tool 2012-02-29 15:15:25 -08:00
Ben Noordhuis
bab59f33e7 uv: upgrade to 0459097 2012-02-29 16:16:13 +01:00
Ben Noordhuis
ebb79cdaba Revert "test-fs-watch: Add faster failure, and link to #2813"
This reverts commit 9a6f936c8a.
2012-02-29 14:26:04 +01:00
Blake Miner
7343f8e776 tls: add honorCipherOrder option to tls.createServer()
Documented how to mitigate BEAST attacks.
2012-02-29 02:16:08 +01:00
Joshua Holbrook
56cfcea4b4 child_process: remove dummy "setsid" option setting 2012-02-29 02:10:56 +01:00
Joshua Holbrook
4065b241e8 child_process: remove dummy "setsid" option setting 2012-02-29 02:06:20 +01:00
Ben Noordhuis
af7960b295 uv: upgrade to 2f886c8 2012-02-28 18:11:48 +01:00
Shigeki Ohtsu
18acdff8d3 build: fix the help output of vcbuild.bat 2012-02-28 17:27:52 +01:00
koichik
cd5d2473a4 net: fix race write() before and after connect()
Fixes #2827.
2012-02-28 19:57:13 +09:00
koichik
63431796f4 net: fix race write() before and after connect()
Fixes #2827.
2012-02-28 19:27:27 +09:00
isaacs
44daa9836b Wrap NodeScript binding class in JavaScript layer
This makes it easy to prevent errors where Script methods
are called on non-script objects, resulting in Assertion failures.
2012-02-27 17:28:42 -08:00
isaacs
29463cb60c Update argv0 test to verify correct behavior 2012-02-27 16:41:30 -08:00
isaacs
692bcbe559 Revert "docs: split TOC into two parts: overview and API"
This reverts commit cd4cb8e795.
2012-02-27 15:53:20 -08:00
AJ ONeal
493a6bb19a [ISSUE #2554 #2567] throw if fs args for 'start' or 'end' are strings 2012-02-27 14:18:51 -08:00
AJ ONeal
7f58d207f3 [ISSUE #2554 #2567] throw if fs args for 'start' or 'end' are strings 2012-02-27 14:17:09 -08:00
Nathan Rajlich
ba0892ba91 build: build addons into the "build" dir instead of "out"
This matches the old node-waf system. Having two different dirs for this stuff
is dumb.
2012-02-27 14:04:46 -08:00
Mathias Bynens
483edbdf1a punycode: Update to v1.0.0 2012-02-27 14:03:18 -08:00
Mathias Bynens
cacd651ec6 punycode: Update to v1.0.0 2012-02-27 14:00:18 -08:00
isaacs
50cfeef65e Remove -Wall from v8 build 2012-02-27 13:55:23 -08:00
isaacs
412cebec9e v8: Remove OutputDirectory from build/common.gypi 2012-02-27 13:43:58 -08:00
isaacs
2e24ded6d2 Upgrade v8 to 3.9.11 2012-02-27 13:43:31 -08:00
Igor Zinkovsky
70a393ea9a update libuv to 9a5c1bad90 2012-02-27 13:16:06 -08:00
isaacs
4f8d7328a4 Fix #2822 Only remove logo images, not logo html 2012-02-27 13:08:54 -08:00
isaacs
fde26002f1 v8: Remove OutputDirectory from build/common.gypi 2012-02-27 12:11:10 -08:00
isaacs
f4641bd4de Update v8 to 3.9.9 2012-02-27 12:11:09 -08:00
Shigeki Ohtsu
82ad1f87fa Fix #2830 for the old gcc bug on SmartOS 2012-02-27 12:02:25 -08:00
isaacs
0e7dad3f6e Merge branch 'json-api-docs' 2012-02-27 12:00:27 -08:00
isaacs
7af2d6b985 Handle miscs better 2012-02-27 11:44:36 -08:00
isaacs
909ea3008e Debugger should be a misc, not 'concept' 2012-02-27 11:44:30 -08:00
isaacs
5571c1aaa4 'Events' is a module, not an event named 's' 2012-02-27 11:37:26 -08:00
isaacs
f9df88c6da s/streams/stream/ 2012-02-27 11:18:10 -08:00
isaacs
f9e464f95a s/buffers/buffer/ 2012-02-27 11:14:38 -08:00
isaacs
9fe92590b2 doc refactor: zlib 2012-02-27 11:14:38 -08:00
isaacs
f4720d8dbd doc refactor: vm 2012-02-27 11:14:38 -08:00
isaacs
8e6086b403 doc refactor: util 2012-02-27 11:14:37 -08:00
isaacs
a54b70a355 doc refactor: url 2012-02-27 11:14:37 -08:00
isaacs
cf4700aff4 doc refactor: tty 2012-02-27 11:14:37 -08:00
isaacs
c9b35b9923 doc refactor: tls 2012-02-27 11:14:37 -08:00
isaacs
c4d6c7f829 doc refactor: timers 2012-02-27 11:14:37 -08:00
isaacs
f0694e1e0c doc refactor: synopsis 2012-02-27 11:14:36 -08:00
isaacs
03968739c5 doc refactor: streams 2012-02-27 11:14:36 -08:00
isaacs
94c6bcfdad doc refactor: stdio 2012-02-27 11:14:36 -08:00
isaacs
dfdf09d43d doc refactor: repl 2012-02-27 11:14:36 -08:00
isaacs
728386bfb2 doc refactor: readline 2012-02-27 11:14:35 -08:00
isaacs
628bc835ae doc refactor: querystring 2012-02-27 11:14:35 -08:00
isaacs
a52254d0d7 doc refactor: process 2012-02-27 11:14:35 -08:00
isaacs
aef61ee367 doc refactor: path 2012-02-27 11:14:35 -08:00
isaacs
0e752246d3 doc refactor: os 2012-02-27 11:14:35 -08:00
isaacs
2fd5cb3d2e doc refactor: net 2012-02-27 11:14:34 -08:00
isaacs
0cf7156f08 doc refactor: modules 2012-02-27 11:14:34 -08:00
isaacs
2806c6ce28 doc refactor: https 2012-02-27 11:14:34 -08:00
isaacs
02e288b640 doc refactor: http 2012-02-27 11:14:34 -08:00
isaacs
af7314e190 doc refactor: globals 2012-02-27 11:14:34 -08:00
isaacs
40190b7c92 doc refactor: fs 2012-02-27 11:14:33 -08:00
isaacs
ec02e82760 doc refactor: events 2012-02-27 11:14:33 -08:00
isaacs
2f148845e8 doc refactor: dns 2012-02-27 11:14:33 -08:00
isaacs
9a0495a4b0 doc refactor: dgram 2012-02-27 11:14:33 -08:00
isaacs
dd1b3b6dfd doc refactor: debugger 2012-02-27 11:14:33 -08:00
isaacs
ab294ad93d doc refactor: crypto 2012-02-27 11:14:32 -08:00
isaacs
6e51db1268 doc refactor: cluster 2012-02-27 11:14:32 -08:00
isaacs
60aa852a03 doc refactor: buffers 2012-02-27 11:14:32 -08:00
isaacs
97ee38707b doc refactor: assert 2012-02-27 11:14:32 -08:00
isaacs
44559a3211 doc refactor: appendix_1 2012-02-27 11:14:32 -08:00
isaacs
24a2706a3b doc refactor: addons 2012-02-27 11:14:31 -08:00
isaacs
11d27367cd Add 'about these docs' section 2012-02-27 11:14:31 -08:00
isaacs
bd880e7f3f s/child_processes/child_process/ 2012-02-27 11:14:24 -08:00
isaacs
3bec62b012 Remove empty sections 2012-02-27 11:14:16 -08:00
isaacs
3d5f7594b5 Increase contrast of links, decrease contrast of bullets 2012-02-27 11:01:53 -08:00
isaacs
ac5e7072c9 Update styles to reflect changed api doc html structure 2012-02-27 11:01:33 -08:00
isaacs
7aee49d967 Update template to use new token style 2012-02-27 10:59:51 -08:00
isaacs
7d6d5e263e Use new doc generation tool 2012-02-27 10:59:35 -08:00
isaacs
964d03bc3f New documentation generation tool 2012-02-27 10:59:01 -08:00
tedsuo
cd4cb8e795 docs: split TOC into two parts: overview and API
Fixes #2090.
Fixes #2336.
2012-02-27 17:36:20 +09:00
Ben Noordhuis
90fd70d284 docs: fix http.ClientRequest.write() documentation
'an array of integers' == very, very deprecated
2012-02-27 04:00:22 +01:00
Nathan Rajlich
aa35564ca1 Use NODE_MODULE in the hello-world addon example.
Fixes Windows throwing "unknown error" when trying to require the .node file.
2012-02-27 02:44:33 +01:00
Nathan Rajlich
3f1f2d1497 addon: write gyp generated files to the 'out' dir 2012-02-27 02:40:09 +01:00
T.C. Hollingsworth
d03b8487c6 build: support shared zlib 2012-02-27 02:31:23 +01:00
Nathan Rajlich
3c68c85f18 build: use -pthreads (not -pthread) on Solaris 2012-02-27 02:28:06 +01:00
T.C. Hollingsworth
2d7b43f466 build: use else instead of node_shared_v8==false 2012-02-26 00:32:36 +01:00
koichik
ae762b620e docs: add ciphers option to https.request() 2012-02-25 23:17:05 +09:00
koichik
2f5e084147 docs: remove duplicate option of tls.connect() 2012-02-25 23:07:30 +09:00
Roly Fentanes
db8940dae2 newListener emits correct fn when using once
Fixes #2826.
2012-02-25 15:37:38 +09:00
isaacs
ca0986fbd1 Update npm to 1.1.2 2012-02-24 18:52:17 -08:00
isaacs
d4d45a1757 Update npm to 1.1.2 2012-02-24 18:51:22 -08:00
Maciej Małecki
27a937bcf8 Revert "startup: use path.resolve instead of path.join(cwd, ...)"
This reverts commit b0c1541227.

Reverted commit introduced a regression causing `process.argv[0]` to be
invalid in node processes spawned from `PATH` (without explicit path to
executable file - for example when using global node installation).

Instead of finding a correct path to the executable, `process.cwd()`
would be prepended to `process.argv[0]`.
2012-02-23 20:23:26 -08:00
Maciej Małecki
b73ec84ce1 test: test for process.argv[0] correctness
joyent/node@b0c1541227 introduced a
regression causing `process.argv[0]` to be invalid in node processes
spawned from `PATH` (without explicit path to executable file - for
example when using global node installation).

Instead of finding a correct path to the executable, `process.cwd()`
would be prepended to `process.argv[0]`.
2012-02-23 20:23:24 -08:00
Nathan Rajlich
a84adad078 Default node_shared_v8 to false.
Fixes #2818.
2012-02-23 14:52:39 -08:00
isaacs
59ecf2ccf7 Revert "Revert "build: support shared V8 properly""
This reverts commit a9130222bd.
2012-02-23 14:52:18 -08:00
isaacs
f492baa61d Now working on 0.7.6 2012-02-23 14:41:36 -08:00
isaacs
c5cbc3db47 Merge branch 'v0.7.5-release' 2012-02-23 14:39:58 -08:00
isaacs
d384b8b0d2 2012.02.23, Version 0.7.5 (unstable)
* startup speed improvements (Maciej Małecki)

* crypto: add function getDiffieHellman() (Tomasz Buchert)

* buffer: support decoding of URL-safe base64 (Ben Noordhuis)

* Make QueryString.parse() even faster (Brian White)

* url: decode url entities in auth section (Ben Noordhuis)

* http: support PURGE request method (Ben Noordhuis)

* http: Generate Date headers on responses (Mark Nottingham)

* Fix #2762: Add callback to close function. (Mikeal Rogers)

* dgram: fix out-of-bound memory read (Ben Noordhuis)

* repl: add automatic loading of built-in libs (Brandon Benvie)

* repl: remove double calls where possible (Fedor Indutny)

* Readline improvements. Related: #2737 #2756 (Colton Baker)

* build: disable -fomit-frame-pointer on solaris (Dave Pacheco)

* build: arch detection improvements (Nathan Rajlich)

* build: Make a fat binary for the OS X `make pkg`. (Nathan Rajlich)

* jslint src/ and lib/ on 'make test' (isaacs)
2012-02-23 14:12:39 -08:00
isaacs
a9130222bd Revert "build: support shared V8 properly"
This reverts commit 3d1b670640.

Breaks build on windows.
https://gist.github.com/1895279
2012-02-23 14:12:14 -08:00
Shigeki Ohtsu
c1fcb1db99 build: change default BUILDTYPE of vcbuild.bat
From Debug to Release.
2012-02-23 14:11:26 +01:00
Shigeki Ohtsu
491ec171ec build: change default BUILDTYPE of gyp to Release 2012-02-23 14:11:26 +01:00
Shigeki Ohtsu
58e5d69250 build: fix the case where config.gypi doesn't exist 2012-02-23 14:11:26 +01:00
Shigeki Ohtsu
680d75af34 build: make default_configuration consistent with BUILDTYPE 2012-02-23 14:11:26 +01:00
Ben Noordhuis
b92a919500 Remove unused variables. 2012-02-23 04:11:07 -08:00
isaacs
1b5048b288 doc: refer to modules doc rather than src/node.js 2012-02-23 00:18:17 -08:00
isaacs
d3b8372615 lint, missed in QS speed merge 2012-02-22 20:58:24 -08:00
isaacs
73806b56e5 Add new authors 2012-02-22 20:58:24 -08:00
isaacs
9a6f936c8a test-fs-watch: Add faster failure, and link to #2813 2012-02-22 20:57:55 -08:00
isaacs
92cb684e78 Change test fixture from symlink to regular file
The only test using this is test/simple/test-fs-chmod.js, and it was
treating a.js and a1.js as two separate files, resulting in a race
condition.  (Interestingly enough, it was *not* using the symlink file to
test lchmod, which uses a different temp file.)
2012-02-22 20:57:43 -08:00
Ben Noordhuis
3502e45b6c dgram: defer send error to next tick 2012-02-23 02:07:39 +01:00
Ben Noordhuis
defa637378 dgram: fix out-of-bound memory read 2012-02-23 02:07:39 +01:00
Colton Baker
fd61bfc731 readline: ^Z (SIGSTP) handling
Bugfix and update.

- Fixed bug where Node's REPL wouldn't continue when returning from ^Z
  (SIGTSTP)
- Removed old readline callback

Readline API update with docs.

- ^Z (SIGTSTP) is now bypassed on Windows systems.
- SIGCONT is now bypassed on Windows systems.
- Docs updated to reflect above.
2012-02-22 16:07:23 -08:00
Colton Baker
ac9fa2b846 Removed rl.on('close', ...) callback 2012-02-22 16:05:55 -08:00
isaacs
e004721b48 Make a fat binary for the OS X pkg 2012-02-22 15:58:02 -08:00
Nathan Rajlich
e60b18bbdf Make a fat binary for the OS X make pkg. 2012-02-22 14:27:08 -08:00
Cam Pedersen
7f94b5ccca docs: remove duplicate socket.write 2012-02-22 22:20:57 +01:00
Igor Zinkovsky
35c1f682c1 update libuv to c0e7044862 2012-02-22 12:04:39 -08:00
T.C. Hollingsworth
3d1b670640 build: support shared V8 properly
-don't pull in bundled v8 as a dependency when node_shared_v8==true
-use node_shared_v8_includes for v8.h and v8-debug.h
2012-02-22 15:20:23 +01:00
Myles Byrne
21374c3903 build: remove unused makefile target 2012-02-22 14:25:56 +01:00
isaacs
634b4de2c8 Pause process.stdin in stdin getter
Otherwise, it'll be ref'ed, and keep the process hanging.
2012-02-21 15:31:50 -08:00
isaacs
27d8b059fa Pause process.stdin in stdin getter
Otherwise, it'll be ref'ed, and keep the process hanging.
2012-02-21 15:26:35 -08:00
Brian White
5e3ca98155 Make QueryString.parse() even faster 2012-02-21 12:17:26 -08:00
isaacs
186960fefb Add Håvard Stranden to AUTHORS file 2012-02-21 12:04:09 -08:00
isaacs
3817b12fec Add Håvard Stranden to AUTHORS file 2012-02-21 12:03:15 -08:00
isaacs
bae4018b30 Run jslint after tests, not before 2012-02-21 12:02:57 -08:00
Fedor Indutny
c6019b8b4e docs: remove server.pause
This functionality was removed when libuv landed in node. It is useless
and can be easily implemented in user-land.
2012-02-21 20:52:40 +06:00
Fedor Indutny
080ffb8b2c docs: remove server.pause
This functionality was removed when libuv landed in node. It is useless
and can be easily implemented in user-land.
2012-02-21 20:50:01 +06:00
Ben Noordhuis
b9127eb0a5 buffer: support decoding of URL-safe base64 2012-02-21 15:33:14 +01:00
Andreas Madsen
feff9bbb67 docs: remove setSecure() from net module docs
socket.setSecure() was removed in v0.3 and there are no deprecated warning in
code it should be removed from the documentation in 0.7
2012-02-21 15:18:16 +01:00
Tomasz Buchert
c6a04ce78f crypto: add function getDiffieHellman()
Returns a well known, predefined RFC group.
2012-02-21 14:07:25 +01:00
Nathan Rajlich
19133cac02 build: better host_arch() definition in configure
On one of my OS X Lion machines, it always reports i386, even though 64-bit
is supported. This lookup better matches how WAF determines the host arch,
which was correctly getting 64-bit even on this screwy machine.
2012-02-20 22:14:23 +01:00
Maciej Małecki
da908364a8 tls http https: don't pollute user's options object 2012-02-20 21:58:00 +01:00
Maciej Małecki
c6c6f98f1c util: add util._extend for extending objects
There were 2 duplicates with such functionality in `cluster` and
`child_process` modules which were replaced by this function.
2012-02-20 21:58:00 +01:00
Andreas Madsen
3f4062309e core: ignore too many arguments, don't assert 2012-02-20 21:55:35 +01:00
Ben Noordhuis
f116e17a23 test: update HTTP basic auth test
Verify that URL-encoded entities are properly encoded into the Authorization
header.
2012-02-20 17:24:14 +01:00
Ben Noordhuis
86f4846c21 url: decode url entities in auth section
Fixes #2736.
2012-02-20 17:11:21 +01:00
Fedor Indutny
0cebfc8ddb tests: kill process group on failure
Test suite is often leaving `stray` processes on failure. They are
harmless, but may cause future test runs fail because those `stray`
processes are occupying `common.PORT` or due to some other reasons.

Killing whole process group on test suite failure should help in such
cases.
2012-02-20 22:07:19 +06:00
Ben Noordhuis
de5e3f6a6f http: support PURGE request method 2012-02-20 16:12:48 +01:00
Ben Noordhuis
f0c5165f81 http_parser: upgrade to 62110ef 2012-02-20 16:12:33 +01:00
Maciej Małecki
b0c1541227 startup: use path.resolve instead of path.join(cwd, ...) 2012-02-20 16:04:44 +01:00
Maciej Małecki
1109c8fc4e startup: move EventEmitter closer to the lookup
This makes startup faster by ~0.2 ms on my computer.
2012-02-20 16:04:44 +01:00
Maciej Małecki
c3a9733ac1 startup: use .hasOwnProperty instead of in
Benchmarks show that `.hasOwnProperty` is faster than `in` in V8. It
makes startup ~0.5 ms faster on my computer.
2012-02-20 16:04:44 +01:00
Brandon Benvie
b72277183f repl: add automatic loading of built-in libs 2012-02-20 13:56:27 +01:00
Luke Gallagher
8d3c46daa8 util: fix typo in lib/util.js 2012-02-20 13:42:27 +01:00
Ben Noordhuis
999757983c test: don't let debugger listen on common.PORT
simple/test-debugger-repl-utf8 has a tendency to fail and leave behind a stray
process that listens on common.PORT, making later tests fail with EADDRINUSE.
2012-02-20 13:31:00 +01:00
Ben Noordhuis
7f4aba91d3 test: include common.js in all tests 2012-02-20 13:29:11 +01:00
Nathan Rajlich
028043dd02 build: map i686 to ia32 2012-02-20 11:49:57 +01:00
Nathan Rajlich
546870edd8 build: use proper -arch for target_arch on OS X 2012-02-20 11:49:32 +01:00
Nathan Rajlich
af4a96ce6e build: test uname -m first, then uname -p
Prevent false i386 on 64-bit OS X.
2012-02-20 11:49:25 +01:00
Ben Noordhuis
4af673e161 gyp: update to r1214 2012-02-20 11:47:03 +01:00
koichik
7ae0d473a6 test: fix test-tls-over-http-tunnel with v0.7 2012-02-19 11:46:58 -08:00
Mikeal Rogers
d530ee62cd Issue #2762. Add callback to close function. 2012-02-18 17:46:28 -08:00
isaacs
96338432e2 jslint src/ and lib/ on 'make test' 2012-02-18 16:04:10 -08:00
isaacs
0cdf85e28d Lint all the JavaScripts. 2012-02-18 15:34:57 -08:00
Ben Noordhuis
96a137a18a docs: update man page 2012-02-18 22:36:34 +01:00
isaacs
31721da4b1 Merge remote-tracking branch 'ry/v0.6' into v0.6-merge
Conflicts:
	AUTHORS
	ChangeLog
	Makefile
	doc/about/index.html
	doc/api/tls.markdown
	doc/community/index.html
	doc/index.html
	doc/logos/index.html
	doc/template.html
	lib/http.js
	lib/tls.js
	src/node_version.h
	src/platform_win32.cc
	test/simple/test-tls-connect-given-socket.js
2012-02-18 09:46:58 -08:00
Paul Vorbach
c1f474010e docs: fix quotation style in the webserver example
Replace " by '
2012-02-18 02:05:12 +01:00
Nathan Rajlich
0787287021 build: remove 'config.mk' during make distclean 2012-02-18 00:34:19 +01:00
Dave Pacheco
7864bb9eb8 build: disable -fomit-frame-pointer on solaris
This "optimization" cripples debuggability and has dubious performance value,
so we want to disable it at least on SmartOS.
2012-02-18 00:30:00 +01:00
Ben Noordhuis
23c4278e06 docs: fix tls markdown 2012-02-17 23:58:42 +01:00
isaacs
dfed2cef75 Merge branch 'v0.6.11-release' into v0.6 2012-02-17 13:35:52 -08:00
isaacs
f73f07e126 Now working on 0.6.12 2012-02-17 13:33:58 -08:00
isaacs
1eb1fe3225 2012.02.17 Version 0.6.11 (stable)
* http: allow multiple WebSocket RFC6455 headers (Einar Otto Stangvik)

* http: allow multiple WWW-Authenticate headers (Ben Noordhuis)

* windows: support unicode argv and environment variables (Bert Belder)

* tls: mitigate session renegotiation attacks (Ben Noordhuis)

* tcp, pipe: don't assert on uv_accept() errors (Ben Noordhuis)

* tls: Allow establishing secure connection on the existing socket (koichik)

* dgram: handle close of dgram socket before DNS lookup completes (Seth Fitzsimmons)

* windows: Support half-duplex pipes (Igor Zinkovsky)

* build: disable omit-frame-pointer on solaris systems (Dave Pacheco)

* debugger: fix --debug-brk (Ben Noordhuis)

* net: fix large file downloads failing (koichik)

* fs: fix ReadStream failure to read from existing fd (Christopher Jeffrey)

* net: destroy socket on DNS error (Stefan Rusu)

* dtrace: add missing translator (Dave Pacheco)

* unix: don't flush tty on switch to raw mode (Ben Noordhuis)

* windows: reset brightness when reverting to default text color (Bert Belder)

* npm: update to 1.1.1
  - Update which, fstream, mkdirp, request, and rimraf
  - Fix #2123 Set path properly for lifecycle scripts on windows
  - Mark the root as seen, so we don't recurse into it. Fixes #1838. (Martin Cooper)
2012-02-17 12:39:45 -08:00
isaacs
a2851b6234 Revert "cluster: propagate bind errors"
This reverts commit 30e462e919.
2012-02-17 12:39:45 -08:00
isaacs
4672872ddd Fix #2770 Compile the OS X pkg as ia32 2012-02-17 12:39:45 -08:00
Maciej Małecki
977e211421 debugger: rename process.debug_port to process.debugPort
We should comply to to camelCase naming convention.
2012-02-18 00:45:56 +06:00
Fedor Indutny
ae5e23310e repl: remove double calls where possible
Repl is doing double evaluation of code: wrapped in parens and without
them. That's needed to allow users typing multiline chunks of code by
handling syntax errors on repl side. However if function declaration is
wrapped in parens (`(function a() {})`) calling it will be impossible,
so we're evaluating functions twice. That works fine for declaration,
but if entered code chunk returns function - it should not be called
twice.

fix #2773
2012-02-18 00:30:52 +06:00
Shannen Saez
9764bea97d docs: remove unused javascript includes 2012-02-17 16:13:48 +01:00
Shannen Saez
4ed7b035bd docs: add lang="en" and remove redundant types 2012-02-17 16:13:42 +01:00
Nathan Rajlich
a118f21728 repl: make tab completion work on non-objects 2012-02-17 15:51:33 +01:00
isaacs
7a1a62ec6e Upgrade uv to 86ebe48660e 2012-02-16 15:32:15 -08:00
Ben Noordhuis
30e462e919 cluster: propagate bind errors
This commit fixes a bug where the cluster module failed to propagate EADDRINUSE
errors.

When a worker starts a (net, http) server, it requests the listen socket from
its master who then creates and binds the socket.

Now, OS X and Windows don't always signal EADDRINUSE from bind() but instead
defer the error until a later syscall. libuv mimics this behaviour to provide
consistent behaviour across platforms but that means the worker could end up
with a socket that is not actually bound to the requested addresss.

That's why the worker now checks if the socket is bound, raising EADDRINUSE if
that's not the case.

Fixes #2721.
2012-02-16 23:47:17 +01:00
einaros
83fd1c1de5 Add WebSocket RFC6455 multiheader fields to the http parser. 2012-02-16 14:12:38 -08:00
Ben Noordhuis
2c07712860 http: allow multiple WWW-Authenticate headers 2012-02-16 14:11:49 -08:00
Bert Belder
8f2694bb53 Make win32 ansi api usage explicit
Use widechar versions in a couple of places.
Don't use C-style cast in C++ code.
2012-02-16 22:19:48 +01:00
Bert Belder
d52f5020ce Windows: another attempt to support unicode argv 2012-02-16 20:58:45 +01:00
Bert Belder
9364699be1 Revert "Windows: support non-ansi command line arguments"
CommandLineToArgvW doesn't behave exactly the same as the crt, which makes it useless.
This reverts commit ef032cbe85.
2012-02-16 20:19:33 +01:00
Ben Noordhuis
3415427dbf tls: mitigate session renegotiation attacks
The TLS protocol allows (and sometimes requires) clients to renegotiate the
session. However, renegotiation requires a disproportional amount of server-side
resources, particularly CPU time, which makes it a potential vector for
denial-of-service attacks.

To mitigate this issue, we keep track of and limit the number of renegotiation
requests over time, emitting an error if the threshold is exceeded.
2012-02-16 18:15:21 +01:00
koichik
ef50bd2e54 docs: removed unnecessary STARTTLS section 2012-02-17 02:10:59 +09:00
Colton Baker
ce485791db Readline proposal and bugfixes. Related: #2737 #2756
- Removed extra newline from .question(); Users can input a
  newline if it they require it.
- Removed .close() due to it only emulating closing, causing a bug where
  readline is left open to trigger events such as .on('line', ...').
- Removed ._attemptClose()
- .pause() now triggers event .on('pause', ...)
- .resume() now triggers event .on('resume', ...)
- CTRL-C (SIGINT) in readline will now default to .pause() if no SIGINT event
  is present.
- CTRL-D (delete right) will also default to .pause() if there is nothing to
  delete (signaling the end of the file).
- Added new event `SIGTSTP`
- Added new event `SIGCONT`
- Added `resume` to `write` to resume the stream if paused.
- Docs updated.
- Updated repl.js
2012-02-16 12:12:03 +06:00
Maciej Małecki
3bc3af0276 process: remove old notices about removed methods
These methods were removed a long time ago. Keeping these notices here
makes no sense anymore.

Also, removing this part of code slightly speeds up the startup.
2012-02-15 19:45:33 -08:00
Bert Belder
d91bc7cb09 Windows: get rid of process._cwdForDrive() 2012-02-16 00:10:51 +01:00
Bert Belder
077f9d7293 Windows: use unicode environment 2012-02-16 00:10:33 +01:00
Nathan Rajlich
71e975669c Default to static linking CRT on Windows. 2012-02-15 13:32:46 -08:00
Mark Nottingham
1e425e3fa7 Generate Date headers on responses when not already present. 2012-02-15 12:35:34 -08:00
isaacs
d653732157 Merge branch 'v0.7.4-release' 2012-02-15 11:37:48 -08:00
isaacs
6a2cb6c506 Now working on 0.7.5 2012-02-15 11:37:34 -08:00
Ben Noordhuis
6141386f7e http: allow multiple WWW-Authenticate headers 2012-02-15 17:04:10 +01:00
Ben Noordhuis
0685707bc6 tcp, pipe: don't assert on uv_accept() errors
It's possible for a new connection to be closed in the window between the
accept() syscall and the call to uv_accept(). Deal with it and move on, don't
assert.
2012-02-15 16:45:14 +01:00
isaacs
de21de920c 2012.02.14, Version 0.7.4 (unstable)
* Upgrade V8 to 3.9.5

* Upgrade npm to 1.1.1

* build: Detect host_arch better (Karl Skomski)

* debugger: export `debug_port` to `process` (Fedor Indutny)

* api docs: CSS bug fixes (isaacs)

* build: use -fPIC for native addons on UNIX (Nathan Rajlich)

* Re-add top-level v8::Locker (Marcel Laverdet)

* Move images out of the dist tarballs (isaacs)

* libuv: Remove uv_export and uv_import (Ben Noordhuis)

* build: Support x64 build on Windows (Igor Zinkovsky)
2012-02-14 14:34:43 -08:00
isaacs
0a4f5e8473 robots.txt 2012-02-14 14:34:43 -08:00
Igor Zinkovsky
14b20ffc30 add tls-over-http-tunnel test 2012-02-14 11:53:23 -08:00
koichik
b19b8836c3 tls: Allow establishing secure connection on the existing socket 2012-02-14 11:53:05 -08:00
Seth Fitzsimmons
1ce14eca44 dgram: handle close of dgram socket before DNS lookup completes 2012-02-14 14:10:21 +01:00
isaacs
9a0d90793e doc: Wrap API doc content in div#apicontent 2012-02-13 15:27:41 -08:00
isaacs
df236e75a2 css: Restrict li fix to #apicontent only. 2012-02-13 15:27:32 -08:00
isaacs
a7af84f988 docs: Move images out of the dist tarball
This puts all images in doc/images/ and references them via
http://nodejs.org/images/.

Any complaints about copyright usage etc. can thus be node/joyent's
problem, rather than the problem of a downstream distribution channel.
2012-02-13 15:27:06 -08:00
Fedor Indutny
e7e4f2f3aa Fix linker error on some gcc version on osx
* See: http://codereview.chromium.org/9382033/
2012-02-14 02:36:08 +06:00
Bert Belder
ef032cbe85 Windows: support non-ansi command line arguments 2012-02-13 20:55:29 +01:00
isaacs
3a915b02e8 Upgrade uv to 1d942e2a 2012-02-13 11:10:12 -08:00
isaacs
5041bc1b6c Patches floating on V8
Only SConstruct and build/common.gypi at this point.  All
others are accepted upstream, which greatly simplifies things.
2012-02-13 10:11:28 -08:00
isaacs
68a0c56a7d Upgrade V8 to 3.9.5 2012-02-13 10:05:16 -08:00
Karl Skomski
09ccbef3bb build: detect host_arch better 2012-02-13 17:43:30 +01:00
Bert Belder
2e6ad62047 Add libuv test that was omitted in last libuv upgrade 2012-02-12 21:07:31 +01:00
Bert Belder
c3f176222a Fix vcbuild.bat, print error when an unrecognized option is encountered 2012-02-12 21:04:03 +01:00
Fedor Indutny
3f43b1c039 debugger: export debug_port to process
`process.debug_port` is useful for changing debugger port in runtime,
before starting it (via SIGUSR1).

Using `--port=` argument for debugger repl, tests will run debugger
server on a `common.PORT` (as it usually does for any other servers).

`process._debugEnd()` stops debugger and its server.

* debugger: implemented process._debugEnd(), `node debug --port=5858 app.js`
* test: start debugger repl on common.PORT
* fixes #2613
* fixes #2614
2012-02-12 22:27:12 +06:00
Ben Noordhuis
8a6576f764 Merge remote-tracking branch 'origin/v0.6'
Conflicts:
	common.gypi
2012-02-12 16:12:26 +01:00
Ben Noordhuis
a27320e00f uv: upgrade to 4e1f2b1 2012-02-12 16:12:04 +01:00
koichik
2f759a7090 test: fix timing sensitivity in test-net-write-slow 2012-02-12 02:05:30 +09:00
Ben Noordhuis
d3f6b094c7 docs: update net.Server.address() documentation 2012-02-11 14:24:15 +01:00
isaacs
e9adb7fbbc apidoc css: Footer li's should be sans-serif 2012-02-10 20:55:21 -08:00
isaacs
830d0fe95a Fix #2690 css: Set font size in apidoc LIs to match Ps 2012-02-10 19:38:34 -08:00
Igor Zinkovsky
c7771bc2ec set readable/writable for pipes 2012-02-10 11:28:43 -08:00
Igor Zinkovsky
c9f58cc595 upgrade uv to f9be43a564 2012-02-10 11:27:12 -08:00
Ben Noordhuis
a8f357629d docs: clarify http 'data' callback
Fixes #2733.
2012-02-10 18:51:33 +01:00
Ben Noordhuis
38eec57aef docs: document tls/crypto ciphers option
Hitherto undocumented option that lets the user select the list of ciphers to
use or exclude in a SSL/TLS session.
2012-02-09 17:16:46 +01:00
Nathan Rajlich
d4ccdeaf00 build: use -fPIC for native addons on UNIX
No -fPIC on 32 bits Linux but do enable for the other UNIX flavors.
2012-02-09 14:34:30 +01:00
Ben Noordhuis
cacd3ae004 test: add cluster 'bind twice' test
This test starts two clustered HTTP servers on the same port. It expects the
first cluster to succeed and the second cluster to fail with EADDRINUSE.
2012-02-09 06:32:33 +01:00
isaacs
163900dc68 npm: update to 1.1.1 2012-02-08 12:36:20 -08:00
Andreas Madsen
9da830e895 child_process: stop .disconnect() call if channel is diconnected 2012-02-08 11:42:38 -08:00
Dave Pacheco
e5ed6b91f4 disable omit-frame-pointer on solaris systems 2012-02-08 10:16:19 -08:00
isaacs
02c1cb54aa Makefile: Don't use ** in globs
Many shells don't have GLOBSTAR turned on by default.  This is
why uv and v8 so often don't get cleaned out properly.
2012-02-08 09:59:53 -08:00
Marcel Laverdet
9a6012edd9 Re-add top-level v8::Locker
11d1eca9 added a v8 locker to ease development of 3rd party threading
extensions but it created a condition which would cause node to exit
uncleanly while in debug mode; it was reverted in 7543c38d.

The problem here is that the Locker was being disposed after V8 was torn
down. Adding some scoping fixes that.
2012-02-08 14:40:33 +01:00
isaacs
e612143a89 Now working on 0.7.4 2012-02-07 16:44:57 -08:00
isaacs
99059aad8d 2012.02.07, Version 0.7.3 (unstable)
* Upgrade V8 to 3.9.2

* Revert support for isolates. (Ben Noordhuis)

* cluster: Cleanup docs, event handling, and process.disconnect (Andreas Madsen)

* gyp_addon: link with node.lib on Windows (Nathan Rajlich)

* http: fix case where http-parser is freed twice (koichik)

* Windows: disable RTTI and exceptions (Bert Belder)
2012-02-07 15:42:33 -08:00
isaacs
349cab0b48 Check the version before building tarball
I keep forgetting to do this.  It's such a stupid thing.
2012-02-07 15:41:21 -08:00
Ben Noordhuis
81d18398a8 test: add --debug-brk regression test 2012-02-07 23:42:38 +01:00
Ben Noordhuis
09c296b44d debugger: fix --debug-brk
Commit 840229a forgot to update the debugger special case in lib/module.js

Fixes #2710.
2012-02-07 23:16:40 +01:00
Igor Zinkovsky
0a347559bf enable x64 windows build
use "vcbuild x64" to do x64 build of node.exe
2012-02-07 13:32:53 -08:00
isaacs
986785c9d2 Fix merge-conflicts in HTML
Thanks, @AndreasMadsen
2012-02-06 23:01:17 -08:00
isaacs
116835561d Merge remote-tracking branch 'ry/v0.6'
Conflicts:
	ChangeLog
	deps/v8/src/version.cc
	deps/v8/tools/gyp/v8.gyp
	doc/about/index.html
	doc/community/index.html
	doc/index.html
	doc/logos/index.html
	doc/template.html
	lib/path.js
	lib/querystring.js
	src/node_version.h
2012-02-06 15:43:21 -08:00
isaacs
e5db01ee29 v8: Remove OutputDirectory from build/common.gypi 2012-02-06 15:22:52 -08:00
isaacs
8be699494e Upgrade V8 to 3.9.2 2012-02-06 15:21:49 -08:00
Andreas Madsen
23514fc946 [doc] cluster: remove part about autoFork since this do not exist 2012-02-06 14:54:11 -08:00
Andreas Madsen
1595a6e885 cluster: use process.disconnect method
After adding a .disconect method and connected flag in child_process
we should no longer use the process._channel object.
2012-02-06 14:54:11 -08:00
Andreas Madsen
a20872045a cluster: simplify process event handling
This simplify the internalMessage and exit event handling
And simply relay message and error event to the worker object
Note that the error event was not relayed before
2012-02-06 14:54:11 -08:00
Nathan Rajlich
5e1471c806 gyp_addon: link with node.lib on Windows
Closes GH-2685
2012-02-06 19:02:45 +01:00
koichik
c2dc673eb5 http: fix http-parser is freed twice
after response to CONNECT/Upgrade request.

Fixes #2704.
2012-02-07 02:29:28 +09:00
Ben Noordhuis
832efb1e01 test: remove deprecated isolates test 2012-02-06 17:47:09 +01:00
Bert Belder
2e2df04b35 Windows: disable RTTI and exceptions 2012-02-06 15:59:08 +01:00
Ben Noordhuis
74a8215a86 Revert support for isolates.
It was decided that the performance benefits that isolates offer (faster spin-up
times for worker processes, faster inter-worker communication, possibly a lower
memory footprint) are not actual bottlenecks for most people and do not outweigh
the potential stability issues and intrusive changes to the code base that
first-class support for isolates requires.

Hence, this commit backs out all isolates-related changes.

Good bye, isolates. We hardly knew ye.
2012-02-06 15:44:42 +01:00
Ben Noordhuis
7543c38dca Revert "Add explicit v8 locker"
This reverts commit 11d1eca9f3.

It sporadically (but reproducibly) triggers an assert inside V8:

  Fatal error in /path/to/node/deps/v8/src/isolate.cc, line 1857
  CHECK(CurrentPerIsolateThreadData()->isolate_ == this) failed

Needs further investigation.
2012-02-05 23:36:38 +01:00
koichik
a2cd31cbf1 doc: add the note about 'data' event
Refs #2691.
2012-02-05 19:11:54 +09:00
koichik
0f0af55a0a net: fix large file downloads failing
Fixes #2678.
2012-02-05 17:41:49 +09:00
Marcel Laverdet
11d1eca9f3 Add explicit v8 locker
v8 requires a lock of each thread using the vm, but if none is
explicitly is created it will implicitly create one for you. This
creates issues when trying to build modules which use v8's
multi-threading features because there's no lock to unlock.
2012-02-04 22:19:56 +01:00
Christopher Jeffrey
f64989e63b fs: fix ReadStream fails to read from existing fd
A ReadStream constructed from an existing file descriptor failed to start
reading automatically. Avoids a userspace call to ReadStream.prototype._read().
2012-02-04 22:14:58 +01:00
Stefan Rusu
07a983a602 test: add tcp and https DNS error tests
net-dns-error: specifc test for the net DNS issue.
http-dns-error: now it works for HTTPS as well.
2012-02-04 00:41:24 +01:00
Stefan Rusu
4671e54495 net: destroy socket on DNS error
The socket was never destroyed on DNS errors. This broke some clients, including
lib/https.js.
2012-02-04 00:40:53 +01:00
Bert Belder
68db20656e Rename some occurrences of process_1 back to process 2012-02-03 15:38:08 +01:00
Dave Pacheco
9fb088e3ab dtrace: add missing translator
Add missing translator for node_dtrace_http_*_request_t types.

Fixes #2667.
2012-02-03 14:07:32 +00:00
isaacs
74a2528bd7 Now working on v0.6.11 2012-02-02 17:19:28 -08:00
isaacs
051908e023 2012.02.02, Version 0.6.10 (stable)
* Update V8 to 3.6.6.20

* Add npm msysgit bash shim to msi installer (isaacs)

* buffers: fix intermittent out of bounds error (Ben Noordhuis)

* buffers: honor length argument in base64 decoder (Ben Noordhuis)

* windows: Fix path.exists regression (Bert Belder)

* Make QueryString.parse run faster (Philip Tellis)

* http: avoid freeing http-parser objects too early (koichik)

* timers: add v0.4 compatibility hack (Ben Noordhuis)

* Proper EPERM error code support (Igor Zinkovsky, Brandon Philips)

* dgram: Implement udp multicast methods on windows (Bert Belder)
2012-02-02 16:56:42 -08:00
isaacs
5937d02aed msi: npm bash shim fixes 2012-02-02 16:56:42 -08:00
isaacs
71527e3a55 Patches floating on v8 2012-02-02 15:38:28 -08:00
isaacs
465f57c56f Upgrade v8 to 3.6.6.20 2012-02-02 15:38:28 -08:00
isaacs
30fd2f7bb2 Add npm msysgit bash shim to msi installer 2012-02-02 14:57:12 -08:00
Ben Noordhuis
7e40c7ddc9 buffers: fix intermittent out of bounds error
The base64 decoder would intermittently throw an out-of-bounds exception when
the buffer in `buf.write('', 'base64')` was a zero-sized buffer located at the
end of the slab.

Fixes #2657.
2012-02-02 19:14:06 +01:00
Ben Noordhuis
f101f7c9ba buffers: honor length argument in base64 decoder
Honor the length argument in `buf.write(s, 0, buf.length, 'base64')`. Before
this commit, the length argument was ignored. The decoder would keep writing
until it hit the end of the buffer. Since most buffers in Node are slices of
a parent buffer (the slab), this bug would overwrite the content of adjacent
buffers.

The bug is trivially demonstrated with the following test case:

    var assert = require('assert');
    var a = Buffer(3);
    var b = Buffer('xxx');
    a.write('aaaaaaaa', 'base64');
    assert.equal(b.toString(), 'xxx');

This commit coincidentally also fixes a bug where Buffer._charsWritten was not
updated for zero length buffers.
2012-02-02 19:13:56 +01:00
Bert Belder
67cd05472e uv: upgrade to 267e75d 2012-02-02 17:42:08 +01:00
Bert Belder
e5ea6ad0f0 _makeLong shouldn't turn the empty string into \\?\C:\ 2012-02-02 17:14:03 +01:00
Bert Belder
a661830569 Run path.exists paths through _makeLong 2012-02-02 17:14:01 +01:00
Philip Tellis
5166758927 Make QueryString.parse run faster
Use decodeURIComponent when appropriate, and only fall back to
querystring.decode if it throws, or if the character is a '+'.

Fix #2248
2012-02-01 16:04:01 -08:00
Ben Noordhuis
3deceaf6e7 Revert "Process symlinked shared library as .node"
This reverts commit 7e0bf7d57d.

It's possible to make GYP generate an XCode project that produces a .node file,
hence this commit is no longer needed.
2012-02-01 22:49:56 +01:00
Ben Noordhuis
a9723df1b7 Revert "Process symlinked shared library as .node"
This reverts commit 7e0bf7d57d.

It's possible to make GYP generate an XCode project that produces a .node file,
hence this commit is no longer needed.
2012-02-01 22:28:23 +01:00
isaacs
ec79acb3a6 working on 0.7.3 now 2012-02-01 13:05:04 -08:00
1369 changed files with 89244 additions and 27334 deletions

3
.gitignore vendored
View File

@@ -38,3 +38,6 @@ ipch/
/dist-osx
/npm.wxs
/tools/msvs/npm.wixobj
email.md
blog.html
deps/v8-*

34
AUTHORS
View File

@@ -172,6 +172,7 @@ Scott McWhirter <scott.mcwhirter@joyent.com>
Jakub Lekstan <jakub.lekstan@dreamlab.pl>
Tim Baumann <tim@timbaumann.info>
Robert Mustacchi <rm@joyent.com>
Håvard Stranden <havard.stranden@gmail.com>
George Miroshnykov <george.miroshnykov@gmail.com>
Marcel Laverdet <marcel@laverdet.com>
Alexandre Marangone <a.marangone@gmail.com>
@@ -261,3 +262,36 @@ Brandon Benvie <brandon@bbenvie.com>
Nicolas LaCasse <nlacasse@borderstylo.com>
Dan VerWeire <dverweire@gmail.com>
Matthew Fitzsimmons <matt@joyent.com>
Philip Tellis <philip.tellis@gmail.com>
Christopher Jeffrey <chjjeffrey@gmail.com>
Paddy Byers <paddy.byers@gmail.com>
Seth Fitzsimmons <seth@mojodna.net>
Einar Otto Stangvik <einaros@gmail.com>
Paul Vorbach <paul@vorb.de>
Luke Gallagher <notfornoone@gmail.com>
Tomasz Buchert <tomek.buchert@gmail.com>
Myles Byrne <myles@myles.id.au>
T.C. Hollingsworth <tchollingsworth@gmail.com>
Cam Pedersen <diffference@gmail.com>
Roly Fentanes <roly426@gmail.com>
Ted Young <ted@radicaldesigns.org>
Joshua Holbrook <josh.holbrook@gmail.com>
Blake Miner <miner.blake@gmail.com>
Vincent Ollivier <contact@vincentollivier.com>
Jimb Esser <jimb@railgun3d.com>
Sambasiva Suda <sambasivarao@gmail.com>
Sadique Ali <sadiqalikm@gmail.com>
Dmitry Nizovtsev <dmitry@ukrteam.com>
Alex Kocharin <rlidwka@kocharin.ru>
Ming Liu <vmliu1@gmail.com>
Shea Levy <shea@shealevy.com>
Nao Iizuka <iizuka@kyu-mu.net>
Christian Ress <christian@ressonline.de>
Rod Vagg <rod@vagg.org>
Matt Ezell <ezell.matt@gmail.com>
Charlie McConnell <charlie@charlieistheman.com>
Farid Neshat <FaridN_SOAD@yahoo.com>
Johannes Wüller <johanneswueller@gmail.com>
Erik Lundin <mjor.himself@gmail.com>
Mikael Bourges-Sevenier <mikeseven@gmail.com>
Yosef Dinerstein <yosefd@microsoft.com>

284
ChangeLog
View File

@@ -1,4 +1,159 @@
2012.02.01, Version 0.7.2 (unstable)
2012.03.30, Version 0.7.7 (unstable)
* Upgrade V8 to 3.9.24.7
* Upgrade npm to 1.1.15
* Handle Emoji characters properly (Erik Corry, Bert Belder)
* readline: migrate ansi/vt100 logic from tty to readline (Nathan Rajlich)
* readline: Fix multiline handling (Alex Kocharin)
* add a -i/--interactive flag to force the REPL (Nathan Rajlich)
* debugger: add breakOnException command (Fedor Indutny)
* cluster: kill workers when master dies (Andreas Madsen)
* cluster: add graceful disconnect support (Andreas Madsen)
* child_process: Separate 'close' event from 'exit' (Charlie McConnell)
* typed arrays: add Uint8ClampedArray (Mikael Bourges-Sevenier)
* buffer: Fix byte alignment issues (Ben Noordhuis, Erik Lundin)
* tls: fix CryptoStream.setKeepAlive() (Shigeki Ohtsu)
* Expose http parse error codes (Felix Geisendörfer)
* events: don't delete the listeners array (Ben Noordhuis, Nathan Rajlich)
* process: add process.config to view node's ./configure settings (Nathan Rajlich)
* process: process.execArgv to see node's arguments (Micheil Smith)
* process: fix process.title setter (Ben Noordhuis)
* timers: handle negative or non-numeric timeout values (Ben Noordhuis)
2012.03.13, Version 0.7.6 (unstable), f06abda6f58e517349d1b63a2cbf5a8d04a03505
* Upgrade v8 to 3.9.17
* Upgrade npm to 1.1.8
- Add support for os/cpu fields in package.json (Adam Blackburn)
- Automatically node-gyp packages containing a binding.gyp
- Fix failures unpacking in UNC shares
- Never create un-listable directories
- Handle cases where an optionalDependency fails to build
* events: newListener emit correct fn when using 'once' (Roly Fentanes)
* url: Ignore empty port component (Łukasz Walukiewicz)
* module: replace 'children' array (isaacs)
* tls: parse multiple values of a key in ssl certificate (Sambasiva Suda)
* cluster: support passing of named pipes (Ben Noordhuis)
* Windows: include syscall in fs errors (Bert Belder)
* http: #2888 Emit end event only once (Igor Zinkovsky)
* readline: add multiline support (Rlidwka)
* process: add `process.hrtime()` (Nathan Rajlich)
* net, http, https: add localAddress option (Dmitry Nizovtsev)
* addon improvements (Nathan Rajlich)
* build improvements (Ben Noordhuis, Sadique Ali, T.C. Hollingsworth, Nathan Rajlich)
* add support for "SEARCH" request methods (Nathan Rajlich)
* expose the zlib and http_parser version in process.versions (Nathan Rajlich)
2012.02.23, Version 0.7.5 (unstable), d384b8b0d2ab7f05465f0a3e15fe20b4e25b5f86
* startup speed improvements (Maciej Małecki)
* crypto: add function getDiffieHellman() (Tomasz Buchert)
* buffer: support decoding of URL-safe base64 (Ben Noordhuis)
* Make QueryString.parse() even faster (Brian White)
* url: decode url entities in auth section (Ben Noordhuis)
* http: support PURGE request method (Ben Noordhuis)
* http: Generate Date headers on responses (Mark Nottingham)
* Fix #2762: Add callback to close function. (Mikeal Rogers)
* dgram: fix out-of-bound memory read (Ben Noordhuis)
* repl: add automatic loading of built-in libs (Brandon Benvie)
* repl: remove double calls where possible (Fedor Indutny)
* Readline improvements. Related: #2737 #2756 (Colton Baker)
* build: disable -fomit-frame-pointer on solaris (Dave Pacheco)
* build: arch detection improvements (Nathan Rajlich)
* build: Make a fat binary for the OS X `make pkg`. (Nathan Rajlich)
* jslint src/ and lib/ on 'make test' (isaacs)
2012.02.14, Version 0.7.4 (unstable), de21de920cf93ec40736ada3792a7f85f3eadeda
* Upgrade V8 to 3.9.5
* Upgrade npm to 1.1.1
* build: Detect host_arch better (Karl Skomski)
* debugger: export `debug_port` to `process` (Fedor Indutny)
* api docs: CSS bug fixes (isaacs)
* build: use -fPIC for native addons on UNIX (Nathan Rajlich)
* Re-add top-level v8::Locker (Marcel Laverdet)
* Move images out of the dist tarballs (isaacs)
* libuv: Remove uv_export and uv_import (Ben Noordhuis)
* build: Support x64 build on Windows (Igor Zinkovsky)
2012.02.07, Version 0.7.3 (unstable), 99059aad8d654acda4abcfaa68df182b50f2ec90
* Upgrade V8 to 3.9.2
* Revert support for isolates. (Ben Noordhuis)
* cluster: Cleanup docs, event handling, and process.disconnect (Andreas Madsen)
* gyp_addon: link with node.lib on Windows (Nathan Rajlich)
* http: fix case where http-parser is freed twice (koichik)
* Windows: disable RTTI and exceptions (Bert Belder)
2012.02.01, Version 0.7.2 (unstable), ec79acb3a6166e30f0bf271fbbfda1fb575b3321
* Update V8 to 3.8.9
@@ -59,6 +214,133 @@
* Bug fixes
2012.03.15 Version 0.6.13 (stable), 9f7f86b534f8556290eb8cad915984ff4ca54996
* Windows: Many libuv test fixes (Bert Belder)
* Windows: avoid uv_guess_handle crash in when fd < 0 (Bert Belder)
* Map EBUSY and ENOTEMPTY errors (Bert Belder)
* Windows: include syscall in fs errors (Bert Belder)
* Fix fs.watch ENOSYS on Linux kernel version mismatch (Ben Noordhuis)
* Update npm to 1.1.9
- upgrade node-gyp to 0.3.5 (Nathan Rajlich)
- Fix isaacs/npm#2249 Add cache-max and cache-min configs
- Properly redirect across https/http registry requests
- log config usage if undefined key in set function (Kris Windham)
- Add support for os/cpu fields in package.json (Adam Blackburn)
- Automatically node-gyp packages containing a binding.gyp
- Fix failures unpacking in UNC shares
- Never create un-listable directories
- Handle cases where an optionalDependency fails to build
2012.03.02 Version 0.6.12 (stable), 48a2d34cfe6b7e1c9d15202a4ef5e3c82d1fba35
* Upgrade V8 to 3.6.6.24
* dtrace ustack helper improvements (Dave Pacheco)
* API Documentation refactor (isaacs)
* #2827 net: fix race write() before and after connect() (koichik)
* #2554 #2567 throw if fs args for 'start' or 'end' are strings (AJ ONeal)
* punycode: Update to v1.0.0 (Mathias Bynens)
* Make a fat binary for the OS X pkg (isaacs)
* Fix hang on accessing process.stdin (isaacs)
* repl: make tab completion work on non-objects (Nathan Rajlich)
* Fix fs.watch on OS X (Ben Noordhuis)
* Fix #2515 nested setTimeouts cause premature process exit (Ben Noordhuis)
* windows: fix time conversion in stat (Igor Zinkovsky)
* windows: fs: handle EOF in read (Brandon Philips)
* windows: avoid IOCP short-circuit on non-ifs lsps (Igor Zinkovsky)
* Upgrade npm to 1.1.4 (isaacs)
- windows fixes
- Bundle nested bundleDependencies properly
- install: support --save with url install targets
- shrinkwrap: behave properly with url-installed modules
- support installing uncompressed tars or single file modules from urls etc.
- don't run make clean on rebuild
- support HTTPS-over-HTTP proxy tunneling
2012.02.17 Version 0.6.11 (stable), 1eb1fe32250fc88cb5b0a97cddf3e02be02e3f4a
* http: allow multiple WebSocket RFC6455 headers (Einar Otto Stangvik)
* http: allow multiple WWW-Authenticate headers (Ben Noordhuis)
* windows: support unicode argv and environment variables (Bert Belder)
* tls: mitigate session renegotiation attacks (Ben Noordhuis)
* tcp, pipe: don't assert on uv_accept() errors (Ben Noordhuis)
* tls: Allow establishing secure connection on the existing socket (koichik)
* dgram: handle close of dgram socket before DNS lookup completes (Seth Fitzsimmons)
* windows: Support half-duplex pipes (Igor Zinkovsky)
* build: disable omit-frame-pointer on solaris systems (Dave Pacheco)
* debugger: fix --debug-brk (Ben Noordhuis)
* net: fix large file downloads failing (koichik)
* fs: fix ReadStream failure to read from existing fd (Christopher Jeffrey)
* net: destroy socket on DNS error (Stefan Rusu)
* dtrace: add missing translator (Dave Pacheco)
* unix: don't flush tty on switch to raw mode (Ben Noordhuis)
* windows: reset brightness when reverting to default text color (Bert Belder)
* npm: update to 1.1.1
- Update which, fstream, mkdirp, request, and rimraf
- Fix #2123 Set path properly for lifecycle scripts on windows
- Mark the root as seen, so we don't recurse into it. Fixes #1838. (Martin Cooper)
2012.02.02, Version 0.6.10 (stable), 051908e023f87894fa68f5b64d0b99a19a7db01e
* Update V8 to 3.6.6.20
* Add npm msysgit bash shim to msi installer (isaacs)
* buffers: fix intermittent out of bounds error (Ben Noordhuis)
* buffers: honor length argument in base64 decoder (Ben Noordhuis)
* windows: Fix path.exists regression (Bert Belder)
* Make QueryString.parse run faster (Philip Tellis)
* http: avoid freeing http-parser objects too early (koichik)
* timers: add v0.4 compatibility hack (Ben Noordhuis)
* Proper EPERM error code support (Igor Zinkovsky, Brandon Philips)
* dgram: Implement udp multicast methods on windows (Bert Belder)
2012.01.27, Version 0.6.9 (stable), f19e20d33f57c4d2853aaea7d2724d44f3b0012f
* dgram: Bring back missing functionality for Unix (Dan VerWeire, Roman Shtylman, Ben Noordhuis)

View File

@@ -79,8 +79,13 @@ The externally maintained libraries used by Node are:
licensed under a permissive free software license. See
deps/zlib/LICENSE.
- deps/npm npm is a package manager program copyright 2009, 2010, 2011
- deps/npm npm is a package manager program copyright 2009 - 2012
Isaac Z. Schlueter and licensed under MIT. npm includes several
subpackages MIT or Apache licenses, see deps/npm/LICENSE for more
information. npm is included in the Node .msi and .pkg distributions
but not in the Node binary itself.
- tools/doc/node_modules/marked Marked is a Markdown parser Copyright
(c) 2011-2012, Christopher Jeffrey (https://github.com/chjj/). Marked
is used in the generation of node documentation, but not distributed in
any node binaries.

View File

@@ -33,20 +33,24 @@ out/Makefile: common.gypi deps/uv/uv.gyp deps/http_parser/http_parser.gyp deps/z
tools/gyp_node -f make
install: all
out/Release/node tools/installer.js ./config.gypi install
out/Release/node tools/installer.js install
uninstall:
out/Release/node tools/installer.js ./config.gypi uninstall
out/Release/node tools/installer.js uninstall
clean:
-rm -rf out/Makefile node node_g out/**/*.o out/**/*.a out/$(BUILDTYPE)/node
-rm -rf out/Makefile node node_g out/$(BUILDTYPE)/node blog.html email.md
-find out/ -name '*.o' -o -name '*.a' | xargs rm -rf
distclean:
-rm -rf out
-rm config.gypi
-rm -f config.gypi
-rm -f config.mk
-rm -rf node node_g blog.html email.md
test: all
$(PYTHON) tools/test.py --mode=release simple message
PYTHONPATH=tools/closure_linter/ $(PYTHON) tools/closure_linter/closure_linter/gjslint.py --unix_mode --strict --nojsdoc -r lib/ -r src/ --exclude_files lib/punycode.js
test-http1: all
$(PYTHON) tools/test.py --mode=release --use-http1 simple message
@@ -89,12 +93,15 @@ test-npm-publish: node
npm_package_config_publishtest=true ./node deps/npm/test/run.js
apidoc_sources = $(wildcard doc/api/*.markdown)
apidocs = $(addprefix out/,$(apidoc_sources:.markdown=.html))
apidocs = $(addprefix out/,$(apidoc_sources:.markdown=.html)) \
$(addprefix out/,$(apidoc_sources:.markdown=.json))
apidoc_dirs = out/doc out/doc/api/ out/doc/api/assets out/doc/about out/doc/community out/doc/logos
apidoc_dirs = out/doc out/doc/api/ out/doc/api/assets out/doc/about out/doc/community out/doc/logos out/doc/images
apiassets = $(subst api_assets,api/assets,$(addprefix out/,$(wildcard doc/api_assets/*)))
doc_images = $(addprefix out/,$(wildcard doc/images/* doc/*.jpg doc/*.png))
website_files = \
out/doc/index.html \
out/doc/v0.4_announcement.html \
@@ -103,35 +110,14 @@ website_files = \
out/doc/sh_javascript.min.js \
out/doc/sh_vim-dark.css \
out/doc/sh.css \
out/doc/logo.png \
out/doc/favicon.ico \
out/doc/pipe.css \
out/doc/about/index.html \
out/doc/close-downloads.png \
out/doc/community/index.html \
out/doc/community/not-invented-here.png \
out/doc/logos/index.html \
out/doc/microsoft-logo.png \
out/doc/ryan-speaker.jpg \
out/doc/download-logo.png \
out/doc/ebay-logo.png \
out/doc/footer-logo-alt.png \
out/doc/footer-logo.png \
out/doc/icons-interior.png \
out/doc/icons.png \
out/doc/home-icons.png \
out/doc/joyent-logo_orange_nodeorg-01.png \
out/doc/linkedin-logo.png \
out/doc/logo-light.png \
out/doc/mac_osx_nodejs_installer_logo.png \
out/doc/microsoft-logo.png \
out/doc/platform-icons.png \
out/doc/sponsored.png \
out/doc/twitter-bird.png \
out/doc/community-icons.png \
out/doc/yahoo-logo.png
$(doc_images)
doc: node $(apidoc_dirs) $(website_files) $(apiassets) $(apidocs)
doc: program $(apidoc_dirs) $(website_files) $(apiassets) $(apidocs) tools/doc/
$(apidoc_dirs):
mkdir -p $@
@@ -139,13 +125,24 @@ $(apidoc_dirs):
out/doc/api/assets/%: doc/api_assets/% out/doc/api/assets/
cp $< $@
out/doc/%.html: doc/%.html
cat $< | sed -e 's|__VERSION__|'$(VERSION)'|g' > $@
out/doc/%: doc/%
cp $< $@
cp -r $< $@
out/doc/api/%.html: doc/api/%.markdown node $(apidoc_dirs) $(apiassets) tools/doctool/doctool.js
out/Release/node tools/doctool/doctool.js doc/template.html $< > $@
out/doc/api/%.json: doc/api/%.markdown
out/Release/node tools/doc/generate.js --format=json $< > $@
out/doc/%:
out/doc/api/%.html: doc/api/%.markdown
out/Release/node tools/doc/generate.js --format=html --template=doc/template.html $< > $@
email.md: ChangeLog tools/email-footer.md
bash tools/changelog-head.sh > $@
cat tools/email-footer.md | sed -e 's|__VERSION__|'$(VERSION)'|g' >> $@
blog.html: email.md
cat $< | node tools/doc/node_modules/.bin/marked > $@
website-upload: doc
rsync -r out/doc/ node@nodejs.org:~/web/nodejs.org/
@@ -169,21 +166,40 @@ PKGDIR=out/dist-osx
pkg: $(PKG)
$(PKG):
-rm -rf $(PKGDIR)
./configure --prefix=$(PKGDIR)/usr/local --without-snapshot
rm -rf $(PKGDIR)
rm -rf out/deps out/Release
./configure --prefix=$(PKGDIR)/32/usr/local --without-snapshot --dest-cpu=ia32
$(MAKE) install
rm -rf out/deps out/Release
./configure --prefix=$(PKGDIR)/usr/local --without-snapshot --dest-cpu=x64
$(MAKE) install
lipo $(PKGDIR)/32/usr/local/bin/node \
$(PKGDIR)/usr/local/bin/node \
-output $(PKGDIR)/usr/local/bin/node-universal \
-create
mv $(PKGDIR)/usr/local/bin/node-universal $(PKGDIR)/usr/local/bin/node
rm -rf $(PKGDIR)/32
$(packagemaker) \
--id "org.nodejs.NodeJS-$(VERSION)" \
--doc tools/osx-pkg.pmdoc \
--out $(PKG)
$(TARBALL): node out/doc
@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
git archive --format=tar --prefix=$(TARNAME)/ HEAD | tar xf -
mkdir -p $(TARNAME)/doc
cp doc/node.1 $(TARNAME)/doc/node.1
cp -r out/doc/api $(TARNAME)/doc/api
rm -rf $(TARNAME)/deps/v8/test # too big
rm -rf $(TARNAME)/doc/logos # too big
rm -rf $(TARNAME)/doc/images # too big
tar -cf $(TARNAME).tar $(TARNAME)
rm -rf $(TARNAME)
gzip -f -9 $(TARNAME).tar

View File

@@ -0,0 +1,80 @@
// first start node http_simple.js
var http = require('http');
var latency = [];
var numRequests = parseInt(process.argv[2], 10) || 100;
var maxSockets = parseInt(process.argv[3], 10) || 100;
var runs = parseInt(process.argv[4], 10) || 100;
var prefix = process.argv[5] || '';
if (prefix) prefix += '_';
var r = 0;
var port = parseInt(process.env.PORT, 10) || 8000;
var host = process.env.HOST || '127.0.0.1';
http.globalAgent.maxSockets = maxSockets;
run();
function run() {
if (r++ === runs) {
return finish();
}
// make numRequests in parallel
// retain the order in which they are *made*. This requires trapping
// each one in a closure, since otherwise, we'll of course end
// up mostly sorting them in ascending order, since the cb from a
// fast request will almost always be called before the cb from a
// slow one.
var c = numRequests;
var lat = [];
latency.push(lat);
for (var i = 0; i < numRequests; i++) (function (i) {
makeRequest(function(l) {
lat[i] = l;
c--;
if (c === 0) run();
});
})(i);
}
function makeRequest(cb) {
var opts = { host: host,
port: port,
uri: 'http://'+host+':'+port+'/bytes/12',
forever: true,
path: '/bytes/12' };
var pre = Date.now();
var req = http.get(opts, function(res) {
return cb(Date.now() - pre);
});
}
function finish() {
var data = [];
latency.forEach(function(run, i) {
run.forEach(function(l, j) {
data[j] = data[j] || [];
data[j][i] = l;
});
});
data = data.map(function (l, i) {
return l.join('\t')
}).join('\n') + '\n';
var fname = prefix +
'client_latency_' +
numRequests + '_' +
maxSockets + '_' +
runs + '.tab';
var path = require('path');
fname = path.resolve(__dirname, '..', 'out', fname);
fname = path.relative(process.cwd(), fname);
require('fs').writeFile(fname, data, function(er) {
if (er) throw er;
console.log('written: %s', fname);
});
}

10
benchmark/http.sh Executable file
View File

@@ -0,0 +1,10 @@
#!/bin/bash
cd "$(dirname "$(dirname $0)")"
sudo sysctl -w net.inet.ip.portrange.first=12000
sudo sysctl -w net.inet.tcp.msl=1000
sudo sysctl -w kern.maxfiles=1000000 kern.maxfilesperproc=1000000
ulimit -n 100000
./node benchmark/http_simple.js || exit 1 &
sleep 1
ab -n 30000 -c 100 http://127.0.0.1:8000/bytes/123 | grep Req
killall node

View File

@@ -0,0 +1,13 @@
var http = require('http');
var port = parseInt(process.env.PORT, 10) || 8000;
var defaultLag = parseInt(process.argv[2], 10) || 100;
http.createServer(function(req, res) {
res.writeHead(200, { 'content-type': 'text/plain',
'content-length': '2' });
var lag = parseInt(req.url.split("/").pop(), 10) || defaultLag;
setTimeout(function() {
res.end('ok');
}, lag);
}).listen(port, 'localhost');

View File

@@ -0,0 +1,109 @@
//
// Usage:
// node benchmark/http_simple_auto.js <args> <target>
//
// Where:
// <args> Arguments to pass to `ab`.
// <target> Target to benchmark, e.g. `bytes/1024` or `buffer/8192`.
//
var path = require("path");
var http = require("http");
var spawn = require("child_process").spawn;
var port = parseInt(process.env.PORT || 8000);
var fixed = ""
for (var i = 0; i < 20*1024; i++) {
fixed += "C";
}
var stored = {};
var storedBuffer = {};
var server = http.createServer(function (req, res) {
var commands = req.url.split("/");
var command = commands[1];
var body = "";
var arg = commands[2];
var n_chunks = parseInt(commands[3], 10);
var status = 200;
if (command == "bytes") {
var n = parseInt(arg, 10)
if (n <= 0)
throw "bytes called with n <= 0"
if (stored[n] === undefined) {
stored[n] = "";
for (var i = 0; i < n; i++) {
stored[n] += "C"
}
}
body = stored[n];
} else if (command == "buffer") {
var n = parseInt(arg, 10)
if (n <= 0) throw new Error("bytes called with n <= 0");
if (storedBuffer[n] === undefined) {
storedBuffer[n] = new Buffer(n);
for (var i = 0; i < n; i++) {
storedBuffer[n][i] = "C".charCodeAt(0);
}
}
body = storedBuffer[n];
} else if (command == "quit") {
res.connection.server.close();
body = "quitting";
} else if (command == "fixed") {
body = fixed;
} else if (command == "echo") {
res.writeHead(200, { "Content-Type": "text/plain",
"Transfer-Encoding": "chunked" });
req.pipe(res);
return;
} else {
status = 404;
body = "not found\n";
}
// example: http://localhost:port/bytes/512/4
// sends a 512 byte body in 4 chunks of 128 bytes
if (n_chunks > 0) {
res.writeHead(status, { "Content-Type": "text/plain",
"Transfer-Encoding": "chunked" });
// send body in chunks
var len = body.length;
var step = ~~(len / n_chunks) || len;
for (var i = 0; i < len; i += step) {
res.write(body.slice(i, i + step));
}
res.end();
} else {
var content_length = body.length.toString();
res.writeHead(status, { "Content-Type": "text/plain",
"Content-Length": content_length });
res.end(body);
}
});
server.listen(port, function () {
var url = 'http://127.0.0.1:' + port + '/';
var n = process.argv.length - 1;
process.argv[n] = url + process.argv[n];
var cp = spawn('ab', process.argv.slice(2));
cp.stdout.pipe(process.stdout);
cp.stderr.pipe(process.stderr);
cp.on('exit', function() {
server.close();
});
});

View File

@@ -0,0 +1,63 @@
// 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 assert = require('assert');
var tls = require('tls');
var fs = require('fs');
var path = require('path');
var options = {
key: fs.readFileSync(path.join(common.fixturesDir, 'test_key.pem')),
cert: fs.readFileSync(path.join(common.fixturesDir, 'test_cert.pem'))
};
var fragment = 'fr';
var dataSize = 1024 * 1024;
var sent = 0;
var received = 0;
var server = tls.createServer(options, function (stream) {
for (sent = 0; sent <= dataSize; sent += fragment.length) {
stream.write(fragment);
}
stream.end();
});
server.listen(common.PORT, function () {
var client = tls.connect(common.PORT, function () {
client.on('data', function (data) {
received += data.length;
});
client.on('end', function () {
server.close();
});
});
});
process.on('exit', function () {
assert.equal(sent, received);
});

View File

@@ -1,5 +1,6 @@
{
'variables': {
'strict_aliasing%': 'false', # turn on/off -fstrict-aliasing
'visibility%': 'hidden', # V8's visibility setting
'target_arch%': 'ia32', # set v8's target architecture
'host_arch%': 'ia32', # set v8's host architecture
@@ -10,20 +11,19 @@
},
'target_defaults': {
'default_configuration': 'Debug',
'default_configuration': 'Release',
'configurations': {
'Debug': {
'defines': [ 'DEBUG', '_DEBUG' ],
'cflags': [ '-g', '-O0' ],
'conditions': [
['target_arch=="x64"', {
'msvs_configuration_platform': 'x64',
}],
],
'msvs_settings': {
'VCCLCompilerTool': {
'target_conditions': [
['library=="static_library"', {
'RuntimeLibrary': 1, # static debug
}, {
'RuntimeLibrary': 3, # DLL debug
}],
],
'RuntimeLibrary': 1, # static debug
'Optimization': 0, # /Od, no optimization
'MinimalRebuild': 'true',
'OmitFramePointers': 'false',
@@ -35,17 +35,21 @@
},
},
'Release': {
# 'defines': [ 'NDEBUG' ],
'cflags': [ '-O3', '-fomit-frame-pointer', '-fdata-sections', '-ffunction-sections' ],
'cflags': [ '-O3', '-fdata-sections', '-ffunction-sections' ],
'conditions': [
['target_arch=="x64"', {
'msvs_configuration_platform': 'x64',
}],
['OS=="solaris"', {
'cflags': [ '-fno-omit-frame-pointer' ],
}],
['strict_aliasing!="true"', {
'cflags': [ '-fno-strict-aliasing' ],
}],
],
'msvs_settings': {
'VCCLCompilerTool': {
'target_conditions': [
['library=="static_library"', {
'RuntimeLibrary': 0, # static release
}, {
'RuntimeLibrary': 2, # debug release
}],
],
'RuntimeLibrary': 0, # static release
'Optimization': 3, # /Ox, full optimization
'FavorSizeOrSpeed': 1, # /Ot, favour speed over size
'InlineFunctionExpansion': 2, # /Ob2, inline anything eligible
@@ -53,6 +57,8 @@
'OmitFramePointers': 'true',
'EnableFunctionLevelLinking': 'true',
'EnableIntrinsicFunctions': 'true',
'RuntimeTypeInfo': 'false',
'ExceptionHandling': '0',
'AdditionalOptions': [
'/MP', # compile across multiple CPUs
],
@@ -84,6 +90,11 @@
'VCLibrarianTool': {
},
'VCLinkerTool': {
'conditions': [
['target_arch=="x64"', {
'TargetMachine' : 17 # /MACHINE:X64
}],
],
'GenerateDebugInformation': 'true',
'RandomizedBaseAddress': 2, # enable ASLR
'DataExecutionPrevention': 2, # enable DEP
@@ -129,6 +140,12 @@
'cflags': [ '-ansi' ],
'ldflags': [ '-rdynamic' ],
}],
[ 'OS=="solaris"', {
'cflags': [ '-pthreads' ],
'ldflags': [ '-pthreads' ],
'cflags!': [ '-pthread' ],
'ldflags!': [ '-pthread' ],
}],
],
}],
['OS=="mac"', {
@@ -160,6 +177,14 @@
'xcode_settings': {'OTHER_LDFLAGS': ['-Wl,-search_paths_first']},
}],
],
'conditions': [
['target_arch=="ia32"', {
'xcode_settings': {'ARCHS': ['i386']},
}],
['target_arch=="x64"', {
'xcode_settings': {'ARCHS': ['x86_64']},
}],
],
}],
],
}

162
configure vendored
View File

@@ -1,11 +1,13 @@
#!/usr/bin/env python
import optparse
import os
import pprint
import re
import subprocess
import sys
CC = os.environ.get('CC', 'cc')
root_dir = os.path.dirname(__file__)
sys.path.insert(0, os.path.join(root_dir, 'deps', 'v8', 'tools'))
@@ -32,11 +34,6 @@ parser.add_option("--without-waf",
dest="without_waf",
help="Don\'t install node-waf")
parser.add_option("--without-isolates",
action="store_true",
dest="without_isolates",
help="Build without isolates (no threads, single loop) [Default: False]")
parser.add_option("--without-ssl",
action="store_true",
dest="without_ssl",
@@ -69,7 +66,7 @@ parser.add_option("--shared-v8-libname",
help="Alternative lib name to link to (default: 'v8')")
parser.add_option("--openssl-use-sys",
action="store",
action="store_true",
dest="openssl_use_sys",
help="Use the system OpenSSL instead of one included with Node")
@@ -88,20 +85,25 @@ parser.add_option("--no-ssl2",
dest="no_ssl2",
help="Disable OpenSSL v2")
parser.add_option("--shared-cares",
parser.add_option("--shared-zlib",
action="store_true",
dest="shared_cares",
help="Link to a shared C-Ares DLL instead of static linking")
dest="shared_zlib",
help="Link to a shared zlib DLL instead of static linking")
parser.add_option("--shared-cares-includes",
parser.add_option("--shared-zlib-includes",
action="store",
dest="shared_cares_includes",
help="Directory containing C-Ares header files")
dest="shared_zlib_includes",
help="Directory containing zlib header files")
parser.add_option("--shared-cares-libpath",
parser.add_option("--shared-zlib-libpath",
action="store",
dest="shared_cares_libpath",
help="A directory to search for the shared C-Ares DLL")
dest="shared_zlib_libpath",
help="A directory to search for the shared zlib DLL")
parser.add_option("--shared-zlib-libname",
action="store",
dest="shared_zlib_libname",
help="Alternative lib name to link to (default: 'z')")
parser.add_option("--with-dtrace",
action="store_true",
@@ -144,49 +146,115 @@ def pkg_config(pkg):
return (libs, cflags)
def uname(switch):
f = os.popen('uname %s' % switch)
s = f.read().strip()
f.close()
return s
def host_arch_cc():
"""Host architecture check using the CC command."""
p = subprocess.Popen(CC.split() + ['-dM', '-E', '-'],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
p.stdin.write('\n')
out = p.communicate()[0]
out = str(out).split('\n')
k = {}
for line in out:
import shlex
lst = shlex.split(line)
if len(lst) > 2:
key = lst[1]
val = lst[2]
k[key] = val
matchup = {
'__x86_64__' : 'x64',
'__i386__' : 'ia32',
'__arm__' : 'arm',
}
rtn = 'ia32' # default
for i in matchup:
if i in k and k[i] != '0':
rtn = matchup[i]
break
return rtn
def host_arch_win():
"""Host architecture check using environ vars (better way to do this?)"""
arch = os.environ.get('PROCESSOR_ARCHITECTURE', 'x86')
matchup = {
'AMD64' : 'x64',
'x86' : 'ia32',
'arm' : 'arm',
}
return matchup.get(arch, 'ia32')
def host_arch():
"""Host architecture. One of arm, ia32 or x64."""
arch = uname('-p')
if arch == 'unknown':
arch = uname('-m')
return {
'arm': 'arm',
'x86': 'ia32',
'i386': 'ia32',
'x86_64': 'x64',
}.get(arch, 'ia32')
if os.name == 'nt':
arch = host_arch_win()
else:
arch = host_arch_cc()
return arch
def target_arch():
return host_arch()
def gcc_version():
try:
proc = subprocess.Popen([CC, '-v'], stderr=subprocess.PIPE)
except OSError:
return None
# TODO parse clang output
version = proc.communicate()[1].split('\n')[-2]
match = re.match('gcc version (\d+)\.(\d+)\.(\d+)', version)
if not match: return None
return ['LLVM' in version] + map(int, match.groups())
def configure_node(o):
# TODO add gdb
o['variables']['node_use_isolates'] = b(not options.without_isolates)
o['variables']['node_prefix'] = options.prefix if options.prefix else ''
o['variables']['node_use_dtrace'] = b(options.with_dtrace)
o['variables']['node_install_npm'] = b(not options.without_npm)
o['variables']['node_install_waf'] = b(not options.without_waf)
o['variables']['host_arch'] = host_arch()
o['variables']['target_arch'] = options.dest_cpu or target_arch()
o['default_configuration'] = 'Debug' if options.debug else 'Release'
# TODO move to node.gyp
if sys.platform == 'sunos5':
o['variables']['visibility'] = '' # FIXME -fvisibility=hidden, should be a gcc check
# turn off strict aliasing if gcc < 4.6.0 unless it's llvm-gcc
# see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45883
# see http://code.google.com/p/v8/issues/detail?id=884
o['variables']['strict_aliasing'] = b(
'clang' in CC or gcc_version() >= [False, 4, 6, 0])
# clang has always supported -fvisibility=hidden, right?
if 'clang' not in CC and gcc_version() < [False, 4, 0, 0]:
o['variables']['visibility'] = ''
def configure_libz(o):
o['libraries'] += ['-lz']
o['variables']['node_shared_zlib'] = b(options.shared_zlib)
# assume shared_zlib if one of these is set?
if options.shared_zlib_libpath:
o['libraries'] += ['-L%s' % options.shared_zlib_libpath]
if options.shared_zlib_libname:
o['libraries'] += ['-l%s' % options.shared_zlib_libname]
elif options.shared_zlib:
o['libraries'] += ['-lz']
if options.shared_zlib_includes:
o['include_dirs'] += [options.shared_zlib_includes]
def configure_v8(o):
@@ -198,18 +266,11 @@ def configure_v8(o):
o['libraries'] += ['-L%s' % options.shared_v8_libpath]
if options.shared_v8_libname:
o['libraries'] += ['-l%s' % options.shared_v8_libname]
elif options.shared_v8:
o['libraries'] += ['-lv8']
if options.shared_v8_includes:
o['include_dirs'] += [options.shared_v8_includes]
def configure_cares(o):
o['variables']['node_shared_cares'] = b(options.shared_cares)
# assume shared_cares if one of these is set?
if options.shared_cares_libpath:
o['libraries'] += ['-L%s' % options.shared_cares_libpath]
if options.shared_cares_includes:
o['include_dirs'] += [options.shared_cares_includes]
o['variables']['node_shared_v8_includes'] = options.shared_v8_includes
def configure_openssl(o):
@@ -252,7 +313,6 @@ output = {
configure_node(output)
configure_libz(output)
configure_v8(output)
configure_cares(output)
configure_openssl(output)
# variables should be a root level element,
@@ -277,4 +337,8 @@ write('config.gypi', "# Do not edit. Generated by the configure script.\n" +
write('config.mk', "# Do not edit. Generated by the configure script.\n" +
("BUILDTYPE=%s\n" % ('Debug' if options.debug else 'Release')))
subprocess.call(['tools/gyp_node','-f', 'make'])
if os.name == 'nt':
subprocess.call(['python', 'tools/gyp_node', '-f', 'msvs',
'-G', 'msvs_version=2010'])
else:
subprocess.call(['tools/gyp_node', '-f', 'make'])

View File

@@ -1,5 +1,8 @@
core
tags
*.o
test
test_g
test_fast
*.mk
*.Makefile

4
deps/http_parser/.mailmap vendored Normal file
View File

@@ -0,0 +1,4 @@
# 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
Ryan Dahl <ry@tinyclouds.org>
Salman Haq <salman.haq@asti-usa.com>

32
deps/http_parser/AUTHORS vendored Normal file
View File

@@ -0,0 +1,32 @@
# Authors ordered by first contribution.
Ryan Dahl <ry@tinyclouds.org>
Jeremy Hinegardner <jeremy@hinegardner.org>
Sergey Shepelev <temotor@gmail.com>
Joe Damato <ice799@gmail.com>
tomika <tomika_nospam@freemail.hu>
Phoenix Sol <phoenix@burninglabs.com>
Cliff Frey <cliff@meraki.com>
Ewen Cheslack-Postava <ewencp@cs.stanford.edu>
Santiago Gala <sgala@apache.org>
Tim Becker <tim.becker@syngenio.de>
Jeff Terrace <jterrace@gmail.com>
Ben Noordhuis <info@bnoordhuis.nl>
Nathan Rajlich <nathan@tootallnate.net>
Mark Nottingham <mnot@mnot.net>
Aman Gupta <aman@tmm1.net>
Tim Becker <tim.becker@kuriositaet.de>
Sean Cunningham <sean.cunningham@mandiant.com>
Peter Griess <pg@std.in>
Salman Haq <salman.haq@asti-usa.com>
Cliff Frey <clifffrey@gmail.com>
Jon Kolb <jon@b0g.us>
Fouad Mardini <f.mardini@gmail.com>
Paul Querna <pquerna@apache.org>
Felix Geisendörfer <felix@debuggable.com>
koichik <koichik@improvement.jp>
Andre Caron <andre.l.caron@gmail.com>
Ivo Raisr <ivosh@ivosh.net>
James McLaughlin <jamie@lacewing-project.org>
David Gwynne <loki@animata.net>
LE ROUX Thomas <thomas@procheo.fr>
Randy Rizun <rrizun@ortivawireless.com>

View File

@@ -10,7 +10,7 @@ CPPFLAGS_FAST += $(CPPFLAGS_FAST_EXTRA)
CFLAGS += -Wall -Wextra -Werror
CFLAGS_DEBUG = $(CFLAGS) -O0 -g $(CFLAGS_DEBUG_EXTRA)
CFLAGS_FAST = $(CFLAGS) -O3 $(CFLAGS_FAST_EXTRA)
CFLAGS_LIB = $(CFLAGS_FAST) -fPIC
test: test_g test_fast
./test_g
@@ -40,6 +40,12 @@ test-run-timed: test_fast
test-valgrind: test_g
valgrind ./test_g
libhttp_parser.o: http_parser.c http_parser.h Makefile
$(CC) $(CPPFLAGS_FAST) $(CFLAGS_LIB) -c http_parser.c -o libhttp_parser.o
library: libhttp_parser.o
$(CC) -shared -o libhttp_parser.so libhttp_parser.o
package: http_parser.o
$(AR) rcs libhttp_parser.a http_parser.o
@@ -47,6 +53,6 @@ tags: http_parser.c http_parser.h test.c
ctags $^
clean:
rm -f *.o *.a test test_fast test_g http_parser.tar tags
rm -f *.o *.a test test_fast test_g http_parser.tar tags libhttp_parser.so libhttp_parser.o
.PHONY: clean package test-run test-run-timed test-valgrind

View File

@@ -164,8 +164,15 @@ and apply following logic:
------------------------ ------------ --------------------------------------------
Parsing URLs
------------
A simplistic zero-copy URL parser is provided as `http_parser_parse_url()`.
Users of this library may wish to use it to parse URLs constructed from
consecutive `on_url` callbacks.
See examples of reading in headers:
* [partial example](http://gist.github.com/155877) in C
* [from http-parser tests](http://github.com/ry/http-parser/blob/37a0ff8928fb0d83cec0d0d8909c5a4abcd221af/test.c#L403) in C
* [from Node library](http://github.com/ry/node/blob/842eaf446d2fdcb33b296c67c911c32a0dabc747/src/http.js#L284) in Javascript
* [from http-parser tests](http://github.com/joyent/http-parser/blob/37a0ff8/test.c#L403) in C
* [from Node library](http://github.com/joyent/node/blob/842eaf4/src/http.js#L284) in Javascript

File diff suppressed because it is too large Load Diff

View File

@@ -28,7 +28,7 @@ extern "C" {
#define HTTP_PARSER_VERSION_MINOR 0
#include <sys/types.h>
#if defined(_WIN32) && !defined(__MINGW32__) && !defined(_MSC_VER)
#if defined(_WIN32) && !defined(__MINGW32__) && (!defined(_MSC_VER) || _MSC_VER<1600)
typedef __int8 int8_t;
typedef unsigned __int8 uint8_t;
typedef __int16 int16_t;
@@ -65,7 +65,6 @@ typedef int ssize_t;
typedef struct http_parser http_parser;
typedef struct http_parser_settings http_parser_settings;
typedef struct http_parser_result http_parser_result;
/* Callbacks should return non-zero to indicate an error. The parser will
@@ -86,36 +85,44 @@ typedef int (*http_cb) (http_parser*);
/* Request Methods */
#define HTTP_METHOD_MAP(XX) \
XX(0, DELETE, DELETE) \
XX(1, GET, GET) \
XX(2, HEAD, HEAD) \
XX(3, POST, POST) \
XX(4, PUT, PUT) \
/* pathological */ \
XX(5, CONNECT, CONNECT) \
XX(6, OPTIONS, OPTIONS) \
XX(7, TRACE, TRACE) \
/* webdav */ \
XX(8, COPY, COPY) \
XX(9, LOCK, LOCK) \
XX(10, MKCOL, MKCOL) \
XX(11, MOVE, MOVE) \
XX(12, PROPFIND, PROPFIND) \
XX(13, PROPPATCH, PROPPATCH) \
XX(14, SEARCH, SEARCH) \
XX(15, UNLOCK, UNLOCK) \
/* subversion */ \
XX(16, REPORT, REPORT) \
XX(17, MKACTIVITY, MKACTIVITY) \
XX(18, CHECKOUT, CHECKOUT) \
XX(19, MERGE, MERGE) \
/* upnp */ \
XX(20, MSEARCH, M-SEARCH) \
XX(21, NOTIFY, NOTIFY) \
XX(22, SUBSCRIBE, SUBSCRIBE) \
XX(23, UNSUBSCRIBE, UNSUBSCRIBE) \
/* RFC-5789 */ \
XX(24, PATCH, PATCH) \
XX(25, PURGE, PURGE) \
enum http_method
{ HTTP_DELETE = 0
, HTTP_GET
, HTTP_HEAD
, HTTP_POST
, HTTP_PUT
/* pathological */
, HTTP_CONNECT
, HTTP_OPTIONS
, HTTP_TRACE
/* webdav */
, HTTP_COPY
, HTTP_LOCK
, HTTP_MKCOL
, HTTP_MOVE
, HTTP_PROPFIND
, HTTP_PROPPATCH
, HTTP_UNLOCK
/* subversion */
, HTTP_REPORT
, HTTP_MKACTIVITY
, HTTP_CHECKOUT
, HTTP_MERGE
/* upnp */
, HTTP_MSEARCH
, HTTP_NOTIFY
, HTTP_SUBSCRIBE
, HTTP_UNSUBSCRIBE
/* RFC-5789 */
, HTTP_PATCH
{
#define XX(num, name, string) HTTP_##name = num,
HTTP_METHOD_MAP(XX)
#undef XX
};
@@ -143,10 +150,7 @@ enum flags
\
/* Callback-related errors */ \
XX(CB_message_begin, "the on_message_begin callback failed") \
XX(CB_path, "the on_path callback failed") \
XX(CB_query_string, "the on_query_string callback failed") \
XX(CB_url, "the on_url callback failed") \
XX(CB_fragment, "the on_fragment callback failed") \
XX(CB_header_field, "the on_header_field callback failed") \
XX(CB_header_value, "the on_header_value callback failed") \
XX(CB_headers_complete, "the on_headers_complete callback failed") \
@@ -177,6 +181,7 @@ enum flags
XX(INVALID_CONSTANT, "invalid constant string") \
XX(INVALID_INTERNAL_STATE, "encountered unexpected internal state")\
XX(STRICT, "strict mode assertion failed") \
XX(PAUSED, "parser is paused") \
XX(UNKNOWN, "an unknown error occurred")
@@ -201,20 +206,20 @@ enum http_errno {
struct http_parser {
/** PRIVATE **/
unsigned char type : 2;
unsigned char flags : 6; /* F_* values from 'flags' enum; semi-public */
unsigned char state;
unsigned char header_state;
unsigned char index;
unsigned char type : 2; /* enum http_parser_type */
unsigned char flags : 6; /* F_* values from 'flags' enum; semi-public */
unsigned char state; /* enum state from http_parser.c */
unsigned char header_state; /* enum header_state from http_parser.c */
unsigned char index; /* index into current matcher */
uint32_t nread;
int64_t content_length;
uint32_t nread; /* # bytes read in various scenarios */
uint64_t content_length; /* # bytes in body (0 if no Content-Length header) */
/** READ-ONLY **/
unsigned short http_major;
unsigned short http_minor;
unsigned short status_code; /* responses only */
unsigned char method; /* requests only */
unsigned char method; /* requests only */
unsigned char http_errno : 7;
/* 1 = Upgrade header was present and the parser has exited because of that.
@@ -244,6 +249,35 @@ struct http_parser_settings {
};
enum http_parser_url_fields
{ UF_SCHEMA = 0
, UF_HOST = 1
, UF_PORT = 2
, UF_PATH = 3
, UF_QUERY = 4
, UF_FRAGMENT = 5
, UF_MAX = 6
};
/* Result structure for http_parser_parse_url().
*
* Callers should index into field_data[] with UF_* values iff field_set
* has the relevant (1 << UF_*) bit set. As a courtesy to clients (and
* because we probably have padding left over), we convert any port to
* a uint16_t.
*/
struct http_parser_url {
uint16_t field_set; /* Bitmask of (1 << UF_*) values */
uint16_t port; /* Converted UF_PORT string */
struct {
uint16_t off; /* Offset into buffer in which field starts */
uint16_t len; /* Length of run in buffer */
} field_data[UF_MAX];
};
void http_parser_init(http_parser *parser, enum http_parser_type type);
@@ -270,6 +304,14 @@ const char *http_errno_name(enum http_errno err);
/* Return a string description of the given error */
const char *http_errno_description(enum http_errno err);
/* Parse a URL; return nonzero on failure */
int http_parser_parse_url(const char *buf, size_t buflen,
int is_connect,
struct http_parser_url *u);
/* Pause or un-pause the parser; a nonzero value pauses */
void http_parser_pause(http_parser *parser, int paused);
#ifdef __cplusplus
}
#endif

1059
deps/http_parser/test.c vendored

File diff suppressed because it is too large Load Diff

4
deps/npm/.npmignore vendored
View File

@@ -11,3 +11,7 @@ npm-debug.log
./npmrc
.gitignore
release/
# don't ignore .npmignore files
# these are used in some tests.
!.npmignore

10
deps/npm/AUTHORS vendored
View File

@@ -51,3 +51,13 @@ Stephen Sugden <glurgle@gmail.com>
Gautham Pai <buzypi@gmail.com>
David Trejo <david.daniel.trejo@gmail.com>
Paul Vorbach <paul@vorb.de>
George Ornbo <george@shapeshed.com>
Tim Oxley <secoif@gmail.com>
Tyler Green <tyler.green2@gmail.com>
atomizer <danila.gerasimov@gmail.com>
Rod Vagg <rod@vagg.org>
Christian Howe <coderarity@gmail.com>
Andrew Lunny <alunny@gmail.com>
Henrik Hodne <dvyjones@binaryhex.com>
Adam Blackburn <regality@gmail.com>
Kris Windham <kriswindham@gmail.com>

18
deps/npm/LICENSE vendored
View File

@@ -1,4 +1,4 @@
Copyright 2009, 2010, 2011 Isaac Z. Schlueter (the "Author")
Copyright 2009-2012, Isaac Z. Schlueter (the "Original Author")
All rights reserved.
MIT +no-false-attribs License
@@ -20,9 +20,9 @@ by the recipients as they would use the unmodified Software,
containing modifications that substantially alter, remove, or
disable functionality of the Software, outside of the documented
configuration mechanisms provided by the Software, shall be
modified such that the Author's bug reporting email addresses and
urls are either replaced with the contact information of the
parties responsible for the changes, or removed entirely.
modified such that the Original Author's bug reporting email
addresses and urls are either replaced with the contact information
of the parties responsible for the changes, or removed entirely.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
@@ -36,7 +36,7 @@ OTHER DEALINGS IN THE SOFTWARE.
Except where noted, this license applies to any and all software
programs and associated documentation files created by the
Author, when distributed with the Software.
Original Author, when distributed with the Software.
"Node.js" and "node" trademark Joyent, Inc. npm is not officially
part of the Node.js project, and is neither owned by nor
@@ -49,13 +49,11 @@ and are not covered by this license.
"npm Logo" created by Mathias Pettersson and Brian Hammond,
used with permission.
This program includes a BSDTar/LibArchive version 2.8.3-1 binary,
originally distributed as part of the MinGW suite, compiled for
Win32, according to the terms of the BSD license.
See deps/basic-bsdtar-2.8.3-1-ming32-bin/basic-bsdtar.LICENSE.
This program uses "node-uuid", Copyright (c) 2010 Robert Kieffer,
according to the terms of the MIT license.
This program uses "request", Copyright (c) 2011 Mikeal Rogers,
according to the terms of the Apache license.
This program uses "mkdirp", Copyright (c) 2010 James Halliday,
according to the terms of the MIT/X11 license.

2
deps/npm/Makefile vendored
View File

@@ -123,7 +123,7 @@ doc-publish: doc
rsync -vazu --stats --no-implied-dirs --delete html/api/ npmjs.org:/var/www/npmjs.org/public/api
zip-publish: release
scp release/*.zip npmjs.org:/var/www/npmjs.org/public/dist/
scp release/* npmjs.org:/var/www/npmjs.org/public/dist/
release:
@bash scripts/release.sh

2
deps/npm/bin/node-gyp-bin/node-gyp vendored Executable file
View File

@@ -0,0 +1,2 @@
#!/usr/bin/env sh
node "`dirname "$0"`/../../node_modules/node-gyp/bin/node-gyp.js" "$@"

1
deps/npm/bin/node-gyp-bin/node-gyp.cmd vendored Executable file
View File

@@ -0,0 +1 @@
node "%~dp0\..\..\node_modules\node-gyp\bin\node-gyp.js" %*

View File

@@ -49,6 +49,13 @@ if (conf.version) {
return
}
if (conf.versions) {
var v = process.versions
v.npm = npm.version
console.log(v)
return
}
log.info("npm@"+npm.version, "using")
log.info("node@"+process.version, "using")

View File

@@ -1,6 +1,6 @@
:: Created by npm, please don't edit manually.
@IF EXIST "%~dp0"\"node.exe" (
"%~dp0"\"node.exe" "%~dp0\.\node_modules\npm\bin\npm-cli.js" %*
@IF EXIST "%~dp0\node.exe" (
"%~dp0\node.exe" "%~dp0\.\node_modules\npm\bin\npm-cli.js" %*
) ELSE (
node "%~dp0\.\node_modules\npm\bin\npm-cli.js" %*
)
node "%~dp0\.\node_modules\npm\bin\npm-cli.js" %*
)

View File

@@ -21,6 +21,12 @@ It will print out extraneous, missing, and invalid packages.
If the silent parameter is set to true, nothing will be output to the screen,
but the data will still be returned.
Callback is provided an error if one occurred, the full data about which
packages are installed and which dependencies they will receive, and a
"lite" data object which just shows which versions are installed where.
Note that the full data object is a circular structure, so care must be
taken if it is serialized to JSON.
## CONFIGURATION
### long

20
deps/npm/doc/api/shrinkwrap.md vendored Normal file
View File

@@ -0,0 +1,20 @@
npm-shrinkwrap(3) -- programmatically generate package shrinkwrap file
====================================================
## SYNOPSIS
npm.commands.shrinkwrap(args, [silent,] callback)
## DESCRIPTION
This acts much the same ways as shrinkwrapping on the command-line.
This command does not take any arguments, but 'args' must be defined.
Beyond that, if any arguments are passed in, npm will politely warn that it
does not take positional arguments.
If the 'silent' parameter is set to true, nothing will be output to the screen,
but the shrinkwrap file will still be written.
Finally, 'callback' is a function that will be called when the shrinkwrap has
been saved.

View File

@@ -3,6 +3,50 @@ npm-changelog(1) -- Changes
## HISTORY
### 1.1.3, 1.1.4
* Update request to support HTTPS-over-HTTP proxy tunneling
* Throw on undefined envs in config settings
* Update which to 1.0.5
* Fix windows UNC busyloop in findPrefix
* Bundle nested bundleDependencies properly
* Alias adduser to add-user
* Doc updates (Christian Howe, Henrik Hodne, Andrew Lunny)
* ignore logfd/outfd streams in makeEnv() (Rod Vagg)
* shrinkwrap: Behave properly with url-installed deps
* install: Support --save with url install targets
* Support installing naked tars or single-file modules from urls etc.
* init: Don't add engines section
* Don't run make clean on rebuild
* Added missing unicode replacement (atomizer)
### 1.1.2
Dave Pacheco (2):
add "npm shrinkwrap"
Martin Cooper (1):
Fix #1753 Make a copy of the cached objects we'll modify.
Tim Oxley (1):
correctly remove readme from default npm view command.
Tyler Green (1):
fix #2187 set terminal columns to Infinity if 0
isaacs (19):
update minimatch
update request
Experimental: single-file modules
Fix #2172 Don't remove global mans uninstalling local pkgs
Add --versions flag to show the version of node as well
Support --json flag for ls output
update request to 2.9.151
### 1.1
* Replace system tar dependency with a JS tar
* Continue to refine
### 1.0
* Greatly simplified folder structure
* Install locally (bundle by default)

View File

@@ -59,8 +59,8 @@ Don't use them except in four situations:
* `for (;;)` loops. They're actually required.
* null loops like: `while (something) ;` (But you'd better have a good
reason for doing that.)
* case "foo": doSomething(); break
* In front of a leading ( or [ at the start of the line.
* `case "foo": doSomething(); break`
* In front of a leading `(` or `[` at the start of the line.
This prevents the expression from being interpreted
as a function call or property access, respectively.

View File

@@ -218,6 +218,28 @@ See also the `strict-ssl` config.
The location of npm's cache directory. See `npm-cache(1)`
### cache-max
* Default: Infinity
* Type: Number
The maximum time (in seconds) to keep items in the registry cache before
re-checking against the registry.
Note that no purging is done unless the `npm cache clean` command is
explicitly used, and that only GET requests use the cache.
### cache-min
* Default: 0
* Type: Number
The minimum time (in seconds) to keep items in the registry cache before
re-checking against the registry.
Note that no purging is done unless the `npm cache clean` command is
explicitly used, and that only GET requests use the cache.
### color
* Default: true on Posix, false on Windows
@@ -353,7 +375,7 @@ The value `npm init` should use by default for the package version.
### init.author.name
* Default: "0.0.0"
* Default: ""
* Type: String
The value `npm init` should use by default for the package author's name.
@@ -372,6 +394,17 @@ The value `npm init` should use by default for the package author's email.
The value `npm init` should use by default for the package author's homepage.
### json
* Default: false
* Type: Boolean
Whether or not to output JSON data, rather than the normal output.
This feature is currently experimental, and the output data structures
for many commands is either not implemented in JSON yet, or subject to
change. Only the output from `npm ls --json` is currently valid.
### link
* Default: false
@@ -682,6 +715,16 @@ If true, output the npm version and exit successfully.
Only relevant when specified explicitly on the command line.
### versions
* Default: false
* Type: boolean
If true, output the npm version as well as node's `process.versions`
hash, and exit successfully.
Only relevant when specified explicitly on the command line.
### viewer
* Default: "man" on Posix, "browser" on Windows

View File

@@ -27,12 +27,23 @@ A package is:
* d) a `<name>@<version>` that is published on the registry with (c)
* e) a `<name>@<tag>` that points to (d)
* f) a `<name>` that has a "latest" tag satisfying (e)
* g) a `git` url that, when cloned, results in (a).
Even if you never publish your package, you can still get a lot of
benefits of using npm if you just want to write a node program (a), and
perhaps if you also want to be able to easily install it elsewhere
after packing it up into a tarball (b).
Git urls can be of the form:
git://github.com/user/project.git#commit-ish
git+ssh://user@hostname:project.git#commit-ish
git+http://user@hostname/project/blah.git#commit-ish
git+https://user@hostname/project/blah.git#commit-ish
The `commit-ish` can be any tag, sha, or branch which can be supplied as
an argument to `git checkout`. The default is `master`.
## The package.json File
You need to have a `package.json` file in the root of your project to do

View File

@@ -170,6 +170,10 @@ npm-index(1) -- Index of all npm documentation
The semantic versioner for npm
## npm-shrinkwrap(1)
Lock down dependency versions
## npm-star(1)
Mark your favorite packages
@@ -323,6 +327,10 @@ npm-index(1) -- Index of all npm documentation
Search for packages
## npm-shrinkwrap(3)
programmatically generate package shrinkwrap file
## npm-start(3)
Start a package

View File

@@ -14,7 +14,9 @@ npm-install(1) -- Install a package
## DESCRIPTION
This command installs a package, and any packages that it depends on.
This command installs a package, and any packages that it depends on. If the
package has a shrinkwrap file, the installation of dependencies will be driven
by that. See npm-shrinkwrap(1).
A `package` is:
@@ -199,3 +201,4 @@ affects a real use-case, it will be investigated.
* npm-folders(1)
* npm-tag(1)
* npm-rm(1)
* npm-shrinkwrap(1)

View File

@@ -332,6 +332,7 @@ is a semver compatible version identifier.
* `""` (just an empty string) Same as `*`
* `version1 - version2` Same as `>=version1 <=version2`.
* `range1 || range2` Passes if either range1 or range2 are satisfied.
* `git...` See 'Git URLs as Dependencies' below
For example, these are all valid:
@@ -387,6 +388,18 @@ of a version range.
This tarball will be downloaded and installed locally to your package at
install time.
### Git URLs as Dependencies
Git urls can be of the form:
git://github.com/user/project.git#commit-ish
git+ssh://user@hostname:project.git#commit-ish
git+http://user@hostname/project/blah.git#commit-ish
git+https://user@hostname/project/blah.git#commit-ish
The `commit-ish` can be any tag, sha, or branch which can be supplied as
an argument to `git checkout`. The default is `master`.
## devDependencies
If someone is planning on downloading and using your module in their
@@ -415,7 +428,7 @@ node that your stuff works on:
{ "engines" : { "node" : ">=0.1.27 <0.1.30" } }
And, like with dependencies, if you don't specify the version (or if you
specify "*" as the version), then any version of node will do.
specify "\*" as the version), then any version of node will do.
If you specify an "engines" field, then npm will require that "node" be
somewhere on that list. If "engines" is omitted, then npm will just assume
@@ -426,6 +439,36 @@ are capable of properly installing your program. For example:
{ "engines" : { "npm" : "~1.0.20" } }
## os
You can specify which operating systems your
module will run on:
"os" : [ "darwin", "linux" ]
You can also blacklist instead of whitelist operating systems,
just prepend the blacklisted os with a '!':
"os" : [ "!win32" ]
The host operating system is determined by `process.platform`
It is allowed to both blacklist, and whitelist, although there isn't any
good reason to do this.
## cpu
If your code only runs on certain cpu architectures,
you can specify which ones.
"cpu" : [ "x64", "ia32" ]
Like the `os` option, you can also blacklist architectures:
"cpu" : [ "!arm", "!mips" ]
The host architecture is determined by `process.arch`
## preferGlobal
If your package is primarily a command-line application that should be

View File

@@ -22,6 +22,13 @@ When run as `ll` or `la`, it shows extended information by default.
## CONFIGURATION
### json
* Default: false
* Type: Boolean
Show information in JSON format.
### long
* Default: false

View File

@@ -62,6 +62,20 @@ Package scripts run in an environment where many pieces of information are
made available regarding the setup of npm and the current state of the
process.
### path
If you depend on modules that define executable scripts, like test suites,
then those executables will be added to the `PATH` for executing the scripts.
So, if your package.json has this:
{ "name" : "foo"
, "dependencies" : { "bar" : "0.1.x" }
, "scripts": { "start" : "bar ./test" } }
then you could run `npm start` to execute the `bar` script, which is exported
into the `node_modules/.bin` directory on `npm install`.
### package.json vars
The package.json fields are tacked onto the `npm_package_` prefix. So, for

171
deps/npm/doc/cli/shrinkwrap.md vendored Normal file
View File

@@ -0,0 +1,171 @@
npm-shrinkwrap(1) -- Lock down dependency versions
=====================================================
## SYNOPSIS
npm shrinkwrap
## DESCRIPTION
This command locks down the versions of a package's dependencies so that you can
control exactly which versions of each dependency will be used when your package
is installed.
By default, "npm install" recursively installs the target's dependencies (as
specified in package.json), choosing the latest available version that satisfies
the dependency's semver pattern. In some situations, particularly when shipping
software where each change is tightly managed, it's desirable to fully specify
each version of each dependency recursively so that subsequent builds and
deploys do not inadvertently pick up newer versions of a dependency that satisfy
the semver pattern. Specifying specific semver patterns in each dependency's
package.json would facilitate this, but that's not always possible or desirable,
as when another author owns the npm package. It's also possible to check
dependencies directly into source control, but that may be undesirable for other
reasons.
As an example, consider package A:
{
"name": "A",
"version": "0.1.0",
"dependencies": {
"B": "<0.1.0"
}
}
package B:
{
"name": "B",
"version": "0.0.1",
"dependencies": {
"C": "<0.1.0"
}
}
and package C:
{
"name": "C,
"version": "0.0.1"
}
If these are the only versions of A, B, and C available in the registry, then
a normal "npm install A" will install:
A@0.1.0
`-- B@0.0.1
`-- C@0.0.1
However, if B@0.0.2 is published, then a fresh "npm install A" will install:
A@0.1.0
`-- B@0.0.2
`-- C@0.0.1
assuming the new version did not modify B's dependencies. Of course, the new
version of B could include a new version of C and any number of new
dependencies. If such changes are undesirable, the author of A could specify a
dependency on B@0.0.1. However, if A's author and B's author are not the same
person, there's no way for A's author to say that he or she does not want to
pull in newly published versions of C when B hasn't changed at all.
In this case, A's author can run
npm shrinkwrap
This generates npm-shrinkwrap.json, which will look something like this:
{
"name": "A",
"version": "0.1.0",
"dependencies": {
"B": {
"version": "0.0.1",
"dependencies": {
"C": {
"version": "0.1.0"
}
}
}
}
}
The shrinkwrap command has locked down the dependencies based on what's
currently installed in node_modules. When "npm install" installs a package with
a npm-shrinkwrap.json file in the package root, the shrinkwrap file (rather than
package.json files) completely drives the installation of that package and all
of its dependencies (recursively). So now the author publishes A@0.1.0, and
subsequent installs of this package will use B@0.0.1 and C@0.1.0, regardless the
dependencies and versions listed in A's, B's, and C's package.json files.
### Using shrinkwrapped packages
Using a shrinkwrapped package is no different than using any other package: you
can "npm install" it by hand, or add a dependency to your package.json file and
"npm install" it.
### Building shrinkwrapped packages
To shrinkwrap an existing package:
1. Run "npm install" in the package root to install the current versions of all
dependencies.
2. Validate that the package works as expected with these versions.
3. Run "npm shrinkwrap", add npm-shrinkwrap.json to git, and publish your
package.
To add or update a dependency in a shrinkwrapped package:
1. Run "npm install" in the package root to install the current versions of all
dependencies.
2. Add or update dependencies. "npm install" each new or updated package
individually and then update package.json. Note that they must be
explicitly named in order to be installed: running `npm install` with
no arguments will merely reproduce the existing shrinkwrap.
3. Validate that the package works as expected with the new dependencies.
4. Run "npm shrinkwrap", commit the new npm-shrinkwrap.json, and publish your
package.
You can use npm-outdated(1) to view dependencies with newer versions available.
### Other Notes
Since "npm shrinkwrap" uses the locally installed packages to construct the
shrinkwrap file, devDependencies will be included if and only if you've
installed them already when you make the shrinkwrap.
A shrinkwrap file must be consistent with the package's package.json file. "npm
shrinkwrap" will fail if required dependencies are not already installed, since
that would result in a shrinkwrap that wouldn't actually work. Similarly, the
command will fail if there are extraneous packages (not referenced by
package.json), since that would indicate that package.json is not correct.
If shrinkwrapped package A depends on shrinkwrapped package B, B's shrinkwrap
will not be used as part of the installation of A. However, because A's
shrinkwrap is constructed from a valid installation of B and recursively
specifies all dependencies, the contents of B's shrinkwrap will implicitly be
included in A's shrinkwrap.
### Caveats
Shrinkwrap files only lock down package versions, not actual package contents.
While discouraged, a package author can republish an existing version of a
package, causing shrinkwrapped packages using that version to pick up different
code than they were before. If you want to avoid any risk that a byzantine
author replaces a package you're using with code that breaks your application,
you could modify the shrinkwrap file to use git URL references rather than
version numbers so that npm always fetches all packages from git.
If you wish to lock down the specific bytes included in a package, for
example to have 100% confidence in being able to reproduce a deployment
or build, then you ought to check your dependencies into source control,
or pursue some other mechanism that can verify contents rather than
versions.
## SEE ALSO
* npm-install(1)
* npm-json(1)
* npm-list(1)

View File

@@ -19,7 +19,7 @@
<p>This function should not be used programmatically. Instead, just refer
to the <code>npm.bin</code> member.</p>
</div>
<p id="footer">bin &mdash; npm@1.1.0-3</p>
<p id="footer">bin &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -25,7 +25,7 @@ optional version number.</p>
<p>This command will launch a browser, so this command may not be the most
friendly for programmatic use.</p>
</div>
<p id="footer">bugs &mdash; npm@1.1.0-3</p>
<p id="footer">bugs &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -28,7 +28,7 @@ usage, or <code>man 3 npm-&lt;command&gt;</code> for programmatic usage.</p>
<ul><li><a href="../doc/index.html">index(1)</a></li></ul>
</div>
<p id="footer">commands &mdash; npm@1.1.0-3</p>
<p id="footer">commands &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -33,7 +33,7 @@ functions instead.</p>
<ul><li><a href="../api/npm.html">npm(3)</a></li></ul>
</div>
<p id="footer">config &mdash; npm@1.1.0-3</p>
<p id="footer">config &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -30,7 +30,7 @@ install the package.</p></li></ul>
<ul><li><a href="../api/publish.html">publish(3)</a></li><li><a href="../api/unpublish.html">unpublish(3)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
</div>
<p id="footer">deprecate &mdash; npm@1.1.0-3</p>
<p id="footer">deprecate &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -25,7 +25,7 @@ optional version number.</p>
<p>This command will launch a browser, so this command may not be the most
friendly for programmatic use.</p>
</div>
<p id="footer">docs &mdash; npm@1.1.0-3</p>
<p id="footer">docs &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -30,7 +30,7 @@ to open. The package can optionally have a version number attached.</p>
<p>Since this command opens an editor in a new process, be careful about where
and how this is used.</p>
</div>
<p id="footer">edit &mdash; npm@1.1.0-3</p>
<p id="footer">edit &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -24,7 +24,7 @@ sure to use <code>npm rebuild &lt;pkg&gt;</code> if you make any changes.</p>
<p>The first element in the 'args' parameter must be a package name. After that is the optional command, which can be any number of strings. All of the strings will be combined into one, space-delimited command.</p>
</div>
<p id="footer">explore &mdash; npm@1.1.0-3</p>
<p id="footer">explore &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -32,7 +32,7 @@ Name of the file that matched</li></ul>
<p>The silent parameter is not neccessary not used, but it may in the future.</p>
</div>
<p id="footer">help-search &mdash; npm@1.1.0-3</p>
<p id="footer">help-search &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -35,7 +35,7 @@ then go ahead and use this programmatically.</p>
<p><a href="../doc/json.html">json(1)</a></p>
</div>
<p id="footer">init &mdash; npm@1.1.0-3</p>
<p id="footer">init &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -25,7 +25,7 @@ the name of a package to be installed.</p>
<p>Finally, 'callback' is a function that will be called when all packages have been
installed or when an error has been encountered.</p>
</div>
<p id="footer">install &mdash; npm@1.1.0-3</p>
<p id="footer">install &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -39,7 +39,7 @@ npm.commands.link('redis', cb) # link-install the package</code></pre>
<p>Now, any changes to the redis package will be reflected in
the package in the current working directory</p>
</div>
<p id="footer">link &mdash; npm@1.1.0-3</p>
<p id="footer">link &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -32,7 +32,7 @@ config object.</p>
<p>For a list of all the available command-line configs, see <code>npm help config</code></p>
</div>
<p id="footer">load &mdash; npm@1.1.0-3</p>
<p id="footer">load &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -28,6 +28,12 @@ like with any other command, such as <code>global</code> to list global packages
<p>If the silent parameter is set to true, nothing will be output to the screen,
but the data will still be returned.</p>
<p>Callback is provided an error if one occurred, the full data about which
packages are installed and which dependencies they will receive, and a
"lite" data object which just shows which versions are installed where.
Note that the full data object is a circular structure, so care must be
taken if it is serialized to JSON.</p>
<h2 id="CONFIGURATION">CONFIGURATION</h2>
<h3 id="long">long</h3>
@@ -53,7 +59,7 @@ project.</p>
This means that if a submodule a same dependency as a parent module, then the
dependency will only be output once.</p>
</div>
<p id="footer">ls &mdash; npm@1.1.0-3</p>
<p id="footer">ls &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -24,7 +24,7 @@ npm.load(configObject, function (er, npm) {
<h2 id="VERSION">VERSION</h2>
<p>1.1.0-3</p>
<p>1.1.15</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
@@ -91,7 +91,7 @@ method names. Use the <code>npm.deref</code> method to find the real name.</p>
<pre><code>var cmd = npm.deref("unp") // cmd === "unpublish"</code></pre>
</div>
<p id="footer">npm &mdash; npm@1.1.0-3</p>
<p id="footer">npm &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -19,7 +19,7 @@ currently outdated.</p>
<p>If the 'packages' parameter is left out, npm will check all packages.</p>
</div>
<p id="footer">outdated &mdash; npm@1.1.0-3</p>
<p id="footer">outdated &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -34,7 +34,7 @@ that is not implemented at this time.</p>
<ul><li><a href="../api/publish.html">publish(3)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
</div>
<p id="footer">owner &mdash; npm@1.1.0-3</p>
<p id="footer">owner &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -25,7 +25,7 @@ overwritten the second time.</p>
<p>If no arguments are supplied, then npm packs the current package folder.</p>
</div>
<p id="footer">pack &mdash; npm@1.1.0-3</p>
<p id="footer">pack &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -21,7 +21,7 @@
<p>This function is not useful programmatically</p>
</div>
<p id="footer">prefix &mdash; npm@1.1.0-3</p>
<p id="footer">prefix &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -23,7 +23,7 @@
<p>Extraneous packages are packages that are not listed on the parent
package's dependencies list.</p>
</div>
<p id="footer">prune &mdash; npm@1.1.0-3</p>
<p id="footer">prune &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -32,7 +32,7 @@ the registry. Overwrites when the "force" environment variable is set.</p>
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../api/owner.html">owner(3)</a></li></ul>
</div>
<p id="footer">publish &mdash; npm@1.1.0-3</p>
<p id="footer">publish &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -22,7 +22,7 @@ the new binary. If no 'packages' parameter is specify, every package will be reb
<p>See <code>npm help build</code></p>
</div>
<p id="footer">rebuild &mdash; npm@1.1.0-3</p>
<p id="footer">rebuild &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -27,7 +27,7 @@ in the <code>packages</code> parameter.</p>
<ul><li><a href="../api/start.html">start(3)</a></li><li><a href="../api/stop.html">stop(3)</a></li></ul>
</div>
<p id="footer">restart &mdash; npm@1.1.0-3</p>
<p id="footer">restart &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -21,7 +21,7 @@
<p>This function is not useful programmatically.</p>
</div>
<p id="footer">root &mdash; npm@1.1.0-3</p>
<p id="footer">root &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -29,7 +29,7 @@ assumed to be the command to run. All other elements are ignored.</p>
<ul><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../api/test.html">test(3)</a></li><li><a href="../api/start.html">start(3)</a></li><li><a href="../api/restart.html">restart(3)</a></li><li><a href="../api/stop.html">stop(3)</a></li></ul>
</div>
<p id="footer">run-script &mdash; npm@1.1.0-3</p>
<p id="footer">run-script &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -32,7 +32,7 @@ excluded term (the "searchexclude" config). The search is case insensitive
and doesn't try to read your mind (it doesn't do any verb tense matching or the
like).</p>
</div>
<p id="footer">search &mdash; npm@1.1.0-3</p>
<p id="footer">search &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

61
deps/npm/html/api/shrinkwrap.html vendored Normal file
View File

@@ -0,0 +1,61 @@
<!doctype html>
<html>
<title>shrinkwrap</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/shrinkwrap.html">shrinkwrap</a></h1> <p>programmatically generate package shrinkwrap file</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.shrinkwrap(args, [silent,] callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This acts much the same ways as shrinkwrapping on the command-line.</p>
<p>This command does not take any arguments, but 'args' must be defined.
Beyond that, if any arguments are passed in, npm will politely warn that it
does not take positional arguments.</p>
<p>If the 'silent' parameter is set to true, nothing will be output to the screen,
but the shrinkwrap file will still be written.</p>
<p>Finally, 'callback' is a function that will be called when the shrinkwrap has
been saved.</p>
</div>
<p id="footer">shrinkwrap &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

View File

@@ -19,7 +19,7 @@
<p>npm can run tests on multiple packages. Just specify multiple packages
in the <code>packages</code> parameter.</p>
</div>
<p id="footer">start &mdash; npm@1.1.0-3</p>
<p id="footer">start &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -19,7 +19,7 @@
<p>npm can run stop on multiple packages. Just specify multiple packages
in the <code>packages</code> parameter.</p>
</div>
<p id="footer">stop &mdash; npm@1.1.0-3</p>
<p id="footer">stop &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -33,7 +33,7 @@ dependencies into the submodule folder.</p>
<ul><li>npm help json</li><li>git help submodule</li></ul>
</div>
<p id="footer">submodule &mdash; npm@1.1.0-3</p>
<p id="footer">submodule &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -29,7 +29,7 @@ parameter is missing or falsey (empty), the default froom the config will be
used. For more information about how to set this config, check
<code>man 3 npm-config</code> for programmatic usage or <code>man npm-config</code> for cli usage.</p>
</div>
<p id="footer">tag &mdash; npm@1.1.0-3</p>
<p id="footer">tag &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -22,7 +22,7 @@ true.</p>
<p>npm can run tests on multiple packages. Just specify multiple packages
in the <code>packages</code> parameter.</p>
</div>
<p id="footer">test &mdash; npm@1.1.0-3</p>
<p id="footer">test &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -22,7 +22,7 @@ the name of a package to be uninstalled.</p>
<p>Finally, 'callback' is a function that will be called when all packages have been
uninstalled or when an error has been encountered.</p>
</div>
<p id="footer">uninstall &mdash; npm@1.1.0-3</p>
<p id="footer">uninstall &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -26,7 +26,7 @@ is what is meant.</p>
<p>If no version is specified, or if all versions are removed then
the root package entry is removed from the registry entirely.</p>
</div>
<p id="footer">unpublish &mdash; npm@1.1.0-3</p>
<p id="footer">unpublish &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -18,7 +18,7 @@
<p>The 'packages' argument is an array of packages to update. The 'callback' parameter will be called when done or when an error occurs.</p>
</div>
<p id="footer">update &mdash; npm@1.1.0-3</p>
<p id="footer">update &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -24,7 +24,7 @@ fail if the repo is not clean.</p>
parameter. The difference, however, is this function will fail if it does
not have exactly one element. The only element should be a version number.</p>
</div>
<p id="footer">version &mdash; npm@1.1.0-3</p>
<p id="footer">version &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -99,7 +99,7 @@ the field name.</p>
<p>corresponding to the list of fields selected.</p>
</div>
<p id="footer">view &mdash; npm@1.1.0-3</p>
<p id="footer">view &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -21,7 +21,7 @@
<p>This function is not useful programmatically</p>
</div>
<p id="footer">whoami &mdash; npm@1.1.0-3</p>
<p id="footer">whoami &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -267,7 +267,7 @@ will no doubt tell you to put the output in a gist or email.</p>
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/help.html">help(1)</a></li><li><a href="../doc/index.html">index(1)</a></li></ul>
</div>
<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@1.1.0-3</p>
<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -39,7 +39,7 @@ authorize on a new machine.</p>
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li><li><a href="../doc/whoami.html">whoami(1)</a></li></ul>
</div>
<p id="footer">adduser &mdash; npm@1.1.0-3</p>
<p id="footer">adduser &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -20,7 +20,7 @@
<ul><li><a href="../doc/prefix.html">prefix(1)</a></li><li><a href="../doc/root.html">root(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
<p id="footer">bin &mdash; npm@1.1.0-3</p>
<p id="footer">bin &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -36,7 +36,7 @@ config param.</p>
<ul><li><a href="../doc/docs.html">docs(1)</a></li><li><a href="../doc/view.html">view(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li></ul>
</div>
<p id="footer">bugs &mdash; npm@1.1.0-3</p>
<p id="footer">bugs &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -25,7 +25,7 @@ A folder containing a <code>package.json</code> file in its root.</li></ul>
<ul><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/link.html">link(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/json.html">json(1)</a></li></ul>
</div>
<p id="footer">build &mdash; npm@1.1.0-3</p>
<p id="footer">build &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -20,7 +20,7 @@ install packages into the local space.</p>
<ul><li><a href="../doc/install.html">install(1)</a></li></ul>
</div>
<p id="footer">bundle &mdash; npm@1.1.0-3</p>
<p id="footer">bundle &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -66,7 +66,7 @@ they do not make an HTTP request to the registry.</p>
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/pack.html">pack(1)</a></li></ul>
</div>
<p id="footer">cache &mdash; npm@1.1.0-3</p>
<p id="footer">cache &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -10,6 +10,37 @@
<h2 id="HISTORY">HISTORY</h2>
<h3 id="1-1-3-1-1-4">1.1.3, 1.1.4</h3>
<ul><li>Update request to support HTTPS-over-HTTP proxy tunneling</li><li>Throw on undefined envs in config settings</li><li>Update which to 1.0.5</li><li>Fix windows UNC busyloop in findPrefix</li><li>Bundle nested bundleDependencies properly</li><li>Alias adduser to add-user</li><li>Doc updates (Christian Howe, Henrik Hodne, Andrew Lunny)</li><li>ignore logfd/outfd streams in makeEnv() (Rod Vagg)</li><li>shrinkwrap: Behave properly with url-installed deps</li><li>install: Support --save with url install targets</li><li>Support installing naked tars or single-file modules from urls etc.</li><li>init: Don't add engines section</li><li>Don't run make clean on rebuild</li><li>Added missing unicode replacement (atomizer)</li></ul>
<h3 id="1-1-2">1.1.2</h3>
<p>Dave Pacheco (2):
add "npm shrinkwrap"</p>
<p>Martin Cooper (1):
Fix #1753 Make a copy of the cached objects we'll modify.</p>
<p>Tim Oxley (1):
correctly remove readme from default npm view command.</p>
<p>Tyler Green (1):
fix #2187 set terminal columns to Infinity if 0</p>
<p>isaacs (19):
update minimatch
update request
Experimental: single-file modules
Fix #2172 Don't remove global mans uninstalling local pkgs
Add --versions flag to show the version of node as well
Support --json flag for ls output
update request to 2.9.151</p>
<h3 id="1-1">1.1</h3>
<ul><li>Replace system tar dependency with a JS tar</li><li>Continue to refine</li></ul>
<h3 id="1-0">1.0</h3>
<ul><li>Greatly simplified folder structure </li><li>Install locally (bundle by default) </li><li>Drastic rearchitecture</li></ul>
@@ -34,7 +65,7 @@
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li></ul>
</div>
<p id="footer">changelog &mdash; npm@1.1.0-3</p>
<p id="footer">changelog &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -64,7 +64,7 @@ while (foo) {
<p>Don't use them except in four situations:</p>
<ul><li><code>for (;;)</code> loops. They're actually required.</li><li>null loops like: <code>while (something) ;</code> (But you'd better have a good
reason for doing that.)</li><li>case "foo": doSomething(); break</li><li>In front of a leading ( or [ at the start of the line.
reason for doing that.)</li><li><code>case "foo": doSomething(); break</code></li><li>In front of a leading <code>(</code> or <code>[</code> at the start of the line.
This prevents the expression from being interpreted
as a function call or property access, respectively.</li></ul>
@@ -191,7 +191,7 @@ set to anything."</p>
<ul><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
</div>
<p id="footer">coding-style &mdash; npm@1.1.0-3</p>
<p id="footer">coding-style &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -33,7 +33,7 @@ completions based on the arguments.</p>
<ul><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
</div>
<p id="footer">completion &mdash; npm@1.1.0-3</p>
<p id="footer">completion &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -200,6 +200,26 @@ to trust only that specific signing authority.</p>
<p>The location of npm's cache directory. See <code><a href="../doc/cache.html">cache(1)</a></code></p>
<h3 id="cache-max">cache-max</h3>
<ul><li>Default: Infinity</li><li>Type: Number</li></ul>
<p>The maximum time (in seconds) to keep items in the registry cache before
re-checking against the registry.</p>
<p>Note that no purging is done unless the <code>npm cache clean</code> command is
explicitly used, and that only GET requests use the cache.</p>
<h3 id="cache-min">cache-min</h3>
<ul><li>Default: 0</li><li>Type: Number</li></ul>
<p>The minimum time (in seconds) to keep items in the registry cache before
re-checking against the registry.</p>
<p>Note that no purging is done unless the <code>npm cache clean</code> command is
explicitly used, and that only GET requests use the cache.</p>
<h3 id="color">color</h3>
<ul><li>Default: true on Posix, false on Windows</li><li>Type: Boolean or <code>"always"</code></li></ul>
@@ -315,7 +335,7 @@ from packages when building tarballs.</p>
<h3 id="init-author-name">init.author.name</h3>
<ul><li>Default: "0.0.0"</li><li>Type: String</li></ul>
<ul><li>Default: ""</li><li>Type: String</li></ul>
<p>The value <code>npm init</code> should use by default for the package author's name.</p>
@@ -331,6 +351,16 @@ from packages when building tarballs.</p>
<p>The value <code>npm init</code> should use by default for the package author's homepage.</p>
<h3 id="json">json</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Whether or not to output JSON data, rather than the normal output.</p>
<p>This feature is currently experimental, and the output data structures
for many commands is either not implemented in JSON yet, or subject to
change. Only the output from <code>npm ls --json</code> is currently valid.</p>
<h3 id="link">link</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
@@ -601,6 +631,15 @@ this value. Thus, the defaults are <code>0755</code> and <code>0644</code> resp
<p>Only relevant when specified explicitly on the command line.</p>
<h3 id="versions">versions</h3>
<ul><li>Default: false</li><li>Type: boolean</li></ul>
<p>If true, output the npm version as well as node's <code>process.versions</code>
hash, and exit successfully.</p>
<p>Only relevant when specified explicitly on the command line.</p>
<h3 id="viewer">viewer</h3>
<ul><li>Default: "man" on Posix, "browser" on Windows</li><li>Type: path</li></ul>
@@ -623,7 +662,7 @@ then answer "no" to any prompt.</p>
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
</div>
<p id="footer">config &mdash; npm@1.1.0-3</p>
<p id="footer">config &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -29,7 +29,7 @@ something like this:</p>
<ul><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
</div>
<p id="footer">deprecate &mdash; npm@1.1.0-3</p>
<p id="footer">deprecate &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -28,13 +28,23 @@ topic, or <code>npm help thing</code> to see the same information.</p>
<p>A package is:</p>
<ul><li>a) a folder containing a program described by a package.json file</li><li>b) a gzipped tarball containing (a)</li><li>c) a url that resolves to (b)</li><li>d) a <code>&lt;name&gt;@&lt;version&gt;</code> that is published on the registry with (c)</li><li>e) a <code>&lt;name&gt;@&lt;tag&gt;</code> that points to (d)</li><li>f) a <code>&lt;name&gt;</code> that has a "latest" tag satisfying (e)</li></ul>
<ul><li>a) a folder containing a program described by a package.json file</li><li>b) a gzipped tarball containing (a)</li><li>c) a url that resolves to (b)</li><li>d) a <code>&lt;name&gt;@&lt;version&gt;</code> that is published on the registry with (c)</li><li>e) a <code>&lt;name&gt;@&lt;tag&gt;</code> that points to (d)</li><li>f) a <code>&lt;name&gt;</code> that has a "latest" tag satisfying (e)</li><li>g) a <code>git</code> url that, when cloned, results in (a).</li></ul>
<p>Even if you never publish your package, you can still get a lot of
benefits of using npm if you just want to write a node program (a), and
perhaps if you also want to be able to easily install it elsewhere
after packing it up into a tarball (b).</p>
<p>Git urls can be of the form:</p>
<pre><code>git://github.com/user/project.git#commit-ish
git+ssh://user@hostname:project.git#commit-ish
git+http://user@hostname/project/blah.git#commit-ish
git+https://user@hostname/project/blah.git#commit-ish</code></pre>
<p>The <code>commit-ish</code> can be any tag, sha, or branch which can be supplied as
an argument to <code>git checkout</code>. The default is <code>master</code>.</p>
<h2 id="The-package-json-File">The package.json File</h2>
<p>You need to have a <code>package.json</code> file in the root of your project to do
@@ -150,7 +160,7 @@ from a fresh checkout.</p>
<ul><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/init.html">init(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
</div>
<p id="footer">developers &mdash; npm@1.1.0-3</p>
<p id="footer">developers &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -80,7 +80,7 @@ license statement)</li><li>Illegal content.</li></ol>
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li></ul>
</div>
<p id="footer">disputes &mdash; npm@1.1.0-3</p>
<p id="footer">disputes &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -37,7 +37,7 @@ config param.</p>
<ul><li><a href="../doc/view.html">view(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li></ul>
</div>
<p id="footer">docs &mdash; npm@1.1.0-3</p>
<p id="footer">docs &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -37,7 +37,7 @@ or <code>"notepad"</code> on Windows.</li><li>Type: path</li></ul>
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/explore.html">explore(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
<p id="footer">edit &mdash; npm@1.1.0-3</p>
<p id="footer">edit &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -40,7 +40,7 @@ Windows</li><li>Type: path</li></ul>
<ul><li><a href="../doc/submodule.html">submodule(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/edit.html">edit(1)</a></li><li><a href="../doc/rebuild.html">rebuild(1)</a></li><li><a href="../doc/build.html">build(1)</a></li><li><a href="../doc/install.html">install(1)</a></li></ul>
</div>
<p id="footer">explore &mdash; npm@1.1.0-3</p>
<p id="footer">explore &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -241,7 +241,7 @@ We'll have someone kick it or something.</p>
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li></ul>
</div>
<p id="footer">faq &mdash; npm@1.1.0-3</p>
<p id="footer">faq &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -205,7 +205,7 @@ cannot be found elsewhere. See <code><a href="../doc/json.html">json(1)</a></co
<ul><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/pack.html">pack(1)</a></li><li><a href="../doc/cache.html">cache(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li></ul>
</div>
<p id="footer">folders &mdash; npm@1.1.0-3</p>
<p id="footer">folders &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -38,7 +38,7 @@ where the terms were found in the documentation.</p>
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/help.html">help(1)</a></li></ul>
</div>
<p id="footer">help-search &mdash; npm@1.1.0-3</p>
<p id="footer">help-search &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -36,7 +36,7 @@ matches are equivalent to specifying a topic name.</p>
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/README.html">README</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/help-search.html">help-search(1)</a></li><li><a href="../doc/index.html">index(1)</a></li></ul>
</div>
<p id="footer">help &mdash; npm@1.1.0-3</p>
<p id="footer">help &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

View File

@@ -178,6 +178,10 @@
<p> The semantic versioner for npm</p>
<h2 id="npm-shrinkwrap-1"><a href="../doc/shrinkwrap.html">shrinkwrap(1)</a></h2>
<p> Lock down dependency versions</p>
<h2 id="npm-star-1"><a href="../doc/star.html">star(1)</a></h2>
<p> Mark your favorite packages</p>
@@ -332,6 +336,10 @@
<p> Search for packages</p>
<h2 id="npm-shrinkwrap-3"><a href="../api/shrinkwrap.html">shrinkwrap(3)</a></h2>
<p> programmatically generate package shrinkwrap file</p>
<h2 id="npm-start-3"><a href="../api/start.html">start(3)</a></h2>
<p> Start a package</p>
@@ -376,7 +384,7 @@
<p> Display npm username</p>
</div>
<p id="footer">index &mdash; npm@1.1.0-3</p>
<p id="footer">index &mdash; npm@1.1.15</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

Some files were not shown because too many files have changed in this diff Show More