Compare commits

...

1050 Commits

Author SHA1 Message Date
isaacs
debf552ed2 2012.06.06 Version 0.6.19 (stable)
* npm: upgrade to 1.1.24

* fs: no end emit after createReadStream.pause() (Andreas Madsen)

* vm: cleanup module memory leakage (Marcel Laverdet)

* unix: fix loop starvation under high network load (Ben Noordhuis)

* unix: remove abort() in ev_unref() (Ben Noordhuis)

* windows/tty: never report error after forcibly aborting line-buffered read (Bert Belder)

* windows: skip GetFileAttributes call when opening a file (Bert Belder)
2012-06-05 17:46:27 -07:00
isaacs
e5d3ea7771 Upgrade npm to 1.1.24 2012-06-05 17:46:27 -07:00
Ben Noordhuis
cb76999bad deps: upgrade libuv to 06e0319 2012-06-05 17:07:43 +02:00
koichik
0742f5629c Revert "punycode: Update to v1.0.0"
This reverts commit 483edbdf1a.
Fixes #3359.
2012-06-05 22:10:37 +09:00
isaacs
434404e3bb website: Add nodejs.es to localized sites 2012-06-01 10:21:02 -07:00
Erwin van der Koogh
ccc854d14e doc: remove all references to setsid
Fixes #2299.
2012-05-31 15:38:05 +02:00
Andreas Madsen
2ae9b69871 fs: no end emit after createReadStream.pause()
In case a fd option is given to fs.createReadStream a read will instantly
happen. But in the edge case where fd point to an empty file and .pause()
was executed instantly, the end event would emit since no async wait was
between fs.createReadStream and the file read there emits end.

This is a cherry-pick of commit 1f3e4a7 into the v0.6 branch.
2012-05-29 15:34:01 +02:00
Ben Noordhuis
5ff2ae8389 bench: start a worker for each CPU 2012-05-25 00:35:10 +02:00
Ben Noordhuis
7535e3930a bench: add http_simple_auto benchmark
Starts a server and benchmarks it with ab.
2012-05-25 00:35:07 +02:00
Marcel Laverdet
7865c5c51d vm: cleanup module memory leakage
There are some paths here that led to dangling contexts. By being smarter with
handle management we can get rid of all the cleanup code and fix those issues.

This is a backport of commit 7063575.
2012-05-21 01:30:58 +02:00
isaacs
f19f980724 Now working on 0.6.19 2012-05-15 10:21:57 -07:00
isaacs
2498d15dde Merge branch 'v0.6.18-release' into v0.6 2012-05-15 10:21:40 -07:00
isaacs
4bc1d395de 2012.05.15 Version 0.6.18 (stable)
* windows: skip GetFileAttributes call when opening a file (Bert Belder)

* crypto: add PKCS12/PFX support (Sambasiva Suda)

* #3240: child_process: delete NODE_CHANNEL_FD from env in spawn (Ben Noordhuis)

* windows: add test for path.normalize with UNC paths (Bert Belder)

* windows: make path.normalize convert all slashes to backslashes (Bert Belder)

* fs: Automatically close FSWatcher on error (Bert Belder)

* #3258: fs.ReadStream.pause() emits duplicate data event (koichik)

* pipe_wrap: don't assert() on pipe accept errors (Ben Noordhuis)

* Better exception output for module load and process.nextTick (Felix Geisendörfer)

* zlib: fix error reporting (Ben Noordhuis)

* http: Don't destroy on timeout (isaacs)

* #3231: http: Don't try to emit error on a null'ed req object (isaacs)

* #3236: http: Refactor ClientRequest.onSocket (isaacs)
2012-05-14 17:30:00 -07:00
isaacs
8068f9bf38 Escape leading # signs in 'make email.md' 2012-05-14 17:29:47 -07:00
isaacs
14a5b45c06 Guard against emitting 'end' twice on http responses 2012-05-14 17:22:45 -07:00
isaacs
ea4b1c1c0c Upgrade libuv to bc4126b 2012-05-14 12:01:38 -07:00
Ben Noordhuis
9b42d7daaf test: add https + .pfx client/server test 2012-05-14 17:34:33 +02:00
ssuda
fb7348ae06 crypto: add PKCS12/PFX support
Fixes #2845.
2012-05-14 17:12:59 +02:00
Ben Noordhuis
bd907174e8 node: delete NODE_CHANNEL_FD from env
Prevents accidental inheritance by child processes. If the child process is a
node process, it would try to set up a channel with the parent and consequently
never quit because the channel kept the event loop alive.

Fixes #3240.
2012-05-14 07:19:11 +02:00
Bert Belder
a475e62a3e Windows: add test for path.normalize with UNC paths 2012-05-13 03:29:44 +02:00
Bert Belder
d91004a73d Windows: make path.normalize convert all slashes to backslashes
Closes #3066
2012-05-13 03:18:09 +02:00
Bert Belder
d8351a2ef4 Automatically close FSWatcher on error
Closes #3250
2012-05-13 03:16:19 +02:00
koichik
5f9ffa17b1 fs: fix ReadStream.pause() emits duplicate data event
Fixes #3258.
2012-05-12 10:24:46 +09:00
isaacs
9239088e87 500 is a magic number for the GC for some reason 2012-05-11 15:01:38 -07:00
isaacs
07d8a4650e Break up huge function in ClientRequest.onSocket 2012-05-11 15:01:38 -07:00
Ben Noordhuis
884499d37e build: fix cross-compiling
Take arch cflags in account when building libuv.
2012-05-11 19:01:30 +02:00
Shigeki Ohtsu
cc8cfb145a doc: fix typo in buffer documentation
Fixes #3253.
2012-05-11 20:00:53 +09:00
vegorov@chromium.org
52f0c37d09 Runtime_NotifyDeoptimized should search for function activation in all thread stacks.
R=fschneider@chromium.org
BUG=v8:1763

Review URL: http://codereview.chromium.org/8240004

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@9588 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-10 01:05:10 +02:00
Philip Tellis
493beb23f2 doc: fs.ReadableStream does not have a destroySoon method 2012-05-09 23:32:50 +02:00
Ben Noordhuis
3883f22ad1 pipe_wrap: don't assert() on pipe accept errors
Pass errors to the onconnection callback.
2012-05-09 23:30:48 +02:00
Felix Geisendörfer
bf9d8e9214 Fix exception output for module load exceptions
So instead of:

node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^

You will now see:

path/to/foo.js:1
throw new Error('bar');
      ^

This is a sub-set of isaacs patch here:

https://github.com/joyent/node/issues/3235

The difference is that this patch purely adresses the exception output,
but does not try to make any behavior changes / improvements.
2012-05-09 11:54:43 -07:00
Felix Geisendörfer
814033365b Fix process.nextTick throw call sites
This patch now reports the proper throw call site for exceptions
triggered within process.nextTick. So instead of this:

node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^

You will now see:

mydir/myscript.js:15
  throw new Error('My Error');
          ^

From my testing this patch causes no performance regressions, but does
greatly simplify processing the nextTickQueue.
2012-05-09 11:54:43 -07:00
Ben Noordhuis
ee437c0557 zlib: fix error reporting
This commit is a back-port of the changes on the master branch.

Fixes #3230.
2012-05-09 04:44:04 +02:00
isaacs
8c758e127c Don't destroy on timeout 2012-05-07 14:19:16 -07:00
isaacs
b4fbf6d275 Fix #3231. Don't try to emit error on a null'ed req object 2012-05-07 14:17:17 -07:00
Ben Noordhuis
e02af94947 test: add failing HTTP client timeout test
See #3231.
2012-05-07 22:53:32 +02:00
isaacs
8cd2b0e778 test: No need for weak in 'make test' 2012-05-04 18:29:56 -07:00
isaacs
992e3464b8 Now working on 0.6.18 2012-05-04 13:34:33 -07:00
isaacs
fbe143d9cb Merge branch 'v0.6.17-release' into v0.6 2012-05-04 13:34:08 -07:00
isaacs
4ced23deaf 2012.05.04 Version 0.6.17 (stable)
* Upgrade npm to 1.1.21

* uv: Add support for EROFS errors (Ben Noordhuis, Maciej Małecki)

* uv: Add support for EIO and ENOSPC errors (Fedor Indutny)

* windows: Add support for EXDEV errors (Bert Belder)

* http: Fix client memory leaks (isaacs, Vincent Voyer)

* fs: fix file descriptor leak in sync functions (Ben Noordhuis)

* fs: fix ReadStream / WriteStream double close bug (Ben Noordhuis)
2012-05-04 13:12:52 -07:00
isaacs
711ecdd54f test: Run weak install with --unsafe-perm
This way it doesn't die when running as root.
2012-05-04 12:52:59 -07:00
isaacs
aaf0453b7c Upgrade npm to 1.1.21 2012-05-04 12:52:55 -07:00
isaacs
719cd461d3 Upgrade uv to 936795a2c 2012-05-04 11:00:39 -07:00
isaacs
ab60efb535 Update Authors 2012-05-04 10:57:33 -07:00
isaacs
d1effbb338 Merge branch 'http-memleak' into v0.6 2012-05-04 10:54:24 -07:00
isaacs
2fc528ce00 http: Clean up parser usage
Move parsers.free(parser) to a single function, which also
nulls all of the various references we hang on them.

Also, move the parser.on* methods out of the closure, so that
there's one shared definition of each, instead of re-defining
for each parser in a spot where they can close over references
to other request-specific objects.
2012-05-04 10:40:50 -07:00
isaacs
62c12d2161 Clean up gc tests
This fixes the additional issues brought up in #3179.
2012-05-04 10:40:38 -07:00
ANDO Takahiro
ebd0f98e2b doc: fix callback argument of child_process.exec, execFile
Fixes #3196.
2012-05-04 19:15:30 +09:00
isaacs
e3ceee2dce http: .once() usage in setTimeout 2012-05-03 10:39:16 -07:00
isaacs
91120e0429 Tests for memory leaks 2012-05-03 10:36:17 -07:00
isaacs
b7e8e35c0e http leak: Null links from parser to req/res 2012-05-03 10:20:45 -07:00
vvo
75f2365558 Fix #3179 HTTP memory leak using ClientRequest. 2012-05-03 07:45:46 -07:00
Ben Noordhuis
df2c5fa81d fs: fix file descriptor leak in sync functions
Fixes #3202. This is a back-port of commit 4e290e4.
2012-05-03 02:49:36 +02:00
Ben Noordhuis
47d6a94656 fs: fix ReadStream / WriteStream double close bug
* Calling fs.ReadStream.destroy() or fs.WriteStream.destroy() twice would close
  the file descriptor twice. That's bad because the file descriptor may have
  been repurposed in the mean time.

* A bad value check in fs.ReadStream.prototype.destroy() would prevent a stream
  created with fs.createReadStream({fd:0}) from getting closed.
2012-05-03 01:01:46 +02:00
isaacs
c9be1d5ffd http client: Destroy on timeout 2012-05-02 12:13:54 -07:00
isaacs
bce68134b6 http: Remove socket ondata/onend in parser cleanup 2012-05-01 15:25:59 -07:00
isaacs
bfe9cdb7f2 Null references to request object on socket errors.
Regarding #3199 and #3179 and issues seen in production.
Hopefully this fixes them.
2012-05-01 14:26:18 -07:00
isaacs
acf19500ee Now working on 0.6.17 2012-05-01 13:31:26 -07:00
isaacs
518d28c23a Merge branch 'v0.6.16-release' into v0.6 2012-04-30 13:15:40 -07:00
isaacs
a1d193963d 2012.04.30 Version 0.6.16 (stable)
* Upgrade V8 to 3.6.6.25

* Upgrade npm to 1.1.19

* Windows: add mappings for UV_ENOENT (Bert Belder)

* linux: add IN_MOVE_SELF to inotify event mask (Ben Noordhuis)

* unix: call pipe handle connection cb on accept() error (Ben Noordhuis)

* unix: handle EWOULDBLOCK (Ben Noordhuis)

* map EWOULDBLOCK to UV_EAGAIN (Ben Noordhuis)

* Map ENOMEM to UV_ENOMEM (isaacs)

* Child process: support the `gid` and `uid` options (Bert Belder)

* test: cluster: add worker death event test (Ben Noordhuis)

* typo in node_http_parser (isaacs)

* http_parser: Eat CRLF between requests, even on connection:close. (Ben Noordhuis)

* don't check return value of unsetenv (Ben Noordhuis)
2012-04-30 13:09:50 -07:00
isaacs
e5ef103b05 Fix #3194 correct url documentation 2012-04-30 13:09:31 -07:00
isaacs
35bcb1d6a9 Indentation fix 2012-04-30 13:09:31 -07:00
isaacs
1ac05cc5ad Upgrade npm to 1.1.18 2012-04-30 13:09:31 -07:00
ssuda
db844b152a process: don't use strdup()
file and cwd can be directly used from Utf8Value.

Conflicts:

	src/process_wrap.cc
2012-04-28 23:51:41 +02:00
Bert Belder
3546383cf0 process_wrap: avoid leaking memory when throwing due to invalid arguments 2012-04-28 23:36:47 +02:00
Bert Belder
55e4d54927 Child process: support the gid and uid options 2012-04-27 22:13:00 +02:00
Bert Belder
51e66ec410 Windows: turn off /Gm
Otherwise multicode compile doesn't work.
2012-04-27 22:06:12 +02:00
Bert Belder
0b75eee364 uv: upgrade to d41cc9118d 2012-04-27 22:00:44 +02:00
Bert Belder
e221cd4a53 uv: upgrade to aea5db5da1 2012-04-27 21:28:56 +02:00
isaacs
76de7c0c26 Add customary 'fork me on github' banner to website 2012-04-27 07:58:38 -07:00
Ben Noordhuis
a64acd8baa test: cluster: add worker death event test 2012-04-23 15:58:48 +02:00
isaacs
27dfb1d4c0 doc: typo in child_process documentation 2012-04-20 07:46:42 -07:00
Brian White
642945cc00 docs: Remove duplicate socket.write() description 2012-04-20 16:16:17 +02:00
isaacs
c9a231db0e typo in node_http_parser 2012-04-18 13:01:33 -07:00
Dane Springmeyer
e5b787e84d deps: fix v8 build error
Pull in build error fix from http://code.google.com/p/v8/source/detail?r=9505
Missed in 5d69bbfbd.
2012-04-18 21:15:09 +02:00
lrn@chromium.org
5d69bbfbdb Fix bug in x64 RegExp detecting start of string.
Also add missing MIPS case in regexp tracer.

Fixes issues v8:1748 and v8:1746

BUG=v8:1748, v8:1746
TEST=mjsunit/regress/regress-1748.js

Review URL: http://codereview.chromium.org/8116001

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@9504 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-16 17:40:17 +02:00
Dave Pacheco
0f74729758 disable omit-frame-pointer on solaris systems 2012-04-16 17:28:45 +02:00
isaacs
0c0f13eda4 Patches floating on v8 2012-04-16 17:28:33 +02:00
Bert Belder
69ca83f755 Upgrade V8 to 3.6.6.25 2012-04-16 17:27:16 +02:00
Ben Noordhuis
3f4261276e node: don't check return value of unsetenv()
It returns void on some platforms, notably FreeBSD.
2012-04-16 14:16:48 +02:00
Ben Noordhuis
d03b80bc12 deps: upgrade http_parser to joyent/http-parser@da91852 2012-04-14 23:12:36 +02:00
isaacs
8b82abb953 Fix #3089 Build changelog.html for website 2012-04-10 18:31:12 -07:00
isaacs
d0365fd21f Makefile: minor nit 2012-04-10 18:22:42 -07:00
isaacs
e8067cb685 Now working on v0.6.16 2012-04-09 10:34:54 -07:00
isaacs
163d3cdf14 Merge branch 'v0.6.15-release' into v0.6 2012-04-09 10:34:32 -07:00
isaacs
f160a45b25 2012.04.09 Version 0.6.15 (stable)
* Update npm to 1.1.16

* Show licenses in binary installers.

* unix: add uv_fs_read64, uv_fs_write64 and uv_fs_ftruncate64 (Ben Noordhuis)

* add 64bit offset fs functions (Igor Zinkovsky)

* windows: don't report ENOTSOCK when attempting to bind an udp handle twice (Bert Belder)

* windows: backport pipe-connect-to-file fixes from master (Bert Belder)

* windows: never call fs event callbacks after closing the watcher (Bert Belder)

* fs.readFile: don't make the callback before the fd is closed (Bert Belder)

* windows: use 64bit offsets for uv_fs apis (Igor Zinkovsky)

* Fix #2061: segmentation fault on OS X due to stat size mismatch (Ben Noordhuis)
2012-04-09 09:03:00 -07:00
isaacs
c75f71dd72 fs.WriteStream: Handle modifications to fs.open
If the fs.open method is modified via AOP-style extension, in between
the creation of an fs.WriteStream and the processing of its action
queue, then the test of whether or not the method === fs.open will fail,
because fs.open has been replaced.

The solution is to save a reference to fs.open on the stream itself when
the action is placed in the queue.

This fixes isaacs/node-graceful-fs#6.
2012-04-09 09:03:00 -07:00
isaacs
45b772d8cb fs.readFile: Emit 'close' if we don't expect a close later
This fixes a regression introduced by 40b7302
2012-04-07 16:53:18 -07:00
isaacs
08e2e570a7 Make rules for release blog post and email message 2012-04-07 16:37:44 -07:00
isaacs
57d722011a website: Add October Sky JS and Node.js Hispano 2012-04-07 16:29:37 -07:00
isaacs
e81a5e9c9c Remove stray comment from LICENSE file 2012-04-07 16:20:42 -07:00
Bert Belder
ba055115e0 Windows: installer shows license agreement dialog 2012-04-06 16:15:55 -07:00
Bert Belder
1330419446 Windows: add build step that generates license.rtf from LICENSE 2012-04-06 16:15:51 -07:00
Ryan Dahl
c9f17305e6 Mac installer shows license
ref #3056
2012-04-06 16:15:43 -07:00
Ryan Dahl
cf75619bc3 Include text of licenses in LICENSE file
For easy inclusion in binary distributions. ref #3056
2012-04-06 16:15:33 -07:00
Ryan Dahl
331cd7c251 Fix links to libev and libeio licenses 2012-04-06 16:15:24 -07:00
isaacs
37ac5e52bf Update npm to 1.1.16 2012-04-06 14:42:19 -07:00
Igor Zinkovsky
0b57fee3f8 enable test-fs-largefile.js test 2012-04-05 18:18:48 -07:00
Bert Belder
1042a8d887 Please the compiler 2012-04-06 03:14:07 +02:00
Bert Belder
40b7302af8 fs.readFile: don't make the callback before the fd is closed
On Windows it is not possible to unlink() the read file in the callback.
This fixes #3051. A test is included.
2012-04-06 03:13:56 +02:00
Igor Zinkovsky
f178f2ae3f upgrade libuv to d68b3d960b6d95bfc16027cecca2f3fa48bcc36f 2012-04-05 17:10:39 -07:00
Igor Zinkovsky
052aaa4c4d windows: use 64bit offsets for uv_fs apis 2012-04-05 16:03:11 -07:00
Ben Noordhuis
ffee873941 build: define _DARWIN_USE_64_BIT_INODE=1 on OS X
Fixes a segmentation fault on some OS X systems due to sizeof(struct stat)
mismatches.

Fixes #2061.
2012-04-02 23:44:38 +02:00
Nathan Rajlich
0965d2d9f6 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-04-01 01:44:54 +02:00
isaacs
1e577f347b website: Consistency in the industry logos 2012-03-30 18:21:50 -07:00
isaacs
066789a6e3 Fix #3001 website update 'latest' links on publish 2012-03-24 01:39:39 -07:00
isaacs
a7dce47854 Now working on v0.6.15 2012-03-23 11:17:08 -07:00
isaacs
dbd0e2b386 Merge branch 'v0.6.14-release' into v0.6 2012-03-23 11:16:31 -07:00
isaacs
e513ffef75 2012.03.22 Version 0.6.14 (stable)
* net: don't crash when queued write fails (Igor Zinkovsky)

* sunos: fix EMFILE on process.memoryUsage() (Bryan Cantrill)

* crypto: fix compile-time error with openssl 0.9.7e (Ben Noordhuis)

* unix: ignore ECONNABORTED errors from accept() (Ben Noordhuis)

* Add UV_ENOSPC and mappings to it (Bert Belder)

* http-parser: Fix response body is not read (koichik)

* Upgrade npm to 1.1.12
  - upgrade node-gyp to 0.3.7
  - work around AV-locked directories on Windows
  - Fix isaacs/npm#2293 Don't try to 'uninstall' /
  - Exclude symbolic links from packages.
  - Fix isaacs/npm#2275 Spurious 'unresolvable cycle' error.
  - Exclude/include dot files as if they were normal files
2012-03-23 08:01:22 -07:00
isaacs
d497bf845b doc: Remove extraneous index.html's from hyperlinks 2012-03-22 17:31:23 -07:00
isaacs
76f31faa3b Remove hard-coded version number from docs 2012-03-22 17:31:15 -07:00
Igor Zinkovsky
0dcc43316f don't crash when queued write fails 2012-03-22 17:09:22 -07:00
isaacs
d227084339 Upgrade libuv to 8409a67 2012-03-22 16:44:04 -07:00
isaacs
a7cd76bb3b Remove unused fast-list module from npm 2012-03-22 16:43:28 -07:00
isaacs
67f1778065 Upgrade npm to 1.1.12 2012-03-22 16:38:58 -07:00
Bryan Cantrill
d1255914df sunos: fix EMFILE on process.memoryUsage() 2012-03-22 16:18:11 -07:00
Ben Noordhuis
ea44d3031d crypto: fix compile-time error with openssl <= 0.9.7e 2012-03-22 15:52:12 +01:00
isaacs
851b3970e7 Fix include logic was replacing https include with http 2012-03-17 11:07:35 -07:00
isaacs
d980620010 Ignore 'making a build' artifacts 2012-03-17 11:07:35 -07:00
koichik
03077db45d test: HTTP responses with no content-length
Refs: #2952.
2012-03-18 00:50:47 +09:00
Ben Noordhuis
44527e6023 deps: upgrade http_parser to joyent/http-parser@b47c44d 2012-03-17 16:22:39 +01:00
Rod Vagg
90b785c09a doc: fix # links from (and within) api/fs 2012-03-16 15:51:33 +01: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
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
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
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
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
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
3aa2fd3b2c uv: upgrade to b3fe183 2012-03-01 17:02:20 +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
Joshua Holbrook
4065b241e8 child_process: remove dummy "setsid" option setting 2012-02-29 02:06:20 +01:00
koichik
63431796f4 net: fix race write() before and after connect()
Fixes #2827.
2012-02-28 19:27:27 +09: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
7f58d207f3 [ISSUE #2554 #2567] throw if fs args for 'start' or 'end' are strings 2012-02-27 14:17:09 -08:00
Mathias Bynens
483edbdf1a punycode: Update to v1.0.0 2012-02-27 14:03:18 -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
tedsuo
cd4cb8e795 docs: split TOC into two parts: overview and API
Fixes #2090.
Fixes #2336.
2012-02-27 17:36:20 +09:00
isaacs
ca0986fbd1 Update npm to 1.1.2 2012-02-24 18:52:17 -08:00
isaacs
e004721b48 Make a fat binary for the OS X pkg 2012-02-22 15:58:02 -08:00
Igor Zinkovsky
35c1f682c1 update libuv to c0e7044862 2012-02-22 12:04:39 -08: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
186960fefb Add Håvard Stranden to AUTHORS file 2012-02-21 12:04:09 -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
Ben Noordhuis
96a137a18a docs: update man page 2012-02-18 22:36:34 +01:00
Paul Vorbach
c1f474010e docs: fix quotation style in the webserver example
Replace " by '
2012-02-18 02:05:12 +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
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
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
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
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
Bert Belder
ef032cbe85 Windows: support non-ansi command line arguments 2012-02-13 20:55:29 +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
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
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
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
Dave Pacheco
e5ed6b91f4 disable omit-frame-pointer on solaris systems 2012-02-08 10:16:19 -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
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
Paddy Byers
7e0bf7d57d Process symlinked shared library as .node 2012-01-31 17:50:16 -08:00
Paddy Byers
840229a825 Tidy _resolveFilename 2012-01-31 17:50:11 -08:00
Dan VerWeire
35b3d15194 test: dgram-{broadcast,multicast}-multi-process : prevent false failures
* check exit code of child processes
* wait 1000 ms to exit the child process
* prefix log messages with [PARENT] or [CHILD] to help debugging
* kill all child processes before exiting

Conflicts:

	test/simple/test-dgram-multicast-multi-process.js
2012-01-31 17:37:38 -08:00
Bert Belder
fa490f6497 uv: upgrade to 3eb94e9 2012-01-31 17:41:46 +01:00
Bert Belder
0ad2a9a2e0 Small test-dgram-multicast-multi-process fixes
Somehow windows doesn't want to bind to 224.0.0.1. Let's test with a multicast
address that has no special meaning.
2012-01-31 16:46:14 +01:00
koichik
3fd13c6426 http: fix free http-parser too early
when the status code is 100 (Continue).

Fixes #2636.
2012-01-31 00:16:01 +09:00
Ben Noordhuis
b221fe9b29 timers: add v0.4 compatibility hack
If a timer callback throws and the user's uncaughtException handler ignores the
exception, other timers that expire on the current tick should still run.

If #2582 goes through, this hack should be removed.

Fixes #2631.
2012-01-30 14:12:23 +01:00
isaacs
ca4b91a1d0 Correct spelling of Ben Noordhuis 2012-01-27 17:08:02 -08:00
isaacs
5756d7916a Now working on 0.6.10 2012-01-27 16:54:40 -08:00
isaacs
f19e20d33f 2012.01.27, Version 0.6.9 (stable)
* dgram: Bring back missing functionality for Unix (Dan VerWeire, Roman Shtylman, Ben Noordnuis)
  - Note: Windows UDP support not yet complete.

* http: Fix parser memory leak (koichik)

* zlib: Fix #2365 crashes on invalid input (Nicolas LaCasse)

* module: fix --debug-brk on symlinked scripts (Fedor Indutny)

* Documentation Restyling (Matthew Fitzsimmons)

* Update npm to 1.1.0-3 (isaacs)

* Windows: fix regression in stat() calls to C:\ (Bert Belder)
2012-01-27 16:32:19 -08:00
Ben Noordhuis
4b6164ab49 uv: upgrade to 332b72e 2012-01-28 01:30:46 +01:00
Ben Noordhuis
22e23473ea uv: upgrade to 16124bb 2012-01-28 00:17:01 +01:00
isaacs
38651521a8 stdout ending test message correction 2012-01-27 13:42:49 -08:00
Ben Noordhuis
8a413b076e uv: upgrade to 3f1bad2 2012-01-27 22:18:17 +01:00
isaacs
f98999cc16 Properly update npm to 1.1.0-3
Thanks @mscdex for spotting this.
2012-01-27 13:12:07 -08:00
isaacs
ff0f0aeb40 Fix #2507 Raise errors less agressively when destroying stdio streams
Also, if an error is already provided, then raise the provided
error, rather than throwing it with a less helpful 'stdout cannot
be closed' message.

This is important for properly handling EPIPEs.
2012-01-26 17:55:44 -08:00
Dan VerWeire
a0119af0e4 test: handle unhandled dgram scenarios
- watch for the death of child processes and fail the test if they all die
	- use setTimeout to fail the test if responses are not received and processed in 5000ms
2012-01-26 16:33:56 -08:00
isaacs
5c0f039c9c Update npm to 1.1.0-3 2012-01-26 15:59:26 -08:00
Ben Noordhuis
352febe251 uv: upgrade to 9c76d0d 2012-01-27 00:56:32 +01:00
Fedor Indutny
ccf7b41a69 module: fix --debug-brk on symlinked scripts
* fixes #1519
2012-01-24 19:07:38 +01:00
Ben Noordhuis
2775c0e97e dgram: bring back setTTL() 2012-01-24 00:11:45 +01:00
Ben Noordhuis
46e86aa803 dgram: bring back setMulticastLoopback() 2012-01-24 00:11:45 +01:00
Ben Noordhuis
986e612557 uv: upgrade to b88bc43 2012-01-24 00:11:44 +01:00
Ben Noordhuis
57ddf5f50a test: fix typos in error messages 2012-01-24 00:11:44 +01:00
Ben Noordhuis
aef62a03ee test: join multicast group *after* binding 2012-01-24 00:11:44 +01:00
Ben Noordhuis
9037decb28 test: remove erroneous dropMembership() call
The socket is not part of any multicast group. Bug wasn't visible until 6999fb3.
2012-01-24 00:11:21 +01:00
Ben Noordhuis
6999fb3d1e dgram: make addMembership() and dropMembership() conform to v0.4 API
- throw on error, don't return an error code
2012-01-24 00:05:34 +01:00
Ben Noordhuis
fc6a9673c8 dgram: make setBroadcast() conform to v0.4 API
- don't return a value
2012-01-24 00:05:34 +01:00
Ben Noordhuis
ed111975a0 dgram: make setMulticastTTL() conform to v0.4 API
- throw if the ttl argument is not a number
- return the ttl argument (not particulary useful but it's what v0.4 did)

Note that the 0 < ttl < 256 check has *not* been reinstated. On Linux, -1 is a
valid argument to setsockopt(IPPROTO_IP, IP_TTL).
2012-01-24 00:05:34 +01:00
isaacs
f33a35e293 doc: trademark link must be absolute 2012-01-23 13:53:11 -08:00
isaacs
7b93eb0000 doc: Remove default border around logo for MSIE 2012-01-23 13:50:31 -08:00
isaacs
6768d2fc93 doc: Pixel-nudging 2012-01-23 13:11:33 -08:00
isaacs
5c0d11b12a doc: Add images to makefile 2012-01-23 13:11:33 -08:00
isaacs
5d7577c71a doctool: correct improperly nested ul/li handling 2012-01-23 13:11:33 -08:00
isaacs
4fd315192a Add images to doc_assets 2012-01-23 13:11:32 -08:00
Matthew Fitzsimmons
831c8199f6 Nodejs.org design refresh. 2012-01-23 13:11:32 -08:00
Igor Zinkovsky
6c0c00a205 fix windows build 2012-01-23 01:35:11 -08:00
Igor Zinkovsky
f5e742b264 upgrade libuv to edbabe6f83 2012-01-23 01:34:05 -08:00
Ben Noordhuis
9edb984274 crypto: silence unused variable warning
`retry` is not used if SSL_PRINT_DEBUG is not defined.
2012-01-22 18:20:03 +01:00
koichik
827180097c test: fix test/simple/test-net-server-max-connections.js is racey
Fixes #1333.
2012-01-22 23:23:04 +09:00
koichik
93298afc4e test: for #2109 2012-01-22 17:35:28 +09:00
Brandon Benvie
f9014438c7 util: use getOwnPropertyDescripter
Change formatProperty in util.js to use Object.getOwnPropertyDescriptor
instead of __lookup[GS]etter__.

Use the cached value from the descriptor to reduce number of property
lookups from 3 to 1.

Fallback to standard lookup if the descriptor is empty. This doesn't
ever happen with normal JS objects (this function is called only when
the key exists) but apparently does with Node's custom ENV interface.

Fixes: #2109.
2012-01-22 17:29:40 +09:00
koichik
3df7c90c30 http: keep-alive should default with HTTP/1.1 server
As RFC 2616 says we should, assume that servers will provide a persistent
connection by default.

> A significant difference between HTTP/1.1 and earlier versions of
> HTTP is that persistent connections are the default behavior of any
> HTTP connection. That is, unless otherwise indicated, the client
> SHOULD assume that the server will maintain a persistent connection,
> even after error responses from the server.

> HTTP/1.1 applications that do not support persistent connections MUST
> include the "close" connection option in every message.

Fixes #2436.
2012-01-22 14:55:41 +09:00
Dan VerWeire
f2b1f57f74 dgram: reintroduce setMulticastTTL()
Removed during the early stages of node 0.5 refactoring to libuv.
2012-01-21 03:26:09 +01:00
Dan VerWeire
f749338e1e dgram: reintroduce setBroadcast()
Removed during the early stages of node 0.5 refactoring to libuv.
2012-01-21 03:26:04 +01:00
Roman Shtylman
a38fd6056c dgram: reintroduce addMembership() and dropMembership()
Removed during the early stages of node 0.5 refactoring to libuv.
2012-01-21 03:21:51 +01:00
Ben Noordhuis
08ab306afd uv: upgrade to 497b1ec 2012-01-21 03:14:15 +01:00
koichik
35fe3eb5c7 http: reduce creating http-parser instances
Fixes #2577.
2012-01-20 16:24:01 -08:00
Nicolas LaCasse
40c93486e8 Fix #2365 zlib crashing on invalid input
Fix zlib crashes on error due to improper use of removeListener
in the error handler
2012-01-20 13:12:32 -08:00
isaacs
f25ec0782e Add missing ChangeLog item re: fs.stat improvement
This was a very significant improvement that should have been called out
explicitly.

I added 'review all libuv changes' to my build checklist.  It won't
happen again.  Sorry, @igorzi.
2012-01-20 10:17:48 -08:00
isaacs
ec1d1ee61f Now working on 0.6.9 2012-01-19 21:15:12 -08:00
isaacs
d18cebaf8a 2012.01.19, Version 0.6.8 (stable)
* Update V8 to 3.6.6.19

* Numeric key hash collision fix for V8 (Erik Corry, Fedor Indutny)

* Add missing TTY key translations for F1-F5 on Windows (Brandon Benvie)

* path.extname bugfix with . and .. paths (Bert Belder)

* cluster: don't always kill the master on uncaughtException (Ben
* Noordhuis)

* Update npm to 1.1.0-2 (isaacs)

* typed arrays: set class name (Ben Noordhuis)

* zlib binding cleanup (isaacs, Bert Belder)

* dgram: use slab memory allocator (Michael Bernstein)

* fix segfault #2473
2012-01-19 18:29:43 -08:00
isaacs
4afc46d7bc Upgrade V8 to 3.6.6.19 2012-01-19 18:29:11 -08:00
Fedor Indutny
4fdec07bd8 Land number collision fix for v8 3.6 by Erik Corry
Update with fixes from: http://codereview.chromium.org/9190001/
2012-01-19 21:55:48 +06:00
Artur Adib
e282c0a081 docs: document common add-on design patterns 2012-01-19 16:31:36 +01:00
Brandon Benvie
f7b612550a Add missing TTY key translations for F1-F5 on Windows 2012-01-18 16:00:55 +01:00
Bert Belder
d489a01f81 Make path.extname do the right thing when the last path component is . or ..
Closes GH-2526
2012-01-18 15:21:58 +01:00
Ben Noordhuis
d44ce97909 cluster: don't always kill the master on uncaughtException
uncaughtException handlers installed by the user override the default one that
the cluster module installs, the one that kills off the master process.

Fixes #2556.
2012-01-18 00:45:02 +01:00
Dan Williams
091ab850aa docs: replace expresso with mocha in appendix 1 2012-01-17 23:30:58 +01:00
Ryan Dahl
54ad2f6cbb Link to Marak's module rap in community page 2012-01-17 11:34:16 -08:00
Bert Belder
892056bf97 tests: fix more lint issues 2012-01-17 20:16:49 +01:00
Andreas Madsen
4865063924 Tests: fix jslint issues 2012-01-17 19:45:09 +01:00
Andreas Madsen
ca6ededbd1 child_process: add errno property to exceptions
In case of a write failure when using fork() an error would be thrown. The
thrown exception was missing the `errno` property.
2012-01-17 18:37:02 +01:00
Fedor Indutny
1695332941 Land number collision fix for v8 3.6 by Erik Corry
- If V8 snapshots are enabled then the hash is only randomized at build time.

---
backport @10366, @10367 and @10402 to 3.6

Add seed to hash of numeric keyed properties.

Minor cleanups of numeric seeded hashing patch.

Split NumberDictionary into a randomly seeded and an unseeded version.
We don't want to randomize the stub cache.

Review URL: http://codereview.chromium.org/9190001/
2012-01-17 22:22:52 +06:00
koichik
534df2f8d2 tls: fix double 'error' events on HTTPS Requests
Fixes #2549.
2012-01-17 17:09:27 +01:00
Ben Noordhuis
549443a7cc typed arrays: set class name
Make obj.toString and Object.prototype.toString work correctly for typed arrays.
2012-01-17 16:20:39 +01:00
isaacs
25410096b4 Update npm to 1.1.0-2 2012-01-16 15:06:16 -08:00
Ben Noordhuis
f0c1376e07 net: make .write() throw on bad input
Passing a non-buffer or non-string argument to Socket.prototype.write triggered
an assert:

  Assertion failed: (Buffer::HasInstance(args[0])), function Write,
  file ../src/stream_wrap.cc, line 289.

Fixes #2532.
2012-01-14 02:13:24 +01:00
Guillermo Rauch
766f609838 website: Add "Api Docs" button next to "Download"
* Added Docs button and `button` class.
* Refactored download button style into `.button`
* Applied color overrides for download/docs buttons.
* Pointed docs link to latest available docs.
2012-01-12 14:24:40 -08:00
mrb
bd9fa2e841 dgram: use slab memory allocator
Change udp memory allocation scheme from uv_buf_init to slab allocation. Takes
slab allocation scheme from stream_wrap.
2012-01-12 17:34:15 +01:00
Ben Noordhuis
465e22e62f docs: clarify filename argument of vm.* functions 2012-01-12 14:44:41 +01:00
Igor Zinkovsky
247d0da188 update libuv to 855764406e
fixes #2521
2012-01-11 19:35:03 -08:00
Fedor Indutny
07701e7cc8 zlib: C++ style fixes 2012-01-12 01:43:49 +06:00
Maciej Małecki
b073989e17 makefile: ignore lib/punycode.js while linting
`punycode` is a third party code which generates a lot of lint errors.
Upstream was contacted in order to fix it in bestiejs/punycode.js#6, but
request was denied.

Therefore, it's reasonable to exclude this file from linting process.

Ref #2456.
2012-01-11 10:42:33 +01:00
isaacs
8cca30f31b zlib binding cleanup
* Add assert to prevent parallel writes
* Embed request object instead of using new/delete
* Remove unnecessary WorkReqWrap in favor of uv_work_t
* Use container_of instead of req->data

Along with 2d8af39acc and
0ad2717fd8, this should Fix #2504.
2012-01-10 16:42:52 -08:00
Ryan Dahl
290bc0c067 Use .jpg instead of .bmp for .msi
smaller.
2012-01-10 14:26:22 -08:00
Ben Noordhuis
0ad2717fd8 Make sure that zlib contexts are not garbage collected when busy 2012-01-10 21:01:19 +01:00
Bert Belder
2d8af39acc Fix memory leak in node_zlib 2012-01-10 21:01:18 +01:00
Ryan Dahl
e6a30bd107 Fix #2473
Tested in production.

See also http://code.google.com/p/v8/issues/detail?id=1889
2012-01-10 10:49:38 -08:00
Ben Noordhuis
b07acb3808 child_process: fix segfault after failed spawn
The process handle is uninitialized when uv_spawn() fails so don't export the
handle to JS land when that happens. Attempts to close the uninitialized handle
resulted in segmentation faults and memory corruption.

Fixes #2481.
2012-01-09 20:54:37 +01:00
Ben Noordhuis
d5d043f2d7 handle_wrap: guard against uninitialized handle or double close 2012-01-09 20:54:37 +01:00
Ben Noordhuis
cc5cea35b0 uv: upgrade to 803f5a0 2012-01-09 15:46:30 +01:00
Ryunosuke SATO
22d7fe1206 events: fix checking max listeners with 1
Fixes #2490.
2012-01-09 04:02:01 +01:00
Ben Noordhuis
9a79bb694e Avoid unnecessary buffer to string conversion.
Speeds up the benchmark below by about 680% (0.5s versus 3.4s on my Core 2 Duo).

    var crypto = require('crypto');
    var hash = crypto.createHash('sha1');
    var data = new Buffer(1024);
    for (var i = 0; i < 128 * 1024; ++i) hash.update(data);

Fixes #2494.
2012-01-09 00:50:26 +01:00
Ben Noordhuis
472a72d27f build: honour the PYTHON environment variable
Overrides the path to the python binary. Defaults to `python`.
2012-01-08 21:25:04 +01:00
koichik
9ef3c6238b docs: fix ChangeLog 2012-01-07 07:51:51 +01:00
koichik
57653added docs: small changes. 2012-01-07 06:44:35 +01:00
isaacs
ff4096f958 Now working on v0.6.8 2012-01-06 17:36:39 -08:00
isaacs
d5a189acef 2012.01.06, Version 0.6.7 (stable)
* V8 hash collision fix (Breaks MIPS) (Bert Belder, Erik Corry)

* Upgrade V8 to 3.6.6.15

* Upgrade npm to 1.1.0-beta-10 (isaacs)

* many doc updates (Ben Noordhuis, Jeremy Martin, koichik, Dave Irvine,
  Seong-Rak Choi, Shannen, Adam Malcontenti-Wilson, koichik)

* Fix segfault in node_http_parser.cc

* dgram, timers: fix memory leaks (Ben Noordhuis, Yoshihiro Kukuchi)

* repl: fix repl.start not passing the `ignoreUndefined` arg (Damon Oehlman)

* #1980: Socket.pause null reference when called on a closed Stream (koichik)

* #2263: XMLHttpRequest piped in a writable file stream hang (koichik)

* #2069: http resource leak (koichik)

* buffer.readInt global pollution fix (Phil Sung)

* timers: fix performance regression (Ben Noordhuis)

* #2308, #2246: node swallows openssl error on request (koichik)

* #2114: timers: remove _idleTimeout from item in .unenroll() (James Hartig)

* #2379: debugger: Request backtrace w/o refs (Fedor Indutny)

* simple DTrace ustack helper (Dave Pacheco)

* crypto: rewrite HexDecode without snprintf (Roman Shtylman)

* crypto: don't ignore DH init errors (Ben Noordhuis)
2012-01-06 16:31:03 -08:00
isaacs
d84a6ba3d1 Remove snapshot from Mac binary build 2012-01-06 16:31:03 -08:00
Ryan Dahl
bca88b2dc1 support nosnapshot in vcbuild.bat 2012-01-06 16:26:16 -08:00
Ryan Dahl
be67fa7e09 Revert "crypto: add SecureContext.clearOptions() method"
API addition needs to go in master. Also openssl-0.9.8k doesn't have
SSL_CTX_clear_options().

This reverts commit 6f8839d2ac.
2012-01-06 12:01:58 -08:00
Ryan Dahl
8bd80f4911 fix test-sys for hash randomization
broken in 4a899c9274
2012-01-06 10:22:24 -08:00
Bert Belder
4a899c9274 Land hash collision fix for V8 3.6 by Erik Corry.
- If V8 snapshots are enabled then the hash is only randomized at build time.
- Breaks MIPS

---
Backport hash collision workaround to 3.6.
This is made up of 9956, 10351, 10338 and 10330.
This change bakes the string hash key into the snapshot, so
it is determined at build time for shapshot configs.
Review URL: http://codereview.chromium.org/9124004
2012-01-06 17:02:01 +01:00
koichik
dd9593ccc4 http: fix ServerResponse does not emit 'close'
Refs #2453.
2012-01-06 15:45:21 +09:00
isaacs
78dbb4b5b1 npm@1.1.0-beta-10 2012-01-05 11:22:49 -08:00
Ben Noordhuis
760928bfad docs: mention that python 2.6 or 2.7 is required 2012-01-05 16:44:22 +01:00
koichik
baebd30eee http: use self insted of this 2012-01-05 17:43:00 +09:00
Ryan Dahl
3452477dcb Update address in CLA 2012-01-04 11:20:50 -08:00
Ryan Dahl
f3da6c6c04 Potential fix for #2438
- Save StringPtr if the header hasn't been completely received yet after one
  packet.
- Add one to num_fields and num_values. They were actually one less than the
  number of fields and values.
- Remove always_inline makes debugging difficult, and has negligible
  performance benefits.
2012-01-03 17:43:39 -08:00
Ryan Dahl
2cde498319 Add another test to test-http-parser-bad-ref.js demoing #2438 2012-01-03 17:15:25 -08:00
Ben Noordhuis
6f8839d2ac crypto: add SecureContext.clearOptions() method
SecureContext.setOptions() is backed by SSL_CTX_set_options() which, contrary to
what the name suggests, is additive: it doesn't set options, it adds them to the
already active options.

Hence the need for SecureContext.clearOptions(), which lets you unset active
options.
2012-01-02 12:02:07 +01:00
Ben Noordhuis
884f689efe test: add #2293 regression test
Creating a file event watcher with fs.watch({persistent:false}) should not block
the event loop.
2012-01-02 10:48:35 +01:00
Ben Noordhuis
41f2725639 uv: upgrade to 38fc6ad 2012-01-02 10:43:10 +01:00
Ben Noordhuis
c2fb062f60 docs: fix typo on community page 2012-01-01 23:39:29 +01:00
isaacs
8e57398b20 Fix #2034 repl message for .clear when useGlobal=true 2011-12-31 03:20:41 +01:00
Ben Noordhuis
539598b11f test: don't create temp files in fixtures dir 2011-12-31 03:17:19 +01:00
Ben Noordhuis
8b2abed03d bench: add /echo endpoint to http_simple
Copies the POST request data verbatim into the response body.
2011-12-30 02:03:10 +01:00
Ryan Dahl
432a2e4d39 Add test for #2438
Unfortunately valgrind must be used to see the bad read. It would be nice if
we could improve this test to cause a segfault.
2011-12-29 13:37:03 -08:00
Ben Noordhuis
3f5bb15f35 dgram: fix memory leak in error path 2011-12-29 14:57:53 +01:00
Damon Oehlman
744ed46970 repl: fix repl.start not passing the ignoreUndefined arg to the REPLServer constructor 2011-12-29 14:46:04 +01:00
Jeremy Martin
8c3a757ffc docs: tiny typo in http.markdown 2011-12-29 14:35:52 +01:00
Ryan Dahl
448c5e07ca Revert "Add HandleScope to http-parser binding"
This commit did not actually fix the production crashes.

This reverts commit 73cf8e82e7.
2011-12-28 14:08:19 -08:00
Andreas Madsen
d483acc5d9 test: remove internet test from test/simple/ 2011-12-28 17:22:29 +01:00
koichik
a848a3efbf net: fix Socket.pause null reference when called on a closed Stream
Fixes #1980.
2011-12-28 15:13:57 +09:00
koichik
e1c043f43a docs: fix docs to not suggest variable leaks
Fixes #2106.
2011-12-27 17:43:58 +09:00
koichik
a337ac7584 http: fix XMLHttpRequest piped in a writable file stream hangs next request
Fixes #2263.
2011-12-27 17:42:37 +09:00
Ben Noordhuis
70e6f3f115 docs: document http.Server.close() semantics 2011-12-26 23:30:25 +01:00
koichik
7aa5924dc6 http: fix resource leak
Fixes #2069
2011-12-26 08:05:35 +01:00
Ben Noordhuis
0de6ec5f08 win: fix mismatched new[]/delete 2011-12-26 03:27:28 +01:00
Ben Noordhuis
ed5bad754c bench: fix use of fd after close 2011-12-26 03:23:34 +01:00
Ryan Dahl
d85c85aac1 Change 'real example' in addon doc 2011-12-23 15:10:22 -08:00
Bert Belder
c6347dcfb4 Add another nextTick benchmark
It tests how many iterations the event loop can make per second.
2011-12-23 03:09:36 +01:00
Phil Sung
cf2513e1aa buffer: don't pollute global namespace in buffer.readInt* 2011-12-22 23:26:43 +01:00
Ben Noordhuis
b261e37a34 test: ensure callback is executed 2011-12-22 17:28:23 +01:00
Ju-yeong Park
5976d58796 net: raise exception when the socket is closed 2011-12-22 17:25:14 +01:00
Dave Irvine
045bfe0da5 docs: document 'encoding' arg of hash.update() 2011-12-22 16:57:07 +01:00
Ben Noordhuis
d8c178bc16 timers: fix performance regression
Fix a 5-7% performance regression in the http_simple benchmark that was
introduced by the following commits:

  348d8cd timers: remove _idleTimeout from item in .unenroll()
  f2f3028 timers: fix memory leak in setTimeout
  098fef6 timers: remember extra setTimeout() arguments when timeout==0

Fix suggested by Bert Belder.
2011-12-22 14:42:25 +01:00
Seong-Rak Choi
892ba87866 docs: fix javascript error on document page
`highlight()` is called twice. It causes following javascript error.
> Uncaught Found <pre> element with class="sh_sourcecode",
> but no such language exists

Fixes #2393.
2011-12-22 17:32:21 +09:00
Shannen
ef659192a1 docs: use "Level 1" HTML5 features
Since we're using an HTML doctype we might as well use "Level 1" HTML5 features.
See more: http://mathiasbynens.be/notes/html5-levels#level-1

Fixes #2386.
2011-12-22 17:30:41 +09:00
Ryan Dahl
6029127cea Upgrade V8 to 3.6.6.15 2011-12-21 12:38:07 -08:00
Ryan Dahl
73cf8e82e7 Add HandleScope to http-parser binding
Fixes production crashes. We were not able to reproduce in the test suite.
2011-12-21 12:01:41 -08:00
koichik
07c27e040e tls: Fix node swallows openssl error on request
Fixes #2308.
Fixes #2246.
2011-12-21 19:48:15 +01:00
Ben Noordhuis
7a7f1062bf tls: remove duplicate assignment 2011-12-21 15:01:07 +01:00
Bert Belder
f4e34f1b76 Remove unnecessary statement 2011-12-20 17:15:22 +00:00
James Hartig
348d8cd04a timers: remove _idleTimeout from item in .unenroll()
Stops .active() from reactivating the timer.

Fixes #2114.
2011-12-20 00:57:15 +01:00
Fedor Indutny
d87f551f36 debugger: Request backtrace w/o refs, see #1745
Fixes #2379
2011-12-19 13:30:43 -08:00
Ryan Dahl
926365c9f8 add links to package manager on download page 2011-12-18 22:54:15 -08:00
Ben Noordhuis
4b455bafd0 module: improve process.dlopen() error messages
On Windows, that is. On Unices, we don't have a good way to translate dlopen()
and dlsym() errors (yet).
2011-12-18 22:35:09 +01:00
Ben Noordhuis
f322bbe729 uv: upgrade to feb267e 2011-12-18 22:35:08 +01:00
Felix Geisendörfer
ec51bfc995 Use common.PORT to avoid conflicts 2011-12-18 16:00:55 +01:00
Yoshihiro Kikuchi
f2f30286bf timers: fix memory leak in setTimeout
Closing handle is leaked when setTimeout called with arguments which are
1. a callback
2. zero delay
(i.e. setTimeout(function(){}, 0); )
2011-12-18 01:50:01 +01:00
Ben Noordhuis
6df7bdd954 child_process: make .send() throw if message is undefined
JSON.stringify(undefined) returns "undefined" but JSON.parse() doesn't know how
to parse that.
2011-12-18 01:29:07 +01:00
Adam Malcontenti-Wilson
c4d2244a09 docs: Make logo a link back to homepage
Fixes #2332.
2011-12-17 19:10:08 +09:00
isaacs
d75de86e6d add 'make test-npm' 2011-12-16 18:05:17 -08:00
isaacs
90fb81ad54 npm 1.1.0-beta-7 2011-12-16 18:05:17 -08:00
Andreas Madsen
a599aeb2a8 jslint
Fixes #2306
2011-12-16 12:57:03 -08:00
Dave Pacheco
b9049d2f90 simple DTrace ustack helper 2011-12-16 11:38:20 -08:00
Igor Zinkovsky
d6bae2cb95 document mode argument for fs.symlink 2011-12-16 11:16:33 -08:00
Ben Noordhuis
666aa0a343 uv: upgrade to d808cf9 2011-12-16 17:57:56 +01:00
koichik
c744e925df doc: correct http.Server.listen()
Fixes #2325.
2011-12-17 00:32:29 +09:00
Roman Shtylman
4b123f9ca2 crypto: rewrite HexDecode without snprintf
No need to use snprintf to create a hex string. It creates
more overhead than is needed. This new version is much faster.
2011-12-16 14:35:15 +01:00
Ben Noordhuis
cc2861ee44 crypto: don't ignore DH init errors 2011-12-16 02:26:01 +01:00
Ryan Dahl
ee7313266a use rsync instead of scp to upload website 2011-12-15 12:51:11 -08:00
isaacs
dd8018de95 now working on 0.6.7 2011-12-15 11:08:28 -08:00
isaacs
9a059ea69e 2011.12.14, Version 0.6.6 (stable)
* npm update to 1.1.0-beta-4 (Isaac Z. Schlueter)

* cli: fix output of --help (Ben Noordhuis)

* new website

* pause/resume semantics for stdin (Isaac Z. Schlueter)

* Travis CI integration (Maciej Małecki)

* child_process: Fix bug regarding closed stdin (Ben Noordhuis)

* Enable upgrades in MSI. (Igor Zinkovsky)

* net: Fixes memory leak (Ben Noordhuis)

* fs: handle fractional or NaN ReadStream buffer size (Ben Noordhuis)

* crypto: fix memory leaks in PBKDF2 error path (Ben Noordhuis)
2011-12-15 10:55:52 -08:00
isaacs
56f65e3c3e npm 1.1.0-beta-4 2011-12-15 08:32:07 -08:00
Ryan Dahl
ae17e2d90a Fix doc generation for new website 2011-12-14 18:20:11 -08:00
Ryan Dahl
de3c16afae Upgrade V8 to 3.6.6.14 2011-12-14 16:33:11 -08:00
isaacs
2255efa171 npm 1.1.0-beta-3 2011-12-14 16:27:01 -08:00
Ryan Dahl
b04d4fff35 Add docs.nodejitsu.com to community page 2011-12-14 15:19:22 -08:00
isaacs
bb9316da28 npm 1.1.0-beta-2 2011-12-14 14:17:16 -08:00
isaacs
f490934c33 Properly support old IE DOM methods. 2011-12-14 14:17:16 -08:00
Ryan Dahl
1c3883bef2 Add changelog link to website 2011-12-14 11:11:55 -08:00
Ben Noordhuis
97900776bb util: add internal function _deprecationWarning() 2011-12-14 13:36:21 +01:00
Ben Noordhuis
d29be0dfa2 test: binding twice to the same port should raise an error 2011-12-14 03:43:04 +01:00
Ben Noordhuis
43e91da074 .gitignore core and vgcore files 2011-12-14 03:38:41 +01:00
Ben Noordhuis
ef12fa1bf7 crypto: deduplicate encoding parsing logic 2011-12-14 03:18:17 +01:00
Ben Noordhuis
321ec97d95 crypto: deduplicate decipher logic 2011-12-14 02:32:07 +01:00
Ben Noordhuis
77f21787d4 crypto: fix memory leak when decrypting empty strings
Also fixes a dangling pointer delete[] in the error path.
2011-12-13 21:22:44 +01:00
Ben Noordhuis
d70ef199f1 crypto: fix memory leaks in PBKDF2 error path 2011-12-13 18:08:18 +01:00
Ben Noordhuis
b1b3dc62ff fs: handle fractional or NaN ReadStream buffer size
Fixes #2320.
2011-12-13 16:31:12 +01:00
Ben Noordhuis
e90db17392 fs: fix typo in error message 2011-12-13 16:02:14 +01:00
Ryan Dahl
6e76fc2866 make jobs the last nav
fixes display bug
2011-12-12 14:40:03 -08:00
Ryan Dahl
19a18add4e better <br>s 2011-12-12 14:34:37 -08:00
Ryan Dahl
95b034e484 Reorder nav 2011-12-12 14:30:54 -08:00
isaacs
93188918ea Website js/css tweaks
Remove jquery
Use HTML5 doctype
Simpler clearfix implementation
Close download dialog with <Esc> key
2011-12-12 14:28:49 -08:00
Ben Noordhuis
8295c80618 net: check status code in afterWrite
Fixes memory leak and spin on writing to dead fds. This was tested in
production.
2011-12-12 13:45:44 -08:00
Ryan Dahl
e698dd38c3 website fixes 2011-12-12 09:58:23 -08:00
Ryan Dahl
5bbb4cadc3 new website 2011-12-12 09:12:42 -08:00
Igor Zinkovsky
8e2c014e43 Fix MSI generation on VC Express 2011-12-09 17:20:22 -08:00
Ryan Dahl
429efdd974 Change artwork in msi 2011-12-09 17:14:39 -08:00
Igor Zinkovsky
b24cdb3d36 Enable upgrades in MSI.
Fixes #2228.
2011-12-08 15:02:59 -08:00
Tim Oxley
871194d5fd docs: document util.inspect's colors param 2011-12-08 15:47:18 +01:00
Ben Noordhuis
22c2c34952 fs: fix fs.watch() segmentation fault
The binding layer failed to initialize the event string if both UV_RENAME and
UV_CHANGE were set.

Fixes #2287.
2011-12-07 23:19:57 +01:00
Ben Noordhuis
eef5d3257d build: check for libkvm and libexecinfo on all the BSDs 2011-12-07 14:36:21 +01:00
Ryan Dahl
7547c7df1a Deshadow, denamespace variables in node.cc
Prep for isolates.
2011-12-06 17:01:56 -08:00
Ben Noordhuis
fd29448be0 test: add missing copyright headers 2011-12-06 22:02:26 +01:00
Ben Noordhuis
70bc2e32af test: new test, verify that we don't close and reuse fd 0 2011-12-06 22:02:26 +01:00
Ben Noordhuis
23bb5986d4 Remove unused variable.
The file descriptor arg to child_process._forkChild() is not used any more.
Remove it, avoids future confusion.
2011-12-06 22:02:26 +01:00
Ben Noordhuis
57d2857938 uv: upgrade to 0db3274 2011-12-06 22:02:26 +01:00
isaacs
580e67015c Apply #2257 fix for Pipe streams as well as TTYs 2011-12-06 10:13:31 -08:00
Maciej Małecki
89e894b17a doc: add Travis CI build status image 2011-12-05 16:51:03 -08:00
Maciej Małecki
9023b0b3a2 test: add .travis.yml for testing on Travis CI
As discussed with @isaacs, build reports will be sent to #libuv IRC
channel. E-mail notifications are turned off so that Travis doesn't
bother committers about failures in forks.
2011-12-05 16:50:55 -08:00
isaacs
cf20b6bf65 Fix #2257 pause/resume semantics for stdin
This makes it so that the stdin TTY-wrap stream gets ref'ed on
.resume() and unref'ed on .pause()

The semantics of the names "pause" and "resume" are a bit weird, but the
important thing is that this corrects an API change from 0.4 -> 0.6
which made it impossible to read from stdin multiple times, without
knowing when it might end up being closed.  If no one has it open, this
lets the process die naturally.

LGTM'd by @ry
2011-12-05 16:47:11 -08:00
Ryan Dahl
6f86b9cb70 Disable test-setproctitle on darwin 2011-12-05 16:25:32 -08:00
isaacs
db273818f6 s/NPM/npm/
http://npmjs.org/doc/faq.html#If-npm-is-an-acronym-why-is-it-never-capitalized
2011-12-05 16:20:44 -08:00
Ben Noordhuis
36815e4179 process: fix stack overflow when recursively calling process.exit() 2011-12-05 22:43:27 +01:00
Ryan Dahl
1a89c8d061 Add analytics tracking to docs 2011-12-05 11:17:57 -08:00
Ben Noordhuis
fdf180f9ce cli: fix output of --help 2011-12-05 08:42:11 +01:00
Ben Noordhuis
aeb124f7f3 test: create test file in temp dir 2011-12-05 06:37:18 +01:00
Ben Noordhuis
a0fdd5f3f6 uv: upgrade to 34e95d1 2011-12-04 13:22:21 +01:00
Ryan Dahl
c50b0c9237 Now working on Node v0.6.6 2011-12-04 00:59:16 -08:00
Ryan Dahl
6cc94db653 Bump version to v0.6.5 2011-12-04 00:10:23 -08:00
Ryan Dahl
60e26668b3 Remove superfluous 'new' 2011-12-04 00:09:10 -08:00
Ryan Dahl
1cf26e2bf1 Upgrade V8 to 3.6.6.11 2011-12-03 23:31:02 -08:00
Ryan Dahl
46b6954acd Add link to license file on website 2011-12-02 17:06:05 -08:00
isaacs
ffc8110659 Workaround: A/V software prevents folder rename 2011-12-02 13:45:08 -08:00
koichik
3ebbdc6320 Update ChangeLog 2011-12-03 00:21:55 +09:00
Ben Noordhuis
a29a7c72fa Now working on v0.6.5 2011-12-02 03:15:10 +01:00
Ben Noordhuis
9170077f13 Bump version to v0.6.4 2011-12-02 02:31:41 +01:00
Bert Belder
641f2bedf3 Fix UVException errno bug 2011-12-02 02:21:50 +01:00
Bert Belder
ded97eb892 Exclude getbuf from the windows build
It's not used.
2011-12-02 02:21:50 +01:00
Bert Belder
e84edd2593 Win: make process.cwd and chdir support non-ansi characters
Closes GH-2215
2011-12-02 02:21:50 +01:00
Bert Belder
823a443321 Rename FSError to UVException and move to node.cc 2011-12-02 02:21:50 +01:00
isaacs
1ad30a2af4 npm 1.1.0-alpha-6 2011-12-01 17:12:21 -08:00
Igor Zinkovsky
99c9d19184 binding for uv_pipe_pending_instances 2011-12-01 13:57:47 -08:00
Igor Zinkovsky
dd4b280d8c upgrade libuv to 60630dab0f 2011-12-01 13:56:04 -08:00
Bert Belder
ae648a44c4 Upgrade libuv to 9c064fb 2011-12-01 22:50:09 +01:00
Ben Noordhuis
9b4e8e0a0d fs: fix typo in function names
The build was not affected: the typos were in macros that only come into effect
when _LARGEFILE_SOURCE is not defined - which is never.
2011-12-01 22:29:39 +01:00
isaacs
0f6d3e22d9 Remove duplicate npmrc file 2011-12-01 12:23:43 -08:00
Igor Zinkovsky
3e7f4b0f82 npm msi changes 2011-12-01 21:12:17 +01:00
isaacs
d5f401147a Re #2207 Add default npmrc for MSI install 2011-12-01 21:12:17 +01:00
isaacs
61764613d1 npm 1.1.0-alpha-5
Fix #2186
First part of #2207
2011-12-01 21:12:17 +01:00
Ben Noordhuis
d5feb1c280 Revert "build: compile with -D__DARWIN_64_BIT_INO_T on OS X"
This reverts commit f004d5aeac.

__DARWIN_64_BIT_INO_T is a no-op in most cases and might be actively harmful in
some others.
2011-12-01 21:00:46 +01:00
Ben Noordhuis
3d22dbf27b cli: add -p switch, print result of --eval 2011-12-01 18:02:15 +01:00
Ben Noordhuis
03eb41c2ec net: don't emit 'close' event twice
Don't allow `socket.destroy()` to run twice. The self-destruct sequence itself
is idempotent but it makes the 'close' and 'error' events fire more than once,
which may confuse listeners.

Fixes #2223.
2011-12-01 14:57:06 +01:00
Ben Noordhuis
3ca0517749 build: add --without-npm flag to configure script
Fixes #2200.
2011-11-30 15:50:08 +01:00
Mathias Bynens
456dafc3c6 Docs template: HTML cleanup
Remove references to `/favicon.ico` as it’s the default in all browsers. More
info: http://mathiasbynens.be/notes/rel-shortcut-icon

`type=text/css` and `media=all` are the implied defaults for `<link
rel=stylesheet>` (and `<style>`), so omit these attributes.

Similarly, `type=text/javascript` is the default for `<script>` elements, so
omit these attributes.
2011-11-30 15:28:48 +01:00
Mathias Bynens
cf89beec6f punycode: Update to v0.2.1 2011-11-30 15:28:48 +01:00
Nathan Rajlich
b204006105 util: ensure that the .inspect function isn't the one being executed
Fixes #2225.
2011-11-30 14:14:24 +01:00
Russ Bradberry
754e23db27 fixed problem with rss memory reporting incorrect number over 4 gigs 2011-11-30 02:11:40 +01:00
Ingmar Runge
260383215b node_crypto: use EVP_Cipher*_ex methods, not 'obsolete' versions
This also fixes an issue that made blowfish's ECB mode unusable.
2011-11-30 01:29:35 +01:00
Ben Noordhuis
5fea00581b sys: print stack trace if NODE_DEBUG=sys 2011-11-29 19:22:13 +01:00
Bert Belder
6ed721afd2 Upgrade libuv to fce90652ed38ab0925131ed141972354a494933b 2011-11-29 12:45:39 +01:00
seebees
aab958b713 OutgoingMessage.prototype.write does not take Array
Changed the type checking for OutgoingMessage.prototype.write so it only accepts string and Buffer.

And test.
Fixes #2162
Fixes #2208
2011-11-29 16:52:15 +09:00
Roman Shtylman
1c62e807e1 doc: add note about NODE_MODULE module_name requirement
module_name needs to match the final binary name
2011-11-28 20:52:40 +01:00
Thomas Shinnick
eba1f7b1a4 child_process: fix order of args to errnoException() 2011-11-28 20:45:01 +01:00
Ben Noordhuis
a5c51b4858 docs: add rel="canonical" link to latest API docs 2011-11-28 16:47:53 +01:00
Ben Noordhuis
216019b72d modules: fix error message for native add-ons without entry points
Trying to load an add-on without "init" or "modname_module" symbols would raise
an "Out of memory" exception. Let's improve that error message.
2011-11-27 22:47:05 +01:00
isaacs
e85a95dfa3 Remove npm's .gitignore, add generated docs 2011-11-27 13:09:04 -08:00
Tim Oxley
fc0a4c2781 docs: fix favicon 2011-11-27 21:52:27 +01:00
koichik
5451ba3aa8 tls: fix https with fs.openReadStream hangs
Fixes #2185.
Fixes #2198.
2011-11-27 16:31:45 +09:00
koichik
6392eba3f9 test: update an expired certificate 2011-11-27 02:05:24 +09:00
kyle@dontkry.com
34f34e4411 docs: fix typo
Fixes #2193.
2011-11-27 01:45:27 +09:00
Bert Belder
3a160646df Now working on v0.6.4 2011-11-25 12:43:44 +01:00
Bert Belder
b159c6d62e Bump version to v0.6.3 2011-11-25 11:23:28 +01:00
Bert Belder
2335c4bb41 Strip trailing whitespace in changelog 2011-11-25 11:07:57 +01:00
Bert Belder
b480cfaf34 Make the pummel test runner not crash on windows when a directory is locked 2011-11-25 10:27:30 +01:00
Bert Belder
a056ef1f39 Upgrade libuv to 01f64f6 2011-11-25 10:16:43 +01:00
Bert Belder
5b014e0725 Fs: use strncmp instead of memcmp for comparing strings 2011-11-25 09:35:52 +01:00
Author: Igor Zinkovsky
1f16a7b6e5 Enable long paths on windows 2011-11-25 09:35:52 +01:00
Igor Zinkovsky
319580953d update libuv to cfa4112950b1f897fda7 2011-11-24 19:45:35 -08:00
Bert Belder
232e8e19a1 Fix test-stdin-from-file 2011-11-25 03:08:27 +01:00
Bert Belder
95eb729e6f Upgrade libuv to 3a50f8f 2011-11-25 02:13:37 +01:00
Bert Belder
236b217cd7 Fix issues with test-fs-chmod
- The test simultaneously chmods and fchmods the same file.
- On windows, it leaves behind a fixture in read-only mode,
  which causes test-fs-fsync to fail.
2011-11-25 01:25:38 +01:00
Bert Belder
d51a0c353b Upgrade libuv to 45b976a 2011-11-25 01:01:57 +01:00
Ben Noordhuis
55a8a3aad4 test: better fs.lchmod() availability check
fs.lchmod() is a BSD-ism, not a "not Windows"-ism.
2011-11-25 00:56:05 +01:00
Bert Belder
7244b9cee8 Upgrade libuv to ea63f06 2011-11-24 19:57:17 +01:00
Bert Belder
a639cf7d84 Add test for GH-2177 2011-11-24 19:56:41 +01:00
Bert Belder
83152d174c Dgram: correctly report recvmsg errors 2011-11-24 19:11:13 +01:00
Bert Belder
86fba381fd Windows: correctly resolve drive-relative paths 2011-11-24 02:38:34 +01:00
Bert Belder
cbcf4fe768 Don't die when arguments are passed to process.cwd() 2011-11-24 02:19:54 +01:00
Ben Noordhuis
16889e22cc docs: fix dgram markdown 2011-11-23 12:56:05 +01:00
Ben Noordhuis
ce3ccc8d5a build: fix circular dependency in doc target 2011-11-23 12:56:05 +01:00
Ryan Dahl
b906e85996 Fixes #2076. Add logos to MSI 2011-11-22 19:23:41 -08:00
Ryan Dahl
055a933fa9 Add exe and msi signing to vcbuild.bat 2011-11-22 18:17:12 -08:00
Ryan Dahl
e5cf3f9751 Fixes #2083. Support installing npm in the .msi 2011-11-22 17:59:18 -08:00
isaacs
3ab15cde25 Update npm to 1.1.0-alpha-2 2011-11-22 17:03:58 -08:00
isaacs
0ba78d5f36 Close #2166 Close the fd in lchmod 2011-11-22 14:00:48 -08:00
Felix Geisendörfer
6e1e9e2fcb Get test-http-response-no-headers.js to pass
Main fix was in 3abebf which added HTTP/0.9 support to http parser.

Changed test because HTTP 1.1 mandates keep-alive when no headers are
given.

Fixes #1711
2011-11-22 22:48:50 +01:00
Ben Noordhuis
246805d386 test: add 'response body with no headers' http test
HTTP/0.9 - fails with a parse error
HTTP/1.0 - works
HTTP/1.1 - fails with an empty response body

See #1711.
2011-11-22 22:47:20 +01:00
Ryan Dahl
3abebfea98 Upgrade http-parser to joyent/http-parser@2498961 2011-11-22 12:56:01 -08:00
Ryan Dahl
38c49fbc4a Fix broken commit 2cd5adc 2011-11-22 12:44:01 -08:00
Ryan Dahl
2cd5adc28b Install npm with 'make install' 2011-11-22 12:38:48 -08:00
Ryan Dahl
6035651fad Fixes #2160. Fix tty.getWindowSize docs 2011-11-22 10:24:41 -08:00
Ben Noordhuis
7defbd27ef test: add DSA sign/verify crypto tests 2011-11-22 16:01:07 +01:00
Ryan Dahl
b488be127a Include NPM, update .pkg to install it.
.msi update coming soon.
2011-11-21 10:50:52 -08:00
Ben Noordhuis
05de01d707 tls: expose more openssl SSL context options 2011-11-21 13:59:43 +01:00
Roman Shtylman
4d05f56dcd tls: expose ssl bug workaround constants
The internet is filled with servers which have various bugs and other
ssl handshake issues. These constants can be used with the Agent
secureOptions option to get around such server limitations when performing
https requests
2011-11-21 13:59:43 +01:00
Ryan Dahl
9d1bdbcf05 Fixes #2084. Makeify tools/osx-dist.sh 2011-11-20 19:22:30 -08:00
Ben Noordhuis
61e796decc Now working on v0.6.3 2011-11-19 00:22:13 +01:00
Ben Noordhuis
a4402f0b2e Bump version to v0.6.2 2011-11-18 23:43:03 +01:00
isaacs
975f1930b1 zlib: Fix invalidly failing test 2011-11-18 14:38:44 -08:00
Ben Noordhuis
f004d5aeac build: compile with -D__DARWIN_64_BIT_INO_T on OS X
Fixes a struct stat size mismatch on 64 bits machines that made Node crash with
a EXC_BAD_ACCESS on startup.

Fixes #2061. Solution proposed by Paddy Byers.
2011-11-18 21:17:13 +01:00
Ben Noordhuis
3f92031aeb uv: upgrade to 01fbe7b 2011-11-18 21:17:09 +01:00
Ben Noordhuis
8bdf6bae30 docs: document dgram error event 2011-11-18 14:18:42 +01:00
Ben Noordhuis
59a9a9b5b0 buffer: add .read*() and .write*() methods to SlowBuffer prototype
Fixes #2138.
2011-11-18 11:13:37 +01:00
Trevor Burnham
06d71ad457 docs: document the persistent option for fs.watch and fs.watchFile 2011-11-18 00:00:01 +01:00
Ben Noordhuis
9d3faf4f9a crypto: add support for RSA public key signing/verification 2011-11-17 23:01:39 +01:00
Ben Noordhuis
3ac5f1106d crypto: make verify() return true or false, not 1 or 0
It's what the documentation says it should return.
2011-11-17 23:01:39 +01:00
E. Azer Koçulu
1cb6fe47fc util: remove the line requiring events 2011-11-17 23:01:39 +01:00
Ryan Dahl
b0030af135 Fixes #2140. Fix illumos build. 2011-11-17 11:39:34 -08:00
Ben Noordhuis
4f8a0cd2f9 v8: add platform-solaris.cc to gyp build
Re-applies 77e4abbc3e, lost in a V8 upgrade.
2011-11-17 19:39:39 +01:00
Ben Noordhuis
2c52ccea80 v8: compile with __C99FEATURES__=1 on sunos
Exposes INFINITY, isinf(), isfinite(), etc.

Re-applies d104e5b91c, lost in a V8 upgrade.
2011-11-17 19:39:39 +01:00
Artur Adib
960ccdc72c docs: clarify addon docs 2011-11-17 13:15:49 +01:00
Bert Belder
3e696d189c Windows: make Buffer and ObjectWrap available to compiled extensions
Closes GH-2036
2011-11-17 00:54:42 +01:00
Bert Belder
9c70b09e0a Fix strange vcbuild "label not found" error 2011-11-17 00:10:14 +01:00
Ben Noordhuis
5e3b0095de tls: make cipher list configurable
options.ciphers existed but didn't work, the cipher list was effectively
hard-coded to RC4-SHA:AES128-SHA:AES256-SHA.

Fixes #2066.
2011-11-17 00:01:41 +01:00
Ryan Dahl
44314ccf48 Upgrade libuv to 2007eb8 2011-11-16 13:06:10 -08:00
Łukasz Walukiewicz
3b852d7fab buffer: fix minimum values for writeInt*() functions 2011-11-16 21:30:26 +01:00
Ryan Dahl
17a82e72f4 Upgrade V8 to 3.6.6.8 2011-11-14 17:17:23 -08:00
Ryan Dahl
4b0241d589 Remove str.format to support python2.5.
Fixes #2077
Fixes #2108

Thanks to David Keegan for debugging and the patch.
2011-11-14 17:09:44 -08:00
Trent Mick
2cd51ef5d4 "Trailer" header should mention "Content-MD5" trailer name in this example.
Fixes #2107
2011-11-14 16:54:24 -08:00
seebees
3222a04d5e test for REPL .save and .load and documentation updates 2011-11-13 19:54:35 +01:00
Mathias Bynens
897208e06d punycode: Update to v0.1.1. 2011-11-13 15:38:27 +01:00
seebees
3421f43351 .load, .save and local scope tab completion
Fixes #2063.

REPLServer.prototype.resetContext:
Reset the line cache

REPLServer.prototype.memory (don't know if I like that name, called from finish)
pushes what cmd's have been executed against it into this.lines
pushes the "tab depth" for bufferedCommands, in this.lines.level

REPLServer.prototype.displayPrompt:
Uses "tab depth" from this.lines.level to adjust the prompt to visually
denote this depth e.g.
> asdf = function () {
… var inner = {
….. one:1

REPLServer.prototype.complete:
Now notices if there is a bufferedCommand and attempts determine locally
scoped variables by removing any functions from this.lines and evaling these
lines in a nested REPL e.g.
> asdf = function () {
… var inner = { one: 1};
… inn\t
will complete to 'inner' and inner.o\t will complete to 'inner.one'
If the nested REPL still has a bufferedCommand it will falls back to the
default.

ArrayStream is a helper class for the nested REPL to get commands pushed to it.
new REPLServer('', new ArrayStream());

Finally added two new REPL commands .save and .load, each takes 1 parameter,
a file and attempts to save or load the file to or from the REPL
respectively.
2011-11-12 11:34:55 -08:00
seebees
b00f5e2e14 Tab Compete test for node REPL
Currently the REPL only tab completes for globally scoped variables
2011-11-12 11:34:55 -08:00
Ben Noordhuis
098fef6740 timers: remember extra setTimeout() arguments when timeout==0
Fixes #2079.
2011-11-12 13:31:28 +01:00
Ryan Dahl
8082858ee7 Now working on v0.6.2 2011-11-11 15:35:10 -08:00
Ryan Dahl
170f2addb2 Bump version to v0.6.1 2011-11-11 14:56:27 -08:00
Ryan Dahl
5bc1809b43 Add 'make dist-upload' 2011-11-11 14:31:15 -08:00
Ryan Dahl
d214576d2b Be consistent with v before version in packages 2011-11-11 14:02:42 -08:00
Igor Zinkovsky
2095eea3da msi changes
- remove license from MSI
- adjust path on install
- add message to the end
2011-11-11 12:50:04 -08:00
Ryan Dahl
2af6431619 Add upload command to vcbuild.bat 2011-11-11 12:38:55 -08:00
Ryan Dahl
895fa3a56b Simplify and move getnodeversion.py 2011-11-11 12:09:48 -08:00
Shigeki Ohtsu
e0f10ecfd9 debugger: correctly handle source with multi-byte characters 2011-11-11 20:29:50 +01:00
Ryan Dahl
4e2343c6b5 Fixes #2073. Cluster should be silent. 2011-11-11 11:24:59 -08:00
Ben Noordhuis
10d4bd8266 test: add more punycode tests 2011-11-11 17:02:43 +01:00
Ben Noordhuis
326b2cb34e punycode: replace with Mathias Bynens's implementation
The currently bundled library doesn't pass all the test cases from RFC 3492.
Mathias's library does.

Home: https://github.com/bestiejs/punycode.js
2011-11-11 17:02:43 +01:00
Yoji SHIDARA
426298c8c1 docs: dgram client should be closed in the callback 2011-11-11 10:39:32 +01:00
Ryan Dahl
74f39041d4 dont use blue for numbers in util.inspect 2011-11-10 23:35:35 -08:00
Ryan Dahl
dc39ab3bbf Improve OSX installer 2011-11-10 18:41:44 -08:00
Igor Zinkovsky
ec90ede1cf fix msi builder 2011-11-10 18:40:49 -08:00
Igor Zinkovsky
13324bf844 throw from stdout.end and stderr.end 2011-11-10 14:51:16 -08:00
Igor Zinkovsky
09329e7833 Add node.rc with a version resource
Fixes #2059
2011-11-10 13:22:13 -08:00
Ben Noordhuis
78ca555845 bench: optimize io.c benchmark
Use static buffers. Most clock ticks were spent in malloc() and free() instead
of read() and write().

Fix measurements. Really fast runs would result in bogus results like:

  Wrote 1048576000 bytes in -0.731630s using 8192 byte buffers: -1366.811093mB/s
2011-11-10 21:13:37 +01:00
Ben Noordhuis
0757c73a20 uv: upgrade to 224584c 2011-11-10 20:10:54 +01:00
Ben Noordhuis
e34a2c170c uv: upgrade to 26806e2 2011-11-10 16:40:56 +00:00
Ben Noordhuis
8dd4fcbe8f fs: don't close uninitialized fs.watch handle
Makes uv_close() assert because the uv_fs_event_t struct contains garbage.
2011-11-10 13:17:51 +01:00
Igor Zinkovsky
f84d86b660 make stdout stream non-destroyable 2011-11-09 15:04:44 -08:00
Igor Zinkovsky
5d89540b77 make stderr stream non-destroyable 2011-11-09 13:53:19 -08:00
Ben Noordhuis
4fc0fdc6ee bench: start (NUM_CPUS-1) workers
The master is a worker too so fork off one less worker.
2011-11-09 17:34:53 +01:00
Ben Noordhuis
cdcb1118c8 Remove stray NODE_MODULE() semi-colons. 2011-11-09 16:34:09 +01:00
Ryan Dahl
0fa3cf94a3 Remove 'report this bug' message from cluster master 2011-11-08 17:07:49 -08:00
Ryan Dahl
da9bf0ee80 Fixes #2047. Fill workers array immediately after fork 2011-11-08 17:03:29 -08:00
Ryan Dahl
3ae644d48c Upgrade libuv to 196e145 2011-11-08 16:59:40 -08:00
Ryan Dahl
2a462abf5f process.kill doesn't create error obj correctly 2011-11-08 16:58:32 -08:00
Ryan Dahl
05727f6e3e Upgrade libuv to 2b7774a 2011-11-08 16:52:45 -08:00
Ryan Dahl
2d13cdfd2a Fixes #2052. Readline get win cols correctly 2011-11-08 13:37:08 -08:00
Ben Noordhuis
efb833f342 crypto: use the right mutex 2011-11-08 20:56:45 +01:00
Ryan Dahl
409915e955 Upgrade libuv to f1859eb
Fixes #2040
Fixes 0e8a55d2a2 (commitcomment-69710)
2011-11-08 11:52:18 -08:00
Ben Noordhuis
97cada0e6a crypto: make module thread-safe 2011-11-08 20:04:23 +01:00
Ryan Dahl
0ba8f05a42 Upgrade V8 to 3.6.6.7 2011-11-08 10:00:12 -08:00
Scott Anderson
0d19d82498 Cluster documentation added. 2011-11-09 00:02:18 +09:00
Ben Noordhuis
6f96e78dea test: fs.realpath() should not call its callback twice
Test case for #2045.
2011-11-08 13:03:29 +01:00
Benjamin Pasero
b1bb17fd2b fs: fix fs.realpath on windows to return on error 2011-11-08 13:02:04 +01:00
Ben Noordhuis
04958e88a4 fs: make mkdir() call callback if mode is omitted
Fixes #2043.
2011-11-08 12:48:09 +01:00
Ben Noordhuis
105d1787dc cluster: fix call to undefined function 2011-11-08 08:29:25 +01:00
Eric Lovett
69d3bf1068 docs: minor grammar fix in cluster page 2011-11-08 00:43:59 +01:00
Ben Noordhuis
d7bcf21340 build: fix race in parallel build
Run `make clean` first, *then* `make all`
2011-11-08 00:25:54 +01:00
Ryan Dahl
6a83df04b6 Update multi-core text on index.html 2011-11-07 10:43:48 -08:00
Ryan Dahl
a9366818a1 Remove v0.4 links from index.html 2011-11-07 10:41:01 -08:00
Ben Noordhuis
edcfea5d02 build: fix man page install path on the BSDs
Fixes #2026.
2011-11-07 06:46:09 +01:00
koichik
1001cf412c bench: update static_http_server benchmark to new API
Fixes #2016.
2011-11-06 01:25:07 +09:00
Fedor Indutny
da82daf54c test: debugger-repl should wait for 'drain' event 2011-11-05 15:24:28 +01:00
Eric Lovett
febe5c44c0 docs: use markdown for link, not html 2011-11-05 13:00:20 +01:00
Ben Noordhuis
099c717baf docs: fix copy/paste error, 0.6.0 is a stable release 2011-11-05 10:44:27 +01:00
Eric Lovett
8f2b03242d docs: minor typo fix in child process docs 2011-11-05 10:41:39 +01:00
Ryan Dahl
9e00b7d3d0 Now working on v0.6.1 2011-11-05 01:55:34 -07:00
Ryan Dahl
865b077819 Bump version to v0.6.0 2011-11-04 23:48:57 -07:00
koichik
96fe50400d docs: fix typo 2011-11-05 12:35:38 +09:00
Ben Noordhuis
10edbbb927 uv: upgrade to c468e2a 2011-11-05 03:13:55 +01:00
Igor Zinkovsky
7335a4234a fix test-module-loading on windows 2011-11-04 18:05:53 -07:00
Igor Zinkovsky
1a9286c6e9 update fs_event_wrap.cc to work with new uv_fs_event_init api 2011-11-04 18:04:52 -07:00
Igor Zinkovsky
6545a6dc5d make updates to work with latest libuv api changes 2011-11-04 18:01:03 -07:00
Bert Belder
b54da8a10f Upgrade libuv to 1997e10b50 2011-11-05 01:50:05 +01:00
Ryan Dahl
5c3954aa6f docs: make std*Stream spawn opts explicitly internal
Fixes #1884.
2011-11-04 15:56:28 -07:00
Jacob H.C. Kragh
c1472ac105 docs: fix some minor typos in the fs documentation
* fchmodSync: replace 'path' with 'fd'
* lchmod: replace 'fd' with 'path'
* utimes, futimes, fsync: mark 'callback' as optional
2011-11-04 23:53:01 +01:00
Ben Noordhuis
89014c9d40 bench: add http_simple cluster edition benchmark 2011-11-04 23:53:01 +01:00
Ryan Dahl
1e3e6b7c15 cluster: add example for message passing 2011-11-04 15:34:18 -07:00
Igor Zinkovsky
5496e67f83 upgrade libuv to 82cf0b38c0
fixes #2004
2011-11-04 15:19:46 -07:00
Ryan Dahl
d42006c80a cluster: Remove eachWorker, workerCount
unnecessary
2011-11-04 15:14:38 -07:00
Ryan Dahl
86528489ec new cluster api 2011-11-04 15:12:11 -07:00
Jacob H.C. Kragh
44a5452a4f docs: fix typo in the documented fchown signature 2011-11-04 20:10:21 +01:00
Matt Robenolt
5213c39038 Close #1930 Convenience methods for zlib
This is a combination of 20 commits. Their commit messages are preserved
below for the benefit of future generations.

* Adding a shortcut to easily compress/decompress a string of text.
* Making the API consistent. unzip should accept a Buffer for input as well.
* Adding docs.
* Oops, typo.
* Propagate error through the callback.
* Adding zlib from string tests.
* Typo in test.
* Remove 'end' listeners, and join buffers properly instead of joining them
  as a string.
* Oops, needs to be rendered to a string.
* Updated test to include multi-byte characters.
* unzip should return a raw Buffer. Updated docs to reflect.
* And finally updating test.
* EventEmitter.destroy() is a bit more customary
* Revert "EventEmitter.destroy() is a bit more customary"
* Renaming internal methods to "buffer" instead of string.
* Remove the 'error' listeners as well.
* @isaacs: spacing/style, and compress duplicate functions into one
* @isaacs: Update docs
* @isaacs: doc style fix
2011-11-04 10:32:57 -07:00
Fedor Indutny
8ef2c13d6c fix debugger-repl test 2011-11-04 18:00:18 +01:00
Fedor Indutny
b5d32d4a9e debugger: do not request continue on connection
* Updated test
* Use `node debug file`, not `node debug -e "..."` in test
2011-11-04 17:50:46 +01:00
Bert Belder
829735e738 Implement process._debugProcess 2011-11-04 17:50:28 +01:00
Bert Belder
35f4182cee Make error reporting from node::DLOpen more consistent 2011-11-04 16:24:35 +01:00
Bert Belder
6ee73a2fee Windows: ErrnoException shouldn't mix up crt and win32 errors 2011-11-04 16:24:35 +01:00
Bert Belder
189dd8f803 Fix line endings and trailing whitespace 2011-11-04 16:24:34 +01:00
Jordan Sissel
358f0ce96b url: add '.' '+' and '-' in url protocol
- Based on BNF from RFC 1738 section 5.
- Added tests to cover svn+ssh and some other examples
2011-11-04 13:36:06 +01:00
Ben Noordhuis
5fd012e67a fs: don't use octal values, not allowed in strict mode 2011-11-04 13:10:07 +01:00
Ben Noordhuis
8974ba31a3 test: fix simple/net-pipe-connect-errors
When trying to connect to something that is not a UNIX socket, Linux returns
ECONNREFUSED, not ENOTSOCK.

We cannot atomically determine if the other end is a) a stale socket, or b) not
a socket at all, so let's accept both error codes.
2011-11-04 05:30:00 +01:00
Ryan Dahl
cf78d04ae2 Upgrade libuv to 9c7ed0d
Fixes test-net-pipe-connect-errors.js on UNIX.
See #2001.
2011-11-03 16:33:54 -07:00
Fedor Indutny
b904a078d8 report debugger's test errors 2011-11-03 14:11:14 -07:00
Ryan Dahl
a936768890 stdout and stderr are blocking when referring to regular files
Fixes message tests.
2011-11-03 13:27:33 -07:00
Ryan Dahl
4a8088a603 Socket.write should reset timeout timer.
Fixes #2002.
2011-11-03 12:37:04 -07:00
Ben Noordhuis
9c11e8a1ca net: implement Server.prototype.address() for pipes 2011-11-03 19:16:10 +01:00
Maciej Małecki
481c17504d test error codes related to pipes
This tests passes on node v0.4, but fails on node v0.5. v0.5 seems to
generally lack error codes for various error events related to UNIX
pipes.

Fixes #2001
2011-11-03 10:54:00 -07:00
Ryan Dahl
2dd68af334 Remove -Werror from V8 build 2011-11-03 10:46:16 -07:00
Ryan Dahl
0e9c1ca673 Downgrade V8 to 3.6.4 2011-11-03 10:34:22 -07:00
koichik
a6dbe0ff23 docs: make fs.mkdir()'s mode argument an option. 2011-11-03 20:04:22 +09:00
Ben Noordhuis
11d68eb3fc fs: make mkdir() default to 0777 permissions
Fixes #1999.
2011-11-03 09:37:23 +01:00
Ben Noordhuis
52eaac4382 uv: upgrade to 0fb3769 2011-11-03 03:25:11 +01:00
Ben Noordhuis
818f0cba55 v8: fix freebsd build, implement VirtualMemory class 2011-11-03 03:23:59 +01:00
Igor Zinkovsky
434ccd2e20 fix process.uptime() on windows 2011-11-02 18:27:43 -07:00
Igor Zinkovsky
24a69d22a0 process.kill to use uv_kill 2011-11-02 17:34:17 -07:00
Ben Noordhuis
359a65a6db http: emit Error object after .abort()
It was emitting the net.Socket object due to misuse of the arguments object.

Fixes #1399.
2011-11-03 01:30:03 +01:00
Igor Zinkovsky
143aeb9ea7 upgrade libuv to e1bee05ecdbffbe9de37830530ad2ae2f1fb41c8 2011-11-02 16:51:26 -07:00
Ryan Dahl
850609ea2d Remove separation of libuv tests 2011-11-02 16:38:59 -07:00
Ben Noordhuis
1ba834bd3f docs: http: link to relevant net.Socket methods 2011-11-03 00:22:02 +01:00
Fedor Indutny
9ad27f7853 ignore undefined messages in the debugger repl
fixes #1995
2011-11-02 15:55:36 -07:00
Ben Noordhuis
c8646e0c41 test: add ChildProcess.prototype.killed test case 2011-11-02 18:37:34 +01:00
Maciej Małecki
6bd0bcd5af child_process: in a new ChildProcess set killed to false
This behavior is consistent with what v0.4 does.
2011-11-02 18:17:51 +01:00
Ryan Dahl
60818b957c Add missing copyright headers 2011-11-02 10:00:57 -07:00
Ben Noordhuis
672b453a76 docs: http: fix docs for the 'close' event 2011-11-02 17:28:46 +01:00
Ben Noordhuis
edea4122b1 Revert "Upgrade V8 to 3.7.1"
This reverts commit 92f5a5d3ca.

V8 3.7.1 in debug mode on ia32 has a curious race-like bug where an fs.Stats
object is not fully formed until some time after it's created. This is easy
to demonstrate by running `make test-debug`.

V8 3.7.0 does not exhibit this behaviour so back we go.

Fixes #1981.
2011-11-02 16:58:35 +01:00
Igor Zinkovsky
cc92234068 fix pummel/test-net-throttle on windows 2011-11-01 16:44:08 -07:00
Maciej Małecki
fc61134b1a doc: fix links
Changes:

  * 'http://github.com' => 'https://github.com'
  * 'https://github.com/ry/node' => 'https://github.com/joyent/node'
  * 'https://github.com/ry/http-parser' =>
    'https://github.com/joyent/http-parser'
  * old issue links
  * wiki link
2011-11-01 22:26:52 +01:00
Igor Zinkovsky
3060266ff1 windows: enable pending accepts knob 2011-11-01 14:14:52 -07:00
Ben Noordhuis
21b64dc7c9 uv: upgrade to 90b0b7d 2011-11-01 22:11:58 +01:00
Ben Noordhuis
37bb37d151 os: rename getNetworkInterfaces() to networkInterfaces() 2011-11-01 18:10:06 +01:00
Maciej Małecki
b4afe605f4 node: remove process.compile
It was deprecated before v0.4.
2011-11-01 17:45:21 +01:00
Ben Noordhuis
362b5a6c40 process: fix process.nextTick() error case regression
Patch and test by Koichi Kobayashi.
2011-11-01 16:30:43 +01:00
koichik
f5a01d1764 test: fix test/message/undefined_reference_in_new_context.js
after 4d4900f, stack trace was changed.
2011-11-01 19:30:19 +09:00
isaacs
06190928c0 doc: Correct blatantly wrong futimes documentation 2011-10-31 16:31:59 -07:00
Ben Noordhuis
4d4900fc65 process: optimize process.nextTick()
33% performance boost on large nextTick queues.
2011-10-31 22:31:14 +01:00
Ben Noordhuis
5fee1ff7bc bench: add process.nextTick() benchmark 2011-10-31 22:02:46 +01:00
koichik
f53d092a2a tls, https: add passphrase option
Fixes #1925.
2011-10-31 17:36:43 +09:00
Ben Noordhuis
b6c582a3a3 docs: tty: remove tty.open() documentation 2011-10-30 21:22:46 +01:00
Ben Noordhuis
a1fa3efd2b core: fix off-by-one error in node::DLOpen()
Fixes loading of modules that use the NODE_MODULE macro on POSIX platforms.
2011-10-30 17:35:08 +01:00
Ben Noordhuis
26874e2e07 docs: addons: fix example 2011-10-30 17:15:10 +01:00
koichik
8a729270c1 fix for --harmony_block_scoping
Fixes #1969.
2011-10-31 00:49:20 +09:00
koichik
52c2988f16 docs: fix option's name of cluster.startMaster() 2011-10-30 11:40:31 +09:00
Ben Noordhuis
a7803c58e4 uv: upgrade to 70381ce 2011-10-30 02:56:51 +01:00
Siddharth Mahendraker
12cf730b69 events: separate maxListeners and _events
Fixes #1479.
Fixes #1923.
2011-10-30 02:14:30 +01:00
Igor Zinkovsky
6d7aa65399 fix pummel/test-child-process-spawn-loop.js on windows 2011-10-28 18:32:27 -07:00
Bert Belder
60efa608d6 Upgrade libuv to e4d6509211 2011-10-29 01:33:01 +02:00
Bert Belder
a56a95b652 Export some functions from node.h 2011-10-29 01:06:53 +02:00
Bert Belder
4a1efb2b9c Support native extension loading on Windows 2011-10-29 01:06:51 +02:00
Bert Belder
dd93c53c4e Make node::DLOpen use uv_dlopen 2011-10-29 01:06:49 +02:00
Bert Belder
2f22024806 Upgrade libuv to 90e15f1110 2011-10-29 01:06:47 +02:00
Bert Belder
c0c4bd4efa Add common.gypi to gyp output 2011-10-29 01:06:45 +02:00
Bert Belder
889620dcd2 Wrap long lines, strip trailing whitespace 2011-10-29 01:06:44 +02:00
Bert Belder
1e2d777601 Remove outdated comment 2011-10-29 01:06:42 +02:00
Bert Belder
6a6a70e80e Fix v8 build on Windows
There's probably a better way to fix this
2011-10-29 01:06:40 +02:00
Igor Zinkovsky
56315494dd fix simple/test-child-process-double-pipe on windows 2011-10-28 15:57:39 -07:00
Igor Zinkovsky
f35a396c54 Revert "remove node_io_watcher"
This reverts commit cc2ac1ccc7.
2011-10-28 15:35:38 -07:00
Ben Noordhuis
ccd8b55b01 linux: unbreak build if HAVE_MONOTONIC_CLOCK=0 2011-10-28 23:47:08 +02:00
Ben Noordhuis
004e6fbe1f docs: addons: fix NODE_SET_METHOD example 2011-10-28 22:36:55 +02:00
Zachary Scott
e35ce7baa1 docs: tty: stdin must be initialized before calling setRawMode 2011-10-28 22:32:04 +02:00
Ben Noordhuis
1d94d4fa70 docs: fix home page link to API docs 2011-10-28 18:22:39 +02:00
Ben Noordhuis
3dee0e4cd8 zlib: compile without -ansi
Source contains C++ / C99 comments, gcc in strict mode doesn't like that.
2011-10-28 17:31:40 +02:00
Igor Zinkovsky
cc2ac1ccc7 remove node_io_watcher 2011-10-27 16:47:37 -07:00
koichik
173f91c791 docs: add zlib.createXxx() functions 2011-10-27 21:21:54 +09:00
Ben Noordhuis
b9529545e1 v8: implement VirtualMemory class on SunOS
Unbreaks build on SunOS. Re-applies 4908e5bf7a.
2011-10-27 11:22:07 +00:00
Ryan Dahl
92f5a5d3ca Upgrade V8 to 3.7.1 2011-10-27 00:48:23 -07:00
Tj Holowaychuk
528c28587f cluster: Add some docs, improve cluster.isWorker()
Fixes #1949.
2011-10-26 16:42:00 -07:00
Ryan Dahl
c5d54010bc node cluster is now a module instead of CLI interface
This is to make room for master process plugins instead of adding CLI
options as proposed in #1879.
2011-10-26 13:50:53 -07:00
Nathan Rajlich
4fb2ac5be1 Add test cases for #1944. 2011-10-27 04:58:51 +09:00
Nathan Rajlich
ebefe77bc0 More bulletproof util.inspect() function.
Use the *real* versions of the Date and RegExp functions, from the
prototype. This defends against code like:

  var d = new Date()
  d.toUTCString = null
  util.inspect(d)
    // TypeError: toUTCString is not a function

Fixes #1944.
2011-10-27 04:58:34 +09:00
Nathan Rajlich
d4379fcee3 Add test case for #1941.
Add test for the false-positives from #1942.
Fix test-sys.js.
2011-10-27 04:33:24 +09:00
Nathan Rajlich
2dbb470ea1 Don't use instanceof in lib/util.js "is" checks.
While using `instanceof`, these functions could easily be faked with something
like:  Object.create(Date.prototype)

So let's just not use it at all. A little slower, but these functions are only
used in the REPL / for debugging so it's OK.

Fixes #1941.
Fixes #1942.
2011-10-27 04:33:24 +09:00
Ryan Dahl
194511ff1a Return IPv4 addresses before IPv6 addresses from getaddrinfo 2011-10-26 12:28:25 -07:00
Nathan Rajlich
3524f41a27 Add docs for the type checking functions in util.js. 2011-10-27 03:38:29 +09:00
Nathan Rajlich
a6a04fb1ec Add test case for the util.js type checking functions. 2011-10-27 03:38:29 +09:00
Nathan Rajlich
b8f3e18a5d Export the type checking functions from util.js.
As per discussion at:
http://groups.google.com/group/nodejs-dev/browse_thread/thread/b08970166e4670cf
2011-10-27 03:38:29 +09:00
Ryan Dahl
b3ddb895d2 Don't compile in node_dtrace.cc when not supported 2011-10-26 11:36:21 -07:00
Zachary Scott
3961b5a131 docs: update email address 2011-10-26 20:00:54 +02:00
Zachary Scott
7fb8c7c37f docs: update socket.io url 2011-10-26 20:00:10 +02:00
koichik
cbcaeedba9 tls: add address(), remoteAddress/remotePort
Fixes #758.
Fixes #1055.
2011-10-27 00:28:16 +09:00
koichik
0e8a55d2a2 tls: does not emit 'end' from EncryptedStream
de09168 and 4cdf9d4 breaks `test/pummel/test-https-large-response.js`.
It is never finished.

Fixes #1936.
2011-10-27 00:18:29 +09:00
Ben Noordhuis
13871fa2f8 build: fix sunos gyp build, include platform file 2011-10-26 05:11:38 +00:00
Ben Noordhuis
15628f6735 sunos: don't use exceptions
Don't use exceptions in platform functions. Fix a resource leak
(leaked kstat handle) while we're at it.
2011-10-26 05:09:21 +00:00
Ben Noordhuis
d7dff34bad gyp: support older bash versions
Older bash versions in `sh -c` mode don't parse `export FOO=42` constructs,
they bail out with a "FOO is not an identifier" error message.

This was fixed somewhere between bash 4.1.0 and 4.1.5 but let's support the
older versions anyway.
2011-10-26 04:59:31 +00:00
Ben Noordhuis
b8847e9ac6 uv: upgrade to 0cb2213 2011-10-26 00:05:24 +02:00
Igor Zinkovsky
0a5708c3e9 fix test-http-curl-chunk-problem.js and test-pipe-file-to-http.js on windows 2011-10-25 14:10:12 -07:00
Ben Noordhuis
680765abec http: fix gcc 3.x build, don't use always_inline 2011-10-25 19:18:58 +00:00
Ben Noordhuis
dddfd0f8b8 test: spawn process.argv[0], not 'node'
'node' may or may not be on the path and may or may not be the version we are
running the test suite for.
2011-10-25 02:24:51 +02:00
Nathan Rajlich
58cb0fa639 Directly export the Stream constructor.
Also setting up a circular reference back to the
stream as `Stream.Stream`, for backwards-compatibility.

Fixes #1933
2011-10-24 15:45:35 -07:00
Ryan Dahl
239b3d62de Remove resume and pause events
Too complex; unnecessary.
2011-10-24 13:23:59 -07:00
isaacs
4c5751ba97 Close #1929 zlib Respond to 'resume' events properly 2011-10-24 12:55:45 -07:00
Maciej Małecki
7ee29d1d5b net: Server.listen, Server.close and Socket.connect return this
Just a syntactic sugar for doing, for example:

    var server = net.createServer(function (c) {
      c.end('goodbye, cruel world!\r\n');
      server.close().on('close', function () {
        console.log('really, goodbye!');
      });
    }).listen(1337);

Fixes #1922.
2011-10-24 22:19:42 +09:00
koichik
00aa8935d7 docs: improvement fs, http and https 2011-10-22 23:40:15 +09:00
seebees
216570b5e1 Lint 2011-10-22 14:14:40 +09:00
seebees
a2eaddaa51 Documentation update
http.markdown
  note options now align with url.parse
  added note that hostname is preferred over host.
  added auth
  added not that setting an explicit Authorization header will override basic authentication with 'auth'

https.markdown
  Made a link to http.request and noted that all http.request options are valid.

url.markdown
  added path option
2011-10-22 14:14:40 +09:00
seebees
1ead20f274 remove auth from host
Fixes #1626
2011-10-22 14:14:40 +09:00
seebees
005d607aed http.request(url.parse(x))
http2.js

protocols object to store defaults for http and https, and use as a switch for supported protocols.
options.hostname > options.host > 'localhost'
if I have an options.auth element and I do not have an Authorization header, I do basic auth.
http.request collapses to new ClientRequest since the defaults are handled by the protocol object

test-http-url.parse*

Fixes #1390

Conflicts:

	lib/http2.js
2011-10-22 14:14:40 +09:00
seebees
be4576de7a url.resolveObject(url.parse(x), y) == url.parse(url.resolve(x, y));
added a .path property = .pathname + .search for use with http.request

And tests to verify everything.
With the tests, I changed over to deepEqual, and I would note the comment on the test
['.//g', 'f:/a', 'f://g'], which I think is a fundamental problem

This supersedes pull 1596
2011-10-22 14:14:39 +09:00
koichik
ed744ecbfd docs: remove #1914 from Changelog. 2011-10-22 14:02:36 +09:00
Nathan Rajlich
bdb9d09aef Print out undefined on the REPL when returned.
util.inspect() has a special case for "undefined", so it's nice to be able to
distinguish visually that undefined is the result of an expression.
2011-10-22 14:02:35 +09:00
koichik
7e2d799328 docs: fix typo 2011-10-22 14:02:35 +09:00
Ryan Dahl
9b808c2d1b Now working on v0.5.11 2011-10-21 19:16:06 -07:00
Ryan Dahl
220e61c1f6 Bump version to v0.5.10 2011-10-21 18:46:42 -07:00
Ben Noordhuis
dd6faa5adf uv: upgrade to 179f475 2011-10-21 18:44:19 -07:00
Ben Noordhuis
ac379b3be1 net: bring back .setNoDelay() and .setKeepAlive() 2011-10-21 18:09:23 -07:00
Ben Noordhuis
401c073dd2 uv: upgrade to ec825ff 2011-10-21 18:09:17 -07:00
Ryan Dahl
493d3b9f7c Merge remote branch 'origin/v0.4'
Conflicts:
	ChangeLog
	Makefile
	deps/libev/wscript
	doc/index.html
	doc/template.html
	lib/net.js
	src/node_version.h
	src/platform_cygwin.cc
	test/pummel/test-net-write-callbacks.js
	test/simple/test-buffer.js
2011-10-21 18:02:30 -07:00
Igor Zinkovsky
8498ee03bc make simple\test-fs-symlink.js work on windows 2011-10-21 17:31:32 -07:00
Maciej Małecki
8f1ba251dd test: #1899 - output in child process raises an exception 2011-10-21 15:53:09 -07:00
Ryan Dahl
d5a21a29f8 getaddrinfo returns ENOTFOUND for invalid domain names
change test-http-dns-error to reflect this.
2011-10-21 15:19:53 -07:00
Ryan Dahl
efa95c2718 Fix test-eio-race on Windows 2011-10-21 14:55:28 -07:00
Ben Noordhuis
3c3ec7b2d7 gyp: upgrade to r1081 2011-10-21 13:49:29 -07:00
Ryan Dahl
9b2335a356 Upgrade libuv to 7738306 2011-10-21 13:44:30 -07:00
Ryan Dahl
de09168e5a Emit 'end' from crypto streams on close
Fixes test/simple/test-tls-peer-certificate.js on Windows

Patch from bnoordhuis.

See also 75a0cf970f
2011-10-21 13:16:41 -07:00
isaacs
2d02e6a992 Add useGlobal flag for standard node repl 2011-10-21 13:02:49 -07:00
isaacs
caf70f5e94 Revert "Don't use a separate context for the repl."
This reverts commit b70fed48a7.
2011-10-21 13:00:37 -07:00
Ben Noordhuis
0ae98dfc66 build: fix wscript on solaris
os.path.exists() in python 2.5.2 returns false for symlinks.
2011-10-21 12:46:55 -07:00
Igor Zinkovsky
69b73f9cf0 make process.kill a no-op on windows 2011-10-21 10:27:22 -07:00
Ryan Dahl
fafb584881 Fix race condition in test-dgram-pingpong 2011-10-21 10:21:23 -07:00
Ben Noordhuis
84d0b1bcc5 http: improve http parser bindings
Speeds up HTTP benchmarks by 10% on average.
2011-10-20 19:19:02 -07:00
Ryan Dahl
c83dda89a4 dns.lookup uses cares_wrap::GetAddrInfo 2011-10-20 18:03:02 -07:00
Ryan Dahl
fb3cccc257 Upgrade libuv to 2c7e8bb 2011-10-20 17:58:35 -07:00
Bert Belder
00bbe958c4 Fix windows build 2011-10-20 15:40:08 -07:00
Ben Noordhuis
145aa636b9 uv: upgrade to 28234d7 2011-10-20 15:30:09 -07:00
Ryan Dahl
be2320d408 Add binding to uv_getaddrinfo 2011-10-20 15:06:53 -07:00
Nathan Rajlich
95d530f2b4 repl: print out undefined
util.inspect() has a special case for "undefined", so it's nice to be able to
distinguish visually that undefined is the result of an expression.
2011-10-20 08:41:33 -07:00
Fedor Indutny
b43eb9678b debugger: fix backtrace err handling 2011-10-20 08:37:51 -07:00
Ben Noordhuis
9bb3a683fe docs: improve buffer.fill() documentation
Fixes #1912.
2011-10-19 18:20:55 -07:00
Ryan Dahl
6cc42927d8 Display sys_errno when UV_UNKNOWN is returned 2011-10-19 16:53:07 -07:00
Ryan Dahl
88af0c8635 Remove os.openOSHandle
Unused.
2011-10-19 16:28:58 -07:00
Ryan Dahl
67b235735e Remove support for cygwin 2011-10-19 16:23:26 -07:00
Ryan Dahl
9d27faa2c4 Revert "Fix #1801 vm: Use 'sandbox' as global_prototype"
Accidentally committed. Revert until review.

This reverts commit 200df8641b.
2011-10-19 11:01:08 -07:00
Thomas Parslow
b0f78afe58 http: Added support for HTTP PATCH verb
Fixes #1907.
2011-10-19 19:59:16 +09:00
koichik
6a72e52520 buffer: use NO_NULL_TERMINATION flag
Refs #394.
Fixes #1902.
2011-10-19 15:03:00 +09:00
isaacs
b70fed48a7 Don't use a separate context for the repl.
Fix #1484
Fix #1834
Fix #1482
Fix #771

It's been a while now, and we've seen how this separate context thing
works.  It constantly confuses people, and no one actually uses '.clear'
anyway, so the benefit of that feature does not justify the constant
WTFery.

This makes repl.context actually be a getter that returns the global
object, and prints a deprecation warning.  The '.clear' command is gone,
and will report that it's an invalid repl keyword.  Tests updated to
allow the require, module, and exports globals, which are still
available in the repl just like they were before, by making them global.
2011-10-18 18:18:32 -07:00
elliottcable
200df8641b Fix #1801 vm: Use 'sandbox' as global_prototype
Squashed commit:

(- re tests) Cleaning up the `Script` test suite.

For whatever reason, there were several duplicate test files related to `Script`
and the `'vm'` module. I removed these, and fixed a few other small issues.
(More fixes coming in subsequent commits.)

Squashes: 19e86045a0..1e3dcff4eb

(api fix:1801 new:1801) `'vm'` module uses sandbox as prototype

As described in GH-1801, the `'vm'` module was handling the `sandbox` object
provided by the API consumer in a particularly terrible and fragile fashion: it
was simply shallow-copying any enumerable properties from the sandbox onto the
global context before executing the code, and then eventually copying any values
on the global context back into the sandbox object *afterwards*.

This commit removes all of that implementation, and utilizes the passed sandbox
object as the *prototype of the context* instead. A bit of a hack, but a very
effective one.

This no longer allows for new variables created in the global context to be
placed into your sandbox after execution has completed, but that’s for the best
anyway, as it’s not very in line with the concept of a “box of passed-in
context.” I’m planning to further implement an interface for API consumers to
acquire the *actual global* from within the VM soon, thus allowing for
separation-of-concerns: providing data *to* the VM via the sandbox-prototype,
and exploring the internal environment of the VM itself.

// GitHub cruft: closes #1801

Squashes: 43b8e3c..209ed86
2011-10-18 17:56:35 -07:00
Ryan Dahl
d9bc8455cb Fix test-c-ares.js on Windows by disabling PTR test 2011-10-18 16:12:07 -07:00
Ryan Dahl
6cc0c9e6a9 Remove superfluous nextTick during server binding
This breaks fork().send({}, server._handle) after server.listen() because
server._handle is not set.
2011-10-18 15:12:18 -07:00
Ryan Dahl
dbfc8198a6 Upgrade GYP to r1078 2011-10-18 14:39:39 -07:00
Ryan Dahl
5783a52a9c Remove process.memoryUsage().vsize
Not meaningful cross platform; unused.
2011-10-18 14:31:37 -07:00
Ryan Dahl
d77ce4b998 Fixes #1860. Remove process.writeError
Breaks a few tests in "make test-message"
2011-10-18 13:12:50 -07:00
koichik
d2698d1822 http: add test for #1885 2011-10-17 16:14:35 +09:00
Yoshihiro Kikuchi
f90ba61478 http: tiny fix in http.js
Fixes #1885.
2011-10-17 01:14:45 +09:00
koichik
cdec7e3ae5 docs: improvement tls example 2011-10-16 16:50:16 +09:00
Igor Zinkovsky
5ca3dcd127 test: fix test-child-process-stdin and test-child-process-kill on windows 2011-10-15 22:55:24 +02:00
koichik
d6191f593d net: fix error handling in listen()
Fixes #1894.
2011-10-16 01:30:19 +09:00
koichik
86a67f15a0 docs: add example of tls 2011-10-16 01:26:38 +09:00
koichik
68cc173c6d tls: The TLS API is inconsistent with the TCP API
Add 'secureConnect' event to tls.CleartextStream.

Fixes #1467.
2011-10-15 19:27:21 +09:00
Ben Noordhuis
0b92fa0e93 net: fix connect queue bugs
This commit fixes two bugs in the handling of write requests when the connect()
call is still in progress.

1. The deferred write request's size was counted twice towards `.bytesWritten`.

2. The callback was not called. After connecting, `Socket.write()` was called
   with three arguments (data, encoding, cb) but it ignored the third argument.

Coincidentally fixes test/simple/test-net-connect-buffer.js.
2011-10-15 03:34:09 +02:00
Ben Noordhuis
6df574b744 net: properly account multi-byte chars in .bytesWritten 2011-10-15 03:24:34 +02:00
Igor Zinkovsky
971c3d90eb win: remove pthread-win32 init code 2011-10-15 02:50:16 +02:00
Igor Zinkovsky
107b05772a build: fix windows build 2011-10-15 02:12:53 +02:00
Ben Noordhuis
2f8596ee10 test: fix bug in setproctitle test
Output from `ps` may contain trailing whitespace, trim it.
2011-10-15 02:07:57 +02:00
Ben Noordhuis
4908e5bf7a v8: implement VirtualMemory class on SunOS
Unbreaks build on SunOS. Un-reverts 9bbca99107.
2011-10-14 23:29:35 +00:00
isaacs
e6f147141e doc: Add examples of zlib usage with http 2011-10-14 16:15:08 -07:00
Ben Noordhuis
b6a869ef4f test: check that EventEmitter.on == EventEmitter.addListener 2011-10-15 01:08:41 +02:00
Ben Noordhuis
018e110cd1 test: replace .addListener() calls with .on() 2011-10-15 01:08:36 +02:00
Ben Noordhuis
3108a9ee38 uv: upgrade to 456f831 2011-10-15 00:42:10 +02:00
koichik
19a855382c tls: requestCert unusable with Firefox and Chrome
Fixes #1516.
2011-10-15 00:54:46 +09:00
koichik
a09b747f30 child_process.fork: don't modify args
Fixes #1888.
2011-10-15 00:15:38 +09:00
Ben Noordhuis
e0297ca59b node: fix use of potentially uninitialized variable 2011-10-14 15:05:02 +00:00
Ben Noordhuis
87b34c94fa timer_wrap: add sanity check assert 2011-10-14 15:01:26 +00:00
Ben Noordhuis
9193062e70 tcp_wrap: add sanity check asserts 2011-10-14 15:01:26 +00:00
Ben Noordhuis
0dc844de17 node_script: remove unused variable 2011-10-14 15:01:21 +00:00
Ben Noordhuis
dc0b7364b5 node: fix arguments to uv_timer_start() 2011-10-14 14:43:49 +00:00
Ben Noordhuis
f1d3ae7753 cares_wrap: make destructor virtual
A class with virtual methods should have a virtual destructor.
2011-10-14 14:39:25 +00:00
Ryan Dahl
33b5f2f779 Upgrade V8 to 3.7.0 2011-10-13 17:45:02 -07:00
isaacs
59a5262041 Fix #1882 zlib Update 'availOutBefore' value, and test 2011-10-13 16:47:51 -07:00
Guglielmo Ferri
66a10b6e58 docs: add API documentation note about UDP datagram size 2011-10-13 18:10:01 +02:00
Maciej Małecki
683c1c6583 docs: document process.versions 2011-10-13 17:02:54 +02:00
Simen Brekken
4b0e36810a net: register net.Server callback only once
Only register once for listening when passing a callback to Server.listen(),
this prevents servers recycled using close() from invoking the callback when
Server.listen() is called later.
2011-10-13 16:09:14 +02:00
Ben Noordhuis
fab68aa1ed platform: support long process names on linux 2011-10-13 15:48:02 +02:00
Ben Noordhuis
5faff9ebdf test: test long process name support
On platforms that support it: linux, freebsd, darwin
2011-10-13 15:47:05 +02:00
koichik
1b55010a04 docs: added .json modules. 2011-10-13 17:06:27 +09:00
Brian White
f243ca199b docs: mention util instead of sys 2011-10-13 05:06:42 +02:00
Ryan Dahl
3a34972672 Fix test-http-conn-reset.js on OSX 2011-10-12 17:31:49 -07:00
Ilya Dmitrichenko
39987cbc80 docs: improved fs.Stats section in API documentation 2011-10-13 02:25:30 +02:00
Arnout Kazemier
e3d2ae0bfd sys has been moved to util 2011-10-13 02:21:37 +02:00
Ryan Dahl
e911171e03 Move some slow tests to pummel 2011-10-12 16:59:00 -07:00
Ryan Dahl
7b4370e5f8 Fix test/pummel/test-watch-file.js 2011-10-12 16:19:46 -07:00
Ryan Dahl
651b8a06d6 Fix test/pummel/test-exec.js 2011-10-12 16:12:24 -07:00
Karl Skomski
9557020dc1 New win32 platform function: GetCPUInfo
Fixes #1644
2011-10-12 15:10:19 -07:00
Daniel Ennis
59be975322 Improve IPC performance.
Reading of JSON data off the buffer, 10-15% performance increase.

Fixes #1864.
2011-10-12 15:06:51 -07:00
Ryan Dahl
73b4b86d29 Add cluster.js to node.gyp 2011-10-12 14:51:25 -07:00
Ryan Dahl
de7fb33879 Add some docs for node cluster 2011-10-12 14:19:32 -07:00
Ryan Dahl
08cb8fce67 Remove process.ARGV
Use process.argv instead.
2011-10-12 14:10:37 -07:00
Ryan Dahl
25ff181300 Revert some changes made in 12486a6
Some of the perf improvements from many-writes-fix branch were accidentally
undone in that commit. This puts them back in.
2011-10-12 12:49:58 -07:00
Ryan Dahl
16e1d5b5ce Remove uname and git-rev detection from http_simple.js 2011-10-12 12:29:40 -07:00
Ryan Dahl
b8966872b3 Upgrade libuv to c903bc3 2011-10-12 12:27:46 -07:00
Ben Noordhuis
6ed8d41ddd docs: fix child_process.send() example 2011-10-12 17:44:47 +02:00
Ben Noordhuis
bc96302fae uv: upgrade to 25a177a
Fixes #1869.
2011-10-12 17:37:35 +02:00
Ben Noordhuis
c82828ec27 test: add test for #1869
fs.readdir() on file should raise ENOTDIR, not UNKNOWN.
2011-10-12 17:37:30 +02:00
Ben Noordhuis
752571c7ba Remove --use-legacy switch from --help section. 2011-10-12 15:47:20 +02:00
Ryan Dahl
87339a22b1 introduce node cluster 2011-10-12 02:58:35 -07:00
Igor Zinkovsky
99757cbeb2 fix simple/test-fs-utimes.js on windows 2011-10-11 22:50:16 -07:00
Ryan Dahl
2b46959075 Add throughput benchmark 2011-10-11 22:40:04 -07:00
Igor Zinkovsky
f164704383 fs.watch documentation 2011-10-11 18:28:16 -07:00
Ryan Dahl
e0b59e7dbc Remove more dead code 2011-10-11 15:20:12 -07:00
Ryan Dahl
7085a04a1e Remove process.ENV 2011-10-11 15:17:32 -07:00
Ryan Dahl
83fce75700 Remove stdio binding source - somehow this was missed in cdf5d91 2011-10-11 14:59:39 -07:00
Ryan Dahl
0e2bbac4e0 Fix test-module-load-list.js 2011-10-11 14:49:39 -07:00
Ryan Dahl
9631e29933 Remove tests relying on !process.features.uv 2011-10-11 14:47:02 -07:00
Ryan Dahl
c8dbaf579c Remove --use-legacy and --use-uv 2011-10-11 14:39:31 -07:00
Ryan Dahl
4f59041990 Fix windows build 2011-10-11 14:25:50 -07:00
Ryan Dahl
cdf5d91fe5 Remove tty_legacy 2011-10-11 13:41:33 -07:00
Ryan Dahl
71cce3f45b Remove dgram_legacy 2011-10-11 13:26:41 -07:00
Ryan Dahl
58e892dadd Remove dns_legacy 2011-10-11 13:21:30 -07:00
Ryan Dahl
96e423a665 Remove child_process_legacy 2011-10-11 13:16:33 -07:00
Ryan Dahl
be0bb2dc13 Remove net_legacy timers_legacy 2011-10-11 13:11:54 -07:00
Ryan Dahl
d2b8037ed0 disable test-sendfd 2011-10-11 13:03:29 -07:00
Fedor Indutny
178e2ce65f docs: improve addons, readline, repl documentation 2011-10-11 21:44:09 +02:00
Ben Noordhuis
49c3a910c6 docs: fix typo in code snippet 2011-10-11 21:05:45 +02:00
Ryan Dahl
53c163cd5b Disable test-child-process-custom-fds.js 2011-10-11 11:27:58 -07:00
Ryan Dahl
728b04067d Upgrade libuv to 4ac1309
Fixes #1857
2011-10-11 10:51:07 -07:00
Tomasz Janczuk
6fadbec797 wix project to create msi installer for windows
Fixes #1706.
2011-10-11 10:29:03 -07:00
Ryan Dahl
b280a2d44d Remove ANOTHER old TODO list 2011-10-11 10:08:49 -07:00
Ryan Dahl
4f4f6dfce8 Remove old TODO list 2011-10-11 10:08:09 -07:00
Ryan Dahl
a29421bcfd Delete another CMake file 2011-10-11 10:07:36 -07:00
Ryan Dahl
6a371834d8 Remove cmake build system
This removes one of the three build systems. CMake has never been officially
supported and is not updated with WAF and GYP. WAF itself is considered
legacy and will be removed once the GYP system is feature complete on
Unixes. GYP is used currently on Windows/MSVS.
2011-10-11 09:58:38 -07:00
Ben Noordhuis
6cb1d26924 v8: fix gyp build on windows 2011-10-11 17:21:35 +02:00
Ben Noordhuis
c215262db4 uv: upgrade to 47d22ac 2011-10-11 16:56:43 +02:00
Ryan Dahl
24dabec039 now working on v0.5.10 2011-10-10 18:56:37 -07:00
Ryan Dahl
3bd9b08fb1 Bump version to v0.5.9 2011-10-10 18:18:56 -07:00
Ryan Dahl
07703fa78e Revert "v8: implement VirtualMemory class on SunOS"
This reverts commit 9bbca99107.
2011-10-10 18:18:12 -07:00
Ryan Dahl
3b1d656da5 Revert "Upgrade V8 to 3.6.6"
Not stable enough.
- Windows snapshot linking broken
- Linux crash on ./node_g test/simple/test-stream-pipe-multi.js

This reverts commit 56e6952e63.
2011-10-10 17:58:30 -07:00
Ben Noordhuis
9bbca99107 v8: implement VirtualMemory class on SunOS 2011-10-10 17:06:24 -07:00
Ryan Dahl
75cfc77527 Upgrade libuv to f7f518a 2011-10-10 17:05:18 -07:00
Ryan Dahl
8c738fa90c child_process.fork: don't overwrite env
thanks to Malte-Thorben Bruns for pointing this out
2011-10-10 14:49:02 -07:00
Ryan Dahl
ca4a0fce65 Remove test-child-process-channel.js 2011-10-10 14:27:52 -07:00
Ryan Dahl
982b19dbd7 Adjust listenFD deprecation message. Remove test. 2011-10-10 14:24:56 -07:00
Ryan Dahl
2c25507b81 process.stderr goes through libuv now
This commit removes one assert from test-console.js in which we check that
process.stderr.write returns true. In the case of a dump to a file we cannot
guarantee this any longer now that it goes through fs.WriteStream.
2011-10-10 14:15:44 -07:00
Ben Noordhuis
6b9f559984 gyp: work around sunos python flock() bug
flock(LOCK_EX) always fails with EBADF, use fcntl(F_SETLK) instead.
2011-10-10 20:52:37 +00:00
Ryan Dahl
e6092f337c tty.WritableStream should be writable 2011-10-10 13:41:04 -07:00
Ryan Dahl
7cf787a2d1 Upgrade libuv to 5656e3
This modifies the TTYWrap constructor to add another argument specifying if
it's a readable or writable TTY . That is stdin or stdout. If a TTYWrap is
not readable then writes to it are blocking.

This makes process.stdout blocking.
2011-10-10 13:33:45 -07:00
isaacs
4f91b72dbe Fix #1851 Correct X/index doc 2011-10-10 12:44:20 -07:00
Ryan Dahl
56e6952e63 Upgrade V8 to 3.6.6 2011-10-10 11:52:42 -07:00
isaacs
ff942c6b39 Fix #1851 Correct X/index doc 2011-10-10 11:47:10 -07:00
Ryan Dahl
0fec213656 Update docs for server fd sharing 2011-10-10 11:36:00 -07:00
Ben Noordhuis
025f5c89c7 uv: upgrade to 41e8574 2011-10-10 16:56:02 +02:00
Ben Noordhuis
326ba25451 tty: unbreak --use-legacy
Fixes #1844.
2011-10-10 15:37:09 +02:00
Brian White
eb40dcb097 Fix typo for fs.write docs
Fixes #1843.
2011-10-09 16:51:42 +09:00
Bert Belder
d3f3f2e455 Windows: exit on ctrl+c
Fixes #1813
2011-10-08 02:52:07 +02:00
Igor Zinkovsky
af014c1a5e fix for simple/test-executable-path.js on windows 2011-10-07 17:48:47 -07:00
Ryan Dahl
12486a6437 Change API for sending handles
Does not support sending net.Server objects only raw TCPWrap objects.
2011-10-07 16:43:55 -07:00
Ryan Dahl
a23d8ad313 Upgrade libuv to 9f6024a
Fixes #1840
2011-10-07 15:20:35 -07:00
Ryan Dahl
26c08a3f35 Do load balancing test in test-child-process-fork2. 2011-10-07 13:58:55 -07:00
Bert Belder
153629c99a Some small optimizations 2011-10-07 13:38:23 -07:00
Ryan Dahl
29ec850478 Simplify arg parsing in String.write 2011-10-07 13:38:23 -07:00
Ben Noordhuis
1bb820a339 net: remove unconditional getpeername() call
Speeds up http_simple benchmark by about 1.0%
2011-10-07 13:38:23 -07:00
Bert Belder
ed65b7b375 Simplify writeReq handling in net_uv 2011-10-07 13:38:23 -07:00
talltyler
10f97f9424 Fixing #1774 about issues when running node with --harmony_block_scoping v8 option
Fixes #1837.
2011-10-08 04:33:10 +09:00
Bert Belder
fcad5e35fd Black hole tcp reads after destroy() 2011-10-07 19:03:23 +02:00
Ryan Dahl
899358e797 Add test-child-process-fork2 and fixes to make it work 2011-10-07 04:03:47 -07:00
Fedor Indutny
4561d9e07b Don't check sign of loadavg
Fixes #1838
2011-10-07 01:32:54 -07:00
Fedor Indutny
698455384f use uv for memory and loadavg functions 2011-10-07 01:31:35 -07:00
Ryan Dahl
b413c77583 Support sending handles to other processes
Needs test.
2011-10-07 01:30:28 -07:00
Ryan Dahl
d2ab314e08 Turn off V8's -Werror in GYP 2011-10-07 01:08:53 -07:00
Ryan Dahl
51f7ba4147 Merge branch 'ipc-binding' 2011-10-07 01:00:40 -07:00
Ryan Dahl
26c5905a99 Reimplement child_process.fork
Fixes test/simple/test-child-process-fork.js
2011-10-07 00:57:41 -07:00
Ryan Dahl
08c12de8e2 Upgrade libuv to 886b112 2011-10-07 00:47:13 -07:00
Ryan Dahl
f6d889523d mv test-child-process-spawn-node.js test/simple/test-child-process-fork.js 2011-10-06 22:56:29 -07:00
Ryan Dahl
471c5701c3 uv_write2 uv_read2_start binding 2011-10-06 22:31:57 -07:00
Ryan Dahl
f018be3b5f Print libuv counters after http_simple exits 2011-10-06 15:02:27 -07:00
Ryan Dahl
c344fbc285 Add process.uvCounters() for debugging 2011-10-06 14:59:38 -07:00
Ryan Dahl
311fe737e8 Upgrade libuv to 60c639f
Also remove unused src/stdio_wrap.cc
2011-10-06 12:34:24 -07:00
Bert Belder
4c1d441159 Fix gyp build 2011-10-06 21:25:13 +02:00
koichik
9797482568 docs: add example to net.connect()
Fixes #1824.
2011-10-06 21:36:46 +09:00
Colton Baker
87286cc737 Fixed a lot of jslint errors.
Fixes #1831
2011-10-05 18:51:06 -07:00
Ryan Dahl
627f379f22 upgrade libuv to 0303197 2011-10-04 16:53:20 -07:00
Ben Noordhuis
bc7cfd7cd7 http: remove legacy http library 2011-10-04 20:51:34 +02:00
Ben Noordhuis
976c6b0826 test: add TXT DNS record lookup test 2011-10-03 16:50:09 +02:00
Christian Tellnes
d9c67aebff dns: implement resolveTxt() 2011-10-03 16:41:29 +02:00
Ben Noordhuis
f1ca485357 zlib: fix assert message 2011-10-03 13:40:42 +02:00
Maciej Małecki
365fdbfc64 test: Update assert module tests 2011-10-02 02:25:52 +02:00
Maciej Małecki
f4f037aa64 docs: Update assert module docs 2011-10-02 02:25:52 +02:00
Maciej Małecki
8c8d518723 assert: Make assert module an assert.ok function
Code can be written:

    var assert = require('assert');
    assert(true);

instead of:

    var assert = require('assert');
    assert.ok(true);
2011-10-02 02:25:52 +02:00
Fedor Indutny
234afa5be1 docs: document watcher debugger commands 2011-10-02 02:19:17 +02:00
Ryan Dahl
f30cba2ba4 add zlib module to doc index 2011-09-30 17:01:07 -07:00
Ryan Dahl
8f23fd545d Now working on v0.5.9 2011-09-30 16:49:30 -07:00
Ryan Dahl
7cc17a0cea Bump version to v0.5.8 2011-09-30 13:59:44 -07:00
Fedor Indutny
360ce526fd debugger: watch, unwatch, watchers
Fixes #1800.
2011-09-30 13:22:56 -07:00
Ryan Dahl
4e43afd973 Fixes #1805. Reset TTY mode on exit. 2011-09-30 13:12:29 -07:00
Ryan Dahl
d1e6a13179 Upgrade libuv to fe18438 2011-09-30 13:12:12 -07:00
Ryan Dahl
007ddcd2cd Move test-net-write-callbacks to pummel
Runs in 3 seconds.
2011-09-30 10:31:39 -07:00
Ryan Dahl
49806864e4 Add test from v0.4 dea49e3
Note this test completes in 3 seconds on v0.4 and 7 minutes on master. NOT
GOOD.
2011-09-30 09:56:37 -07:00
koichik
530082932d docs: Added missing parenthesis to buffer.readUInt8 example.
Fixes #1790.
2011-09-30 17:05:50 +09:00
koichik
4cdf9d4158 tls: Improve TLS flow control
Fixes #1775.
2011-09-30 15:44:45 +09:00
koichik
49ac083dc1 tls: Add test for #1775 2011-09-30 15:44:13 +09:00
Ryan Dahl
84641fcdf0 WAF: Clean out/Release/deps/uv before build 2011-09-29 11:35:21 -07:00
Ryan Dahl
005448bdeb Don't ls node_g after make - it confuses people 2011-09-29 09:52:24 -07:00
Marco Rogers
3fc01d9770 docs: note about empty environment in child processes
Fixes #1794.
2011-09-29 19:50:25 +09:00
Ben Noordhuis
fa44659c66 test: fix typo in error message 2011-09-29 04:51:40 +02:00
Ryan Dahl
dea49e3d19 net: Fix string-concat hot path bug
Also removes functionality added in f9fec3a2d6
because it changes API. (That patch shouldn't have been added anyway.)
2011-09-28 17:49:33 -07:00
Fedor Indutny
1b8b097fad debugger: refactor, no more res.success checks
Fixes #1779.
2011-09-28 11:40:51 -07:00
Fedor Indutny
542156a6a1 debugger: use regexps in repl test
Fixes #1788
2011-09-28 11:39:45 -07:00
Ryan Dahl
416c14f644 Remove a few instances of process.binding('stdio') from src/node.js 2011-09-27 15:04:01 -07:00
Ryan Dahl
7e62bc9828 Move process.stdout unref hack to handle_wrap.cc
See #1726
2011-09-27 15:01:28 -07:00
Fedor Indutny
0a42266824 debugger: double ctrl+break on win should exit node
Fixes #1780.
2011-09-27 14:31:30 -07:00
Ryan Dahl
f63a1f8409 Merge branch 'new-tty-binding' 2011-09-27 13:13:21 -07:00
Ryan Dahl
41d811f41f Fix test-module-load-list.js 2011-09-27 13:11:09 -07:00
Bert Belder
c06af229dc Upgrade libuv to 2c0fca9a41 2011-09-27 13:03:29 -07:00
Bert Belder
81425598db Enable console colors on windows by default 2011-09-27 13:03:29 -07:00
Bert Belder
73fcd43b85 Add new tty js files to node.gyp 2011-09-27 13:03:28 -07:00
Ryan Dahl
2e389c6531 scope.Close in GuessHandleType; don't use uv_is_tty 2011-09-27 13:03:28 -07:00
Ryan Dahl
e1dc6e6d73 Bind uv_tty_get_winsize 2011-09-27 13:03:28 -07:00
Ryan Dahl
1de156abb1 Bind/use uv_guess_handle 2011-09-27 13:03:28 -07:00
Ryan Dahl
74b6426ec6 Initial pass at new TTY js layer
This breaks Windows.
2011-09-27 13:02:11 -07:00
Ryan Dahl
f5bdce9cc0 Disable test-dgram-unix.js test-dgram-unix-anon.js test-dgram-multicast.js 2011-09-27 12:52:48 -07:00
Fedor Indutny
95866a6445 debugger: export port
Fixes test-debugger-client.js

Fixes #1782.
2011-09-27 12:49:03 -07:00
Ryan Dahl
0f8f863043 Fixes #1726, hack to unref process.stdout 2011-09-27 12:41:59 -07:00
Ben Noordhuis
abfcd1fb00 docs: document crypto.randomBytes() 2011-09-27 20:27:57 +02:00
Ben Noordhuis
413d38c43b test: test crypto (P)RNG functions 2011-09-27 20:27:57 +02:00
Ben Noordhuis
c4eaf7e5a9 crypto: implement randomBytes() and pseudoRandomBytes() 2011-09-27 20:27:53 +02:00
Fedor Indutny
67706b8bb7 Export disableColors from repl, share with debugger 2011-09-27 11:58:02 +02:00
Fedor Indutny
f4124e18cb debugger: setBreakpoint('fn()')
Fixes #1777
2011-09-27 00:26:16 -07:00
Ryan Dahl
fa2eaeafda write-only streams should not shutdown
See
https://github.com/joyent/node/issues/1726#issuecomment-2207602
2011-09-26 23:25:50 -07:00
Ryan Dahl
040cf02724 Re-land Bert's test for #1697
Was reverted out in cde81a6675
2011-09-26 12:50:59 -07:00
isaacs
c828ded0c2 zlib: Typo. s/opt/opts/ 2011-09-26 11:50:20 -07:00
Fedor Indutny
c26cf84a08 debugger: fix backtrace with no frames
Fixes #1768
2011-09-26 10:57:19 -07:00
Fedor Indutny
02e0a0aa10 debugger docs
Fixes #1767
2011-09-25 12:38:06 -07:00
Fedor Indutny
82d0ac7ac7 Ctrl+Break on windows starts debugger server 2011-09-25 11:58:23 -07:00
Fedor Indutny
26aab0dc5d EnableDebug immediatly on SIGUSR1
Don't wait for script to break somewhere, because that may not happen if
execution is inside event-loop, not in v8.

Add '\n' to the end of 'debugger listening...' message
2011-09-25 11:58:22 -07:00
Fedor Indutny
9b6acc27aa handle backtrace errors 2011-09-25 11:58:22 -07:00
Fedor Indutny
2c9bcb28be move debugger_running to correct place 2011-09-25 11:58:22 -07:00
Fedor Indutny
9e09fc0508 more cli options
* node debug localhost:5858 - connects to remote debugger
* node debug -p `pgrep node` - connects to running process
* Fixed double-run of debugger on SIGUSR1
2011-09-25 11:58:22 -07:00
Ben Noordhuis
942b92a06e cygwin: fix new[]/delete mismatch 2011-09-25 03:59:50 +02:00
Ben Noordhuis
aff91f79ae cygwin: fix return of uninitialized variable 2011-09-25 03:59:50 +02:00
Ben Noordhuis
d91f64fcbb cygwin: fix new[]/delete mismatch 2011-09-25 03:34:19 +02:00
Ben Noordhuis
6ee676c0e4 cygwin: fix return of uninitialized variable 2011-09-25 03:34:12 +02:00
Eric Lovett
f9fec3a2d6 net: callback to socket.write should always be called asynchronously 2011-09-25 00:23:27 +02:00
Ben Noordhuis
f6bce20e5e buffers: handle bad length argument in constructor
Coerce fractional, negative and non-numeric length arguments to numbers.
Fractional numbers are rounded up, negative numbers and non-numeric values
are set to zero.
2011-09-24 18:31:56 +02:00
Ben Noordhuis
d157131439 buffers: handle bad length argument in constructor
Coerce fractional, negative and non-numeric length arguments to numbers.
Fractional numbers are rounded up, negative numbers and non-numeric values
are set to zero.
2011-09-24 18:27:03 +02:00
Ben Noordhuis
fcba1459f2 uv: upgrade to 8f617b9 2011-09-24 05:23:41 +02:00
Fedor Indutny
43cb4ec76b debugger fix for #1707 2011-09-23 13:42:41 -07:00
Fedor Indutny
39fec6003e debugger: remove useless clearlines, updated test
* remove useless clearline call at Interface start
* silence after .handleBreak()
* output '\b' if this.stdout is not a tty (debugger)
* add '\b' checks for clearline (test)
2011-09-23 13:42:41 -07:00
Fedor Indutny
e406613ee5 test-debugger-repl improvements 2011-09-23 13:42:41 -07:00
Fedor Indutny
78d91ff074 don't use global vars 2011-09-23 13:42:41 -07:00
Fedor Indutny
2010071339 readline: custom streams support 2011-09-23 13:42:41 -07:00
Ben Leslie
a4e10cdb07 Raise an error when a malformed package.json file is found.
The current behaviour will silently ignore any parsing errors
that may occur when loading a package.json file. This makes
debugging errors in the package.json file very difficult.

This changes the behaviour that that errors opening and reading
the file package.json file continue to be ignored, but errors
in parsing will throw an exception.
2011-09-23 12:00:26 -07:00
Ryan Dahl
94bedc60f4 Upgrade libuv to f20297f 2011-09-23 11:10:18 -07:00
Fedor Indutny
1e37efb08b initial tests
* Don't buffer command, before it's execution (repl)
* `quit` command, custom streams for .start, stubbed out test, disable
  history repeation for non-tty (debugger)
2011-09-23 09:38:24 -07:00
Igor Zinkovsky
66293f6e98 fix spelling 2011-09-23 09:20:15 -07:00
Ben Noordhuis
9ad334085f build: explicitly link in libz on non-win32 platforms 2011-09-23 15:40:35 +02:00
Igor Zinkovsky
8fe5712477 fs watcher binding 2011-09-22 22:32:33 -07:00
Ryan Dahl
8d37b6c92b upgrade libuv 2011-09-22 22:29:20 -07:00
isaacs
74c02066fe Add broken test for #1726. 2011-09-22 19:38:01 -07:00
Ben Noordhuis
93aad55342 crypto: fix delete of potentially uninitialized pointer 2011-09-22 06:16:53 +02:00
Ben Noordhuis
fdb0eb5825 crypto: fix read of potentially uninitialized variable 2011-09-22 06:16:47 +02:00
Ben Noordhuis
3a9b08f156 crypto: look up SSL errors with ERR_print_errors() 2011-09-22 06:16:42 +02:00
Ben Noordhuis
9ef962f9ee crypto: fix error message buffer overrun
ERR_error_string() expects a buffer of at least 256 bytes, the input buffer
was not even half that size. Use ERR_error_string_n() instead.
2011-09-22 06:16:34 +02:00
Igor Zinkovsky
de0066c697 remove node_zlib.h from node.gyp 2011-09-21 16:54:35 -07:00
Fedor Indutny
8efe7a8304 [debugger] shorten break message 2011-09-21 13:27:24 -07:00
Fedor Indutny
79fd1f7f0b [debugger] optimize context's properties initialization, make 'list' a function, not a getter 2011-09-21 13:27:24 -07:00
Fedor Indutny
3148f1400e [debugger] fix 'debug> connecting...', fixed autostart (XXX figure out why it wasn't working in some cases), fixed highlighting for first line of module's code 2011-09-21 13:27:23 -07:00
Vitor Balocco
97d355c273 docs: Add anchor links next to each function
Modify doctool.js to automatically create anchor links for
every function, for easy linking.
Include support for functions that have a <h4> level

Fixes: #1718.
2011-09-21 21:08:53 +09:00
Ben Noordhuis
320cf729db crypto: fix delete of potentially uninitialized pointer 2011-09-21 01:58:27 +02:00
Ben Noordhuis
b185751c3f crypto: fix read of potentially uninitialized variable 2011-09-21 01:58:27 +02:00
koichik
b93a7cc99e docs: add links 2011-09-20 15:50:36 +09:00
Ben Noordhuis
ed44098cf6 build: fix SYS_clock_gettime feature check
execute=True makes it fail while cross-compiling.

Fixes #1541.
2011-09-16 17:55:54 +02:00
Ryan Dahl
b31d5ac639 Update website address in Makefile 2011-09-15 17:49:29 -07:00
Ryan Dahl
cfe0f4226b Now working on v0.4.13 2011-09-15 17:31:35 -07:00
Ryan Dahl
771ba34ca7 Bump version to v0.4.12 2011-09-15 16:46:39 -07:00
Ben Noordhuis
decd81838a build: fix freebsd gyp build 2011-08-17 07:50:59 +02:00
Ben Noordhuis
52037d897d uv: upgrade to 2dae0c9 2011-08-17 07:50:58 +02:00
Ben Noordhuis
0f077a78ad gyp: add freebsd support 2011-08-17 07:50:58 +02:00
Ben Noordhuis
1e7a0aa883 gyp: revive sunos support, lost in 6b98a63 2011-08-17 07:50:58 +02:00
Ryan Dahl
ae0dd0d89c Remove extra method declaration 2011-09-20 14:08:55 -07:00
Ryan Dahl
c1ae6ea2f2 Add TTYWrap 2011-09-20 13:39:48 -07:00
Ryan Dahl
6b98a63974 Upgrade libuv to 2ef8f35 2011-09-20 13:34:52 -07:00
Fedor Indutny
b20c98e427 fix 'null' mirroring 2011-09-20 08:35:16 -07:00
Fedor Indutny
a0556fcbe1 repeat last command if empty line was entered 2011-09-20 08:35:15 -07:00
Fedor Indutny
41a41825f6 micro-refactor, use rli.output.write instead of rli.write ('line' event was emitted for those writes) 2011-09-20 08:35:15 -07:00
Fedor Indutny
292e2ea5ad fix breakpoint prefixing in list() 2011-09-20 08:35:15 -07:00
Fedor Indutny
c8ffbcd9f1 added comments, spawn child process automatically at debugger's start 2011-09-20 08:35:15 -07:00
Fedor Indutny
4ff15512f5 remove arrow from current source line 2011-09-20 08:35:15 -07:00
Fedor Indutny
ff05beeef3 fix inspection of zero 2011-09-20 08:35:15 -07:00
Ben Noordhuis
44bebc0d52 crypto: look up SSL errors with ERR_print_errors() 2011-09-20 08:12:35 +02:00
Ryan Dahl
6326b04b07 Fix test-regress-GH-819
Problem was exposed in 12798c6.
2011-09-19 13:41:48 -07:00
Ben Noordhuis
3aa1975c58 build: make wscript work with python 2.4 2011-09-19 16:44:03 +02:00
Ben Noordhuis
243c218c7a tls: remove superfluous setOptions() call 2011-09-19 16:28:22 +02:00
Ryan Dahl
12798c620d dns callbacks should go through MakeCallback 2011-09-18 13:20:16 -07:00
Ryan Dahl
100fc27ebb Upgrade gyp to r1046 2011-09-18 12:25:30 -07:00
isaacs
f90264d246 zlib: lint 2011-09-17 23:03:36 -07:00
isaacs
d104bfd5a6 zlib: Fix test so that it's not trivially passing, then pass it.
Regression from the refactor to move more things into JS.
2011-09-17 23:03:23 -07:00
isaacs
5b8e1dabbc Initial pass at zlib bindings 2011-09-17 18:22:09 -07:00
Ryan Dahl
dcd911e24b Now working on v0.5.8 2011-09-16 18:38:46 -07:00
1712 changed files with 156962 additions and 25359 deletions

11
.gitignore vendored
View File

@@ -1,4 +1,5 @@
core
vgcore.*
.waf*
tags
.lock-wscript
@@ -18,6 +19,7 @@ node_g
Debug/
Release/
*.sln
!nodemsi.sln
*.suo
*.vcproj
*.vcxproj
@@ -32,3 +34,10 @@ ipch/
/options.gypi
*-nodegyp*
/gyp-mac-tool
/dist-osx
/npm.wxs
/tools/msvs/npm.wixobj
email.md
blog.html
deps/v8-*
node_modules

14
.travis.yml Normal file
View File

@@ -0,0 +1,14 @@
language: node_js
before_script:
- "./configure"
- "make"
script:
- "make test"
notifications:
email: false
irc:
- "irc.freenode.net#libuv"

62
AUTHORS
View File

@@ -165,13 +165,14 @@ Richard Rodger <richard@ricebridge.com>
Andreas Reich <andreas@reich.name>
Dean McNamee <dean@gmail.com>
Trevor Burnham <trevor@databraid.com>
Zachary Scott <zachary.s.scott@gmail.com>
Zachary Scott <zachary@zacharyscott.net>
Arnout Kazemier <info@3rd-Eden.com>
George Stagas <gstagas@gmail.com>
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>
@@ -218,3 +219,62 @@ Niclas Hoyer <niclas@verbugt.de>
Michael Jackson <mjijackson@gmail.com>
Ashok Mudukutore <ashok@lineratesystems.com>
Sean Cunningham <sean.cunningham@mandiant.com>
Ben Leslie <benno@benno.id.au>
Christian Tellnes <christian@tellnes.no>
Colton Baker <github@netrefuge.net>
Tyler Larson <talltyler@gmail.com>
Tomasz Janczuk <tomasz@janczuk.org>
Ilya Dmitrichenko <errordeveloper@gmail.com>
Simen Brekken <simen.brekken@gmail.com>
Guglielmo Ferri <44gatti@gmail.com>
Thomas Parslow <tom@almostobsolete.net>
Ryan Emery <seebees@gmail.com>
Zachary Scott <zachary@zacharyscott.net>
Jordan Sissel <jls@semicomplete.com>
Matt Robenolt <matt@ydekproductions.com>
Jacob H.C. Kragh <jhckragh@gmail.com>
Benjamin Pasero <benjamin.pasero@gmail.com>
Scott Anderson <sanderson7@gmail.com>
Yoji SHIDARA <dara@shidara.net>
Mathias Bynens <mathias@qiwi.be>
Łukasz Walukiewicz <lukasz@walukiewicz.eu>
Artur Adib <arturadib@gmail.com>
E. Azer Koçulu <azer@kodfabrik.com>
Roman Shtylman <shtylman@gmail.com>
Kyle Robinson Young <kyle@dontkry.com>
Tim Oxley <secoif@gmail.com>
Ingmar Runge <ingmar@irsoft.de>
Russ Bradberry <rbradberry@gmail.com>
Andreas Madsen <amwebdk@gmail.com>
Adam Malcontenti-Wilson <adman.com@gmail.com>
James Hartig <james.hartig@grooveshark.com>
Shannen Saez <shannenlaptop@gmail.com>
Seong-Rak Choi <ragiragi@hanmail.net>
Dave Irvine <davman99@gmail.com>
Ju-yeong Park <interruptz@gmail.com>
Phil Sung <psung@dnanexus.com>
Damon Oehlman <damon.oehlman@sidelab.com>
Ryunosuke SATO <tricknotes.rs@gmail.com>
Michael Bernstein <michaelrbernstein@gmail.com>
Guillermo Rauch <rauchg@gmail.com>
Dan Williams <dan@igniter.com>
Brandon Benvie <brandon@bbenvie.com>
Nicolas LaCasse <nlacasse@borderstylo.com>
Dan VerWeire <dverweire@gmail.com>
Matthew Fitzsimmons <matt@joyent.com>
Paddy Byers <paddy.byers@gmail.com>
Philip Tellis <philip.tellis@gmail.com>
Christopher Jeffrey <chjjeffrey@gmail.com>
Seth Fitzsimmons <seth@mojodna.net>
Einar Otto Stangvik <einaros@gmail.com>
Paul Vorbach <paul@vorb.de>
tedsuo <ted@radicaldesigns.org>
Joshua Holbrook <josh.holbrook@gmail.com>
Rod Vagg <rod@vagg.org>
Bryan Cantrill <bryan@joyent.com>
lrn@chromium.org <lrn@chromium.org>
Dane Springmeyer <dane@dbsgeo.com>
Sambasiva Suda <sambasivarao@gmail.com>
Vincent Voyer <v@fasterize.com>
ANDO Takahiro <takahiro.ando@gmail.com>
Erwin van der Koogh <github@koogh.com>

View File

@@ -1,97 +0,0 @@
cmake_minimum_required(VERSION 2.6)
project(node)
if(USE_GCOV)
set(CMAKE_BUILD_TYPE "Debug")
# Set global c and c++ flags
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
# Link flags used for creating executables
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lgcov -fprofile-arcs")
# Link flags used for creating shared libraries
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -lgcov -profile-arcs")
endif()
#
# options
#
find_package(PythonInterp 2 REQUIRED)
option(SHARED_V8 "use system shared V8 library")
option(SHARED_LIBEV "use system shared libev library")
option(SHARED_CARES "use system shared c-ares library")
option(V8_SNAPSHOT "turn on snapshot when building stock v8")
option(V8_OPROFILE "Add oprofile support")
option(V8_GDBJIT "add gdbjit support")
option(DTRACE "build with DTrace (experimental)")
# cmake policies to get rid of some warnings
cmake_policy(SET CMP0009 NEW) # GLOB_RECURSE should no follow symlinks
# generic cmake configuration
include("cmake/configure.cmake")
# find and configure libs
include("cmake/libs.cmake")
# setup node build targets
include("cmake/node_build.cmake")
# setup v8 build targets
include("cmake/v8_build.cmake")
# docs
## might want to move this to doc/CMakeLists.txt
include("cmake/docs.cmake")
# tests
enable_testing()
include(CTest)
add_subdirectory("test/")
# package
include("cmake/package.cmake")
#
# Final build configuration output
#
message("** Build Summary **")
message(" Version: ${node_version_string}")
message(" Prefix: ${PREFIX}")
message(" Build Type: ${CMAKE_BUILD_TYPE}")
message(" Architecture: ${CMAKE_SYSTEM_PROCESSOR}")
message(" Platform: ${node_platform}")
if(SHARED_V8)
message(" V8: ${V8_LIBRARY_PATH}")
#else()
#message(" V8 jobs: ${parallel_jobs}")
endif()
if(SHARED_libev)
message(" libev: ${LIBEV_LIBRARY}")
endif()
if(SHARED_CARES)
message(" libc-ares: ${LIBCARES_LIBRARY}")
endif()
message(" RT library: ${RT}")
message(" DL library: ${DL}")
if(${OPENSSL_FOUND} MATCHES TRUE)
message(" OpenSSL: ${OPENSSL_LIBRARIES}")
endif()
if(USE_GCOV)
message(" gcov: enabled")
endif()
message(" CCFLAGS: ${CCFLAGS}")
message(" CPPFLAGS: ${CPPFLAGS}")

View File

@@ -1,7 +0,0 @@
set(CTEST_PROJECT_NAME "node")
set(CTEST_NIGHTLY_START_TIME "00:00:00 EST")
set(CTEST_DROP_METHOD "http")
set(CTEST_DROP_SITE "my.cdash.org")
set(CTEST_DROP_LOCATION "/submit.php?project=node")
set(CTEST_DROP_SITE_CDASH TRUE)

678
ChangeLog
View File

@@ -1,4 +1,637 @@
2011.09.16, Version 0.5.7 (unstable)
2012.06.06 Version 0.6.19 (stable)
* npm: upgrade to 1.1.24
* fs: no end emit after createReadStream.pause() (Andreas Madsen)
* vm: cleanup module memory leakage (Marcel Laverdet)
* unix: fix loop starvation under high network load (Ben Noordhuis)
* unix: remove abort() in ev_unref() (Ben Noordhuis)
* windows/tty: never report error after forcibly aborting line-buffered read (Bert Belder)
* windows: skip GetFileAttributes call when opening a file (Bert Belder)
2012.05.15 Version 0.6.18 (stable), 4bc1d395de6abed2cf1e4d0b7b3a1480a21c368f
* windows: skip GetFileAttributes call when opening a file (Bert Belder)
* crypto: add PKCS12/PFX support (Sambasiva Suda)
* #3240: child_process: delete NODE_CHANNEL_FD from env in spawn (Ben Noordhuis)
* windows: add test for path.normalize with UNC paths (Bert Belder)
* windows: make path.normalize convert all slashes to backslashes (Bert Belder)
* fs: Automatically close FSWatcher on error (Bert Belder)
* #3258: fs.ReadStream.pause() emits duplicate data event (koichik)
* pipe_wrap: don't assert() on pipe accept errors (Ben Noordhuis)
* Better exception output for module load and process.nextTick (Felix Geisendörfer)
* zlib: fix error reporting (Ben Noordhuis)
* http: Don't destroy on timeout (isaacs)
* #3231: http: Don't try to emit error on a null'ed req object (isaacs)
* #3236: http: Refactor ClientRequest.onSocket (isaacs)
2012.05.04 Version 0.6.17 (stable), 4ced23deaf36493f4303a18f6fdce768c58becc0
* Upgrade npm to 1.1.21
* uv: Add support for EROFS errors (Ben Noordhuis, Maciej Małecki)
* uv: Add support for EIO and ENOSPC errors (Fedor Indutny)
* windows: Add support for EXDEV errors (Bert Belder)
* http: Fix client memory leaks (isaacs, Vincent Voyer)
* fs: fix file descriptor leak in sync functions (Ben Noordhuis)
* fs: fix ReadStream / WriteStream double close bug (Ben Noordhuis)
2012.04.30 Version 0.6.16 (stable), a1d193963ddc80a27da5da01b59751e14e33d1d6
* Upgrade V8 to 3.6.6.25
* Upgrade npm to 1.1.19
* Windows: add mappings for UV_ENOENT (Bert Belder)
* linux: add IN_MOVE_SELF to inotify event mask (Ben Noordhuis)
* unix: call pipe handle connection cb on accept() error (Ben Noordhuis)
* unix: handle EWOULDBLOCK (Ben Noordhuis)
* map EWOULDBLOCK to UV_EAGAIN (Ben Noordhuis)
* Map ENOMEM to UV_ENOMEM (isaacs)
* Child process: support the `gid` and `uid` options (Bert Belder)
* test: cluster: add worker death event test (Ben Noordhuis)
* typo in node_http_parser (isaacs)
* http_parser: Eat CRLF between requests, even on connection:close. (Ben Noordhuis)
* don't check return value of unsetenv (Ben Noordhuis)
2012.04.09 Version 0.6.15 (stable), f160a45b254e591eb33716311c92be533c6d86c4
* Update npm to 1.1.16
* Show licenses in binary installers.
* unix: add uv_fs_read64, uv_fs_write64 and uv_fs_ftruncate64 (Ben Noordhuis)
* add 64bit offset fs functions (Igor Zinkovsky)
* windows: don't report ENOTSOCK when attempting to bind an udp handle twice (Bert Belder)
* windows: backport pipe-connect-to-file fixes from master (Bert Belder)
* windows: never call fs event callbacks after closing the watcher (Bert Belder)
* fs.readFile: don't make the callback before the fd is closed (Bert Belder)
* windows: use 64bit offsets for uv_fs apis (Igor Zinkovsky)
* Fix #2061: segmentation fault on OS X due to stat size mismatch (Ben Noordhuis)
2012.03.22 Version 0.6.14 (stable), e513ffef7549a56a5af728e1f0c2c0c8f290518a
* net: don't crash when queued write fails (Igor Zinkovsky)
* sunos: fix EMFILE on process.memoryUsage() (Bryan Cantrill)
* crypto: fix compile-time error with openssl 0.9.7e (Ben Noordhuis)
* unix: ignore ECONNABORTED errors from accept() (Ben Noordhuis)
* Add UV_ENOSPC and mappings to it (Bert Belder)
* http-parser: Fix response body is not read (koichik)
* Upgrade npm to 1.1.12
- upgrade node-gyp to 0.3.7
- work around AV-locked directories on Windows
- Fix isaacs/npm#2293 Don't try to 'uninstall' /
- Exclude symbolic links from packages.
- Fix isaacs/npm#2275 Spurious 'unresolvable cycle' error.
- Exclude/include dot files as if they were normal files
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)
- Note: Windows UDP support not yet complete.
* http: Fix parser memory leak (koichik)
* zlib: Fix #2365 crashes on invalid input (Nicolas LaCasse)
* module: fix --debug-brk on symlinked scripts (Fedor Indutny)
* Documentation Restyling (Matthew Fitzsimmons)
* Update npm to 1.1.0-3 (isaacs)
* Windows: fix regression in stat() calls to C:\ (Bert Belder)
2012.01.19, Version 0.6.8 (stable), d18cebaf8a7ac701dabd71a3aa4eb0571db6a645
* Update V8 to 3.6.6.19
* Numeric key hash collision fix for V8 (Erik Corry, Fedor Indutny)
* Add missing TTY key translations for F1-F5 on Windows (Brandon Benvie)
* path.extname bugfix with . and .. paths (Bert Belder)
* cluster: don't always kill the master on uncaughtException (Ben Noordhuis)
* Update npm to 1.1.0-2 (isaacs)
* typed arrays: set class name (Ben Noordhuis)
* zlib binding cleanup (isaacs, Bert Belder)
* dgram: use slab memory allocator (Michael Bernstein)
* fix segfault #2473
* #2521 60% improvement in fs.stat on Windows (Igor Zinkovsky)
2012.01.06, Version 0.6.7 (stable), d5a189acef14a851287ee555f7a39431fe276e1c
* V8 hash collision fix (Breaks MIPS) (Bert Belder, Erik Corry)
* Upgrade V8 to 3.6.6.15
* Upgrade npm to 1.1.0-beta-10 (isaacs)
* many doc updates (Ben Noordhuis, Jeremy Martin, koichik, Dave Irvine,
Seong-Rak Choi, Shannen, Adam Malcontenti-Wilson, koichik)
* Fix segfault in node_http_parser.cc
* dgram, timers: fix memory leaks (Ben Noordhuis, Yoshihiro Kikuchi)
* repl: fix repl.start not passing the `ignoreUndefined` arg (Damon Oehlman)
* #1980: Socket.pause null reference when called on a closed Stream (koichik)
* #2263: XMLHttpRequest piped in a writable file stream hang (koichik)
* #2069: http resource leak (koichik)
* buffer.readInt global pollution fix (Phil Sung)
* timers: fix performance regression (Ben Noordhuis)
* #2308, #2246: node swallows openssl error on request (koichik)
* #2114: timers: remove _idleTimeout from item in .unenroll() (James Hartig)
* #2379: debugger: Request backtrace w/o refs (Fedor Indutny)
* simple DTrace ustack helper (Dave Pacheco)
* crypto: rewrite HexDecode without snprintf (Roman Shtylman)
* crypto: don't ignore DH init errors (Ben Noordhuis)
2011.12.14, Version 0.6.6
* npm update to 1.1.0-beta-4 (Isaac Z. Schlueter)
* cli: fix output of --help (Ben Noordhuis)
* new website
* pause/resume semantics for stdin (Isaac Z. Schlueter)
* Travis CI integration (Maciej Małecki)
* child_process: Fix bug regarding closed stdin (Ben Noordhuis)
* Enable upgrades in MSI. (Igor Zinkovsky)
* net: Fixes memory leak (Ben Noordhuis)
* fs: handle fractional or NaN ReadStream buffer size (Ben Noordhuis)
* crypto: fix memory leaks in PBKDF2 error path (Ben Noordhuis)
2011.12.04, Version 0.6.5 (stable), 6cc94db653a2739ab28e33b2d6a63c51bd986a9f
* npm workaround Windows antivirus software (isaacs)
* Upgrade V8 to 3.6.6.11
2011.12.02, Version 0.6.4 (stable), 9170077f13e5e5475b23d1d3c2e7f69bfe139727
* doc improvements (Kyle Young, Tim Oxley, Roman Shtylman, Mathias Bynens)
* upgrade bundled npm (Isaac Schlueter)
* polish Windows installer (Igor Zinkovsky, Isaac Schlueter)
* punycode: upgrade to v0.2.1 (Mathias Bynens)
* build: add without-npm flag to configure script
* sys: deprecate module some more, print stack trace if NODE_DEBUG=sys
* cli: add -p switch, prints result of eval
* #1997: fix Blowfish ECB encryption and decryption (Ingmar Runge)
* #2223: fix socket close event being emitted twice
* #2224: fix RSS memory usage > 4 GB reporting (Russ Bradberry)
* #2225: fix util.inspect() object stringification bug (Nathan Rajlich)
2011.11.25, Version 0.6.3 (stable), b159c6d62e5756d3f8847419d29c6959ea288b56
* #2083 Land NPM in Node. It is included in packages/installers and installed
on `make install`.
* #2076 Add logos to windows installer.
* #1711 Correctly handle http requests without headers. (Ben Noordhuis,
Felix Geisendörfer)
* TLS: expose more openssl SSL context options and constants. (Ben Noordhuis)
* #2177 Windows: don't kill UDP socket when a packet fails to reach its
destination. (Bert Belder)
* Windows: support paths longer than 260 characters. (Igor Zinkovsky)
* Windows: correctly resolve drive-relative paths. (Bert Belder)
* #2166 Don't leave file descriptor open after lchmod. (Isaac Schlueter)
* #2084 Add OS X .pkg build script to make file.
* #2160 Documentation improvements. (Ben Noordhuis)
2011.11.18, Version 0.6.2 (stable), a4402f0b2e410b19375a1d5c5fb7fe7f66f3c7f8
* doc improvements (Artur Adib, Trevor Burnham, Ryan Emery, Trent Mick)
* timers: remember extra setTimeout() arguments when timeout==0
* punycode: use Mathias Bynens's punycode library, it's more compliant
* repl: improved tab completion (Ryan Emery)
* buffer: fix range checks in .writeInt() functions (Lukasz Walukiewicz)
* tls: make cipher list configurable
* addons: make Buffer and ObjectWrap visible to Windows add-ons (Bert Belder)
* crypto: add PKCS#1 a.k.a RSA public key verification support
* windows: fix stdout writes when redirected to nul
* sunos: fix build on Solaris and Illumos
* Upgrade V8 to 3.6.6.8
2011.11.11, Version 0.6.1 (stable), 170f2addb2dd0c625bc4a6d461e89a31ad68b79b
* doc improvements (Eric Lovett, Ben Noordhuis, Scott Anderson, Yoji SHIDARA)
* crypto: make thread-safe (Ben Noordhuis)
* fix process.kill error object
* debugger: correctly handle source with multi-byte characters (Shigeki Ohtsu)
* make stdout and stderr non-destroyable (Igor Zinkovsky)
* fs: don't close uninitialized fs.watch handle (Ben Noordhuis)
* #2026 fix man page install on BSDs (Ben Noordhuis)
* #2040 fix unrecognized errno assert in uv_err_name
* #2043 fs: mkdir() should call callback if mode is omitted
* #2045 fs: fix fs.realpath on windows to return on error (Benjamin Pasero)
* #2047 minor cluster improvements
* #2052 readline get window columns correctly
* Upgrade V8 to 3.6.6.7
2011.11.04, Version 0.6.0 (stable), 865b077819a9271a29f982faaef99dc635b57fbc
* print undefined on undefined values in REPL (Nathan Rajlich)
* doc improvements (koichik, seebees, bnoordhuis,
Maciej Małecki, Jacob Kragh)
* support native addon loading in windows (Bert Belder)
* rename getNetworkInterfaces() to networkInterfaces() (bnoordhuis)
* add pending accepts knob for windows (igorzi)
* http.request(url.parse(x)) (seebees)
* #1929 zlib Respond to 'resume' events properly (isaacs)
* stream.pipe: Remove resume and pause events
* test fixes for windows (igorzi)
* build system improvements (bnoordhuis)
* #1936 tls: does not emit 'end' from EncryptedStream (koichik)
* #758 tls: add address(), remoteAddress/remotePort
* #1399 http: emit Error object after .abort() (bnoordhuis)
* #1999 fs: make mkdir() default to 0777 permissions (bnoordhuis)
* #2001 fix pipe error codes
* #2002 Socket.write should reset timeout timer
* stdout and stderr are blocking when associated with file too.
* remote debugger support on windows (Bert Belder)
* convenience methods for zlib (Matt Robenolt)
* process.kill support on windows (igorzi)
* process.uptime() support on windows (igorzi)
* Return IPv4 addresses before IPv6 addresses from getaddrinfo
* util.inspect improvements (Nathan Rajlich)
* cluster module api changes
* Downgrade V8 to 3.6.6.6
2011.10.21, Version 0.5.10 (unstable), 220e61c1f65bf4db09699fcf6399c0809c0bc446
* Remove cmake build system, support for Cygwin, legacy code base,
process.ENV, process.ARGV, process.memoryUsage().vsize, os.openOSHandle
* Documentation improvments (Igor Zinkovsky, Bert Belder, Ilya Dmitrichenko,
koichik, Maciej Małecki, Guglielmo Ferri, isaacs)
* Performance improvements (Daniel Ennis, Bert Belder, Ben Noordhuis)
* Long process.title support (Ben Noordhuis)
* net: register net.Server callback only once (Simen Brekken)
* net: fix connect queue bugs (Ben Noordhuis)
* debugger: fix backtrace err handling (Fedor Indutny)
* Use getaddrinfo instead of c-ares for dns.lookup
* Emit 'end' from crypto streams on close
* #1902 buffer: use NO_NULL_TERMINATION flag (koichik)
* #1907 http: Added support for HTTP PATCH verb (Thomas Parslow)
* #1644 add GetCPUInfo on windows (Karl Skomski)
* #1484, #1834, #1482, #771 Don't use a separate context for the repl.
(isaacs)
* #1882 zlib Update 'availOutBefore' value, and test (isaacs)
* #1888 child_process.fork: don't modify args (koichik)
* #1516 tls: requestCert unusable with Firefox and Chrome (koichik)
* #1467 tls: The TLS API is inconsistent with the TCP API (koichik)
* #1894 net: fix error handling in listen() (koichik)
* #1860 console.error now goes through uv_tty_t
* Upgrade V8 to 3.7.0
* Upgrade GYP to r1081
2011.10.10, Version 0.5.9 (unstable)
* fs.watch interface backed by kqueue, inotify, and ReadDirectoryChangesW
(Igor Zinkovsky, Ben Noordhuis)
* add dns.resolveTxt (Christian Tellnes)
* Remove legacy http library (Ben Noordhuis)
* child_process.fork returns and works on Windows. Allows passing handles.
(Igor Zinkovsky, Bert Belder)
* #1774 Lint and clean up for --harmony_block_scoping (Tyler Larson, Colton
Baker)
* #1813 Fix ctrl+c on Windows (Bert Belder)
* #1844 unbreak --use-legacy (Ben Noordhuis)
* process.stderr now goes through libuv. Both process.stdout and
process.stderr are blocking when referencing a TTY.
* net_uv performance improvements (Ben Noordhuis, Bert Belder)
2011.09.30, Version 0.5.8 (unstable), 7cc17a0cea1d25188c103745a7d0c24375e3a609
* zlib bindings (isaacs)
* Windows supports TTY ANSI escape codes (Bert Belder)
* Debugger improvements (Fedor Indutny)
* crypto: look up SSL errors with ERR_print_errors() (Ben Noordhuis)
* dns callbacks go through MakeCallback now
* Raise an error when a malformed package.json file is found. (Ben Leslie)
* buffers: handle bad length argument in constructor (Ben Noordhuis)
* #1726, unref process.stdout
* Doc improvements (Ben Noordhuis, Fedor Indutny, koichik)
* Upgrade libuv to fe18438
2011.09.16, Version 0.5.7 (unstable), 558241166c4f3c516e5a448e676db0b57119212f
* Upgrade V8 to 3.6.4
@@ -166,7 +799,7 @@
* Fixes https host header default port handling. (Mikeal Rogers)
* #1440 strip byte order marker when loading *.js and *.json files
* #1440 strip byte order marker when loading *.js and *.json files
(Ben Noordhuis)
* #1434 Improve util.format() compatibility with browser. (Koichi Kobayashi)
@@ -322,7 +955,30 @@
* DTrace probes: support X-Forwarded-For (Dave Pacheco)
2011.08.17, Version 0.4.11 (stable)
2011.09.15, Version 0.4.12 (stable)
* Improve docs
* #1563 overflow in ChildProcess custom_fd.
* #1569, parse error on multi-line HTTP headers. (Ben Noordhuis)
* #1586 net: Socket write encoding case sensitivity (koichik)
* #1610 Remove DigiNotar CA from trusted list (isaacs)
* #1624 buffer: Avoid overrun with 'binary' encoding. (koichik)
* #1633 buffer: write() should always set _charsWritten. (koichik)
* #1707 hasOwnProperty usage security hole in querystring (isaacs)
* #1719 Drain OpenSSL error queue
* Fix error reporting in net.Server.listen
2011.08.17, Version 0.4.11 (stable), a745d19ce7d1c0e3778371af4f0346be70cf2c8e
* #738 Fix crypto encryption/decryption with Base64. (SAWADA Tadashi)
@@ -354,9 +1010,9 @@
* #829 Backport r8577 from V8 (Ben Noordhuis)
* #877 Don't wait for HTTP Agent socket pool to establish connections.
* #877 Don't wait for HTTP Agent socket pool to establish connections.
* #915 Find kqueue on FreeBSD correctly (Brett Kiefer)
* #915 Find kqueue on FreeBSD correctly (Brett Kiefer)
* #1085 HTTP: Fix race in abort/dispatch code (Stefan Rusu)
@@ -753,7 +1409,7 @@
* HTTPS server
* Built in debugger 'node debug script.js'
* Built in debugger 'node debug script.js'
* realpath files during module load (Mihai Călin Bazon)
@@ -895,7 +1551,7 @@
* fs bugfixes (Tj Holowaychuk, Tobie Langel, Marco Rogers, isaacs)
* http bug fixes (Fedor Indutny, Mikeal Rogers)
* http bug fixes (Fedor Indutny, Mikeal Rogers)
* Faster buffers; breaks C++ API (Tim-Smart, Stéphan Kochen)
@@ -1064,7 +1720,7 @@
* Upgrade http-parser, V8 to 2.2.21
2010.06.21, Version 0.1.99, a620b7298f68f68a855306437a3b60b650d61d78
2010.06.21, Version 0.1.99, a620b7298f68f68a855306437a3b60b650d61d78
* Datagram sockets (Paul Querna)
@@ -1170,7 +1826,7 @@
2010.05.06, Version 0.1.94, f711d5343b29d1e72e87107315708e40951a7826
* Look in /usr/local/lib/node for modules, so that there's a way
* Look in /usr/local/lib/node for modules, so that there's a way
to install modules globally (Issac Schlueter)
* SSL improvements (Rhys Jones, Paulo Matias)
@@ -1190,7 +1846,7 @@
* Bugfix: destroy() instead of end() http connection at end of
pipeline
* Bugfix: http.Client may be prematurely released back to the
* Bugfix: http.Client may be prematurely released back to the
free pool. (Thomas Lee)
* Upgrade V8 to 2.2.8
@@ -1199,7 +1855,7 @@
2010.04.29, Version 0.1.93, 557ba6bd97bad3afe0f9bd3ac07efac0a39978c1
* Fixed no 'end' event on long chunked HTTP messages
http://github.com/ry/node/issues/#issue/77
https://github.com/joyent/node/issues/77
* Remove legacy modules http_old and tcp_old

545
LICENSE
View File

@@ -24,52 +24,529 @@ IN THE SOFTWARE.
====
This license applies to all parts of Node that are not externally
maintained libraries.
maintained libraries. The externally maintained libraries used by Node are:
The externally maintained libraries used by Node are:
- V8, located at deps/v8. V8's license follows:
"""
This license applies to all parts of V8 that are not externally
maintained libraries. The externally maintained libraries used by V8
are:
- v8, located at deps/v8. v8 is copyright Google, Inc, and released
under a BSD license.
- PCRE test suite, located in
test/mjsunit/third_party/regexp-pcre.js. This is based on the
test suite from PCRE-7.3, which is copyrighted by the University
of Cambridge and Google, Inc. The copyright notice and license
are embedded in regexp-pcre.js.
- libev, located at deps/libev, and libeio, located at deps/libeio. libev
and libeio are copyright Marc Alexander Lehmann, and dual-licensed
under the MIT license and GPL2.
- Layout tests, located in test/mjsunit/third_party. These are
based on layout tests from webkit.org which are copyrighted by
Apple Computer, Inc. and released under a 3-clause BSD license.
- WAF build system, located at tools/waf. WAF is copyright Thomas Nagy,
and released under the MIT license.
- Strongtalk assembler, the basis of the files assembler-arm-inl.h,
assembler-arm.cc, assembler-arm.h, assembler-ia32-inl.h,
assembler-ia32.cc, assembler-ia32.h, assembler-x64-inl.h,
assembler-x64.cc, assembler-x64.h, assembler-mips-inl.h,
assembler-mips.cc, assembler-mips.h, assembler.cc and assembler.h.
This code is copyrighted by Sun Microsystems Inc. and released
under a 3-clause BSD license.
- The SCONS build system, located at tools/scons. SCONS is copyright
the SCONS Foundation and released under the MIT license.
- Valgrind client API header, located at third_party/valgrind/valgrind.h
This is release under the BSD license.
- C-Ares, an asynchronous DNS client, located at deps/c-ares. C-Ares is
copyright the Massachusetts Institute of Technology, authored by
Greg Hudson, Daniel Stenberg and others, and released under the MIT
license.
These libraries have their own licenses; we recommend you read them,
as their terms may differ from the terms below.
- Node, optionally, links to OpenSSL, it is located at deps/openssl.
OpenSSL is cryptographic software written by Eric Young
(eay@cryptsoft.com) to provide SSL/TLS encryption. OpenSSL is copyright
The OpenSSL Project and released under the OpenSSL license.
Copyright 2006-2012, the V8 project authors. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
- tools/doctool/markdown.js is copyright 2009-2010 Dominic Baggott and Ash
Berli and released under the MIT license.
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
- HTTP Parser, located at deps/http_parser, is a small C library
copyright Ryan Lienhart Dahl and released under the MIT license.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
"""
- src/platform_darwin_proctitle.cc, has code taken from the Chromium
project copyright Google Inc. and released under a BSD license.
- libev, located at deps/uv/src/unix/ev. libev's license follows:
"""
All files in libev are Copyright (C)2007,2008,2009 Marc Alexander Lehmann.
- tools/closure_linter is copyright The Closure Linter Authors and
Google Inc. and released under the Apache License, version 2.0.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
- tools/cpplint.py is copyright Google Inc. and released under a
BSD license.
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
- lib/buffer_ieee754.js is copyright 2008 Fair Oaks Labs, Inc. and released
under the New BSD license.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
- lib/punycode.js is copyright 2011 Ben Noordhuis and released under the MIT license.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- tools/gyp GYP is a meta-build system copyright 2009 Google Inc and
licensed under the three clause BSD license. See tools/gyp/LICENSE.
Alternatively, the contents of this package may be used under the terms
of the GNU General Public License ("GPL") version 2 or any later version,
in which case the provisions of the GPL are applicable instead of the
above. If you wish to allow the use of your version of this package only
under the terms of the GPL and not to allow others to use your version of
this file under the BSD license, indicate your decision by deleting the
provisions above and replace them with the notice and other provisions
required by the GPL in this and the other files of this package. If you do
not delete the provisions above, a recipient may use your version of this
file under either the BSD or the GPL.
"""
- libeio, located at deps/uv/src/unix/eio. libeio's license follows:
"""
All files in libeio are Copyright (C)2007,2008 Marc Alexander Lehmann.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Alternatively, the contents of this package may be used under the terms
of the GNU General Public License ("GPL") version 2 or any later version,
in which case the provisions of the GPL are applicable instead of the
above. If you wish to allow the use of your version of this package only
under the terms of the GPL and not to allow others to use your version of
this file under the BSD license, indicate your decision by deleting the
provisions above and replace them with the notice and other provisions
required by the GPL in this and the other files of this package. If you do
not delete the provisions above, a recipient may use your version of this
file under either the BSD or the GPL.
"""
- WAF build system, located at tools/waf*. WAF's license follows:
"""
Copyright Thomas Nagy, 2005-2011
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
"""
- C-Ares, an asynchronous DNS client, located at deps/uv/src/ares. C-Ares license
follows
"""
/* Copyright 1998 by the Massachusetts Institute of Technology.
*
* Permission to use, copy, modify, and distribute this
* software and its documentation for any purpose and without
* fee is hereby granted, provided that the above copyright
* notice appear in all copies and that both that copyright
* notice and this permission notice appear in supporting
* documentation, and that the name of M.I.T. not be used in
* advertising or publicity pertaining to distribution of the
* software without specific, written prior permission.
* M.I.T. makes no representations about the suitability of
* this software for any purpose. It is provided "as is"
* without express or implied warranty.
"""
- OpenSSL located at deps/openssl. OpenSSL is cryptographic software written
by Eric Young (eay@cryptsoft.com) to provide SSL/TLS encryption. OpenSSL's
license follows
"""
/* ====================================================================
* Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. All advertising materials mentioning features or use of this
* software must display the following acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
*
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
* endorse or promote products derived from this software without
* prior written permission. For written permission, please contact
* openssl-core@openssl.org.
*
* 5. Products derived from this software may not be called "OpenSSL"
* nor may "OpenSSL" appear in their names without prior written
* permission of the OpenSSL Project.
*
* 6. Redistributions of any form whatsoever must retain the following
* acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit (http://www.openssl.org/)"
*
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
* ====================================================================
*
* This product includes cryptographic software written by Eric Young
* (eay@cryptsoft.com). This product includes software written by Tim
* Hudson (tjh@cryptsoft.com).
*
*/
"""
- HTTP Parser, located at deps/http_parser. HTTP Parser's license follows:
"""
http_parser.c is based on src/http/ngx_http_parse.c from NGINX copyright
Igor Sysoev.
Additional changes are licensed under the same terms as NGINX and
copyright Joyent, Inc. and other Node contributors. All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
"""
- Closure Linter is located at tools/closure_linter. Closure's license
follows
"""
# Copyright (c) 2007, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
# * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
"""
- tools/cpplint.py is a C++ linter. Its license follows:
"""
# Copyright (c) 2009 Google Inc. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
# * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
"""
- lib/buffer_ieee754.js. Its license follows:
"""
// Copyright (c) 2008, Fair Oaks Labs, Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
//
// * Redistributions of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
//
// * Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// * Neither the name of Fair Oaks Labs, Inc. nor the names of its contributors
// may be used to endorse or promote products derived from this software
// without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
"""
- lib/punycode.js is copyright 2011 Mathias Bynens <http://mathiasbynens.be/>
and released under the MIT license.
"""
* Punycode.js <http://mths.be/punycode>
* Copyright 2011 Mathias Bynens <http://mathiasbynens.be/>
* Available under MIT license <http://mths.be/mit>
"""
- tools/gyp GYP is a meta-build system. GYP's license follows:
"""
Copyright (c) 2009 Google Inc. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
"""
- Zlib at deps/zlib. zlib's license follows
"""
/* zlib.h -- interface of the 'zlib' general purpose compression library
version 1.2.4, March 14th, 2010
Copyright (C) 1995-2010 Jean-loup Gailly and Mark Adler
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
Jean-loup Gailly
Mark Adler
*/
"""
- npm is a package manager program located at deps/npm.
npm's license follows:
"""
Copyright 2009-2012, Isaac Z. Schlueter (the "Original Author")
All rights reserved.
MIT +no-false-attribs License
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.
Distributions of all or part of the Software intended to be used
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 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
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.
Except where noted, this license applies to any and all software
programs and associated documentation files created by the
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
officially affiliated with Joyent, Inc.
Packages published in the npm registry are not part of npm
itself, are the sole property of their respective maintainers,
and are not covered by this license.
"npm Logo" created by Mathias Pettersson and Brian Hammond,
used with permission.
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.
"""
- tools/doc/node_modules/marked Marked is a Markdown parser. Marked's
license follows
"""
Copyright (c) 2011-2012, Christopher Jeffrey (https://github.com/chjj/)
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.
"""

344
Makefile
View File

@@ -1,4 +1,5 @@
WAF=python tools/waf-light
PYTHON ?= python
WAF = $(PYTHON) tools/waf-light
web_root = node@nodejs.org:~/web/nodejs.org/
@@ -12,7 +13,6 @@ export NODE_MAKE := $(MAKE)
all: program
@-[ -f out/Release/node ] && ls -lh out/Release/node
@-[ -f out/Debug/node ] && ls -lh out/Debug/node
all-progress:
@$(WAF) -p build
@@ -33,249 +33,69 @@ uninstall:
@$(WAF) uninstall
test: all
python tools/test.py --mode=release simple message
$(PYTHON) tools/test.py --mode=release simple message
test-http1: all
python tools/test.py --mode=release --use-http1 simple message
$(PYTHON) tools/test.py --mode=release --use-http1 simple message
test-valgrind: all
python tools/test.py --mode=release --valgrind simple message
$(PYTHON) tools/test.py --mode=release --valgrind simple message
test-all: all
python tools/test.py --mode=debug,release
node_modules/weak:
@if [ ! -f node ]; then make all; fi
@if [ ! -d node_modules ]; then mkdir -p node_modules; fi
./node deps/npm/bin/npm-cli.js install weak \
--prefix="$(shell pwd)" --unsafe-perm # go ahead and run as root.
test-gc: all node_modules/weak
$(PYTHON) tools/test.py --mode=release gc
test-all: all node_modules/weak
$(PYTHON) tools/test.py --mode=debug,release
make test-npm
test-all-http1: all
python tools/test.py --mode=debug,release --use-http1
$(PYTHON) tools/test.py --mode=debug,release --use-http1
test-all-valgrind: all
python tools/test.py --mode=debug,release --valgrind
$(PYTHON) tools/test.py --mode=debug,release --valgrind
test-release: all
python tools/test.py --mode=release
$(PYTHON) tools/test.py --mode=release
test-debug: all
python tools/test.py --mode=debug
$(PYTHON) tools/test.py --mode=debug
test-message: all
python tools/test.py message
$(PYTHON) tools/test.py message
test-simple: all
python tools/test.py simple
$(PYTHON) tools/test.py simple
test-pummel: all
python tools/test.py pummel
$(PYTHON) tools/test.py pummel
test-internet: all
python tools/test.py internet
$(PYTHON) tools/test.py internet
UVTEST += simple/test-assert
UVTEST += simple/test-buffer
UVTEST += simple/test-c-ares
UVTEST += simple/test-chdir
UVTEST += simple/test-delayed-require
UVTEST += simple/test-dgram-pingpong
UVTEST += simple/test-dgram-udp4
UVTEST += simple/test-eio-race2
UVTEST += simple/test-eio-race4
UVTEST += simple/test-event-emitter-add-listeners
UVTEST += simple/test-event-emitter-modify-in-emit
UVTEST += simple/test-event-emitter-num-args
UVTEST += simple/test-event-emitter-once
UVTEST += simple/test-event-emitter-remove-all-listeners
UVTEST += simple/test-event-emitter-remove-listeners
UVTEST += simple/test-exception-handler
UVTEST += simple/test-exception-handler2
UVTEST += simple/test-exception-handler
UVTEST += simple/test-executable-path
UVTEST += simple/test-file-read-noexist
UVTEST += simple/test-file-write-stream
UVTEST += simple/test-fs-fsync
UVTEST += simple/test-fs-open
UVTEST += simple/test-fs-readfile-empty
UVTEST += simple/test-fs-read-file-sync
UVTEST += simple/test-fs-read-file-sync-hostname
UVTEST += simple/test-fs-sir-writes-alot
UVTEST += simple/test-fs-write
UVTEST += simple/test-fs-write-buffer
UVTEST += simple/test-fs-write-file
UVTEST += simple/test-fs-write-file-buffer
UVTEST += simple/test-fs-write-stream
UVTEST += simple/test-fs-write-stream-end
UVTEST += simple/test-fs-write-sync
UVTEST += simple/test-global
UVTEST += simple/test-http
UVTEST += simple/test-http-1.0
UVTEST += simple/test-http-abort-client
UVTEST += simple/test-http-allow-req-after-204-res
UVTEST += simple/test-http-blank-header
UVTEST += simple/test-http-buffer-sanity
UVTEST += simple/test-http-cat
UVTEST += simple/test-http-chunked
UVTEST += simple/test-http-client-abort
UVTEST += simple/test-http-client-parse-error
UVTEST += simple/test-http-client-race
UVTEST += simple/test-http-client-race-2
UVTEST += simple/test-http-client-upload
UVTEST += simple/test-http-client-upload-buf
UVTEST += simple/test-http-contentLength0
UVTEST += simple/test-http-curl-chunk-problem
UVTEST += simple/test-http-default-encoding
UVTEST += simple/test-http-dns-fail
UVTEST += simple/test-http-dns-error
UVTEST += simple/test-http-eof-on-connect
UVTEST += simple/test-http-exceptions
UVTEST += simple/test-http-expect-continue
UVTEST += simple/test-http-extra-response
UVTEST += simple/test-http-head-request
UVTEST += simple/test-http-head-response-has-no-body
UVTEST += simple/test-http-keep-alive
UVTEST += simple/test-http-keep-alive-close-on-header
UVTEST += simple/test-http-malformed-request
UVTEST += simple/test-http-many-keep-alive-connections
UVTEST += simple/test-http-mutable-headers
UVTEST += simple/test-http-parser
UVTEST += simple/test-http-proxy
UVTEST += simple/test-http-request-end
UVTEST += simple/test-http-response-close
UVTEST += simple/test-http-response-readable
UVTEST += simple/test-http-unix-socket
UVTEST += simple/test-http-server
UVTEST += simple/test-http-server-multiheaders
UVTEST += simple/test-http-set-cookies
UVTEST += simple/test-http-set-timeout
UVTEST += simple/test-http-set-trailers
UVTEST += simple/test-http-upgrade-agent
UVTEST += simple/test-http-upgrade-client
UVTEST += simple/test-http-upgrade-client2
UVTEST += simple/test-http-upgrade-server
UVTEST += simple/test-http-upgrade-server2
UVTEST += simple/test-http-wget
UVTEST += simple/test-http-write-empty-string
UVTEST += simple/test-http-wget
UVTEST += simple/test-mkdir-rmdir
UVTEST += simple/test-net-binary
UVTEST += simple/test-net-pingpong
UVTEST += simple/test-net-can-reset-timeout
UVTEST += simple/test-net-connect-buffer
UVTEST += simple/test-net-connect-timeout
UVTEST += simple/test-net-create-connection
UVTEST += simple/test-net-eaddrinuse
UVTEST += simple/test-net-isip
UVTEST += simple/test-net-keepalive
UVTEST += simple/test-net-pingpong
UVTEST += simple/test-net-reconnect
UVTEST += simple/test-net-remote-address-port
UVTEST += simple/test-net-server-bind
UVTEST += simple/test-net-server-max-connections
UVTEST += simple/test-net-server-try-ports
UVTEST += simple/test-net-stream
UVTEST += simple/test-net-socket-timeout
UVTEST += simple/test-next-tick
UVTEST += simple/test-next-tick-doesnt-hang
UVTEST += simple/test-next-tick-errors
UVTEST += simple/test-next-tick-ordering
UVTEST += simple/test-next-tick-ordering2
UVTEST += simple/test-next-tick-starvation
UVTEST += simple/test-module-load-list
UVTEST += simple/test-path
UVTEST += simple/test-pipe-stream
UVTEST += simple/test-pipe-file-to-http
UVTEST += simple/test-process-env
UVTEST += simple/test-pump-file2tcp
UVTEST += simple/test-pump-file2tcp-noexist
UVTEST += simple/test-punycode
UVTEST += simple/test-querystring
UVTEST += simple/test-readdir
UVTEST += simple/test-readdouble
UVTEST += simple/test-readfloat
UVTEST += simple/test-readint
UVTEST += simple/test-readuint
UVTEST += simple/test-regress-GH-746
UVTEST += simple/test-regress-GH-819
UVTEST += simple/test-regress-GH-897
UVTEST += simple/test-regress-GH-1531
UVTEST += simple/test-regression-object-prototype
UVTEST += simple/test-repl
UVTEST += simple/test-require-cache
UVTEST += simple/test-require-cache-without-stat
UVTEST += simple/test-require-exceptions
UVTEST += simple/test-require-resolve
UVTEST += simple/test-script-context
UVTEST += simple/test-script-new
UVTEST += simple/test-script-static-context
UVTEST += simple/test-script-static-new
UVTEST += simple/test-script-static-this
UVTEST += simple/test-script-this
UVTEST += simple/test-stream-pipe-cleanup
UVTEST += simple/test-stream-pipe-error-handling
UVTEST += simple/test-stream-pipe-event
UVTEST += simple/test-stream-pipe-multi
UVTEST += simple/test-string-decoder
UVTEST += simple/test-sys
UVTEST += simple/test-tcp-wrap
UVTEST += simple/test-tcp-wrap-connect
UVTEST += simple/test-tcp-wrap-listen
UVTEST += simple/test-timers-linked-list
UVTEST += simple/test-tty-stdout-end
UVTEST += simple/test-umask
UVTEST += simple/test-url
UVTEST += simple/test-utf8-scripts
UVTEST += simple/test-vm-create-context-circular-reference
UVTEST += simple/test-writedouble
UVTEST += simple/test-writefloat
UVTEST += simple/test-writeint
UVTEST += simple/test-writeuint
UVTEST += simple/test-zerolengthbufferbug
UVTEST += pummel/test-http-client-reconnect-bug
UVTEST += pummel/test-http-upload-timeout
UVTEST += pummel/test-net-many-clients
UVTEST += pummel/test-net-pause
UVTEST += pummel/test-net-pingpong-delay
UVTEST += pummel/test-net-timeout
UVTEST += pummel/test-timers
UVTEST += pummel/test-timer-wrap
UVTEST += pummel/test-timer-wrap2
UVTEST += pummel/test-vm-memleak
UVTEST += internet/test-dns
UVTEST += simple/test-tls-client-abort
UVTEST += simple/test-tls-client-verify
UVTEST += simple/test-tls-connect
#UVTEST += simple/test-tls-ext-key-usage # broken
UVTEST += simple/test-tls-junk-closes-server
UVTEST += simple/test-tls-npn-server-client
UVTEST += simple/test-tls-request-timeout
#UVTEST += simple/test-tls-securepair-client # broken
UVTEST += simple/test-tls-securepair-server
#UVTEST += simple/test-tls-server-verify # broken
UVTEST += simple/test-tls-set-encoding
# child_process
UVTEST += simple/test-child-process-exit-code
UVTEST += simple/test-child-process-buffering
UVTEST += simple/test-child-process-exec-cwd
UVTEST += simple/test-child-process-cwd
UVTEST += simple/test-child-process-env
UVTEST += simple/test-child-process-stdin
UVTEST += simple/test-child-process-ipc
UVTEST += simple/test-child-process-deprecated-api
test-uv: all
NODE_USE_UV=1 python tools/test.py --libuv simple
test-uv-debug: all
NODE_USE_UV=1 python tools/test.py --mode=debug simple
test-npm: all
./node deps/npm/test/run.js
test-npm-publish: all
npm_package_config_publishtest=true ./node deps/npm/test/run.js
out/Release/node: all
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
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 \
@@ -283,12 +103,16 @@ website_files = \
out/doc/sh_main.js \
out/doc/sh_javascript.min.js \
out/doc/sh_vim-dark.css \
out/doc/logo.png \
out/doc/sponsored.png \
out/doc/favicon.ico \
out/doc/pipe.css
out/doc/sh.css \
out/doc/favicon.ico \
out/doc/pipe.css \
out/doc/about/index.html \
out/doc/community/index.html \
out/doc/logos/index.html \
out/doc/changelog.html \
$(doc_images)
doc: out/Release/node $(apidoc_dirs) $(website_files) $(apiassets) $(apidocs)
doc: program $(apidoc_dirs) $(website_files) $(apiassets) $(apidocs) tools/doc/
$(apidoc_dirs):
mkdir -p $@
@@ -296,16 +120,37 @@ $(apidoc_dirs):
out/doc/api/assets/%: doc/api_assets/% out/doc/api/assets/
cp $< $@
out/doc/changelog.html: ChangeLog doc/changelog-head.html doc/changelog-foot.html tools/build-changelog.sh
bash tools/build-changelog.sh
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 out/Release/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 | sed 's|^\* #|* \\#|g' > $@
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
scp -r out/doc/* $(web_root)
rsync -r out/doc/ node@nodejs.org:~/web/nodejs.org/
ssh node@nodejs.org '\
rm -f ~/web/nodejs.org/dist/latest &&\
ln -s $(VERSION) ~/web/nodejs.org/dist/latest &&\
rm -f ~/web/nodejs.org/docs/latest &&\
ln -s $(VERSION) ~/web/nodejs.org/docs/latest &&\
rm -f ~/web/nodejs.org/dist/node-latest.tar.gz &&\
ln -s $(VERSION)/node-$(VERSION).tar.gz ~/web/nodejs.org/dist/node-latest.tar.gz'
docopen: out/doc/api/all.html
-google-chrome out/doc/api/all.html
@@ -316,29 +161,68 @@ docclean:
clean:
$(WAF) clean
-find tools -name "*.pyc" | xargs rm -f
-rm -rf blog.html email.md
-rm -rf node_modules
distclean: docclean
-find tools -name "*.pyc" | xargs rm -f
-rm -rf dist-osx
-rm -rf out/ node node_g
-rm -rf blog.html email.md
check:
@tools/waf-light check
VERSION=$(shell git describe)
VERSION=v$(shell $(PYTHON) tools/getnodeversion.py)
TARNAME=node-$(VERSION)
TARBALL=$(TARNAME).tar.gz
PKG=out/$(TARNAME).pkg
packagemaker=/Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker
#dist: doc/node.1 doc/api
dist: doc
dist: $(TARBALL) $(PKG)
PKGDIR=out/dist-osx
pkg: $(PKG)
$(PKG):
-rm -rf $(PKGDIR)
# Need to remove deps between architecture changes.
rm -rf out/*/deps
$(WAF) configure --prefix=/usr/local --without-snapshot --dest-cpu=ia32
CFLAGS=-m32 DESTDIR=$(PKGDIR)/32 $(WAF) install
rm -rf out/*/deps
$(WAF) configure --prefix=/usr/local --without-snapshot --dest-cpu=x64
CFLAGS=-m64 DESTDIR=$(PKGDIR) $(WAF) 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): out/doc
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
dist-upload: $(TARBALL) $(PKG)
ssh node@nodejs.org mkdir -p web/nodejs.org/dist/$(VERSION)
scp $(TARBALL) node@nodejs.org:~/web/nodejs.org/dist/$(VERSION)/$(TARBALL)
scp $(PKG) node@nodejs.org:~/web/nodejs.org/dist/$(VERSION)/$(TARNAME).pkg
bench:
benchmark/http_simple_bench.sh
@@ -348,11 +232,11 @@ bench-idle:
./node benchmark/idle_clients.js &
jslint:
PYTHONPATH=tools/closure_linter/ python tools/closure_linter/closure_linter/gjslint.py --unix_mode --strict --nojsdoc -r lib/ -r src/ -r test/
PYTHONPATH=tools/closure_linter/ $(PYTHON) tools/closure_linter/closure_linter/gjslint.py --unix_mode --strict --nojsdoc -r lib/ -r src/ -r test/ --exclude_files lib/punycode.js
cpplint:
@python tools/cpplint.py $(wildcard src/*.cc src/*.h src/*.c)
@$(PYTHON) tools/cpplint.py $(wildcard src/*.cc src/*.h src/*.c)
lint: jslint cpplint
.PHONY: lint cpplint jslint bench clean docopen docclean doc dist distclean check uninstall install all program staticlib dynamiclib test test-all website-upload
.PHONY: lint cpplint jslint bench clean docopen docclean doc dist distclean dist-upload check uninstall install all program staticlib dynamiclib test test-all website-upload

View File

@@ -1,40 +0,0 @@
BUILD?=build
VERBOSE?=0
PARALLEL_JOBS?=1
CMAKE?=cmake
TOOLCHAIN_FILE=#./cmake/codesourcery-arm-toolchain.cmake
all: package
$(BUILD)/Makefile:
mkdir $(BUILD) || exit 0
cd $(BUILD) && $(CMAKE) -DCMAKE_VERBOSE_MAKEFILE=$(VERBOSE) -DCMAKE_TOOLCHAIN_FILE=$(TOOLCHAIN_FILE) ..
build: $(BUILD)/Makefile
cd $(BUILD) && make -j $(PARALLEL_JOBS)
install: build
cd $(BUILD) && sudo make install
clean:
rm -rf $(BUILD)
doc: $(BUILD)/Makefile
cd $(BUILD) && make doc
package: $(BUILD)/Makefile
cd $(BUILD) && make package
test: $(BUILD)/Makefile
cd $(BUILD) && make test
cdash: $(BUILD)/Makefile
cd $(BUILD) && make Experimental
cdash-cov: $(BUILD)/Makefile
cd $(BUILD) && $(CMAKE) -DUSE_GCOV=True .. && make Experimental
cdash-mem: $(BUILD)/Makefile
cd $(BUILD) && make NightlyMemoryCheck
.PHONY: build install clean doc package test cdash cdash-cov cdash-mem

View File

@@ -1,77 +0,0 @@
Instructions for building with cmake
Make sure you have cmake:
Ubuntu/Debian: sudo apt-get install cmake
Mac: http://www.cmake.org/files/v2.8/cmake-2.8.3-Darwin-universal.dmg
Other platforms: http://www.cmake.org/cmake/resources/software.html
To build:
make -f Makefile.cmake
make -f Makefile.cmake install
To run the tests:
make -f Makefile.cmake test
To build the documentation:
make -f Makefile.cmake doc
To read the documentation:
man doc/node.1
To build distro packages (tgz, deb, rpm, PackageMaker):
make -f Makefile.cmake package
To submit test results (see http://my.cdash.org/index.php?project=node):
make -f Makefile.cmake cdash
To submit coverage test results:
make -f Makefile.cmake cdash-cov
To submit valgrind test results:
make -f Makefile.cmake cdash-mem
Cross-compiling:
An example toolchain file for the CodeSourcery ARM toolchain is included in
the cmake directory: codesourcery-arm-toolchain.cmake.
Install the CodeSourcery toolchain, set the path to the toolchain in
cmake/codesourcery-arm-toolchain.cmake, and uncomment the TOOLCHAIN_FILE
variable in Makefile.cmake to use it.
If you are using cmake directly, just add the flag
"-DCMAKE_TOOLCHAIN_FILE=/path/to/toolchain-file" when
running cmake.
Using cmake directly:
cd ~/your-node-source-dir
mkdir name-of-build-dir (can be anything)
cd name-of-build-dir
cmake ..
At this point you have generated a set of Makefiles and can use the standard
make commands (make, make install, etc.). The Makefile.cmake file is just a
wrapper around these commands; take a look at it for more details.
Other build targets:
make Experimental
make Nightly
make NightlyMemoryCheck
make Continuous
Additional options:
In the CMakeLists.txt, you'll see things like
option(SHARED_V8, ...). If you want to enable any of those options you can
pass "-DOPTION=True" when running cmake (e.g., cmake -DSHARED_V8=True).
See http://nodejs.org/ for more information. For help and discussion
subscribe to the mailing list by visiting
http://groups.google.com/group/nodejs or by sending an email to
nodejs+subscribe@googlegroups.com.

View File

@@ -1,9 +1,9 @@
Evented I/O for V8 javascript.
Evented I/O for V8 javascript. [![Build Status](https://secure.travis-ci.org/joyent/node.png)](http://travis-ci.org/joyent/node)
===
### To build:
Unix/Macintosh (requires python >= 2.5.2):
Unix/Macintosh (requires python 2.6 or 2.7):
./configure
make
@@ -33,14 +33,14 @@ Windows:
Resources for Newcomers
---
- [The Wiki](https://github.com/ry/node/wiki)
- [The Wiki](https://github.com/joyent/node/wiki)
- [nodejs.org](http://nodejs.org/)
- [how to install node.js and npm (node package manager)](http://joyeur.com/2010/12/10/installing-node-and-npm/)
- [list of modules](https://github.com/ry/node/wiki/modules)
- [list of modules](https://github.com/joyent/node/wiki/modules)
- [searching the npm registry](http://search.npmjs.org/)
- [list of companies and projects using node](http://github.com/ry/node/wiki)
- [list of companies and projects using node](https://github.com/joyent/node/wiki/Projects,-Applications,-and-Companies-Using-Node)
- [node.js mailing list](http://groups.google.com/group/nodejs)
- irc chatroom, [#node.js on freenode.net](http://webchat.freenode.net?channels=node.js&uio=d4)
- [community](https://github.com/ry/node/wiki/Community)
- [contributing](https://github.com/ry/node/wiki/Contributing)
- [big list of all the helpful wiki pages](https://github.com/ry/node/wiki/_pages)
- [community](https://github.com/joyent/node/wiki/Community)
- [contributing](https://github.com/joyent/node/wiki/Contributing)
- [big list of all the helpful wiki pages](https://github.com/joyent/node/wiki/_pages)

33
TODO
View File

@@ -1,33 +0,0 @@
- fix tests for NODE_MODULE_CONTEXTS=1
- readline
- fix for two column glyphs. use Markus Kuhn's wcwidth.c
- fix for commands that extend beyond term width
- Erradicate all traces of 'binary' encoding. Only used, now, in OpenSSL
binding.
- EventSource branch merged
- Use C++ style casts everywhere.
- Ruby-like Process#detach (is that possible?)
- stderr isn't flushing on exit
- ReadStream should not use an offset in calls to fs.read
(so that it can pull in files larger than 2G)
- process object should be defined in src/node.js not in c++
- Test for EMFILE accept spin bug.
- Deprecate setEncoding() and instead add option to on('data').
Example:
stdin.on('data', { encoding: 'utf8' }, function (chunk) {
process.stdout.write('WRITE: ' + chunk);
});
Perhaps by assigning cb.opts.encoding and calling
EventEmitter.optHandlers.encoding() if it exists.
- DOCS
- anchor links next to each function, for easy linking.
EG <a href="#fs.stat">#</a>
- "node --raw-js script.js" should bipass all Node code and load a raw V8
interpreter
- Use http_parser_execute2() in node_http_parser.cc and make req.pause()
work correctly
https://github.com/ry/http-parser/blob/c95a5479596e95b7cdd88ca9d7b32fd3afb4379c/http_parser.h#L266

View File

@@ -1,88 +0,0 @@
- Implement setenv / unsetenv
- Implement other stuff missing in node.cc/process
Like getuid, getgid, setgid, kill etc.
- Better `net` support
* getaddrinfo
* setMulticastTTL, setMembership, setLoopback
* pipe, socketpair
* A named pipe should be provided when a unix socket is requested.
* SendMsg and RecvMsg should be supported with named pipes.
- New libev backend
The current libev backend supports sockets only. This complicates stuff like
child processes, stdio. Best would be if node_net switched from exposing
readyness notifications to using completion notifications, so on windows we
could use IOCP for sockets. Experts tell me that is really the fastest way
to work with sockets on windows.
- Child process issues
* Communication between parent and child is slow; it uses a socketpair
where a pipe would be much faster. Replace it by a pipe when there
is a libev backend that supports waiting for a pipe.
* When a child process spawns the pid is not available straightaway.
On linux the pid is available immediately because fork() doesn't
block; on windows a libeio thread is used to call CreateProcess.
So this can't really be fixed, but it could be worked around by adding a
'spawn' or 'pid' event.
* passing socket custom_fds is not supported
* child_process.exec() only works on systems with msys installed.
It's because it relies on the 'sh' shell. The default windows shell
is 'cmd' and it works a little differently. Maybe add an option to
specify the shell to exec()?
- Make colorful util.inspect work on windows.
- Stdio: support passing sockets between master/child process
Normal windows applications wouldn't like this, but it can be useful for
communication between node processes. This requires
stdio.isStdinBlocking/isStdoutBlocking to be smarter.
- Skip/fix tests that can never pass on windows
- Find a solution for fs.symlink / fs.lstat / fs.chown
Windows has different symlink types: file symlinks (vista+),
directory symlinks (vista+), junction points (xp+)
- Handle _open_osfhandle failures
E.g. currently we're using the construct _open_osfhandle(socket/open/accept(...)).
Now socket() can fail by itself and _open_osfhandle can fail by itself too.
If socket() fails it returns -1 so _open_osfhandle fails as well, but and we'll always return/throw EBADF.
If _open_osfhandle fails but socket doesn't, a stray handle is left open. It should be fixed.
- Think about `make install`
- Extensions
Should be DLLs on windows.
- Link pthreads-w32 statically by default
- Link Mingw libraries statically by default
Like libstdc++.dll, more maybe.
Microsoft libs are always there, no static linkage required (e.g. msvcrt, winsock2).
- Make (open?)SSL work
- Support using shared libs (libeio, v8, c-ares)
Need to link with with a stub library. Libraries should use `dllexport`,
headers must have `dllimport`.
- V8: push MINGW32 build fixes upstream
- Work around missing pread/pwrite more elegantly
Currently it's exported from libeio, while it wasn't intended to be exported.
The libeio workaround implementation sucks, it uses a global mutex.
It should be possible to implement pread and pwrite using winapi's ReadFile/Writefile
directly, passing an OVERLAPPED structure while not associating with an completion port.
- Work around missing inet_pton/inet_ntop more elegantly
Currently it's exported from from c-ares, while it wasn't intended to be exported.
It prevents linking c-ares dynamically.
- See what libev/libeio changes can be pushed upstream
- 64-bit build
Should be possible with MinGW-w64, it's pretty good.
- ... much more probably

View File

@@ -11,26 +11,6 @@ for (var i = 0; i < 20*1024; i++) {
fixed += "C";
}
var uname, rev;
exec('git rev-list -1 HEAD', function (e, stdout) {
if (e) {
console.error("Problem executing: 'git rev-list -1 HEAD'");
throw new Error(e);
}
rev = stdout.replace(/\s/g, '');
});
exec('uname -a', function (e, stdout) {
if (e) {
console.error("Problem executing: 'uname -a'");
throw new Error(e);
}
uname = stdout.replace(/[\r\n]/g, '');
});
stored = {};
storedBuffer = {};
@@ -74,8 +54,11 @@ var server = http.createServer(function (req, res) {
} else if (command == "fixed") {
body = fixed;
} else if (command == "info") {
body = 'rev=' + rev + '\nuname="' + uname + '"\n';
} else if (command == "echo") {
res.writeHead(200, { "Content-Type": "text/plain",
"Transfer-Encoding": "chunked" });
req.pipe(res);
return;
} else {
status = 404;
@@ -110,3 +93,6 @@ server.listen(port, function () {
console.log('Listening at http://127.0.0.1:'+port+'/');
});
process.on('exit', function() {
console.error('libuv counters', process.uvCounters());
});

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,9 @@
var cluster = require('cluster');
var os = require('os');
if (cluster.isMaster) {
console.log('master running on pid %d', process.pid);
for (var i = 0, n = os.cpus().length; i < n; ++i) cluster.fork();
} else {
require(__dirname + '/http_simple.js');
}

View File

@@ -2,41 +2,47 @@
* gcc -o iotest io.c
*/
#include <assert.h>
#include <unistd.h>
#include <string.h>
#include <fcntl.h>
#include <sys/time.h>
#include <assert.h>
#include <stdlib.h>
#include <stdint.h>
#include <stdio.h>
int tsize = 1000 * 1048576;
const char *path = "/tmp/wt.dat";
static int c = 0;
static int tsize = 1000 * 1048576;
static const char path[] = "/tmp/wt.dat";
static char buf[65536];
int c = 0;
static uint64_t now(void) {
struct timeval tv;
char* bufit(size_t l)
{
char *p = malloc(l);
memset(p, '!', l);
return p;
if (gettimeofday(&tv, NULL))
abort();
return tv.tv_sec * 1000000ULL + tv.tv_usec;
}
void writetest(int size, size_t bsize)
static void writetest(int size, size_t bsize)
{
int i;
char *buf = bufit(bsize);
struct timeval start, end;
uint64_t start, end;
double elapsed;
double mbps;
assert(bsize <= sizeof buf);
int fd = open(path, O_CREAT|O_WRONLY, 0644);
if (fd < 0) {
perror("open failed");
exit(254);
}
assert(0 == gettimeofday(&start, NULL));
start = now();
for (i = 0; i < size; i += bsize) {
int rv = write(fd, buf, bsize);
if (c++ % 2000 == 0) fprintf(stderr, ".");
@@ -45,35 +51,41 @@ void writetest(int size, size_t bsize)
exit(254);
}
}
#ifdef __linux__
fdatasync(fd);
#else
fsync(fd);
#endif
close(fd);
assert(0 == gettimeofday(&end, NULL));
elapsed = (end.tv_sec - start.tv_sec) + ((double)(end.tv_usec - start.tv_usec))/100000.;
mbps = ((tsize/elapsed)) / 1048576;
fprintf(stderr, "\nWrote %d bytes in %03fs using %ld byte buffers: %03fmB/s\n", size, elapsed, bsize, mbps);
free(buf);
#ifndef NSYNC
# ifdef __linux__
fdatasync(fd);
# else
fsync(fd);
# endif
#endif /* SYNC */
close(fd);
end = now();
elapsed = (end - start) / 1e6;
mbps = ((tsize/elapsed)) / 1048576;
fprintf(stderr, "\nWrote %d bytes in %03fs using %ld byte buffers: %03fmB/s\n", size, elapsed, bsize, mbps);
}
void readtest(int size, size_t bsize)
{
int i;
char *buf = bufit(bsize);
struct timeval start, end;
uint64_t start, end;
double elapsed;
double mbps;
assert(bsize <= sizeof buf);
int fd = open(path, O_RDONLY, 0644);
if (fd < 0) {
perror("open failed");
exit(254);
}
assert(0 == gettimeofday(&start, NULL));
start = now();
for (i = 0; i < size; i += bsize) {
int rv = read(fd, buf, bsize);
if (rv < 0) {
@@ -82,12 +94,12 @@ void readtest(int size, size_t bsize)
}
}
close(fd);
assert(0 == gettimeofday(&end, NULL));
elapsed = (end.tv_sec - start.tv_sec) + ((double)(end.tv_usec - start.tv_usec))/100000.;
mbps = ((tsize/elapsed)) / 1048576;
fprintf(stderr, "Read %d bytes in %03fs using %ld byte buffers: %03fmB/s\n", size, elapsed, bsize, mbps);
free(buf);
end = now();
elapsed = (end - start) / 1e6;
mbps = ((tsize/elapsed)) / 1048576;
fprintf(stderr, "Read %d bytes in %03fs using %ld byte buffers: %03fmB/s\n", size, elapsed, bsize, mbps);
}
void cleanup() {

41
benchmark/next-tick-2.js Normal file
View File

@@ -0,0 +1,41 @@
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
var count = 2e6,
left = count,
start;
function onNextTick() {
if (--left) {
process.nextTick(onNextTick);
} else {
finalize();
}
}
function finalize() {
var duration = (new Date()).getTime() - start,
ticksPerSec = count / duration * 1000;
console.log("nextTick callbacks per second: " + Math.round(ticksPerSec));
}
start = (new Date()).getTime();
process.nextTick(onNextTick);

17
benchmark/next-tick.js Normal file
View File

@@ -0,0 +1,17 @@
// run with `time node benchmark/next-tick.js`
var assert = require('assert');
var N = 1e7;
var n = 0;
process.on('exit', function() {
assert.equal(n, N);
});
function cb() {
n++;
}
for (var i = 0; i < N; ++i) {
process.nextTick(cb);
}

View File

@@ -1,48 +1,43 @@
var http = require("http");
var http = require('http');
var concurrency = 30;
var port = 12346;
var n = 7; // several orders of magnitude slower
var n = 700;
var bytes = 1024*5;
var requests = 0;
var responses = 0;
var body = "";
var body = '';
for (var i = 0; i < bytes; i++) {
body += "C";
body += 'C';
}
var server = http.createServer(function (req, res) {
var server = http.createServer(function(req, res) {
res.writeHead(200, {
"Content-Type": "text/plain",
"Content-Length": body.length
'Content-Type': 'text/plain',
'Content-Length': body.length
});
res.write(body);
res.close();
res.end(body);
})
server.listen(port);
function responseListener (res) {
res.addListener("end", function () {
if (requests < n) {
var req = res.client.request("/");
req.addListener('response', responseListener);
req.close();
requests++;
}
server.listen(port, function() {
var agent = new http.Agent();
agent.maxSockets = concurrency;
if (++responses == n) {
server.close();
}
});
}
for (var i = 0; i < concurrency; i++) {
var client = http.createClient(port);
client.id = i;
var req = client.request("/");
req.addListener('response', responseListener);
req.close();
requests++;
}
for (var i = 0; i < n; i++) {
var req = http.get({
port: port,
path: '/',
agent: agent
}, function(res) {
res.on('end', function() {
if (++responses === n) {
server.close();
}
});
});
req.id = i;
requests++;
}
});

View File

@@ -0,0 +1,25 @@
var net = require('net');
var received = 0;
var start = new Date();
var socket = net.connect(8000);
socket.on('data', function(d) {
received += d.length;
});
var interval = setInterval(function() {
// After 1 gigabyte shutdown.
if (received > 10 * 1024 * 1024 * 1024) {
socket.destroy();
clearInterval(interval);
process.exit(0);
} else {
// Otherwise print some stats.
var now = new Date();
var gigabytes = received / (1024 * 1024 * 1024);
var gigabits = gigabytes * 8.0;
var millisec = now - start;
var sec = millisec / 1000;
console.log((gigabits / sec) + " gbit/sec")
}
}, 1000);

21
benchmark/throughput.js Normal file
View File

@@ -0,0 +1,21 @@
var fork = require('child_process').fork;
var net = require('net');
var buffer = new Buffer(1024 * 1024);
function write(socket) {
if (!socket.writable) return;
socket.write(buffer, function() {
write(socket);
});
}
var server = net.createServer(function(socket) {
server.close();
write(socket);
});
server.listen(8000, function() {
fork(__dirname + '/throughput-child.js');
});

View File

@@ -1,4 +0,0 @@
set(CTEST_CUSTOM_PRE_TEST "sh -c \"rm -rf ../test/tmp && mkdir ../test/tmp\"")
set(CTEST_CUSTOM_POST_TEST ${CTEST_CUSTOM_PRE_TEST})
set(CTEST_CUSTOM_PRE_MEMCHECK ${CTEST_CUSTOM_PRE_TEST})
set(CTEST_CUSTOM_POST_MEMCHECK ${CTEST_CUSTOM_PRE_TEST})

View File

@@ -1,22 +0,0 @@
set(toolchain_dir #SET THIS TO YOUR TOOLCHAIN PATH)
set(toolchain_bin_dir ${toolchain_dir}/bin)
set(toolchain_libc_dir ${toolchain_dir}/arm-none-linux-gnueabi/libc)
set(toolchain_inc_dir ${toolchain_libc_dir}/include)
set(toolchain_lib_dir ${toolchain_libc_dir}/usr/lib)
set(CMAKE_SYSTEM_NAME Linux CACHE INTERNAL "system name")
set(CMAKE_SYSTEM_PROCESSOR arm CACHE INTERNAL "processor")
set(CMAKE_C_COMPILER ${toolchain_bin_dir}/arm-none-linux-gnueabi-gcc)
set(CMAKE_CXX_COMPILER ${toolchain_bin_dir}/arm-none-linux-gnueabi-g++)
set(CMAKE_C_FLAGS "-isystem ${toolchain_inc_dir}" CACHE INTERNAL "c compiler flags")
set(CMAKE_CXX_FLAGS "-isystem ${toolchain_inc_dir}" CACHE INTERNAL "cxx compiler flags")
set(link_flags -L${toolchain_lib_dir})
set(CMAKE_EXE_LINKER_FLAGS ${link_flags} CACHE INTERNAL "exe link flags")
set(CMAKE_MODULE_LINKER_FLAGS ${link_flags} CACHE INTERNAL "module link flags")
set(CMAKE_SHARED_LINKER_FLAGS ${link_flags} CACHE INTERNAL "shared lnk flags")
set(CMAKE_FIND_ROOT_PATH ${toolchain_libc_dir} CACHE INTERNAL "cross root directory")
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH CACHE INTERNAL "")
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY CACHE INTERNAL "")
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY CACHE INTERNAL "")

View File

@@ -1,130 +0,0 @@
#
# configure node for building
#
include(CheckFunctionExists)
include(CheckLibraryExists)
include(CheckSymbolExists)
if(NOT "v${CMAKE_BUILD_TYPE}" MATCHES vDebug)
set(CMAKE_BUILD_TYPE "Release")
endif()
string(TOLOWER ${CMAKE_SYSTEM_NAME} node_platform)
if(${node_platform} MATCHES darwin)
execute_process(COMMAND sw_vers -productVersion OUTPUT_VARIABLE OSX_VERSION)
string(REGEX REPLACE "^([0-9]+\\.[0-9]+).*$" "\\1" OSX_VERSION "${OSX_VERSION}")
if(OSX_VERSION GREATER 10.5)
# 10.6 builds are 64-bit
set(CMAKE_SYSTEM_PROCESSOR x86_64)
endif()
endif()
# Get system architecture
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES i686*)
set(node_arch x86)
elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES i386*)
set(node_arch x86)
else()
set(node_arch ${CMAKE_SYSTEM_PROCESSOR})
endif()
if(${node_arch} MATCHES unknown)
set(node_arch x86)
endif()
set(NODE_INCLUDE_PREFIX ${CMAKE_INSTALL_PREFIX})
# Copy tools directory for out-of-source build
string(COMPARE EQUAL $(PROJECT_BINARY_DIR) ${PROJECT_SOURCE_DIR} in_source_build)
if(NOT in_source_build)
execute_process(COMMAND cmake -E copy_directory ${PROJECT_SOURCE_DIR}/tools ${PROJECT_BINARY_DIR}/tools)
configure_file(${PROJECT_SOURCE_DIR}/deps/v8/tools/jsmin.py ${PROJECT_BINARY_DIR}/tools COPYONLY)
endif()
# Set some compiler/linker flags..
set(CMAKE_C_FLAGS_DEBUG "-O0 -Wall -g -Wextra -DDEBUG $ENV{CFLAGS}")
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -Wall -g -Wextra -DDEBUG $ENV{CXXFLAGS}")
set(CMAKE_C_FLAGS_RELEASE "-g -O3 -DNDEBUG $ENV{CFLAGS}")
set(CMAKE_CXX_FLAGS_RELEASE "-g -O3 -DNDEBUG $ENV{CXXFLAGS}")
if(NOT ${node_platform} MATCHES windows)
add_definitions(-D__POSIX__=1)
endif()
if(${node_platform} MATCHES sunos)
add_definitions(-threads)
elseif(NOT ${node_platform} MATCHES cygwin*)
add_definitions(-pthread)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -rdynamic")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -rdynamic")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pthread")
endif()
if(${node_platform} MATCHES darwin)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework Carbon")
# explicitly set this so that we don't check again when building libeio
set(HAVE_FDATASYNC 0)
else()
# OSX fdatasync() check wrong: http://public.kitware.com/Bug/view.php?id=10044
check_function_exists(fdatasync HAVE_FDATASYNC)
endif()
if(HAVE_FDATASYNC)
add_definitions(-DHAVE_FDATASYNC=1)
else()
add_definitions(-DHAVE_FDATASYNC=0)
endif()
# check first without rt and then with rt
check_function_exists(clock_gettime HAVE_CLOCK_GETTIME)
check_library_exists(rt clock_gettime "" HAVE_CLOCK_GETTIME_RT)
if(HAVE_CLOCK_GETTIME OR HAVE_CLOCK_GETTIME_RT)
check_symbol_exists(CLOCK_MONOTONIC "time.h" HAVE_MONOTONIC_CLOCK)
endif()
if(HAVE_MONOTONIC_CLOCK)
add_definitions(-DHAVE_MONOTONIC_CLOCK=1)
else()
add_definitions(-DHAVE_MONOTONIC_CLOCK=0)
endif()
if(DTRACE)
if(NOT ${node_platform} MATCHES sunos)
message(FATAL_ERROR "DTrace support only currently available on Solaris")
endif()
find_program(dtrace_bin dtrace)
if(NOT dtrace_bin)
message(FATAL_ERROR "DTrace binary not found")
endif()
add_definitions(-DHAVE_DTRACE=1)
endif()
add_definitions(
-DPLATFORM="${node_platform}"
-DARCH="${node_arch}"
-DX_STACKSIZE=65536
-D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64
-DEV_MULTIPLICITY=0
-D_FORTIFY_SOURCE=2
)
# set the exec output path to be compatible with the current waf build system
if(${CMAKE_BUILD_TYPE} MATCHES Debug)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/debug/)
else()
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/default/)
endif()
#
## ---------------------------------------------------------
#
file(GLOB js2c_files ${PROJECT_SOURCE_DIR}/lib/*.js)
set(js2c_files ${PROJECT_SOURCE_DIR}/src/node.js ${js2c_files})
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/src)

View File

@@ -1,80 +0,0 @@
#
# docs
#
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/doc)
set(node_binary ${PROJECT_BINARY_DIR}/default/node)
set(doctool tools/doctool/doctool.js)
set(changelog_html ${PROJECT_BINARY_DIR}/doc/changelog.html)
file(GLOB_RECURSE doc_sources RELATIVE ${PROJECT_SOURCE_DIR} doc/*)
foreach(FILE ${doc_sources})
string(REGEX REPLACE "(.*)api_assets(.*)" "\\1api/assets\\2" OUT_FILE ${FILE})
add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/${OUT_FILE}
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PROJECT_SOURCE_DIR}/${FILE} ${PROJECT_BINARY_DIR}/${OUT_FILE}
DEPENDS ${PROJECT_SOURCE_DIR}/${FILE}
)
list(APPEND doc_sources_copy ${PROJECT_BINARY_DIR}/${OUT_FILE})
endforeach()
file(GLOB_RECURSE api_markdown RELATIVE ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/doc/api/*)
foreach(file ${api_markdown})
string(REGEX REPLACE "(.*)\\.markdown" "\\1" tmp ${file})
set(api_basenames ${api_basenames} ${tmp})
endforeach()
foreach(api ${api_basenames})
set(api_html ${api_html} ${PROJECT_BINARY_DIR}/${api}.html)
add_custom_command(
OUTPUT "${PROJECT_BINARY_DIR}/${api}.html"
COMMAND ${node_binary} ${doctool} ${PROJECT_BINARY_DIR}/doc/template.html "${PROJECT_BINARY_DIR}/${api}.markdown" > "${PROJECT_BINARY_DIR}/${api}.html"
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
DEPENDS node ${doctool} ${doc_sources_copy}
VERBATIM
)
endforeach()
add_custom_target(
doc
DEPENDS node ${doc_sources_copy} ${api_html} ${changelog_html}
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
)
#add_custom_command(
# OUTPUT ${PROJECT_BINARY_DIR}/doc/api.html
# COMMAND ${PROJECT_BINARY_DIR}/default/node tools/ronnjs/bin/ronn.js --fragment doc/api.markdown
# | sed "s/<h2>\\\(.*\\\)<\\/h2>/<h2 id=\"\\1\">\\1<\\/h2>/g"
# | cat doc/api_header.html - doc/api_footer.html > ${PROJECT_BINARY_DIR}/doc/api.html
# WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
# DEPENDS node doc/api.markdown doc/api_header.html doc/api_footer.html
# VERBATIM
# )
add_custom_command(
OUTPUT ${changelog_html}
COMMAND ${node_binary} ${doctool} doc/template.html ChangeLog
| sed "s|assets/|api/assets/|g"
| sed "s|<body>|<body id=\"changelog\">|g" > ${changelog_html}
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
DEPENDS ChangeLog node ${doctool} ${doc_sources_copy}
VERBATIM
)
#add_custom_command(
# OUTPUT ${PROJECT_BINARY_DIR}/doc/changelog.html
# COMMAND cat doc/changelog_header.html ChangeLog doc/changelog_footer.html > ${PROJECT_BINARY_DIR}/doc/changelog.html
# WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
# DEPENDS ChangeLog doc/changelog_header.html doc/changelog_footer.html
# VERBATIM
# )
#add_custom_command(
# OUTPUT ${PROJECT_BINARY_DIR}/doc/node.1
# COMMAND ${PROJECT_BINARY_DIR}/default/node tools/ronnjs/bin/ronn.js --roff doc/api.markdown > ${PROJECT_BINARY_DIR}/doc/node.1
# WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
# DEPENDS node doc/api.markdown tools/ronnjs/bin/ronn.js
# VERBATIM
# )

View File

@@ -1,53 +0,0 @@
#
# libraries
#
include(CheckLibraryExists)
include(FindPackageHandleStandardArgs)
set(HAVE_CONFIG_H True)
add_definitions(-DHAVE_CONFIG_H=1)
find_package(OpenSSL QUIET)
find_package(Threads)
find_library(RT rt)
find_library(DL dl)
check_library_exists(socket socket "" HAVE_SOCKET_LIB)
check_library_exists(nsl gethostbyname "" HAVE_NSL_LIB)
check_library_exists(util openpty "" HAVE_UTIL_LIB)
if(RT)
set(extra_libs ${extra_libs} ${RT})
endif()
if(DL)
set(extra_libs ${extra_libs} ${DL})
endif()
if(${node_platform} MATCHES freebsd)
find_library(KVM NAMES kvm)
set(extra_libs ${extra_libs} KVM)
endif()
if(${HAVE_SOCKET_LIB})
set(extra_libs ${extra_libs} socket)
endif()
if(${HAVE_NSL_LIB})
set(extra_libs ${extra_libs} nsl)
endif()
if(HAVE_UTIL_LIB)
set(extra_libs ${extra_libs} util)
endif()
if(OPENSSL_FOUND)
add_definitions(-DHAVE_OPENSSL=1)
set(HAVE_OPENSSL True)
set(node_extra_src ${node_extra_src} src/node_crypto.cc)
set(extra_libs ${extra_libs} ${OPENSSL_LIBRARIES})
endif()
include("cmake/libuv.cmake")
include("cmake/libv8.cmake")
add_subdirectory(deps/http_parser)

View File

@@ -1,2 +0,0 @@
add_subdirectory(deps/uv)
set(LIBUV_INCLUDE_DIR deps/uv/include)

View File

@@ -1,25 +0,0 @@
set(V8_INCLUDE_NAMES v8.h v8-debug.h v8-profiler.h v8stdint.h)
set(V8_LIBRARY_NAMES v8)
if(SHARED_V8)
find_path(V8_INCLUDE_DIR NAMES ${V8_INCLUDE_NAMES})
find_library(V8_LIBRARY_PATH NAMES ${V8_LIBRARY_NAMES} NO_CMAKE_PATH)
else()
set(V8_INCLUDE_DIR "${PROJECT_BINARY_DIR}/deps/v8/include")
if(${CMAKE_BUILD_TYPE} MATCHES Debug)
set(v8_fn "libv8_g.a")
else()
set(v8_fn "libv8.a")
endif()
set(V8_LIBRARY_PATH "${PROJECT_BINARY_DIR}/deps/v8/${v8_fn}")
install(DIRECTORY
## Do NOT remove the trailing slash
## it is required so that v8 headers are
## copied directly into include/node
## rather than in a subdirectory
## See CMake's install(DIRECTORY) manual for details
${V8_INCLUDE_DIR}/
DESTINATION include/node
)
endif()

View File

@@ -1,149 +0,0 @@
#
# node build stuff
#
set(macros_file ${PROJECT_BINARY_DIR}/macros.py)
# replace debug(x) and assert(x) with nothing in release build
if(${CMAKE_BUILD_TYPE} MATCHES Release)
file(APPEND ${macros_file} "macro debug(x) = void(0);\n")
file(APPEND ${macros_file} "macro assert(x) = void(0);\n")
endif()
if(NOT DTRACE)
set(dtrace_probes
DTRACE_HTTP_CLIENT_REQUEST
DTRACE_HTTP_CLIENT_RESPONSE
DTRACE_HTTP_SERVER_REQUEST
DTRACE_HTTP_SERVER_RESPONSE
DTRACE_NET_SERVER_CONNECTION
DTRACE_NET_STREAM_END
DTRACE_NET_SOCKET_READ
DTRACE_NET_SOCKET_WRITE)
foreach(probe ${dtrace_probes})
file(APPEND ${macros_file} "macro ${probe}(x) = void(0);\n")
endforeach()
endif()
# Sort the JS files being built into natives so that the build is
# deterministic
list(SORT js2c_files)
# include macros file in generation
set(js2c_files ${js2c_files} ${macros_file})
add_custom_command(
OUTPUT ${PROJECT_BINARY_DIR}/src/node_natives.h
COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_BINARY_DIR}/tools/js2c.py ${PROJECT_BINARY_DIR}/src/node_natives.h ${js2c_files}
DEPENDS ${js2c_files})
set(node_platform_src "src/platform_${node_platform}.cc")
if(NOT EXISTS ${CMAKE_SOURCE_DIR}/${node_platform_src})
set(node_extra_src ${node_extra_src} "src/platform_none.cc")
else()
set(node_extra_src ${node_extra_src} ${node_platform_src})
endif()
set(node_sources
src/node_main.cc
src/node.cc
src/node_buffer.cc
src/node_javascript.cc
src/node_extensions.cc
src/node_http_parser.cc
src/node_constants.cc
src/node_file.cc
src/node_script.cc
src/node_os.cc
src/node_dtrace.cc
src/node_string.cc
src/timer_wrap.cc
src/handle_wrap.cc
src/stream_wrap.cc
src/tcp_wrap.cc
src/pipe_wrap.cc
src/cares_wrap.cc
src/stdio_wrap.cc
src/process_wrap.cc
src/node_cares.cc
src/node_net.cc
src/node_signal_watcher.cc
src/node_stat_watcher.cc
src/node_io_watcher.cc
src/node_stdio.cc
src/node_child_process.cc
src/node_timer.cc
src/node_natives.h
${node_extra_src})
# Set up PREFIX, CCFLAGS, and CPPFLAGS for node_config.h
set(PREFIX ${CMAKE_INSTALL_PREFIX})
if(${CMAKE_BUILD_TYPE} MATCHES Debug)
set(CCFLAGS "${CMAKE_C_FLAGS_DEBUG} ${CMAKE_C_FLAGS}")
else()
set(CCFLAGS "${CMAKE_C_FLAGS_RELEASE} ${CMAKE_C_FLAGS}")
endif()
get_directory_property(compile_defs COMPILE_DEFINITIONS)
foreach(def ${compile_defs})
set(CPPFLAGS "${CPPFLAGS} -D${def}")
endforeach()
configure_file(src/node_config.h.in ${PROJECT_BINARY_DIR}/src/node_config.h ESCAPE_QUOTES)
configure_file(config.h.cmake ${PROJECT_BINARY_DIR}/config.h)
include_directories(
src
deps/libeio
deps/http_parser
${V8_INCLUDE_DIR}
${LIBUV_INCLUDE_DIR}
${PROJECT_BINARY_DIR}
${PROJECT_BINARY_DIR}/src
)
if(DTRACE)
add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/src/node_provider.h
COMMAND ${dtrace_bin} -x nolibs -h -o ${PROJECT_BINARY_DIR}/src/node_provider.h -s ${PROJECT_SOURCE_DIR}/src/node_provider.d
DEPENDS ${PROJECT_SOURCE_DIR}/src/node_provider.d)
set(node_sources ${node_sources} src/node_provider.o)
set(node_sources src/node_provider.h ${node_sources})
endif()
add_executable(node ${node_sources})
set_target_properties(node PROPERTIES DEBUG_POSTFIX "_g")
target_link_libraries(node
uv
http_parser
${V8_LIBRARY_PATH}
${CMAKE_THREAD_LIBS_INIT}
${extra_libs})
if(DTRACE)
# manually gather up the object files for dtrace
get_property(sourcefiles TARGET node PROPERTY SOURCES)
foreach(src_file ${sourcefiles})
if(src_file MATCHES ".*\\.cc$")
set(node_objs ${node_objs} ${PROJECT_BINARY_DIR}/CMakeFiles/node.dir/${src_file}.o)
endif()
endforeach()
add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/src/node_provider.o
#COMMAND cmake -E echo ${node_objs}
COMMAND ${dtrace_bin} -G -x nolibs -s ${PROJECT_SOURCE_DIR}/src/node_provider.d -o ${PROJECT_BINARY_DIR}/src/node_provider.o ${node_objs}
DEPENDS ${node_objs})
endif()
install(TARGETS node RUNTIME DESTINATION bin)
install(FILES
${PROJECT_BINARY_DIR}/config.h
src/node.h
src/node_object_wrap.h
src/node_buffer.h
src/node_version.h
${PROJECT_BINARY_DIR}/src/node_config.h
DESTINATION ${NODE_INCLUDE_PREFIX}/include/node
)

View File

@@ -1,39 +0,0 @@
#
# package
#
# Allow absolute paths when installing
# see http://www.cmake.org/pipermail/cmake/2008-July/022958.html
set(CPACK_SET_DESTDIR "ON")
if(${node_platform} MATCHES darwin)
set(CPACK_GENERATOR "TGZ;PackageMaker")
# CPack requires the files to end in .txt
configure_file(LICENSE ${PROJECT_BINARY_DIR}/LICENSE.txt COPYONLY)
configure_file(ChangeLog ${PROJECT_BINARY_DIR}/ChangeLog.txt COPYONLY)
set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_BINARY_DIR}/LICENSE.txt")
set(CPACK_RESOURCE_FILE_README "${PROJECT_BINARY_DIR}/ChangeLog.txt")
#set(CPACK_RESOURCE_FILE_WELCOME "")
elseif(${node_platform} MATCHES linux)
set(CPACK_GENERATOR "TGZ;DEB;RPM")
else()
set(CPACK_GENERATOR "TGZ")
endif()
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Tom Hughes <tom.hughes@palm.com>")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Evented I/O for V8 JavaScript.")
set(CPACK_PACKAGE_DESCRIPTION "Evented I/O for V8 JavaScript.
Node's goal is to provide an easy way to build scalable network programs.
Node is similar in design to and influenced by systems like Ruby's Event
Machine or Python's Twisted. Node takes the event model a bit further—it
presents the event loop as a language construct instead of as a library.")
set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "${CPACK_PACKAGE_DESCRIPTION}")
set(CPACK_DEBIAN_PACKAGE_SECTION "web")
file(READ ${PROJECT_SOURCE_DIR}/src/node_version.h node_version_h OFFSET 0)
string(REGEX REPLACE ".*NODE_MAJOR_VERSION[ ]*([0-9]+).*" "\\1" CPACK_PACKAGE_VERSION_MAJOR "${node_version_h}")
string(REGEX REPLACE ".*NODE_MINOR_VERSION[ ]*([0-9]+).*" "\\1" CPACK_PACKAGE_VERSION_MINOR "${node_version_h}")
string(REGEX REPLACE ".*NODE_PATCH_VERSION[ ]*([0-9]+).*" "\\1" CPACK_PACKAGE_VERSION_PATCH "${node_version_h}")
set(node_version_string "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
# Note: this is intentionally at the bottom so that the above CPACK variables
# are used by CPack.
include(CPack)

View File

@@ -1,102 +0,0 @@
#
# v8 build stuff
#
string(TOLOWER ${CMAKE_BUILD_TYPE} v8mode)
set(v8arch ${node_arch})
if(${node_arch} MATCHES x86_64)
set(v8arch x64)
elseif(${node_arch} MATCHES x86)
set(v8arch ia32)
endif()
if(NOT SHARED_V8)
if(V8_SNAPSHOT)
set(v8_snapshot snapshot=on)
endif()
if(V8_OPROFILE)
set(v8_oprofile prof=oprofile)
endif()
if(V8_GDBJIT)
set(v8_gdbjit gdbjit=on)
endif()
if(${node_platform} MATCHES darwin)
execute_process(COMMAND hwprefs cpu_count OUTPUT_VARIABLE cpu_count)
elseif(${node_platform} MATCHES linux)
execute_process(COMMAND sh -c "cat /proc/cpuinfo | grep processor | sort | uniq | wc -l"
OUTPUT_VARIABLE cpu_count)
elseif(${node_platform} MATCHES sunos)
execute_process(COMMAND sh -c "psrinfo | wc -l" OUTPUT_VARIABLE cpu_count)
else()
set(cpu_count 1)
endif()
if(${cpu_count} GREATER 1)
math(EXPR parallel_jobs ${cpu_count}*2)
else()
set(parallel_jobs 1)
endif()
add_library(v8 STATIC IMPORTED)
set_property(TARGET v8
PROPERTY IMPORTED_LOCATION ${PROJECT_BINARY_DIR}/deps/v8/${v8_fn})
set(compile_env_vars "CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} AR=${CMAKE_AR} RANLIB=${CMAKE_RANLIB} CFLAGS=\"${CMAKE_C_FLAGS}\" CXXFLAGS=\"${CMAKE_CXX_FLAGS}\" LDFLAGS=\"${CMAKE_EXE_LINKER_FLAGS}\"")
set(compile_cmd "${compile_env_vars} ${PYTHON_EXECUTABLE} ${PROJECT_BINARY_DIR}/tools/scons/scons.py -j ${parallel_jobs} visibility=default mode=${v8mode} arch=${v8arch} library=static ${v8_snapshot} ${v8_oprofile} ${v8_gdbjit} verbose=on")
if(CMAKE_VERSION VERSION_GREATER 2.8 OR CMAKE_VERSION VERSION_EQUAL 2.8)
# use ExternalProject for CMake >2.8
include(ExternalProject)
ExternalProject_Add(v8_extprj
URL ${PROJECT_SOURCE_DIR}/deps/v8
BUILD_IN_SOURCE True
BUILD_COMMAND sh -c "${compile_cmd}"
SOURCE_DIR ${PROJECT_BINARY_DIR}/deps/v8
# ignore this stuff, it's not needed for building v8 but ExternalProject
# demands these steps
CONFIGURE_COMMAND "true" # fake configure
INSTALL_COMMAND "true" # fake install
)
add_dependencies(node v8_extprj)
else()
# copy v8 sources inefficiently with CMake versions <2.8
file(GLOB_RECURSE v8_sources RELATIVE ${PROJECT_SOURCE_DIR} deps/v8/*)
if(NOT ${in_source_build})
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/deps/v8)
foreach(FILE ${v8_sources})
add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/${FILE}
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PROJECT_SOURCE_DIR}/${FILE} ${PROJECT_BINARY_DIR}/${FILE}
DEPENDS ${PROJECT_SOURCE_DIR}/${FILE}
)
list(APPEND v8_sources_dest ${PROJECT_BINARY_DIR}/${FILE})
endforeach()
else()
set(v8_sources_dest ${v8_sources})
endif()
add_custom_command(
OUTPUT ${PROJECT_BINARY_DIR}/deps/v8/${v8_fn}
COMMAND sh -c "${compile_cmd}"
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/deps/v8/
DEPENDS ${v8_sources_dest}
)
add_custom_target(v8_stock ALL DEPENDS ${PROJECT_BINARY_DIR}/deps/v8/${v8_fn})
set_property(TARGET v8 PROPERTY
IMPORTED_LOCATION ${PROJECT_BINARY_DIR}/deps/v8/${v8_fn})
add_dependencies(node v8_stock)
endif()
endif()

View File

@@ -1,8 +1,6 @@
{
'variables': {
'visibility%': 'hidden', # V8's visibility setting
'target_arch%': 'ia32', # set v8's target architecture
'host_arch%': 'ia32', # set v8's host architecture
'library%': 'static_library', # allow override to 'shared_library' for DLL/.so builds
'component%': 'static_library', # NB. these names match with what V8 expects
'msvs_multi_core_compile': '0', # we do enable multicore compiles, but not using the V8 way
@@ -14,6 +12,11 @@
'Debug': {
'defines': [ 'DEBUG', '_DEBUG' ],
'cflags': [ '-g', '-O0' ],
'conditions': [
['target_arch=="x64"', {
'msvs_configuration_platform': 'x64',
}],
],
'msvs_settings': {
'VCCLCompilerTool': {
'target_conditions': [
@@ -24,7 +27,7 @@
}],
],
'Optimization': 0, # /Od, no optimization
'MinimalRebuild': 'true',
'MinimalRebuild': 'false',
'OmitFramePointers': 'false',
'BasicRuntimeChecks': 3, # /RTC1
},
@@ -36,6 +39,11 @@
'Release': {
'defines': [ 'NDEBUG' ],
'cflags': [ '-O3', '-fomit-frame-pointer', '-fdata-sections', '-ffunction-sections' ],
'conditions': [
['target_arch=="x64"', {
'msvs_configuration_platform': 'x64',
}],
],
'msvs_settings': {
'VCCLCompilerTool': {
'target_conditions': [
@@ -83,6 +91,11 @@
'VCLibrarianTool': {
},
'VCLinkerTool': {
'conditions': [
['target_arch=="x64"', {
'TargetMachine' : 17 # /MACHINE:X64
}],
],
'GenerateDebugInformation': 'true',
'RandomizedBaseAddress': 2, # enable ASLR
'DataExecutionPrevention': 2, # enable DEP
@@ -106,6 +119,8 @@
# ... or that C implementations shouldn't use
# POSIX names
'_CRT_NONSTDC_NO_DEPRECATE',
'BUILDING_V8_SHARED=1',
'BUILDING_UV_SHARED=1',
],
}],
[ 'OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"', {

View File

@@ -1,2 +0,0 @@
#cmakedefine HAVE_OPENSSL 1
#cmakedefine HAVE_CONFIG_H 1

6
configure vendored
View File

@@ -7,6 +7,10 @@ if [ ! -z "`echo $CC | grep ccache`" ]; then
exit 1
fi
if [ -z "$PYTHON" ]; then
PYTHON=python
fi
CUR_DIR=$PWD
#possible relative path
@@ -16,6 +20,6 @@ cd "$WORKINGDIR"
WORKINGDIR=`pwd`
cd "$CUR_DIR"
"${WORKINGDIR}/tools/waf-light" --jobs=1 configure $*
"$PYTHON" "${WORKINGDIR}/tools/waf-light" --jobs=1 configure $*
exit $?

View File

@@ -3,6 +3,3 @@ tags
test
test_g
test_fast
http_parser.Makefile
http_parser.target.mk
test.target.mk

View File

@@ -1,2 +0,0 @@
include_directories (.)
add_library (http_parser http_parser.c)

View File

@@ -370,6 +370,13 @@ size_t http_parser_execute (http_parser *parser,
uint64_t index = parser->index;
uint64_t nread = parser->nread;
/* technically we could combine all of these (except for url_mark) into one
variable, saving stack space, but it seems more clear to have them
separated. */
const char *header_field_mark = 0;
const char *header_value_mark = 0;
const char *url_mark = 0;
/* We're in an error state. Don't bother doing anything. */
if (HTTP_PARSER_ERRNO(parser) != HPE_OK) {
return 0;
@@ -396,12 +403,6 @@ size_t http_parser_execute (http_parser *parser,
}
}
/* technically we could combine all of these (except for url_mark) into one
variable, saving stack space, but it seems more clear to have them
separated. */
const char *header_field_mark = 0;
const char *header_value_mark = 0;
const char *url_mark = 0;
if (state == s_header_field)
header_field_mark = data;
@@ -432,6 +433,9 @@ size_t http_parser_execute (http_parser *parser,
/* this state is used after a 'Connection: close' message
* the parser will error out if it reads another message
*/
if (ch == CR || ch == LF)
break;
SET_ERRNO(HPE_CLOSED_CONNECTION);
goto error;
@@ -514,7 +518,7 @@ size_t http_parser_execute (http_parser *parser,
break;
case s_res_first_http_major:
if (ch < '1' || ch > '9') {
if (ch < '0' || ch > '9') {
SET_ERRNO(HPE_INVALID_VERSION);
goto error;
}
@@ -690,12 +694,13 @@ size_t http_parser_execute (http_parser *parser,
case s_req_method:
{
const char *matcher;
if (ch == '\0') {
SET_ERRNO(HPE_INVALID_METHOD);
goto error;
}
const char *matcher = method_strings[parser->method];
matcher = method_strings[parser->method];
if (ch == ' ' && matcher[index] == '\0') {
state = s_req_spaces_before_url;
} else if (ch == matcher[index]) {
@@ -1731,9 +1736,20 @@ http_should_keep_alive (http_parser *parser)
/* HTTP/1.1 */
if (parser->flags & F_CONNECTION_CLOSE) {
return 0;
} else {
return 1;
}
if (parser->type == HTTP_RESPONSE) {
/* See RFC 2616 section 4.4 */
if (parser->status_code / 100 == 1 || /* 1xx e.g. Continue */
parser->status_code == 204 || /* No Content */
parser->status_code == 304 || /* Not Modified */
parser->flags & F_SKIPBODY) { /* response to a HEAD request */
return 1;
}
if (!(parser->flags & F_CHUNKED) && parser->content_length == -1) {
return 0;
}
}
return 1;
} else {
/* HTTP/1.0 or earlier */
if (parser->flags & F_CONNECTION_KEEP_ALIVE) {

View File

@@ -5,24 +5,69 @@
# ./gyp/gyp -f make --depth=`pwd` http_parser.gyp
# ./out/Debug/test
{
'target_defaults': {
'default_configuration': 'Debug',
'configurations': {
# TODO: hoist these out and put them somewhere common, because
# RuntimeLibrary MUST MATCH across the entire project
'Debug': {
'defines': [ 'DEBUG', '_DEBUG' ],
'msvs_settings': {
'VCCLCompilerTool': {
'RuntimeLibrary': 1, # static debug
},
},
},
'Release': {
'defines': [ 'NDEBUG' ],
'msvs_settings': {
'VCCLCompilerTool': {
'RuntimeLibrary': 0, # static release
},
},
}
},
'msvs_settings': {
'VCCLCompilerTool': {
},
'VCLibrarianTool': {
},
'VCLinkerTool': {
'GenerateDebugInformation': 'true',
},
},
'conditions': [
['OS == "win"', {
'defines': [
'WIN32'
],
}]
],
},
'targets': [
{
'target_name': 'http_parser',
'type': '<(library)',
'type': 'static_library',
'include_dirs': [ '.' ],
'direct_dependent_settings': {
'include_dirs': [ '.' ],
},
'defines': [ 'HTTP_PARSER_STRICT=0' ],
'sources': [ './http_parser.c', ],
'msvs_settings': {
'VCCLCompilerTool': {
# Compile as C++. http_parser.c is actually C99, but C++ is
# close enough in this case.
'CompileAs': 2, # compile as C++
},
},
'conditions': [
['OS=="win"', {
'msvs_settings': {
'VCCLCompilerTool': {
# Compile as C++. http_parser.c is actually C99, but C++ is
# close enough in this case.
'CompileAs': 2,
},
},
}]
],
},
{
'target_name': 'test',
'type': 'executable',

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;
@@ -222,7 +222,7 @@ struct http_parser {
* Should be checked when http_parser_execute() returns in addition to
* error checking.
*/
char upgrade : 1;
unsigned char upgrade : 1;
#if HTTP_PARSER_DEBUG
uint32_t error_lineno;

View File

@@ -680,6 +680,56 @@ const struct message requests[] =
,.body= ""
}
/* see https://github.com/ry/http-parser/issues/47 */
#define EAT_TRAILING_CRLF_NO_CONNECTION_CLOSE 28
, {.name = "eat CRLF between requests, no \"Connection: close\" header"
,.raw= "POST / HTTP/1.1\r\n"
"Host: www.example.com\r\n"
"Content-Type: application/x-www-form-urlencoded\r\n"
"Content-Length: 4\r\n"
"\r\n"
"q=42\r\n" /* note the trailing CRLF */
,.should_keep_alive= TRUE
,.message_complete_on_eof= FALSE
,.http_major= 1
,.http_minor= 1
,.method= HTTP_POST
,.request_url= "/"
,.num_headers= 3
,.upgrade= 0
,.headers= { { "Host", "www.example.com" }
, { "Content-Type", "application/x-www-form-urlencoded" }
, { "Content-Length", "4" }
}
,.body= "q=42"
}
/* see https://github.com/ry/http-parser/issues/47 */
#define EAT_TRAILING_CRLF_WITH_CONNECTION_CLOSE 29
, {.name = "eat CRLF between requests even if \"Connection: close\" is set"
,.raw= "POST / HTTP/1.1\r\n"
"Host: www.example.com\r\n"
"Content-Type: application/x-www-form-urlencoded\r\n"
"Content-Length: 4\r\n"
"Connection: close\r\n"
"\r\n"
"q=42\r\n" /* note the trailing CRLF */
,.should_keep_alive= FALSE
,.message_complete_on_eof= FALSE /* input buffer isn't empty when on_message_complete is called */
,.http_major= 1
,.http_minor= 1
,.method= HTTP_POST
,.request_url= "/"
,.num_headers= 4
,.upgrade= 0
,.headers= { { "Host", "www.example.com" }
, { "Content-Type", "application/x-www-form-urlencoded" }
, { "Content-Length", "4" }
, { "Connection", "close" }
}
,.body= "q=42"
}
, {.name= NULL } /* sentinel */
};
@@ -780,8 +830,8 @@ const struct message responses[] =
, {.name= "404 no headers no body"
,.type= HTTP_RESPONSE
,.raw= "HTTP/1.1 404 Not Found\r\n\r\n"
,.should_keep_alive= TRUE
,.message_complete_on_eof= FALSE
,.should_keep_alive= FALSE
,.message_complete_on_eof= TRUE
,.http_major= 1
,.http_minor= 1
,.status_code= 404
@@ -795,8 +845,8 @@ const struct message responses[] =
, {.name= "301 no response phrase"
,.type= HTTP_RESPONSE
,.raw= "HTTP/1.1 301\r\n\r\n"
,.should_keep_alive = TRUE
,.message_complete_on_eof= FALSE
,.should_keep_alive = FALSE
,.message_complete_on_eof= TRUE
,.http_major= 1
,.http_minor= 1
,.status_code= 301
@@ -1041,6 +1091,60 @@ const struct message responses[] =
,.body= ""
}
#define HTTP_VERSION_0_9 12
/* Should handle HTTP/0.9 */
, {.name= "http version 0.9"
,.type= HTTP_RESPONSE
,.raw= "HTTP/0.9 200 OK\r\n"
"\r\n"
,.should_keep_alive= FALSE
,.message_complete_on_eof= TRUE
,.http_major= 0
,.http_minor= 9
,.status_code= 200
,.num_headers= 0
,.headers=
{}
,.body= ""
}
#define NO_CONTENT_LENGTH_NO_TRANSFER_ENCODING_RESPONSE 13
/* The client should wait for the server's EOF. That is, when neither
* content-length nor transfer-encoding is specified, the end of body
* is specified by the EOF.
*/
, {.name= "neither content-length nor transfer-encoding response"
,.type= HTTP_RESPONSE
,.raw= "HTTP/1.1 200 OK\r\n"
"Content-Type: text/plain\r\n"
"\r\n"
"hello world"
,.should_keep_alive= FALSE
,.message_complete_on_eof= TRUE
,.http_major= 1
,.http_minor= 1
,.status_code= 200
,.num_headers= 1
,.headers=
{ { "Content-Type", "text/plain" }
}
,.body= "hello world"
}
#define NO_HEADERS_NO_BODY_204 14
, {.name= "204 no headers no body"
,.type= HTTP_RESPONSE
,.raw= "HTTP/1.1 204 No Content\r\n\r\n"
,.should_keep_alive= TRUE
,.message_complete_on_eof= FALSE
,.http_major= 1
,.http_minor= 1
,.status_code= 204
,.num_headers= 0
,.headers= {}
,.body_size= 0
,.body= ""
}
, {.name= NULL } /* sentinel */
};
@@ -1872,7 +1976,7 @@ main (void)
printf("response scan 1/2 ");
test_scan( &responses[TRAILING_SPACE_ON_CHUNKED_BODY]
, &responses[NO_HEADERS_NO_BODY_404]
, &responses[NO_HEADERS_NO_BODY_204]
, &responses[NO_REASON_PHRASE]
);

20
deps/npm/.npmignore vendored Normal file
View File

@@ -0,0 +1,20 @@
*.swp
test/bin
test/output.log
test/packages/*/node_modules
test/packages/npm-test-depends-on-spark/which-spark.log
test/packages/test-package/random-data.txt
test/root
node_modules/ronn
node_modules/.bin
npm-debug.log
./npmrc
.gitignore
release/
# don't need these in the npm package.
html/*.png
# don't ignore .npmignore files
# these are used in some tests.
!.npmignore

4
deps/npm/.travis.yml vendored Normal file
View File

@@ -0,0 +1,4 @@
language: node_js
before_install: "make &>out || cat out; rm out"
node_js:
- 0.6

68
deps/npm/AUTHORS vendored Normal file
View File

@@ -0,0 +1,68 @@
# Authors sorted by whether or not they're me
Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)
Steve Steiner <ssteinerX@gmail.com> (http://websaucesoftware.com/blog/)
Mikeal Rogers <mikeal.rogers@gmail.com> (http://www.mikealrogers.com/)
Aaron Blohowiak <aaron.blohowiak@gmail.com> (http://aaronblohowiak.com/)
Martyn Smith <martyn@dollyfish.net.nz> (http://dollyfish.net.nz/)
Mathias Pettersson <mape@mape.me> (http://mape.me/)
Brian Hammond <brian@fictorial.com> (http://fictorial.com/)
Charlie Robbins <charlie.robbins@gmail.com> (http://www.charlierobbins.com/)
Francisco Treacy <francisco.treacy@gmail.com> (http://franciscotreacy.com/)
Cliffano Subagio <cliffano@gmail.com> (http://blog.cliffano.com/)
Christian Eager <christian.eager@nokia.com> (http://perpenduum.com)
Dav Glass <davglass@gmail.com> (http://blog.davglass.com)
Alex K. Wolfe <alexkwolfe@gmail.com>
James Sanders <jimmyjazz14@gmail.com> (http://james-sanders.com/)
Reid Burke <me@reidburke.com> (http://reidburke.com/)
Arlo Breault <arlolra@gmail.com> (http://thoughtherder.com/)
Timo Derstappen <teemow@gmail.com> (http://teemow.com)
Bradley Meck <bradley.meck@gmail.com>
Bart Teeuwisse <bart.teeuwisse@thecodemill.biz> (http://thecodemill.biz/)
Ben Noordhuis <info@bnoordhuis.nl> (http://bnoordhuis.nl/)
Tor Valamo <tor.valamo@gmail.com> (http://www.magnimedia.no/)
Whyme.Lyu <5longluna@gmail.com> (http://whyme.kuantu.com/)
Olivier Melcher <olivier.melcher@gmail.com>
Tomaž Muraus <kami@k5-storitve.net> (http://www.tomaz-muraus.info)
Evan Meagher <evan.meagher@gmail.com> (http://evanmeagher.net/)
Orlando Vazquez <ovazquez@gmail.com> (http://2wycked.net/)
George Miroshnykov <gmiroshnykov@lohika.com>
Geoff Flarity (http://ca.linkedin.com/pub/geoff-flarity/a/536/43a)
Pete Kruckenberg <pete@kruckenberg.com>
Laurie Harper <laurie@holoweb.net> (http://laurie.holoweb.net/)
Chris Wong <chris@chriswongstudio.com>
Max Goodman <c@chromacode.com> (http://chromacode.com/)
Scott Bronson <brons_github@rinspin.com>
Federico Romero <federomero@gmail.com>
Visnu Pitiyanuvath <visnupx@gmail.com> (http://visnup.com)
Irakli Gozalishvili <rfobic@gmail.com> (http://jeditoolkit.com/)
Mark Cahill <mark@tiemonster.info> (http://www.tiemonster.info/)
Zearin <zearin@gonk.net>
Iain Sproat <iainsproat@gmail.com>
Trent Mick <trentm@gmail.com> (http://trentm.com/)
Felix Geisendörfer <felix@debuggable.com> (http://www.debuggable.com/)
Conny Brunnkvist <cbrunnkvist@gmail.com> (http://twitter.com/connyb)
Will Elwood <w.elwood08@gmail.com> (https://github.com/welwood08)
Oleg Efimov <efimovov@gmail.com> (http://sannis.ru)
Martin Cooper <mfncooper@gmail.com>
Jameson Little <t.jameson.little@gmail.com>
cspotcode <cspotcode@gmail.com>
Maciej Małecki <maciej.malecki@notimplemented.org>
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>
Jens Grunert <jens.grunert@gmail.com>
Joost-Wim Boekesteijn <joost-wim@boekesteijn.nl>
Dalmais Maxence <github@maxired.fr>
Marcus Ekwall <marcus.ekwall@gmail.com>
Aaron Stacy <aaron.r.stacy@gmail.com>

59
deps/npm/LICENSE vendored Normal file
View File

@@ -0,0 +1,59 @@
Copyright 2009-2012, Isaac Z. Schlueter (the "Original Author")
All rights reserved.
MIT +no-false-attribs License
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.
Distributions of all or part of the Software intended to be used
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 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
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.
Except where noted, this license applies to any and all software
programs and associated documentation files created by the
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
officially affiliated with Joyent, Inc.
Packages published in the npm registry are not part of npm
itself, are the sole property of their respective maintainers,
and are not covered by this license.
"npm Logo" created by Mathias Pettersson and Brian Hammond,
used with permission.
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.

136
deps/npm/Makefile vendored Normal file
View File

@@ -0,0 +1,136 @@
SHELL = bash
markdowns = $(shell find doc -name '*.md' | grep -v 'index') README.md
cli_mandocs = $(shell find doc/cli -name '*.md' \
|sed 's|.md|.1|g' \
|sed 's|doc/cli/|man/man1/|g' ) \
man/man1/README.1 \
man/man1/index.1
api_mandocs = $(shell find doc/api -name '*.md' \
|sed 's|.md|.3|g' \
|sed 's|doc/api/|man/man3/|g' )
cli_htmldocs = $(shell find doc/cli -name '*.md' \
|grep -v 'index.md' \
|sed 's|.md|.html|g' \
|sed 's|doc/cli/|html/doc/|g' ) \
html/doc/README.html \
html/doc/index.html
api_htmldocs = $(shell find doc/api -name '*.md' \
|sed 's|.md|.html|g' \
|sed 's|doc/api/|html/api/|g' )
mandocs = $(api_mandocs) $(cli_mandocs)
htmldocs = $(api_htmldocs) $(cli_htmldocs)
all: doc
latest:
@echo "Installing latest published npm"
@echo "Use 'make install' or 'make link' to install the code"
@echo "in this folder that you're looking at right now."
node cli.js install -g -f npm
install: all
node cli.js install -g -f
# backwards compat
dev: install
link: uninstall
node cli.js link -f
clean: doc-clean uninstall
rm npmrc
node cli.js cache clean
uninstall:
node cli.js rm npm -g -f
doc: $(mandocs) $(htmldocs)
docclean: doc-clean
doc-clean:
rm -rf \
node_modules/ronn \
node_modules/.bin/ronn \
.building_ronn \
doc/cli/index.md \
doc/api/index.md \
$(api_mandocs) \
$(cli_mandocs) \
$(api_htmldocs) \
$(cli_htmldocs) \
&>/dev/null || true
# use `npm install ronn` for this to work.
man/man1/README.1: README.md scripts/doc-build.sh package.json
scripts/doc-build.sh $< $@
man/man1/%.1: doc/cli/%.md scripts/doc-build.sh package.json
@[ -d man/man1 ] || mkdir -p man/man1
scripts/doc-build.sh $< $@
man/man3/%.3: doc/api/%.md scripts/doc-build.sh package.json
@[ -d man/man3 ] || mkdir -p man/man3
scripts/doc-build.sh $< $@
html/doc/README.html: README.md html/dochead.html html/docfoot.html scripts/doc-build.sh package.json
scripts/doc-build.sh $< $@
html/doc/%.html: doc/cli/%.md html/dochead.html html/docfoot.html scripts/doc-build.sh package.json
scripts/doc-build.sh $< $@
html/api/%.html: doc/api/%.md html/dochead.html html/docfoot.html scripts/doc-build.sh package.json
scripts/doc-build.sh $< $@
doc/cli/index.md: $(markdowns) scripts/index-build.js scripts/doc-build.sh package.json
node scripts/index-build.js > $@
node_modules/.bin/ronn:
node cli.js install https://github.com/isaacs/ronnjs/tarball/master
doc: man
man: $(cli_docs) $(api_docs)
test:
node cli.js test
version: link
git add package.json &&\
git ci -m v$(shell npm -v)
publish: link doc
@git tag -d v$(shell npm -v) || true
@git push origin :v$(shell npm -v) || true
@npm unpublish npm@$(shell npm -v) || true
git clean -fd
git tag -s -m v$(shell npm -v) v$(shell npm -v) &&\
git push origin --tags &&\
npm publish &&\
npm tag npm@$(shell npm -v) $(shell npm -v | awk -F. '{print $$1 "." $$2}') &&\
make doc-publish &&\
make zip-publish
docpublish: doc-publish
doc-publish: doc
rsync -vazu --stats --no-implied-dirs --delete html/doc/ npmjs.org:/var/www/npmjs.org/public/doc
rsync -vazu --stats --no-implied-dirs --delete html/api/ npmjs.org:/var/www/npmjs.org/public/api
rsync -vazu --stats --no-implied-dirs --delete html/webfonts/ npmjs.org:/var/www/npmjs.org/public/webfonts
scp html/style.css npmjs.org:/var/www/npmjs.org/public/
zip-publish: release
scp release/* npmjs.org:/var/www/npmjs.org/public/dist/
release:
@bash scripts/release.sh
sandwich:
@[ $$(whoami) = "root" ] && (echo "ok"; echo "ham" > sandwich) || echo "make it yourself"
.PHONY: all latest install dev link doc clean uninstall test man doc-publish doc-clean docclean docpublish release zip-publish

266
deps/npm/README.md vendored Normal file
View File

@@ -0,0 +1,266 @@
npm(1) -- node package manager
==============================
## SYNOPSIS
This is just enough info to get you up and running.
Much more info available via `npm help` once it's installed.
## IMPORTANT
**You need node v0.6 or higher to run this program.**
To install an old **and unsupported** version of npm that works on node 0.3
and prior, clone the git repo and dig through the old tags and branches.
## Super Easy Install
npm comes with node now.
### Windows Computers
Get the MSI. npm is in it.
### Apple Macintosh Computers
Get the pkg. npm is in it.
### Other Sorts of Unices
Run `make install`. npm will be installed with node.
If you want a more fancy pants install (a different version, customized
paths, etc.) then read on.
## Fancy Install (Unix)
To install npm with one command, do this:
curl http://npmjs.org/install.sh | sh
To skip the npm 0.x cleanup, do this:
curl http://npmjs.org/install.sh | clean=no sh
To say "yes" to the 0.x cleanup, but skip the prompt:
curl http://npmjs.org/install.sh | clean=yes sh
If you get permission errors, you'll need to **run** the script as root.
(Note, just putting `sudo` in front of the `curl` will **fetch** the script
as root.)
### Slightly Fancier
You can set any npm configuration params with that script:
curl http://npmjs.org/install.sh | npm_config_prefix=/some/path sh
Or, you can run it in uber-debuggery mode:
curl http://npmjs.org/install.sh | npm_debug=1 sh
### Even Fancier
Get the code with git. Use `make` to build the docs and do other stuff.
If you plan on hacking on npm, `make link` is your friend.
If you've got the npm source code, you can also semi-permanently set
arbitrary config keys using the `./configure --key=val ...`, and then
run npm commands by doing `node cli.js <cmd> <args>`. (This is helpful
for testing, or running stuff without actually installing npm itself.)
## Fancy Windows Install
You can download a zip file from <http://npmjs.org/dist/>, and unpack it
in the same folder where node.exe lives.
If that's not fancy enough for you, then you can fetch the code with
git, and mess with it directly.
## Installing on Cygwin
No.
## Dev Install
To install the latest **unstable** development version from git:
git clone https://github.com/isaacs/npm.git
cd npm
git submodule update --init --recursive
sudo make install # (or: `node cli.js install -gf`)
If you're sitting in the code folder reading this document in your
terminal, then you've already got the code. Just do:
git submodule update --init --recursive
sudo make install
and npm will install itself.
Note that github tarballs **do not contain submodules**, so
those won't work. You'll have to also fetch the appropriate submodules
listed in the .gitmodules file.
## Permissions when Using npm to Install Other Stuff
**tl;dr**
* Use `sudo` for greater safety. Or don't, if you prefer not to.
* npm will downgrade permissions if it's root before running any build
scripts that package authors specified.
### More details...
As of version 0.3, it is recommended to run npm as root.
This allows npm to change the user identifier to the `nobody` user prior
to running any package build or test commands.
If you are not the root user, or if you are on a platform that does not
support uid switching, then npm will not attempt to change the userid.
If you would like to ensure that npm **always** runs scripts as the
"nobody" user, and have it fail if it cannot downgrade permissions, then
set the following configuration param:
npm config set unsafe-perm false
This will prevent running in unsafe mode, even as non-root users.
## Uninstalling
So sad to see you go.
sudo npm uninstall npm -g
Or, if that fails,
sudo make uninstall
## More Severe Uninstalling
Usually, the above instructions are sufficient. That will remove
npm, but leave behind anything you've installed.
If you would like to remove all the packages that you have installed,
then you can use the `npm ls` command to find them, and then `npm rm` to
remove them.
To remove cruft left behind by npm 0.x, you can use the included
`clean-old.sh` script file. You can run it conveniently like this:
npm explore npm -g -- sh scripts/clean-old.sh
npm uses two configuration files, one for per-user configs, and another
for global (every-user) configs. You can view them by doing:
npm config get userconfig # defaults to ~/.npmrc
npm config get globalconfig # defaults to /usr/local/etc/npmrc
Uninstalling npm does not remove configuration files by default. You
must remove them yourself manually if you want them gone. Note that
this means that future npm installs will not remember the settings that
you have chosen.
## Using npm Programmatically
If you would like to use npm programmatically, you can do that.
It's not very well documented, but it *is* rather simple.
var npm = require("npm")
npm.load(myConfigObject, function (er) {
if (er) return handlError(er)
npm.commands.install(["some", "args"], function (er, data) {
if (er) return commandFailed(er)
// command succeeded, and data might have some info
})
npm.on("log", function (message) { .... })
})
The `load` function takes an object hash of the command-line configs.
The various `npm.commands.<cmd>` functions take an **array** of
positional argument **strings**. The last argument to any
`npm.commands.<cmd>` function is a callback. Some commands take other
optional arguments. Read the source.
You cannot set configs individually for any single npm function at this
time. Since `npm` is a singleton, any call to `npm.config.set` will
change the value for *all* npm commands in that process.
See `./bin/npm-cli.js` for an example of pulling config values off of the
command line arguments using nopt. You may also want to check out `npm
help config` to learn about all the options you can set there.
## More Docs
Check out the [docs](http://npmjs.org/doc/),
especially the [faq](http://npmjs.org/doc/faq.html).
You can use the `npm help` command to read any of them.
If you're a developer, and you want to use npm to publish your program,
you should
[read this](http://npmjs.org/doc/developers.html)
## Legal Stuff
"npm" and "the npm registry" are owned by Isaac Z. Schlueter. All
rights not explicitly granted in the MIT license are reserved. See the
included LICENSE file for more details.
"Node.js" and "node" are trademarks owned by Joyent, Inc. npm is not
officially part of the Node.js project, and is neither owned by nor
officially affiliated with Joyent, Inc.
The packages in the npm registry are not part of npm itself, and are the
sole property of their respective maintainers. While every effort is
made to ensure accountability, there is absolutely no guarantee,
warrantee, or assertion made as to the quality, fitness for a specific
purpose, or lack of malice in any given npm package. Modules
published on the npm registry are not affiliated with or endorsed by
Joyent, Inc., Isaac Z. Schlueter, Ryan Dahl, or the Node.js project.
If you have a complaint about a package in the npm registry, and cannot
resolve it with the package owner, please express your concerns to
Isaac Z. Schlueter at <i@izs.me>.
### In plain english
This is mine; not my employer's, not Node's, not Joyent's, not Ryan
Dahl's.
If you publish something, it's yours, and you are solely accountable
for it. Not me, not Node, not Joyent, not Ryan Dahl.
If other people publish something, it's theirs. Not mine, not Node's,
not Joyent's, not Ryan Dahl's.
Yes, you can publish something evil. It will be removed promptly if
reported, and we'll lose respect for you. But there is no vetting
process for published modules.
If this concerns you, inspect the source before using packages.
## BUGS
When you find issues, please report them:
* web:
<http://github.com/isaacs/npm/issues>
* email:
<npm-@googlegroups.com>
Be sure to include *all* of the output from the npm command that didn't work
as expected. The `npm-debug.log` file is also helpful to provide.
You can also look for isaacs in #node.js on irc://irc.freenode.net. He
will no doubt tell you to put the output in a gist or email.
## SEE ALSO
* npm(1)
* npm-faq(1)
* npm-help(1)
* npm-index(1)

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" %*

6
deps/npm/bin/npm vendored Executable file
View File

@@ -0,0 +1,6 @@
#!/bin/sh
if [ -x "`dirname "$0"`/node.exe" ]; then
"`dirname "$0"`/node.exe" "`dirname "$0"`/node_modules/npm/bin/npm-cli.js" "$@"
else
node "`dirname "$0"`/node_modules/npm/bin/npm-cli.js" "$@"
fi

87
deps/npm/bin/npm-cli.js vendored Executable file
View File

@@ -0,0 +1,87 @@
#!/usr/bin/env node
;(function () { // wrapper in case we're in module_context mode
// windows: running "npm blah" in this folder will invoke WSH, not node.
if (typeof WScript !== "undefined") {
WScript.echo("npm does not work when run\n"
+"with the Windows Scripting Host\n\n"
+"'cd' to a different directory,\n"
+"or type 'npm.cmd <args>',\n"
+"or type 'node npm <args>'.")
WScript.quit(1)
return
}
process.title = "npm"
var log = require("../lib/utils/log.js")
log.waitForConfig()
log.info("ok", "it worked if it ends with")
var fs = require("graceful-fs")
, path = require("path")
, npm = require("../lib/npm.js")
, ini = require("../lib/utils/ini.js")
, errorHandler = require("../lib/utils/error-handler.js")
, configDefs = require("../lib/utils/config-defs.js")
, shorthands = configDefs.shorthands
, types = configDefs.types
, nopt = require("nopt")
// if npm is called as "npmg" or "npm_g", then
// run in global mode.
if (path.basename(process.argv[1]).slice(-1) === "g") {
process.argv.splice(1, 1, "npm", "-g")
}
log.verbose(process.argv, "cli")
var conf = nopt(types, shorthands)
npm.argv = conf.argv.remain
if (npm.deref(npm.argv[0])) npm.command = npm.argv.shift()
else conf.usage = true
if (conf.version) {
console.log(npm.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")
// make sure that this version of node works with this version of npm.
var semver = require("semver")
, nodeVer = process.version
, reqVer = npm.nodeVersionRequired
if (reqVer && !semver.satisfies(nodeVer, reqVer)) {
return errorHandler(new Error(
"npm doesn't work with node " + nodeVer
+ "\nRequired: node@" + reqVer), true)
}
process.on("uncaughtException", errorHandler)
if (conf.usage && npm.command !== "help") {
npm.argv.unshift(npm.command)
npm.command = "help"
}
// now actually fire up npm and run the command.
// this is how to use npm programmatically:
conf._exit = true
npm.load(conf, function (er) {
if (er) return errorHandler(er)
npm.commands[npm.command](npm.argv, errorHandler)
})
})()

6
deps/npm/bin/npm.cmd vendored Normal file
View File

@@ -0,0 +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" %*
) ELSE (
node "%~dp0\.\node_modules\npm\bin\npm-cli.js" %*
)

22
deps/npm/bin/read-package-json.js vendored Executable file
View File

@@ -0,0 +1,22 @@
var argv = process.argv
if (argv.length < 3) {
console.error("Usage: read-package.json <file> [<fields> ...]")
process.exit(1)
}
var fs = require("fs")
, file = argv[2]
, readJson = require("../lib/utils/read-json")
readJson(file, function (er, data) {
if (er) throw er
if (argv.length === 3) console.log(data)
else argv.slice(3).forEach(function (field) {
field = field.split(".")
var val = data
field.forEach(function (f) {
val = val[f]
})
console.log(val)
})
})

2
deps/npm/cli.js vendored Executable file
View File

@@ -0,0 +1,2 @@
#!/usr/bin/env node
require("./bin/npm-cli.js")

33
deps/npm/configure vendored Executable file
View File

@@ -0,0 +1,33 @@
#!/bin/bash
# set configurations that will be "sticky" on this system,
# surviving npm self-updates.
CONFIGS=()
i=0
# get the location of this file.
unset CDPATH
CONFFILE=$(cd $(dirname "$0"); pwd -P)/npmrc
while [ $# -gt 0 ]; do
conf="$1"
case $conf in
--help)
echo "./configure --param=value ..."
exit 0
;;
--*)
CONFIGS[$i]="${conf:2}"
;;
*)
CONFIGS[$i]="$conf"
;;
esac
let i++
shift
done
for c in "${CONFIGS[@]}"; do
echo "$c" >> "$CONFFILE"
done

13
deps/npm/doc/api/bin.md vendored Normal file
View File

@@ -0,0 +1,13 @@
npm-bin(3) -- Display npm bin folder
====================================
## SYNOPSIS
npm.commands.bin(args, cb)
## DESCRIPTION
Print the folder where npm will install executables.
This function should not be used programmatically. Instead, just refer
to the `npm.bin` member.

19
deps/npm/doc/api/bugs.md vendored Normal file
View File

@@ -0,0 +1,19 @@
npm-bugs(3) -- Bugs for a package in a web browser maybe
========================================================
## SYNOPSIS
npm.commands.bugs(package, callback)
## DESCRIPTION
This command tries to guess at the likely location of a package's
bug tracker URL, and then tries to open it using the `--browser`
config param.
Like other commands, the first parameter is an array. This command only
uses the first element, which is expected to be a package name with an
optional version number.
This command will launch a browser, so this command may not be the most
friendly for programmatic use.

22
deps/npm/doc/api/commands.md vendored Normal file
View File

@@ -0,0 +1,22 @@
npm-commands(3) -- npm commands
===============================
## SYNOPSIS
npm.commands[<command>](args, callback)
## DESCRIPTION
npm comes with a full set of commands, and each of the commands takes a
similar set of arguments.
In general, all commands on the command object take an **array** of positional
argument **strings**. The last argument to any function is a callback. Some
commands are special and take other optional arguments.
All commands have their own man page. See `man npm-<command>` for command-line
usage, or `man 3 npm-<command>` for programmatic usage.
## SEE ALSO
* npm-index(1)

45
deps/npm/doc/api/config.md vendored Normal file
View File

@@ -0,0 +1,45 @@
npm-config(3) -- Manage the npm configuration files
===================================================
## SYNOPSIS
npm.commands.config(args, callback)
var val = npm.config.get(key)
npm.config.set(key, val)
## DESCRIPTION
This function acts much the same way as the command-line version. The first
element in the array tells config what to do. Possible values are:
* `set`
Sets a config parameter. The second element in `args` is interpreted as the
key, and the third element is interpreted as the value.
* `get`
Gets the value of a config parameter. The second element in `args` is the
key to get the value of.
* `delete` (`rm` or `del`)
Deletes a parameter from the config. The second element in `args` is the
key to delete.
* `list` (`ls`)
Show all configs that aren't secret. No parameters necessary.
* `edit`:
Opens the config file in the default editor. This command isn't very useful
programmatically, but it is made available.
To programmatically access npm configuration settings, or set them for
the duration of a program, use the `npm.config.set` and `npm.config.get`
functions instead.
## SEE ALSO
* npm(3)

32
deps/npm/doc/api/deprecate.md vendored Normal file
View File

@@ -0,0 +1,32 @@
npm-deprecate(3) -- Deprecate a version of a package
====================================================
## SYNOPSIS
npm.commands.deprecate(args, callback)
## DESCRIPTION
This command will update the npm registry entry for a package, providing
a deprecation warning to all who attempt to install it.
The 'args' parameter must have exactly two elements:
* `package[@version]`
The `version` portion is optional, and may be either a range, or a
specific version, or a tag.
* `message`
The warning message that will be printed whenever a user attempts to
install the package.
Note that you must be the package owner to deprecate something. See the
`owner` and `adduser` help topics.
## SEE ALSO
* npm-publish(3)
* npm-unpublish(3)
* npm-registry(1)

19
deps/npm/doc/api/docs.md vendored Normal file
View File

@@ -0,0 +1,19 @@
npm-docs(3) -- Docs for a package in a web browser maybe
========================================================
## SYNOPSIS
npm.commands.docs(package, callback)
## DESCRIPTION
This command tries to guess at the likely location of a package's
documentation URL, and then tries to open it using the `--browser`
config param.
Like other commands, the first parameter is an array. This command only
uses the first element, which is expected to be a package name with an
optional version number.
This command will launch a browser, so this command may not be the most
friendly for programmatic use.

24
deps/npm/doc/api/edit.md vendored Normal file
View File

@@ -0,0 +1,24 @@
npm-edit(3) -- Edit an installed package
========================================
## SYNOPSIS
npm.commands.edit(package, callback)
## DESCRIPTION
Opens the package folder in the default editor (or whatever you've
configured as the npm `editor` config -- see `npm help config`.)
After it has been edited, the package is rebuilt so as to pick up any
changes in compiled packages.
For instance, you can do `npm install connect` to install connect
into your package, and then `npm.commands.edit(["connect"], callback)`
to make a few changes to your locally installed copy.
The first parameter is a string array with a single element, the package
to open. The package can optionally have a version number attached.
Since this command opens an editor in a new process, be careful about where
and how this is used.

18
deps/npm/doc/api/explore.md vendored Normal file
View File

@@ -0,0 +1,18 @@
npm-explore(3) -- Browse an installed package
=============================================
## SYNOPSIS
npm.commands.explore(args, callback)
## DESCRIPTION
Spawn a subshell in the directory of the installed package specified.
If a command is specified, then it is run in the subshell, which then
immediately terminates.
Note that the package is *not* automatically rebuilt afterwards, so be
sure to use `npm rebuild <pkg>` if you make any changes.
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.

30
deps/npm/doc/api/help-search.md vendored Normal file
View File

@@ -0,0 +1,30 @@
npm-help-search(3) -- Search the help pages
===========================================
## SYNOPSIS
npm.commands.helpSearch(args, [silent,] callback)
## DESCRIPTION
This command is rarely useful, but it exists in the rare case that it is.
This command takes an array of search terms and returns the help pages that
match in order of best match.
If there is only one match, then npm displays that help section. If there
are multiple results, the results are printed to the screen formatted and the
array of results is returned. Each result is an object with these properties:
* hits:
A map of args to number of hits on that arg. For example, {"npm": 3}
* found:
Total number of unique args that matched.
* totalHits:
Total number of hits.
* lines:
An array of all matching lines (and some adjacent lines).
* file:
Name of the file that matched
The silent parameter is not neccessary not used, but it may in the future.

29
deps/npm/doc/api/init.md vendored Normal file
View File

@@ -0,0 +1,29 @@
npm init(3) -- Interactively create a package.json file
=======================================================
## SYNOPSIS
npm.commands.init(args, callback)
## DESCRIPTION
This will ask you a bunch of questions, and then write a package.json for you.
It attempts to make reasonable guesses about what you want things to be set to,
and then writes a package.json file with the options you've selected.
If you already have a package.json file, it'll read that first, and default to
the options in there.
It is strictly additive, so it does not delete options from your package.json
without a really good reason to do so.
Since this function expects to be run on the command-line, it doesn't work very
well as a programmatically. The best option is to roll your own, and since
JavaScript makes it stupid simple to output formatted JSON, that is the
preferred method. If you're sure you want to handle command-line prompting,
then go ahead and use this programmatically.
## SEE ALSO
npm-json(1)

19
deps/npm/doc/api/install.md vendored Normal file
View File

@@ -0,0 +1,19 @@
npm-install(3) -- install a package programmatically
====================================================
## SYNOPSIS
npm.commands.install([where,] packages, callback)
## DESCRIPTION
This acts much the same ways as installing on the command-line.
The 'where' parameter is optional and only used internally, and it specifies
where the packages should be installed to.
The 'packages' parameter is an array of strings. Each element in the array is
the name of a package to be installed.
Finally, 'callback' is a function that will be called when all packages have been
installed or when an error has been encountered.

33
deps/npm/doc/api/link.md vendored Normal file
View File

@@ -0,0 +1,33 @@
npm-link(3) -- Symlink a package folder
=======================================
## SYNOPSIS
npm.command.link(callback)
npm.command.link(packages, callback)
## DESCRIPTION
Package linking is a two-step process.
Without parameters, link will create a globally-installed
symbolic link from `prefix/package-name` to the current folder.
With a parameters, link will create a symlink from the local `node_modules`
folder to the global symlink.
When creating tarballs for `npm publish`, the linked packages are
"snapshotted" to their current state by resolving the symbolic links.
This is
handy for installing your own stuff, so that you can work on it and test it
iteratively without having to continually rebuild.
For example:
npm.commands.link(cb) # creates global link from the cwd
# (say redis package)
npm.commands.link('redis', cb) # link-install the package
Now, any changes to the redis package will be reflected in
the package in the current working directory

26
deps/npm/doc/api/load.md vendored Normal file
View File

@@ -0,0 +1,26 @@
npm-load(3) -- Load config settings
===================================
## SYNOPSIS
npm.load(conf, cb)
## DESCRIPTION
npm.load() must be called before any other function call. Both parameters are
optional, but the second is recommended.
The first parameter is an object hash of command-line config params, and the
second parameter is a callback that will be called when npm is loaded and
ready to serve.
The first parameter should follow a similar structure as the package.json
config object.
For example, to emulate the --dev flag, pass an object that looks like this:
{
"dev": true
}
For a list of all the available command-line configs, see `npm help config`

56
deps/npm/doc/api/ls.md vendored Normal file
View File

@@ -0,0 +1,56 @@
npm-ls(3) -- List installed packages
======================================
## SYNOPSIS
npm.commands.ls(args, [silent,] callback)
## DESCRIPTION
This command will print to stdout all the versions of packages that are
installed, as well as their dependencies, in a tree-structure. It will also
return that data using the callback.
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, though you may set config flags
like with any other command, such as `global` to list global packages.
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
* Default: false
* Type: Boolean
Show extended information.
### parseable
* Default: false
* Type: Boolean
Show parseable output instead of tree view.
### global
* Default: false
* Type: Boolean
List packages in the global install prefix instead of in the current
project.
Note, if parseable is set or long isn't set, then duplicates will be trimmed.
This means that if a submodule a same dependency as a parent module, then the
dependency will only be output once.

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

@@ -0,0 +1,115 @@
npm(3) -- node package manager
==============================
## SYNOPSIS
var npm = require("npm")
npm.load(configObject, function (er, npm) {
// use the npm object, now that it's loaded.
npm.config.set(key, val)
val = npm.config.get(key)
console.log("prefix = %s", npm.prefix)
npm.commands.install(["package"], cb)
})
## VERSION
@VERSION@
## DESCRIPTION
This is the API documentation for npm.
To find documentation of the command line
client, see `npm(1)`.
Prior to using npm's commands,
`npm.load()` must be called with an object hash of
top-level configs. In the npm command line client,
this set of configs is parsed from the command line options. Additional
configuration params are loaded from two configuration files. See
`npm-config(1)` for more information.
After that, each of the functions are accessible in the
commands object: `npm.commands.<cmd>`. See `npm-index(1)` for a list of
all possible commands.
All commands on the command object take an **array** of positional argument
**strings**. The last argument to any function is a callback. Some
commands take other optional arguments.
Configs cannot currently be set on a per function basis, as each call to
npm.config.set will change the value for *all* npm commands in that process.
To find API documentation for a specific command, run the `npm apihelp`
command.
## METHODS AND PROPERTIES
* `npm.load(configs, cb)`
Load the configuration params, and call the `cb` function once the
globalconfig and userconfig files have been loaded as well, or on
nextTick if they've already been loaded.
* `npm.config`
An object for accessing npm configuration parameters.
* `npm.config.get(key)`
* `npm.config.set(key, val)`
* `npm.config.del(key)`
* `npm.dir` or `npm.root`
The `node_modules` directory where npm will operate.
* `npm.prefix`
The prefix where npm is operating. (Most often the current working
directory.)
* `npm.cache`
The place where npm keeps JSON and tarballs it fetches from the
registry (or uploads to the registry).
* `npm.tmp`
npm's temporary working directory.
* `npm.deref`
Get the "real" name for a command that has either an alias or
abbreviation.
## MAGIC
For each of the methods in the `npm.commands` hash, a method is added to
the npm object, which takes a set of positional string arguments rather
than an array and a callback.
If the last argument is a callback, then it will use the supplied
callback. However, if no callback is provided, then it will print out
the error or results.
For example, this would work in a node repl:
> npm = require("npm")
> npm.load() // wait a sec...
> npm.install("dnode", "express")
Note that that *won't* work in a node program, since the `install`
method will get called before the configuration load is completed.
## ABBREVS
In order to support `npm ins foo` instead of `npm install foo`, the
`npm.commands` object has a set of abbreviations as well as the full
method names. Use the `npm.deref` method to find the real name.
For example:
var cmd = npm.deref("unp") // cmd === "unpublish"

13
deps/npm/doc/api/outdated.md vendored Normal file
View File

@@ -0,0 +1,13 @@
npm-outdated(3) -- Check for outdated packages
==============================================
## SYNOPSIS
npm.commands.outdated([packages,] callback)
## DESCRIPTION
This command will check the registry to see if the specified packages are
currently outdated.
If the 'packages' parameter is left out, npm will check all packages.

31
deps/npm/doc/api/owner.md vendored Normal file
View File

@@ -0,0 +1,31 @@
npm-owner(3) -- Manage package owners
=====================================
## SYNOPSIS
npm.commands.owner(args, callback)
## DESCRIPTION
The first element of the 'args' parameter defines what to do, and the subsequent
elements depend on the action. Possible values for the action are (order of
parameters are given in parenthesis):
* ls (package):
List all the users who have access to modify a package and push new versions.
Handy when you need to know who to bug for help.
* add (user, package):
Add a new user as a maintainer of a package. This user is enabled to modify
metadata, publish new versions, and add other owners.
* rm (user, package):
Remove a user from the package owner list. This immediately revokes their
privileges.
Note that there is only one level of access. Either you can modify a package,
or you can't. Future versions may contain more fine-grained access levels, but
that is not implemented at this time.
## SEE ALSO
* npm-publish(3)
* npm-registry(1)

19
deps/npm/doc/api/pack.md vendored Normal file
View File

@@ -0,0 +1,19 @@
npm-pack(3) -- Create a tarball from a package
==============================================
## SYNOPSIS
npm.commands.pack([packages,] callback)
## DESCRIPTION
For anything that's installable (that is, a package folder, tarball,
tarball url, name@tag, name@version, or name), this command will fetch
it to the cache, and then copy the tarball to the current working
directory as `<name>-<version>.tgz`, and then write the filenames out to
stdout.
If the same package is specified multiple times, then the file will be
overwritten the second time.
If no arguments are supplied, then npm packs the current package folder.

15
deps/npm/doc/api/prefix.md vendored Normal file
View File

@@ -0,0 +1,15 @@
npm-prefix(3) -- Display prefix
===============================
## SYNOPSIS
npm.commands.prefix(args, callback)
## DESCRIPTION
Print the prefix to standard out.
'args' is never used and callback is never called with data.
'args' must be present or things will break.
This function is not useful programmatically

17
deps/npm/doc/api/prune.md vendored Normal file
View File

@@ -0,0 +1,17 @@
npm-prune(3) -- Remove extraneous packages
==========================================
## SYNOPSIS
npm.commands.prune([packages,] callback)
## DESCRIPTION
This command removes "extraneous" packages.
The first parameter is optional, and it specifies packages to be removed.
No packages are specified, then all packages will be checked.
Extraneous packages are packages that are not listed on the parent
package's dependencies list.

30
deps/npm/doc/api/publish.md vendored Normal file
View File

@@ -0,0 +1,30 @@
npm-publish(3) -- Publish a package
===================================
## SYNOPSIS
npm.commands.publish([packages,] callback)
## DESCRIPTION
Publishes a package to the registry so that it can be installed by name.
Possible values in the 'packages' array are:
* `<folder>`:
A folder containing a package.json file
* `<tarball>`:
A url or file path to a gzipped tar archive containing a single folder
with a package.json file inside.
If the package array is empty, npm will try to publish something in the
current working directory.
This command could fails if one of the packages specified already exists in
the registry. Overwrites when the "force" environment variable is set.
## SEE ALSO
* npm-registry(1)
* npm-adduser(1)
* npm-owner(3)

16
deps/npm/doc/api/rebuild.md vendored Normal file
View File

@@ -0,0 +1,16 @@
npm-rebuild(3) -- Rebuild a package
===================================
## SYNOPSIS
npm.commands.rebuild([packages,] callback)
## DESCRIPTION
This command runs the `npm build` command on each of the matched packages. This is useful
when you install a new version of node, and must recompile all your C++ addons with
the new binary. If no 'packages' parameter is specify, every package will be rebuilt.
## CONFIGURATION
See `npm help build`

22
deps/npm/doc/api/restart.md vendored Normal file
View File

@@ -0,0 +1,22 @@
npm-restart(3) -- Start a package
=================================
## SYNOPSIS
npm.commands.restart(packages, callback)
## DESCRIPTION
This runs a package's "restart" script, if one was provided.
Otherwise it runs package's "stop" script, if one was provided, and then
the "start" script.
If no version is specified, then it restarts the "active" version.
npm can run tests on multiple packages. Just specify multiple packages
in the `packages` parameter.
## SEE ALSO
* npm-start(3)
* npm-stop(3)

15
deps/npm/doc/api/root.md vendored Normal file
View File

@@ -0,0 +1,15 @@
npm-root(3) -- Display npm root
===============================
## SYNOPSIS
npm.commands.root(args, callback)
## DESCRIPTION
Print the effective `node_modules` folder to standard out.
'args' is never used and callback is never called with data.
'args' must be present or things will break.
This function is not useful programmatically.

27
deps/npm/doc/api/run-script.md vendored Normal file
View File

@@ -0,0 +1,27 @@
npm-run-script(3) -- Run arbitrary package scripts
==================================================
## SYNOPSIS
npm.commands.run-script(args, callback)
## DESCRIPTION
This runs an arbitrary command from a package's "scripts" object.
It is used by the test, start, restart, and stop commands, but can be
called directly, as well.
The 'args' parameter is an array of strings. Behavior depends on the number
of elements. If there is only one element, npm assumes that the element
represents a command to be run on the local repository. If there is more than
one element, then the first is assumed to be the package and the second is
assumed to be the command to run. All other elements are ignored.
## SEE ALSO
* npm-scripts(1)
* npm-test(3)
* npm-start(3)
* npm-restart(3)
* npm-stop(3)

35
deps/npm/doc/api/search.md vendored Normal file
View File

@@ -0,0 +1,35 @@
npm-search(3) -- Search for packages
====================================
## SYNOPSIS
npm.commands.search(searchTerms, [silent,] [staleness,] callback)
## DESCRIPTION
Search the registry for packages matching the search terms. The available parameters are:
* searchTerms:
Array of search terms. These terms are case-insensitive.
* silent:
If true, npm will not log anything to the console.
* staleness:
This is the threshold for stale packages. "Fresh" packages are not refreshed
from the registry. This value is measured in seconds.
* callback:
Returns an object where each key is the name of a package, and the value
is information about that package along with a 'words' property, which is
a space-delimited string of all of the interesting words in that package.
The only properties included are those that are searched, which generally include:
* name
* description
* maintainers
* url
* keywords
A search on the registry excludes any result that does not match all of the
search terms. It also removes any items from the results that contain an
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).

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.

13
deps/npm/doc/api/start.md vendored Normal file
View File

@@ -0,0 +1,13 @@
npm-start(3) -- Start a package
===============================
## SYNOPSIS
npm.commands.start(packages, callback)
## DESCRIPTION
This runs a package's "start" script, if one was provided.
npm can run tests on multiple packages. Just specify multiple packages
in the `packages` parameter.

13
deps/npm/doc/api/stop.md vendored Normal file
View File

@@ -0,0 +1,13 @@
npm-stop(3) -- Stop a package
=============================
## SYNOPSIS
npm.commands.stop(packages, callback)
## DESCRIPTION
This runs a package's "stop" script, if one was provided.
npm can run stop on multiple packages. Just specify multiple packages
in the `packages` parameter.

28
deps/npm/doc/api/submodule.md vendored Normal file
View File

@@ -0,0 +1,28 @@
npm-submodule(3) -- Add a package as a git submodule
====================================================
## SYNOPSIS
npm.commands.submodule(packages, callback)
## DESCRIPTION
For each package specified, npm will check if it has a git repository url
in its package.json description then add it as a git submodule at
`node_modules/<pkg name>`.
This is a convenience only. From then on, it's up to you to manage
updates by using the appropriate git commands. npm will stubbornly
refuse to update, modify, or remove anything with a `.git` subfolder
in it.
This command also does not install missing dependencies, if the package
does not include them in its git repository. If `npm ls` reports that
things are missing, you can either install, link, or submodule them yourself,
or you can do `npm explore <pkgname> -- npm install` to install the
dependencies into the submodule folder.
## SEE ALSO
* npm help json
* git help submodule

23
deps/npm/doc/api/tag.md vendored Normal file
View File

@@ -0,0 +1,23 @@
npm-tag(3) -- Tag a published version
=====================================
## SYNOPSIS
npm.commands.tag(package@version, tag, callback)
## DESCRIPTION
Tags the specified version of the package with the specified tag, or the
`--tag` config if not specified.
The 'package@version' is an array of strings, but only the first two elements are
currently used.
The first element must be in the form package@version, where package
is the package name and version is the version number (much like installing a
specific version).
The second element is the name of the tag to tag this version with. If this
parameter is missing or falsey (empty), the default froom the config will be
used. For more information about how to set this config, check
`man 3 npm-config` for programmatic usage or `man npm-config` for cli usage.

16
deps/npm/doc/api/test.md vendored Normal file
View File

@@ -0,0 +1,16 @@
npm-test(3) -- Test a package
=============================
## SYNOPSIS
npm.commands.test(packages, callback)
## DESCRIPTION
This runs a package's "test" script, if one was provided.
To run tests as a condition of installation, set the `npat` config to
true.
npm can run tests on multiple packages. Just specify multiple packages
in the `packages` parameter.

16
deps/npm/doc/api/uninstall.md vendored Normal file
View File

@@ -0,0 +1,16 @@
npm-uninstall(3) -- uninstall a package programmatically
========================================================
## SYNOPSIS
npm.commands.uninstall(packages, callback)
## DESCRIPTION
This acts much the same ways as uninstalling on the command-line.
The 'packages' parameter is an array of strings. Each element in the array is
the name of a package to be uninstalled.
Finally, 'callback' is a function that will be called when all packages have been
uninstalled or when an error has been encountered.

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

@@ -0,0 +1,20 @@
npm-unpublish(3) -- Remove a package from the registry
======================================================
## SYNOPSIS
npm.commands.unpublish(package, callback)
## DESCRIPTION
This removes a package version from the registry, deleting its
entry and removing the tarball.
The package parameter must be defined.
Only the first element in the package parameter is used. If there is no first
element, then npm assumes that the package at the current working directory
is what is meant.
If no version is specified, or if all versions are removed then
the root package entry is removed from the registry entirely.

11
deps/npm/doc/api/update.md vendored Normal file
View File

@@ -0,0 +1,11 @@
npm-update(3) -- Update a package
=================================
## SYNOPSIS
npm.commands.update(packages, callback)
# DESCRIPTION
Updates a package, upgrading it to the latest version. It also installs any missing packages.
The 'packages' argument is an array of packages to update. The 'callback' parameter will be called when done or when an error occurs.

18
deps/npm/doc/api/version.md vendored Normal file
View File

@@ -0,0 +1,18 @@
npm-version(3) -- Bump a package version
========================================
## SYNOPSIS
npm.commands.version(newversion, callback)
## DESCRIPTION
Run this in a package directory to bump the version and write the new
data back to the package.json file.
If run in a git repo, it will also create a version commit and tag, and
fail if the repo is not clean.
Like all other commands, this function takes a string array as its first
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.

93
deps/npm/doc/api/view.md vendored Normal file
View File

@@ -0,0 +1,93 @@
npm-view(3) -- View registry info
=================================
## SYNOPSIS
npm.commands.view(args, [silent,] callback)
## DESCRIPTION
This command shows data about a package and prints it to the stream
referenced by the `outfd` config, which defaults to stdout.
The "args" parameter is an ordered list that closely resembles the command-line
usage. The elements should be ordered such that the first element is
the package and version (package@version). The version is optional. After that,
the rest of the parameters are fields with optional subfields ("field.subfield")
which can be used to get only the information desired from the registry.
The callback will be passed all of the data returned by the query.
For example, to get the package registry entry for the `connect` package,
you can do this:
npm.commands.view(["connect"], callback)
If no version is specified, "latest" is assumed.
Field names can be specified after the package descriptor.
For example, to show the dependencies of the `ronn` package at version
0.3.5, you could do the following:
npm.commands.view(["ronn@0.3.5", "dependencies"], callback)
You can view child field by separating them with a period.
To view the git repository URL for the latest version of npm, you could
do this:
npm.commands.view(["npm", "repository.url"], callback)
For fields that are arrays, requesting a non-numeric field will return
all of the values from the objects in the list. For example, to get all
the contributor names for the "express" project, you can do this:
npm.commands.view(["express", "contributors.email"], callback)
You may also use numeric indices in square braces to specifically select
an item in an array field. To just get the email address of the first
contributor in the list, you can do this:
npm.commands.view(["express", "contributors[0].email"], callback)
Multiple fields may be specified, and will be printed one after another.
For exampls, to get all the contributor names and email addresses, you
can do this:
npm.commands.view(["express", "contributors.name", "contributors.email"], callback)
"Person" fields are shown as a string if they would be shown as an
object. So, for example, this will show the list of npm contributors in
the shortened string format. (See `npm help json` for more on this.)
npm.commands.view(["npm", "contributors"], callback)
If a version range is provided, then data will be printed for every
matching version of the package. This will show which version of jsdom
was required by each matching version of yui3:
npm.commands.view(["yui3@'>0.5.4'", "dependencies.jsdom"], callback)
## OUTPUT
If only a single string field for a single version is output, then it
will not be colorized or quoted, so as to enable piping the output to
another command.
If the version range matches multiple versions, than each printed value
will be prefixed with the version it applies to.
If multiple fields are requested, than each of them are prefixed with
the field name.
Console output can be disabled by setting the 'silent' parameter to true.
## RETURN VALUE
The data returned will be an object in this formation:
{ <version>:
{ <field>: <value>
, ... }
, ... }
corresponding to the list of fields selected.

15
deps/npm/doc/api/whoami.md vendored Normal file
View File

@@ -0,0 +1,15 @@
npm-whoami(3) -- Display npm username
=====================================
## SYNOPSIS
npm.commands.whoami(args, callback)
## DESCRIPTION
Print the `username` config to standard output.
'args' is never used and callback is never called with data.
'args' must be present or things will break.
This function is not useful programmatically

36
deps/npm/doc/cli/adduser.md vendored Normal file
View File

@@ -0,0 +1,36 @@
npm-adduser(1) -- Add a registry user account
=============================================
## SYNOPSIS
npm adduser
## DESCRIPTION
Create or verify a user named `<username>` in the npm registry, and
save the credentials to the `.npmrc` file.
The username, password, and email are read in from prompts.
You may use this command to change your email address, but not username
or password.
To reset your password, go to <http://admin.npmjs.org/>
You may use this command multiple times with the same user account to
authorize on a new machine.
## CONFIGURATION
### registry
Default: http://registry.npmjs.org/
The base URL of the npm package registry.
## SEE ALSO
* npm-registry(1)
* npm-config(1)
* npm-owner(1)
* npm-whoami(1)

17
deps/npm/doc/cli/bin.md vendored Normal file
View File

@@ -0,0 +1,17 @@
npm-bin(1) -- Display npm bin folder
====================================
## SYNOPSIS
npm bin
## DESCRIPTION
Print the folder where npm will install executables.
## SEE ALSO
* npm-prefix(1)
* npm-root(1)
* npm-folders(1)
* npm-config(1)

38
deps/npm/doc/cli/bugs.md vendored Normal file
View File

@@ -0,0 +1,38 @@
npm-bugs(1) -- Bugs for a package in a web browser maybe
========================================================
## SYNOPSIS
npm bugs <pkgname>
## DESCRIPTION
This command tries to guess at the likely location of a package's
bug tracker URL, and then tries to open it using the `--browser`
config param.
## CONFIGURATION
### browser
* Default: OS X: `"open"`, others: `"google-chrome"`
* Type: String
The browser that is called by the `npm bugs` command to open websites.
### registry
* Default: https://registry.npmjs.org/
* Type: url
The base URL of the npm package registry.
## SEE ALSO
* npm-docs(1)
* npm-view(1)
* npm-publish(1)
* npm-registry(1)
* npm-config(1)
* npm-json(1)

22
deps/npm/doc/cli/build.md vendored Normal file
View File

@@ -0,0 +1,22 @@
npm-build(1) -- Build a package
===============================
## SYNOPSIS
npm build <package-folder>
* `<package-folder>`:
A folder containing a `package.json` file in its root.
## DESCRIPTION
This is the plumbing command called by `npm link` and `npm install`.
It should generally not be called directly.
## SEE ALSO
* npm-install(1)
* npm-link(1)
* npm-scripts(1)
* npm-json(1)

14
deps/npm/doc/cli/bundle.md vendored Normal file
View File

@@ -0,0 +1,14 @@
npm-bundle(1) -- REMOVED
========================
## DESCRIPTION
The `npm bundle` command has been removed in 1.0, for the simple reason
that it is no longer necessary, as the default behavior is now to
install packages into the local space.
Just use `npm install` now to do what `npm bundle` used to do.
## SEE ALSO
* npm-install(1)

70
deps/npm/doc/cli/cache.md vendored Normal file
View File

@@ -0,0 +1,70 @@
npm-cache(1) -- Manipulates packages cache
==========================================
## SYNOPSIS
npm cache add <tarball file>
npm cache add <folder>
npm cache add <tarball url>
npm cache add <name>@<version>
npm cache ls [<path>]
npm cache clean [<path>]
## DESCRIPTION
Used to add, list, or clear the npm cache folder.
* add:
Add the specified package to the local cache. This command is primarily
intended to be used internally by npm, but it can provide a way to
add data to the local installation cache explicitly.
* ls:
Show the data in the cache. Argument is a path to show in the cache
folder. Works a bit like the `find` program, but limited by the
`depth` config.
* clean:
Delete data out of the cache folder. If an argument is provided, then
it specifies a subpath to delete. If no argument is provided, then
the entire cache is cleared.
## DETAILS
npm stores cache data in `$HOME/.npm`. For each package that is added
to the cache, three pieces of information are stored in
`{cache}/{name}/{version}`:
* .../package/:
A folder containing the package contents as they appear in the tarball.
* .../package.json:
The package.json file, as npm sees it, with overlays applied and a _id attribute.
* .../package.tgz:
The tarball for that version.
Additionally, whenever a registry request is made, a `.cache.json` file
is placed at the corresponding URI, to store the ETag and the requested
data.
Commands that make non-essential registry requests (such as `search` and
`view`, or the completion scripts) generally specify a minimum timeout.
If the `.cache.json` file is younger than the specified timeout, then
they do not make an HTTP request to the registry.
## CONFIGURATION
### cache
Default: `$HOME/.npm` on Posix, or `$HOME/npm-cache` on Windows.
The root cache folder.
## SEE ALSO
* npm-folders(1)
* npm-config(1)
* npm-install(1)
* npm-publish(1)
* npm-pack(1)

80
deps/npm/doc/cli/changelog.md vendored Normal file
View File

@@ -0,0 +1,80 @@
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)
* Drastic rearchitecture
### 0.3
* More correct permission/uid handling when running as root
* Require node 0.4.0
* Reduce featureset
* Packages without "main" modules don't export modules
* Remove support for invalid JSON (since node doesn't support it)
### 0.2
* First allegedly "stable" release
* Most functionality implemented
* Used shim files and `name@version` symlinks
* Feature explosion
* Kind of a mess
### 0.1
* push to beta, and announce
* Solaris and Cygwin support
### 0.0
* Lots of sketches and false starts; abandoned a few times
* Core functionality established
## SEE ALSO
* npm(1)
* npm-faq(1)

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