Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

Merge branch 'master' of https://github.com/joyent/node into noderc

  • Loading branch information...
commit 32193504f06359189fbf64f3bda09b6a79769f34 2 parents 9ea9d21 + 9434487
regality authored June 02, 2012

Showing 310 changed files with 11,424 additions and 5,387 deletions. Show diff stats Hide diff stats

  1. 8  AUTHORS
  2. 74  ChangeLog
  3. 28  LICENSE
  4. 2  Makefile
  5. 72  benchmark/fs-readfile.js
  6. 26  configure
  7. 3  deps/npm/.npmignore
  8. 2  deps/npm/html/api/bin.html
  9. 2  deps/npm/html/api/bugs.html
  10. 2  deps/npm/html/api/commands.html
  11. 2  deps/npm/html/api/config.html
  12. 2  deps/npm/html/api/deprecate.html
  13. 2  deps/npm/html/api/docs.html
  14. 2  deps/npm/html/api/edit.html
  15. 2  deps/npm/html/api/explore.html
  16. 2  deps/npm/html/api/help-search.html
  17. 2  deps/npm/html/api/init.html
  18. 2  deps/npm/html/api/install.html
  19. 2  deps/npm/html/api/link.html
  20. 2  deps/npm/html/api/load.html
  21. 2  deps/npm/html/api/ls.html
  22. 4  deps/npm/html/api/npm.html
  23. 2  deps/npm/html/api/outdated.html
  24. 2  deps/npm/html/api/owner.html
  25. 2  deps/npm/html/api/pack.html
  26. 2  deps/npm/html/api/prefix.html
  27. 2  deps/npm/html/api/prune.html
  28. 2  deps/npm/html/api/publish.html
  29. 2  deps/npm/html/api/rebuild.html
  30. 2  deps/npm/html/api/restart.html
  31. 2  deps/npm/html/api/root.html
  32. 2  deps/npm/html/api/run-script.html
  33. 2  deps/npm/html/api/search.html
  34. 2  deps/npm/html/api/shrinkwrap.html
  35. 2  deps/npm/html/api/start.html
  36. 2  deps/npm/html/api/stop.html
  37. 2  deps/npm/html/api/submodule.html
  38. 2  deps/npm/html/api/tag.html
  39. 2  deps/npm/html/api/test.html
  40. 2  deps/npm/html/api/uninstall.html
  41. 2  deps/npm/html/api/unpublish.html
  42. 2  deps/npm/html/api/update.html
  43. 2  deps/npm/html/api/version.html
  44. 2  deps/npm/html/api/view.html
  45. 2  deps/npm/html/api/whoami.html
  46. 2  deps/npm/html/doc/README.html
  47. 2  deps/npm/html/doc/adduser.html
  48. 2  deps/npm/html/doc/bin.html
  49. 2  deps/npm/html/doc/bugs.html
  50. 2  deps/npm/html/doc/build.html
  51. 2  deps/npm/html/doc/bundle.html
  52. 2  deps/npm/html/doc/cache.html
  53. 2  deps/npm/html/doc/changelog.html
  54. 2  deps/npm/html/doc/coding-style.html
  55. 2  deps/npm/html/doc/completion.html
  56. 2  deps/npm/html/doc/config.html
  57. 2  deps/npm/html/doc/deprecate.html
  58. 2  deps/npm/html/doc/developers.html
  59. 2  deps/npm/html/doc/disputes.html
  60. 2  deps/npm/html/doc/docs.html
  61. 2  deps/npm/html/doc/edit.html
  62. 2  deps/npm/html/doc/explore.html
  63. 2  deps/npm/html/doc/faq.html
  64. 2  deps/npm/html/doc/folders.html
  65. 2  deps/npm/html/doc/help-search.html
  66. 2  deps/npm/html/doc/help.html
  67. 2  deps/npm/html/doc/index.html
  68. 2  deps/npm/html/doc/init.html
  69. 2  deps/npm/html/doc/install.html
  70. 2  deps/npm/html/doc/json.html
  71. 2  deps/npm/html/doc/link.html
  72. 2  deps/npm/html/doc/list.html
  73. 4  deps/npm/html/doc/npm.html
  74. 2  deps/npm/html/doc/outdated.html
  75. 2  deps/npm/html/doc/owner.html
  76. 2  deps/npm/html/doc/pack.html
  77. 2  deps/npm/html/doc/prefix.html
  78. 2  deps/npm/html/doc/prune.html
  79. 2  deps/npm/html/doc/publish.html
  80. 2  deps/npm/html/doc/rebuild.html
  81. 2  deps/npm/html/doc/registry.html
  82. 2  deps/npm/html/doc/removing-npm.html
  83. 2  deps/npm/html/doc/restart.html
  84. 2  deps/npm/html/doc/root.html
  85. 2  deps/npm/html/doc/run-script.html
  86. 2  deps/npm/html/doc/scripts.html
  87. 2  deps/npm/html/doc/search.html
  88. 2  deps/npm/html/doc/semver.html
  89. 2  deps/npm/html/doc/shrinkwrap.html
  90. 2  deps/npm/html/doc/star.html
  91. 2  deps/npm/html/doc/start.html
  92. 2  deps/npm/html/doc/stop.html
  93. 2  deps/npm/html/doc/submodule.html
  94. 2  deps/npm/html/doc/tag.html
  95. 2  deps/npm/html/doc/test.html
  96. 2  deps/npm/html/doc/uninstall.html
  97. 2  deps/npm/html/doc/unpublish.html
  98. 2  deps/npm/html/doc/update.html
  99. 2  deps/npm/html/doc/version.html
  100. 2  deps/npm/html/doc/view.html
  101. 2  deps/npm/html/doc/whoami.html
  102. BIN  deps/npm/html/n-64.png
  103. BIN  deps/npm/html/n-large.png
  104. BIN  deps/npm/html/npm-16.png
  105. BIN  deps/npm/html/npm-256-square.png
  106. BIN  deps/npm/html/npm-256w.png
  107. BIN  deps/npm/html/npm-64-square.png
  108. BIN  deps/npm/html/npm-fin.png
  109. BIN  deps/npm/html/npm-large.png
  110. BIN  deps/npm/html/npm.png
  111. 1  deps/npm/lib/cache.js
  112. 2  deps/npm/lib/owner.js
  113. 9  deps/npm/lib/publish.js
  114. 8  deps/npm/lib/utils/lifecycle.js
  115. 16  deps/npm/lib/utils/tar.js
  116. 2  deps/npm/man/man1/npm.1
  117. 2  deps/npm/man/man3/npm.3
  118. 4  deps/npm/node_modules/node-gyp/README.md
  119. 21  deps/npm/node_modules/node-gyp/lib/build.js
  120. 87  deps/npm/node_modules/node-gyp/lib/configure.js
  121. 4  deps/npm/node_modules/node-gyp/lib/node-gyp.js
  122. 7  deps/npm/node_modules/node-gyp/node_modules/ansi/package.json
  123. 7  deps/npm/node_modules/node-gyp/node_modules/glob/package.json
  124. 12  deps/npm/node_modules/node-gyp/package.json
  125. 49  deps/npm/node_modules/semver/package.json
  126. 2  deps/npm/node_modules/semver/semver.js
  127. 4  deps/npm/package.json
  128. 8  deps/uv/common.gypi
  129. 12  deps/uv/config-mingw.mk
  130. 20  deps/uv/config-unix.mk
  131. 2  deps/uv/include/uv-private/ev.h
  132. 127  deps/uv/include/uv-private/uv-unix.h
  133. 66  deps/uv/include/uv-private/uv-win.h
  134. 217  deps/uv/include/uv.h
  135. 225  deps/uv/src/cares.c
  136. 6  deps/uv/src/unix/async.c
  137. 194  deps/uv/src/unix/cares.c
  138. 318  deps/uv/src/unix/core.c
  139. 79  deps/uv/src/unix/dl.c
  140. 96  deps/uv/src/unix/ev/ev.c
  141. 45  deps/uv/src/unix/fs.c
  142. 61  deps/uv/src/unix/internal.h
  143. 4  deps/uv/src/unix/kqueue.c
  144. 25  deps/uv/src/unix/linux/inotify.c
  145. 63  deps/uv/src/unix/loop-watcher.c
  146. 32  deps/uv/src/unix/loop.c
  147. 60  deps/uv/src/unix/pipe.c
  148. 116  deps/uv/src/unix/poll.c
  149. 79  deps/uv/src/unix/prepare.c
  150. 216  deps/uv/src/unix/process.c
  151. 244  deps/uv/src/unix/stream.c
  152. 56  deps/uv/src/unix/sunos.c
  153. 11  deps/uv/src/unix/tcp.c
  154. 127  deps/uv/src/unix/timer.c
  155. 6  deps/uv/src/unix/tty.c
  156. 105  deps/uv/src/unix/udp.c
  157. 73  deps/uv/src/unix/uv-eio.c
  158. 59  deps/uv/src/uv-common.c
  159. 107  deps/uv/src/uv-common.h
  160. 28  deps/uv/src/win/async.c
  161. 290  deps/uv/src/win/cares.c
  162. 52  deps/uv/src/win/core.c
  163. 76  deps/uv/src/win/dl.c
  164. 1  deps/uv/src/win/error.c
  165. 41  deps/uv/src/win/fs-event.c
  166. 406  deps/uv/src/win/fs.c
  167. 118  deps/uv/src/win/getaddrinfo.c
  168. 63  deps/uv/src/win/handle.c
  169. 159  deps/uv/src/win/internal.h
  170. 18  deps/uv/src/win/loop-watcher.c
  171. 100  deps/uv/src/win/pipe.c
  172. 620  deps/uv/src/win/poll.c
  173. 659  deps/uv/src/win/process.c
  174. 13  deps/uv/src/win/req.c
  175. 15  deps/uv/src/win/stream.c
  176. 154  deps/uv/src/win/tcp.c
  177. 5  deps/uv/src/win/thread.c
  178. 4  deps/uv/src/win/threadpool.c
  179. 24  deps/uv/src/win/timer.c
  180. 38  deps/uv/src/win/tty.c
  181. 39  deps/uv/src/win/udp.c
  182. 7  deps/uv/src/win/util.c
  183. 5  deps/uv/src/win/winapi.c
  184. 9  deps/uv/src/win/winapi.h
  185. 89  deps/uv/src/win/winsock.c
  186. 39  deps/uv/src/win/winsock.h
  187. 33  deps/uv/test/benchmark-ares.c
  188. 4  deps/uv/test/benchmark-list.h
  189. 76  deps/uv/{src/unix/check.c → test/benchmark-loop-count.c}
  190. 2  deps/uv/test/benchmark-sizes.c
  191. 8  deps/uv/test/benchmark-spawn.c
  192. 2  deps/uv/test/benchmark-udp-packet-storm.c
  193. 16  deps/uv/test/run-tests.c
  194. 5  deps/uv/test/runner-win.c
  195. 9  deps/uv/test/runner.c
  196. 77  deps/uv/{src/unix/idle.c → test/test-callback-order.c}
  197. 25  deps/uv/test/test-dlerror.c
  198. 112  deps/uv/test/test-fs.c
  199. 10  deps/uv/test/test-ipc.c
  200. 36  deps/uv/test/test-list.h
  201. 21  deps/uv/test/test-loop-handles.c
  202. 573  deps/uv/test/test-poll.c
  203. 132  deps/uv/test/test-ref.c
  204. 26  deps/uv/test/test-run-once.c
  205. 165  deps/uv/test/test-spawn.c
  206. 19  deps/uv/test/test-stdio-over-pipes.c
  207. 2  deps/uv/test/test-tcp-close.c
  208. 85  deps/uv/test/test-tcp-connect-timeout.c
  209. 4  deps/uv/test/test-tcp-write-error.c
  210. 77  deps/uv/test/test-tcp-writealot.c
  211. 2  deps/uv/test/test-timer-again.c
  212. 24  deps/uv/test/test-timer.c
  213. 2  deps/uv/test/test-udp-options.c
  214. 75  deps/uv/test/{test-eio-overflow.c → test-walk-handles.c}
  215. 20  deps/uv/uv.gyp
  216. 1  deps/v8/AUTHORS
  217. 267  deps/v8/ChangeLog
  218. 27  deps/v8/DEPS
  219. 75  deps/v8/Makefile
  220. 17  deps/v8/SConstruct
  221. 36  deps/v8/build/armu.gypi
  222. 266  deps/v8/build/common.gypi
  223. 33  deps/v8/build/gyp_v8
  224. 33  deps/v8/build/mipsu.gypi
  225. 16  deps/v8/build/standalone.gypi
  226. 81  deps/v8/include/v8-profiler.h
  227. 221  deps/v8/include/v8.h
  228. 6  deps/v8/samples/lineprocessor.cc
  229. 8  deps/v8/samples/samples.gyp
  230. 25  deps/v8/samples/shell.cc
  231. 1  deps/v8/src/SConscript
  232. 145  deps/v8/src/api.cc
  233. 5  deps/v8/src/api.h
  234. 9  deps/v8/src/apiutils.h
  235. 13  deps/v8/src/arguments.h
  236. 9  deps/v8/src/arm/builtins-arm.cc
  237. 90  deps/v8/src/arm/code-stubs-arm.cc
  238. 4  deps/v8/src/arm/codegen-arm.cc
  239. 4  deps/v8/src/arm/debug-arm.cc
  240. 15  deps/v8/src/arm/deoptimizer-arm.cc
  241. 342  deps/v8/src/arm/full-codegen-arm.cc
  242. 63  deps/v8/src/arm/ic-arm.cc
  243. 145  deps/v8/src/arm/lithium-arm.cc
  244. 99  deps/v8/src/arm/lithium-arm.h
  245. 410  deps/v8/src/arm/lithium-codegen-arm.cc
  246. 19  deps/v8/src/arm/lithium-codegen-arm.h
  247. 117  deps/v8/src/arm/macro-assembler-arm.cc
  248. 20  deps/v8/src/arm/macro-assembler-arm.h
  249. 224  deps/v8/src/arm/regexp-macro-assembler-arm.cc
  250. 21  deps/v8/src/arm/regexp-macro-assembler-arm.h
  251. 12  deps/v8/src/arm/simulator-arm.h
  252. 189  deps/v8/src/arm/stub-cache-arm.cc
  253. 176  deps/v8/src/array.js
  254. 71  deps/v8/src/assembler.cc
  255. 6  deps/v8/src/assembler.h
  256. 218  deps/v8/src/ast.cc
  257. 11  deps/v8/src/ast.h
  258. 24  deps/v8/src/bootstrapper.cc
  259. 158  deps/v8/src/builtins.cc
  260. 1  deps/v8/src/builtins.h
  261. 35  deps/v8/src/bytecodes-irregexp.h
  262. 51  deps/v8/src/code-stubs.cc
  263. 1  deps/v8/src/code-stubs.h
  264. 6  deps/v8/src/codegen.h
  265. 17  deps/v8/src/compiler-intrinsics.h
  266. 10  deps/v8/src/compiler.cc
  267. 22  deps/v8/src/contexts.h
  268. 4  deps/v8/src/conversions-inl.h
  269. 87  deps/v8/src/d8.cc
  270. 2  deps/v8/src/d8.h
  271. 2  deps/v8/src/d8.js
  272. 3  deps/v8/src/date.js
  273. 6  deps/v8/src/debug-agent.cc
  274. 57  deps/v8/src/debug-debugger.js
  275. 49  deps/v8/src/debug.cc
  276. 55  deps/v8/src/debug.h
  277. 6  deps/v8/src/double.h
  278. 134  deps/v8/src/elements-kind.cc
  279. 210  deps/v8/src/elements-kind.h
  280. 576  deps/v8/src/elements.cc
  281. 65  deps/v8/src/elements.h
  282. 7  deps/v8/src/extensions/externalize-string-extension.cc
  283. 5  deps/v8/src/extensions/gc-extension.cc
  284. 32  deps/v8/src/factory.cc
  285. 29  deps/v8/src/factory.h
  286. 14  deps/v8/src/flag-definitions.h
  287. 28  deps/v8/src/frames.cc
  288. 5  deps/v8/src/frames.h
  289. 137  deps/v8/src/full-codegen.cc
  290. 31  deps/v8/src/full-codegen.h
  291. 2  deps/v8/src/func-name-inferrer.h
  292. 6  deps/v8/src/handles.cc
  293. 10  deps/v8/src/hashmap.h
  294. 27  deps/v8/src/heap-inl.h
  295. 42  deps/v8/src/heap-profiler.cc
  296. 11  deps/v8/src/heap-profiler.h
  297. 342  deps/v8/src/heap.cc
  298. 62  deps/v8/src/heap.h
  299. 144  deps/v8/src/hydrogen-instructions.cc
  300. 372  deps/v8/src/hydrogen-instructions.h
  301. 1,458  deps/v8/src/hydrogen.cc
  302. 73  deps/v8/src/hydrogen.h
  303. 3  deps/v8/src/ia32/assembler-ia32.h
  304. 20  deps/v8/src/ia32/builtins-ia32.cc
  305. 150  deps/v8/src/ia32/code-stubs-ia32.cc
  306. 22  deps/v8/src/ia32/codegen-ia32.cc
  307. 39  deps/v8/src/ia32/debug-ia32.cc
  308. 31  deps/v8/src/ia32/deoptimizer-ia32.cc
  309. 363  deps/v8/src/ia32/full-codegen-ia32.cc
8  AUTHORS
@@ -306,3 +306,11 @@ Dane Springmeyer <dane@dbsgeo.com>
306 306
 Sambasiva Suda <sambasivarao@gmail.com>
307 307
 Vincent Voyer <v@fasterize.com>
308 308
 ANDO Takahiro <takahiro.ando@gmail.com>
  309
+Brian Schroeder <bts@gmail.com>
  310
+J. Lee Coltrane <lee@projectmastermind.com>
  311
+Javier Hernández <jhernandez@emergya.com>
  312
+James Koval <james.ross.koval@gmail.com>
  313
+Kevin Gadd <kevin.gadd@gmail.com>
  314
+Ray Solomon <raybsolomon@gmail.com>
  315
+Kevin Bowman <github@magicmonkey.org>
  316
+Jeroen Janssen <jeroen.janssen@gmail.com>
74  ChangeLog
... ...
@@ -1,4 +1,47 @@
1  
-2012.04.18, Version 0.7.8, (unstable)
  1
+2012.05.28, Version 0.7.9 (unstable)
  2
+
  3
+* Upgrade V8 to 3.11.1
  4
+
  5
+* Upgrade npm to 1.1.23
  6
+
  7
+* uv: rework reference counting scheme (Ben Noordhuis)
  8
+
  9
+* uv: add interface for joining external event loops (Bert Belder)
  10
+
  11
+* repl, readline: Handle Ctrl+Z and SIGCONT better (Nathan Rajlich)
  12
+
  13
+* fs: 64bit offsets for fs calls (Igor Zinkovsky)
  14
+
  15
+* fs: add sync open flags 'rs' and 'rs+' (Kevin Bowman)
  16
+
  17
+* windows: enable creating directory junctions with fs.symlink (Igor Zinkovsky, Bert Belder)
  18
+
  19
+* windows: fix fs.lstat to properly detect symlinks. (Igor Zinkovsky)
  20
+
  21
+* Fix #3270 Escape url.parse delims (isaacs)
  22
+
  23
+* http: make http.get() accept a URL (Adam Malcontenti-Wilson)
  24
+
  25
+* Cleanup vm module memory leakage (Marcel Laverdet)
  26
+
  27
+* Optimize writing strings with Socket.write (Bert Belder)
  28
+
  29
+* add support for CESU-8 and UTF-16LE encodings (koichik)
  30
+
  31
+* path: add path.sep to get the path separator. (Yi, EungJun)
  32
+
  33
+* net, http: add backlog parameter to .listen() (Erik Dubbelboer)
  34
+
  35
+* debugger: support mirroring Date objects (Fedor Indutny)
  36
+
  37
+* addon: add AtExit() function (Ben Noordhuis)
  38
+
  39
+* net: signal localAddress bind failure in connect (Brian Schroeder)
  40
+
  41
+* util: handle non-string return value in .inspect() (Alex Kocharin)
  42
+
  43
+
  44
+2012.04.18, Version 0.7.8 (unstable), c2b47097c0b483552efc1947c6766fa1128600b6
2 45
 
3 46
 * Upgrade V8 to 3.9.24.9
4 47
 
@@ -255,6 +298,35 @@
255 298
 * Bug fixes
256 299
 
257 300
 
  301
+2012.05.15 Version 0.6.18 (stable), 4bc1d395de6abed2cf1e4d0b7b3a1480a21c368f
  302
+
  303
+* windows: skip GetFileAttributes call when opening a file (Bert Belder)
  304
+
  305
+* crypto: add PKCS12/PFX support (Sambasiva Suda)
  306
+
  307
+* #3240: child_process: delete NODE_CHANNEL_FD from env in spawn (Ben Noordhuis)
  308
+
  309
+* windows: add test for path.normalize with UNC paths (Bert Belder)
  310
+
  311
+* windows: make path.normalize convert all slashes to backslashes (Bert Belder)
  312
+
  313
+* fs: Automatically close FSWatcher on error (Bert Belder)
  314
+
  315
+* #3258: fs.ReadStream.pause() emits duplicate data event (koichik)
  316
+
  317
+* pipe_wrap: don't assert() on pipe accept errors (Ben Noordhuis)
  318
+
  319
+* Better exception output for module load and process.nextTick (Felix Geisendörfer)
  320
+
  321
+* zlib: fix error reporting (Ben Noordhuis)
  322
+
  323
+* http: Don't destroy on timeout (isaacs)
  324
+
  325
+* #3231: http: Don't try to emit error on a null'ed req object (isaacs)
  326
+
  327
+* #3236: http: Refactor ClientRequest.onSocket (isaacs)
  328
+
  329
+
258 330
 2012.05.04 Version 0.6.17 (stable), 4ced23deaf36493f4303a18f6fdce768c58becc0
259 331
 
260 332
 * Upgrade npm to 1.1.21
28  LICENSE
@@ -550,3 +550,31 @@ maintained libraries. The externally maintained libraries used by Node are:
550 550
     OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
551 551
     THE SOFTWARE.
552 552
   """
  553
+
  554
+- src/ngx-queue.h ngx-queue.h is taken from the nginx source tree. nginx's
  555
+  license follows
  556
+  """
  557
+    Copyright (C) 2002-2012 Igor Sysoev
  558
+    Copyright (C) 2011,2012 Nginx, Inc.
  559
+
  560
+    Redistribution and use in source and binary forms, with or without
  561
+    modification, are permitted provided that the following conditions
  562
+    are met:
  563
+    1. Redistributions of source code must retain the above copyright
  564
+       notice, this list of conditions and the following disclaimer.
  565
+    2. Redistributions in binary form must reproduce the above copyright
  566
+       notice, this list of conditions and the following disclaimer in the
  567
+       documentation and/or other materials provided with the distribution.
  568
+
  569
+    THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  570
+    ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  571
+    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  572
+    ARE DISCLAIMED.  IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
  573
+    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  574
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  575
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  576
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  577
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  578
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  579
+    SUCH DAMAGE.
  580
+  """
2  Makefile
@@ -154,7 +154,7 @@ out/doc/api/%.html: doc/api/%.markdown
154 154
 	out/Release/node tools/doc/generate.js --format=html --template=doc/template.html $< > $@
155 155
 
156 156
 email.md: ChangeLog tools/email-footer.md
157  
-	bash tools/changelog-head.sh > $@
  157
+	bash tools/changelog-head.sh | sed 's|^\* #|* \\#|g' > $@
158 158
 	cat tools/email-footer.md | sed -e 's|__VERSION__|'$(VERSION)'|g' >> $@
159 159
 
160 160
 blog.html: email.md
72  benchmark/fs-readfile.js
... ...
@@ -0,0 +1,72 @@
  1
+// Call fs.readFile over and over again really fast.
  2
+// Then see how many times it got called.
  3
+// Yes, this is a silly benchmark.  Most benchmarks are silly.
  4
+
  5
+var path = require('path');
  6
+var filename = path.resolve(__dirname, 'http.sh');
  7
+var fs = require('fs');
  8
+var count = 0;
  9
+var go = true;
  10
+var len = -1;
  11
+var assert = require('assert');
  12
+
  13
+var concurrency = 1;
  14
+var encoding = null;
  15
+var time = 10;
  16
+
  17
+for (var i = 2; i < process.argv.length; i++) {
  18
+  var arg = process.argv[i];
  19
+  if (arg.match(/^-e$/)) {
  20
+    encoding = process.argv[++i] || null;
  21
+  } else if (arg.match(/^-c$/)) {
  22
+    concurrency = ~~process.argv[++i];
  23
+    if (concurrency < 1) concurrency = 1;
  24
+  } else if (arg === '-t') {
  25
+    time = ~~process.argv[++i];
  26
+    if (time < 1) time = 1;
  27
+  }
  28
+}
  29
+
  30
+
  31
+setTimeout(function() {
  32
+  go = false;
  33
+}, time * 1000);
  34
+
  35
+function round(n) {
  36
+  return Math.floor(n * 100) / 100;
  37
+}
  38
+
  39
+var start = process.hrtime();
  40
+while (concurrency--) readFile();
  41
+
  42
+function readFile() {
  43
+  if (!go) {
  44
+    process.stdout.write('\n');
  45
+    console.log('read the file %d times (higher is better)', count);
  46
+    var end = process.hrtime();
  47
+    var elapsed = [end[0] - start[0], end[1] - start[1]];
  48
+    var ns = elapsed[0] * 1E9 + elapsed[1];
  49
+    var nsper = round(ns / count);
  50
+    console.log('%d ns per read (lower is better)', nsper);
  51
+    var readsper = round(count / (ns / 1E9));
  52
+    console.log('%d reads per sec (higher is better)', readsper);
  53
+    process.exit(0);
  54
+    return;
  55
+  }
  56
+
  57
+  if (!(count % 1000)) {
  58
+    process.stdout.write('.');
  59
+  }
  60
+
  61
+  if (encoding) fs.readFile(filename, encoding, then);
  62
+  else fs.readFile(filename, then);
  63
+
  64
+  function then(er, data) {
  65
+    assert.ifError(er);
  66
+    count++;
  67
+    // basic sanity test: we should get the same number of bytes each time.
  68
+    if (count === 1) len = data.length;
  69
+    else assert(len === data.length);
  70
+    readFile();
  71
+  }
  72
+}
26  configure
@@ -224,18 +224,22 @@ def host_arch():
224 224
 def target_arch():
225 225
   return host_arch()
226 226
 
227  
-
228  
-def gcc_version():
  227
+def cc_version():
229 228
   try:
230 229
     proc = subprocess.Popen([CC, '-v'], stderr=subprocess.PIPE)
231 230
   except OSError:
232 231
     return None
233  
-  # TODO parse clang output
234  
-  version = proc.communicate()[1].split('\n')[-2]
235  
-  match = re.match('gcc version (\d+)\.(\d+)\.(\d+)', version)
236  
-  if not match: return None
237  
-  return ['LLVM' in version] + map(int, match.groups())
238  
-
  232
+  lines = proc.communicate()[1].split('\n')
  233
+  version_line = None
  234
+  for i, line in enumerate(lines):
  235
+    if 'version' in line:
  236
+      version_line = line
  237
+  if not version_line:
  238
+    return None
  239
+  version = version_line.split("version")[1].strip().split()[0].split(".")
  240
+  if not version:
  241
+    return None
  242
+  return ['LLVM' in version_line] + version
239 243
 
240 244
 def configure_node(o):
241 245
   # TODO add gdb
@@ -250,10 +254,10 @@ def configure_node(o):
250 254
   # see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45883
251 255
   # see http://code.google.com/p/v8/issues/detail?id=884
252 256
   o['variables']['strict_aliasing'] = b(
253  
-    'clang' in CC or gcc_version() >= [False, 4, 6, 0])
  257
+    'clang' in CC or cc_version() >= [False, 4, 6, 0])
254 258
 
255 259
   # clang has always supported -fvisibility=hidden, right?
256  
-  if 'clang' not in CC and gcc_version() < [False, 4, 0, 0]:
  260
+  if 'clang' not in CC and cc_version() < [False, 4, 0, 0]:
257 261
     o['variables']['visibility'] = ''
258 262
 
259 263
   # By default, enable DTrace on SunOS systems. Don't allow it on other
@@ -261,6 +265,8 @@ def configure_node(o):
261 265
   # SunOS, and we haven't implemented it.)
262 266
   if sys.platform.startswith('sunos'):
263 267
     o['variables']['node_use_dtrace'] = b(not options.without_dtrace);
  268
+    # Strict aliasing causes problems with the V8 snapshots on SunOS
  269
+    o['variables']['strict_aliasing'] = b(False);
264 270
   elif b(options.with_dtrace) == 'true':
265 271
     raise Exception('DTrace is currently only supported on SunOS systems.')
266 272
   else:
3  deps/npm/.npmignore
@@ -12,6 +12,9 @@ npm-debug.log
12 12
 .gitignore
13 13
 release/
14 14
 
  15
+# don't need these in the npm package.
  16
+html/*.png
  17
+
15 18
 # don't ignore .npmignore files
16 19
 # these are used in some tests.
17 20
 !.npmignore
2  deps/npm/html/api/bin.html
@@ -19,7 +19,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
19 19
 <p>This function should not be used programmatically.  Instead, just refer
20 20
 to the <code>npm.bin</code> member.</p>
21 21
 </div>
22  
-<p id="footer">bin &mdash; npm@1.1.21</p>
  22
+<p id="footer">bin &mdash; npm@1.1.23</p>
23 23
 <script>
24 24
 ;(function () {
25 25
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/bugs.html
@@ -25,7 +25,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
25 25
 <p>This command will launch a browser, so this command may not be the most
26 26
 friendly for programmatic use.</p>
27 27
 </div>
28  
-<p id="footer">bugs &mdash; npm@1.1.21</p>
  28
+<p id="footer">bugs &mdash; npm@1.1.23</p>
29 29
 <script>
30 30
 ;(function () {
31 31
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/commands.html
@@ -28,7 +28,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
28 28
 
29 29
 <ul><li><a href="../doc/index.html">index(1)</a></li></ul>
30 30
 </div>
31  
-<p id="footer">commands &mdash; npm@1.1.21</p>
  31
+<p id="footer">commands &mdash; npm@1.1.23</p>
32 32
 <script>
33 33
 ;(function () {
34 34
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/config.html
@@ -33,7 +33,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
33 33
 
34 34
 <ul><li><a href="../api/npm.html">npm(3)</a></li></ul>
35 35
 </div>
36  
-<p id="footer">config &mdash; npm@1.1.21</p>
  36
+<p id="footer">config &mdash; npm@1.1.23</p>
37 37
 <script>
38 38
 ;(function () {
39 39
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/deprecate.html
@@ -30,7 +30,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
30 30
 
31 31
 <ul><li><a href="../api/publish.html">publish(3)</a></li><li><a href="../api/unpublish.html">unpublish(3)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
32 32
 </div>
33  
-<p id="footer">deprecate &mdash; npm@1.1.21</p>
  33
+<p id="footer">deprecate &mdash; npm@1.1.23</p>
34 34
 <script>
35 35
 ;(function () {
36 36
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/docs.html
@@ -25,7 +25,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
25 25
 <p>This command will launch a browser, so this command may not be the most
26 26
 friendly for programmatic use.</p>
27 27
 </div>
28  
-<p id="footer">docs &mdash; npm@1.1.21</p>
  28
+<p id="footer">docs &mdash; npm@1.1.23</p>
29 29
 <script>
30 30
 ;(function () {
31 31
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/edit.html
@@ -30,7 +30,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
30 30
 <p>Since this command opens an editor in a new process, be careful about where
31 31
 and how this is used.</p>
32 32
 </div>
33  
-<p id="footer">edit &mdash; npm@1.1.21</p>
  33
+<p id="footer">edit &mdash; npm@1.1.23</p>
34 34
 <script>
35 35
 ;(function () {
36 36
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/explore.html
@@ -24,7 +24,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
24 24
 
25 25
 <p>The first element in the 'args' parameter must be a package name.  After that is the optional command, which can be any number of strings. All of the strings will be combined into one, space-delimited command.</p>
26 26
 </div>
27  
-<p id="footer">explore &mdash; npm@1.1.21</p>
  27
+<p id="footer">explore &mdash; npm@1.1.23</p>
28 28
 <script>
29 29
 ;(function () {
30 30
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/help-search.html
@@ -32,7 +32,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
32 32
 
33 33
 <p>The silent parameter is not neccessary not used, but it may in the future.</p>
34 34
 </div>
35  
-<p id="footer">help-search &mdash; npm@1.1.21</p>
  35
+<p id="footer">help-search &mdash; npm@1.1.23</p>
36 36
 <script>
37 37
 ;(function () {
38 38
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/init.html
@@ -35,7 +35,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
35 35
 
36 36
 <p><a href="../doc/json.html">json(1)</a></p>
37 37
 </div>
38  
-<p id="footer">init &mdash; npm@1.1.21</p>
  38
+<p id="footer">init &mdash; npm@1.1.23</p>
39 39
 <script>
40 40
 ;(function () {
41 41
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/install.html
@@ -25,7 +25,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
25 25
 <p>Finally, 'callback' is a function that will be called when all packages have been
26 26
 installed or when an error has been encountered.</p>
27 27
 </div>
28  
-<p id="footer">install &mdash; npm@1.1.21</p>
  28
+<p id="footer">install &mdash; npm@1.1.23</p>
29 29
 <script>
30 30
 ;(function () {
31 31
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/link.html
@@ -39,7 +39,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
2  deps/npm/html/api/load.html
@@ -32,7 +32,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
32 32
 
33 33
 <p>For a list of all the available command-line configs, see <code>npm help config</code></p>
34 34
 </div>
35  
-<p id="footer">load &mdash; npm@1.1.21</p>
  35
+<p id="footer">load &mdash; npm@1.1.23</p>
36 36
 <script>
37 37
 ;(function () {
38 38
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/ls.html
@@ -59,7 +59,7 @@ <h3 id="global">global</h3>
59 59
 This means that if a submodule a same dependency as a parent module, then the
60 60
 dependency will only be output once.</p>
61 61
 </div>
62  
-<p id="footer">ls &mdash; npm@1.1.21</p>
  62
+<p id="footer">ls &mdash; npm@1.1.23</p>
63 63
 <script>
64 64
 ;(function () {
65 65
 var wrapper = document.getElementById("wrapper")
4  deps/npm/html/api/npm.html
@@ -24,7 +24,7 @@ <h2 id="SYNOPSIS">SYNOPSIS</h2>
24 24
 
25 25
 <h2 id="VERSION">VERSION</h2>
26 26
 
27  
-<p>1.1.21</p>
  27
+<p>1.1.23</p>
28 28
 
29 29
 <h2 id="DESCRIPTION">DESCRIPTION</h2>
30 30
 
@@ -91,7 +91,7 @@ <h2 id="ABBREVS">ABBREVS</h2>
91 91
 
92 92
 <pre><code>var cmd = npm.deref("unp") // cmd === "unpublish"</code></pre>
93 93
 </div>
94  
-<p id="footer">npm &mdash; npm@1.1.21</p>
  94
+<p id="footer">npm &mdash; npm@1.1.23</p>
95 95
 <script>
96 96
 ;(function () {
97 97
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/outdated.html
@@ -19,7 +19,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
19 19
 
20 20
 <p>If the 'packages' parameter is left out, npm will check all packages.</p>
21 21
 </div>
22  
-<p id="footer">outdated &mdash; npm@1.1.21</p>
  22
+<p id="footer">outdated &mdash; npm@1.1.23</p>
23 23
 <script>
24 24
 ;(function () {
25 25
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/owner.html
@@ -34,7 +34,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
34 34
 
35 35
 <ul><li><a href="../api/publish.html">publish(3)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
36 36
 </div>
37  
-<p id="footer">owner &mdash; npm@1.1.21</p>
  37
+<p id="footer">owner &mdash; npm@1.1.23</p>
38 38
 <script>
39 39
 ;(function () {
40 40
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/pack.html
@@ -25,7 +25,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
25 25
 
26 26
 <p>If no arguments are supplied, then npm packs the current package folder.</p>
27 27
 </div>
28  
-<p id="footer">pack &mdash; npm@1.1.21</p>
  28
+<p id="footer">pack &mdash; npm@1.1.23</p>
29 29
 <script>
30 30
 ;(function () {
31 31
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/prefix.html
@@ -21,7 +21,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
21 21
 
22 22
 <p>This function is not useful programmatically</p>
23 23
 </div>
24  
-<p id="footer">prefix &mdash; npm@1.1.21</p>
  24
+<p id="footer">prefix &mdash; npm@1.1.23</p>
25 25
 <script>
26 26
 ;(function () {
27 27
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/prune.html
@@ -23,7 +23,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
23 23
 <p>Extraneous packages are packages that are not listed on the parent
24 24
 package's dependencies list.</p>
25 25
 </div>
26  
-<p id="footer">prune &mdash; npm@1.1.21</p>
  26
+<p id="footer">prune &mdash; npm@1.1.23</p>
27 27
 <script>
28 28
 ;(function () {
29 29
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/publish.html
@@ -32,7 +32,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
32 32
 
33 33
 <ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../api/owner.html">owner(3)</a></li></ul>
34 34
 </div>
35  
-<p id="footer">publish &mdash; npm@1.1.21</p>
  35
+<p id="footer">publish &mdash; npm@1.1.23</p>
36 36
 <script>
37 37
 ;(function () {
38 38
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/rebuild.html
@@ -22,7 +22,7 @@ <h2 id="CONFIGURATION">CONFIGURATION</h2>
22 22
 
23 23
 <p>See <code>npm help build</code></p>
24 24
 </div>
25  
-<p id="footer">rebuild &mdash; npm@1.1.21</p>
  25
+<p id="footer">rebuild &mdash; npm@1.1.23</p>
26 26
 <script>
27 27
 ;(function () {
28 28
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/restart.html
@@ -27,7 +27,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
27 27
 
28 28
 <ul><li><a href="../api/start.html">start(3)</a></li><li><a href="../api/stop.html">stop(3)</a></li></ul>
29 29
 </div>
30  
-<p id="footer">restart &mdash; npm@1.1.21</p>
  30
+<p id="footer">restart &mdash; npm@1.1.23</p>
31 31
 <script>
32 32
 ;(function () {
33 33
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/root.html
@@ -21,7 +21,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
21 21
 
22 22
 <p>This function is not useful programmatically.</p>
23 23
 </div>
24  
-<p id="footer">root &mdash; npm@1.1.21</p>
  24
+<p id="footer">root &mdash; npm@1.1.23</p>
25 25
 <script>
26 26
 ;(function () {
27 27
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/run-script.html
@@ -29,7 +29,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
29 29
 
30 30
 <ul><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../api/test.html">test(3)</a></li><li><a href="../api/start.html">start(3)</a></li><li><a href="../api/restart.html">restart(3)</a></li><li><a href="../api/stop.html">stop(3)</a></li></ul>
31 31
 </div>
32  
-<p id="footer">run-script &mdash; npm@1.1.21</p>
  32
+<p id="footer">run-script &mdash; npm@1.1.23</p>
33 33
 <script>
34 34
 ;(function () {
35 35
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/search.html
@@ -32,7 +32,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
32 32
 and doesn't try to read your mind (it doesn't do any verb tense matching or the
33 33
 like).</p>
34 34
 </div>
35  
-<p id="footer">search &mdash; npm@1.1.21</p>
  35
+<p id="footer">search &mdash; npm@1.1.23</p>
36 36
 <script>
37 37
 ;(function () {
38 38
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/shrinkwrap.html
@@ -26,7 +26,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
26 26
 <p>Finally, 'callback' is a function that will be called when the shrinkwrap has
27 27
 been saved.</p>
28 28
 </div>
29  
-<p id="footer">shrinkwrap &mdash; npm@1.1.21</p>
  29
+<p id="footer">shrinkwrap &mdash; npm@1.1.23</p>
30 30
 <script>
31 31
 ;(function () {
32 32
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/start.html
@@ -19,7 +19,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
19 19
 <p>npm can run tests on multiple packages. Just specify multiple packages
20 20
 in the <code>packages</code> parameter.</p>
21 21
 </div>
22  
-<p id="footer">start &mdash; npm@1.1.21</p>
  22
+<p id="footer">start &mdash; npm@1.1.23</p>
23 23
 <script>
24 24
 ;(function () {
25 25
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/stop.html
@@ -19,7 +19,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
19 19
 <p>npm can run stop on multiple packages. Just specify multiple packages
20 20
 in the <code>packages</code> parameter.</p>
21 21
 </div>
22  
-<p id="footer">stop &mdash; npm@1.1.21</p>
  22
+<p id="footer">stop &mdash; npm@1.1.23</p>
23 23
 <script>
24 24
 ;(function () {
25 25
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/submodule.html
@@ -33,7 +33,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
33 33
 
34 34
 <ul><li>npm help json</li><li>git help submodule</li></ul>
35 35
 </div>
36  
-<p id="footer">submodule &mdash; npm@1.1.21</p>
  36
+<p id="footer">submodule &mdash; npm@1.1.23</p>
37 37
 <script>
38 38
 ;(function () {
39 39
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/tag.html
@@ -29,7 +29,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
29 29
 used. For more information about how to set this config, check
30 30
 <code>man 3 npm-config</code> for programmatic usage or <code>man npm-config</code> for cli usage.</p>
31 31
 </div>
32  
-<p id="footer">tag &mdash; npm@1.1.21</p>
  32
+<p id="footer">tag &mdash; npm@1.1.23</p>
33 33
 <script>
34 34
 ;(function () {
35 35
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/test.html
@@ -22,7 +22,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
22 22
 <p>npm can run tests on multiple packages. Just specify multiple packages
23 23
 in the <code>packages</code> parameter.</p>
24 24
 </div>
25  
-<p id="footer">test &mdash; npm@1.1.21</p>
  25
+<p id="footer">test &mdash; npm@1.1.23</p>
26 26
 <script>
27 27
 ;(function () {
28 28
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/uninstall.html
@@ -22,7 +22,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
22 22
 <p>Finally, 'callback' is a function that will be called when all packages have been
23 23
 uninstalled or when an error has been encountered.</p>
24 24
 </div>
25  
-<p id="footer">uninstall &mdash; npm@1.1.21</p>
  25
+<p id="footer">uninstall &mdash; npm@1.1.23</p>
26 26
 <script>
27 27
 ;(function () {
28 28
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/unpublish.html
@@ -26,7 +26,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
26 26
 <p>If no version is specified, or if all versions are removed then
27 27
 the root package entry is removed from the registry entirely.</p>
28 28
 </div>
29  
-<p id="footer">unpublish &mdash; npm@1.1.21</p>
  29
+<p id="footer">unpublish &mdash; npm@1.1.23</p>
30 30
 <script>
31 31
 ;(function () {
32 32
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/update.html
@@ -18,7 +18,7 @@ <h2 id="SYNOPSIS">SYNOPSIS</h2>
18 18
 
19 19
 <p>The 'packages' argument is an array of packages to update. The 'callback' parameter will be called when done or when an error occurs.</p>
20 20
 </div>
21  
-<p id="footer">update &mdash; npm@1.1.21</p>
  21
+<p id="footer">update &mdash; npm@1.1.23</p>
22 22
 <script>
23 23
 ;(function () {
24 24
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/version.html
@@ -24,7 +24,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
24 24
 parameter. The difference, however, is this function will fail if it does
25 25
 not have exactly one element. The only element should be a version number.</p>
26 26
 </div>
27  
-<p id="footer">version &mdash; npm@1.1.21</p>
  27
+<p id="footer">version &mdash; npm@1.1.23</p>
28 28
 <script>
29 29
 ;(function () {
30 30
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/view.html
@@ -99,7 +99,7 @@ <h2 id="RETURN-VALUE">RETURN VALUE</h2>
99 99
 
100 100
 <p>corresponding to the list of fields selected.</p>
101 101
 </div>
102  
-<p id="footer">view &mdash; npm@1.1.21</p>
  102
+<p id="footer">view &mdash; npm@1.1.23</p>
103 103
 <script>
104 104
 ;(function () {
105 105
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/api/whoami.html
@@ -21,7 +21,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
21 21
 
22 22
 <p>This function is not useful programmatically</p>
23 23
 </div>
24  
-<p id="footer">whoami &mdash; npm@1.1.21</p>
  24
+<p id="footer">whoami &mdash; npm@1.1.23</p>
25 25
 <script>
26 26
 ;(function () {
27 27
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/doc/README.html
@@ -267,7 +267,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
267 267
 
268 268
 <ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/help.html">help(1)</a></li><li><a href="../doc/index.html">index(1)</a></li></ul>
269 269
 </div>
270  
-<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@1.1.21</p>
  270
+<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@1.1.23</p>
271 271
 <script>
272 272
 ;(function () {
273 273
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/doc/adduser.html
@@ -39,7 +39,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
39 39
 
40 40
 <ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li><li><a href="../doc/whoami.html">whoami(1)</a></li></ul>
41 41
 </div>
42  
-<p id="footer">adduser &mdash; npm@1.1.21</p>
  42
+<p id="footer">adduser &mdash; npm@1.1.23</p>
43 43
 <script>
44 44
 ;(function () {
45 45
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/doc/bin.html
@@ -20,7 +20,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
20 20
 
21 21
 <ul><li><a href="../doc/prefix.html">prefix(1)</a></li><li><a href="../doc/root.html">root(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
22 22
 </div>
23  
-<p id="footer">bin &mdash; npm@1.1.21</p>
  23
+<p id="footer">bin &mdash; npm@1.1.23</p>
24 24
 <script>
25 25
 ;(function () {
26 26
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/doc/bugs.html
@@ -36,7 +36,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
36 36
 
37 37
 <ul><li><a href="../doc/docs.html">docs(1)</a></li><li><a href="../doc/view.html">view(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li></ul>
38 38
 </div>
39  
-<p id="footer">bugs &mdash; npm@1.1.21</p>
  39
+<p id="footer">bugs &mdash; npm@1.1.23</p>
40 40
 <script>
41 41
 ;(function () {
42 42
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/doc/build.html
@@ -25,7 +25,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
25 25
 
26 26
 <ul><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/link.html">link(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/json.html">json(1)</a></li></ul>
27 27
 </div>
28  
-<p id="footer">build &mdash; npm@1.1.21</p>
  28
+<p id="footer">build &mdash; npm@1.1.23</p>
29 29
 <script>
30 30
 ;(function () {
31 31
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/doc/bundle.html
@@ -20,7 +20,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
20 20
 
21 21
 <ul><li><a href="../doc/install.html">install(1)</a></li></ul>
22 22
 </div>
23  
-<p id="footer">bundle &mdash; npm@1.1.21</p>
  23
+<p id="footer">bundle &mdash; npm@1.1.23</p>
24 24
 <script>
25 25
 ;(function () {
26 26
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/doc/cache.html
@@ -66,7 +66,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
66 66
 
67 67
 <ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/pack.html">pack(1)</a></li></ul>
68 68
 </div>
69  
-<p id="footer">cache &mdash; npm@1.1.21</p>
  69
+<p id="footer">cache &mdash; npm@1.1.23</p>
70 70
 <script>
71 71
 ;(function () {
72 72
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/doc/changelog.html
@@ -65,7 +65,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
65 65
 
66 66
 <ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li></ul>
67 67
 </div>
68  
-<p id="footer">changelog &mdash; npm@1.1.21</p>
  68
+<p id="footer">changelog &mdash; npm@1.1.23</p>
69 69
 <script>
70 70
 ;(function () {
71 71
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/doc/coding-style.html
@@ -191,7 +191,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
191 191
 
192 192
 <ul><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
193 193
 </div>
194  
-<p id="footer">coding-style &mdash; npm@1.1.21</p>
  194
+<p id="footer">coding-style &mdash; npm@1.1.23</p>
195 195
 <script>
196 196
 ;(function () {
197 197
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/doc/completion.html
@@ -33,7 +33,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
33 33
 
34 34
 <ul><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
35 35
 </div>
36  
-<p id="footer">completion &mdash; npm@1.1.21</p>
  36
+<p id="footer">completion &mdash; npm@1.1.23</p>
37 37
 <script>
38 38
 ;(function () {
39 39
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/doc/config.html
@@ -684,7 +684,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
684 684
 
685 685
 <ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
686 686
 </div>
687  
-<p id="footer">config &mdash; npm@1.1.21</p>
  687
+<p id="footer">config &mdash; npm@1.1.23</p>
688 688
 <script>
689 689
 ;(function () {
690 690
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/doc/deprecate.html
@@ -29,7 +29,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
29 29
 
30 30
 <ul><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
31 31
 </div>
32  
-<p id="footer">deprecate &mdash; npm@1.1.21</p>
  32
+<p id="footer">deprecate &mdash; npm@1.1.23</p>
33 33
 <script>
34 34
 ;(function () {
35 35
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/doc/developers.html
@@ -160,7 +160,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
160 160
 
161 161
 <ul><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/init.html">init(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
162 162
 </div>
163  
-<p id="footer">developers &mdash; npm@1.1.21</p>
  163
+<p id="footer">developers &mdash; npm@1.1.23</p>
164 164
 <script>
165 165
 ;(function () {
166 166
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/doc/disputes.html
@@ -80,7 +80,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
80 80
 
81 81
 <ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li></ul>
82 82
 </div>
83  
-<p id="footer">disputes &mdash; npm@1.1.21</p>
  83
+<p id="footer">disputes &mdash; npm@1.1.23</p>
84 84
 <script>
85 85
 ;(function () {
86 86
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/doc/docs.html
@@ -37,7 +37,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
37 37
 
38 38
 <ul><li><a href="../doc/view.html">view(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li></ul>
39 39
 </div>
40  
-<p id="footer">docs &mdash; npm@1.1.21</p>
  40
+<p id="footer">docs &mdash; npm@1.1.23</p>
41 41
 <script>
42 42
 ;(function () {
43 43
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/doc/edit.html
@@ -37,7 +37,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
37 37
 
38 38
 <ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/explore.html">explore(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
39 39
 </div>
40  
-<p id="footer">edit &mdash; npm@1.1.21</p>
  40
+<p id="footer">edit &mdash; npm@1.1.23</p>
41 41
 <script>
42 42
 ;(function () {
43 43
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/doc/explore.html
@@ -40,7 +40,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
40 40
 
41 41
 <ul><li><a href="../doc/submodule.html">submodule(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/edit.html">edit(1)</a></li><li><a href="../doc/rebuild.html">rebuild(1)</a></li><li><a href="../doc/build.html">build(1)</a></li><li><a href="../doc/install.html">install(1)</a></li></ul>
42 42
 </div>
43  
-<p id="footer">explore &mdash; npm@1.1.21</p>
  43
+<p id="footer">explore &mdash; npm@1.1.23</p>
44 44
 <script>
45 45
 ;(function () {
46 46
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/doc/faq.html
@@ -241,7 +241,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
241 241
 
242 242
 <ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li></ul>
243 243
 </div>
244  
-<p id="footer">faq &mdash; npm@1.1.21</p>
  244
+<p id="footer">faq &mdash; npm@1.1.23</p>
245 245
 <script>
246 246
 ;(function () {
247 247
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/doc/folders.html
@@ -205,7 +205,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
205 205
 
206 206
 <ul><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/pack.html">pack(1)</a></li><li><a href="../doc/cache.html">cache(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li></ul>
207 207
 </div>
208  
-<p id="footer">folders &mdash; npm@1.1.21</p>
  208
+<p id="footer">folders &mdash; npm@1.1.23</p>
209 209
 <script>
210 210
 ;(function () {
211 211
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/doc/help-search.html
@@ -38,7 +38,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
38 38
 
39 39
 <ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/help.html">help(1)</a></li></ul>
40 40
 </div>
41  
-<p id="footer">help-search &mdash; npm@1.1.21</p>
  41
+<p id="footer">help-search &mdash; npm@1.1.23</p>
42 42
 <script>
43 43
 ;(function () {
44 44
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/doc/help.html
@@ -36,7 +36,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
36 36
 
37 37
 <ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/README.html">README</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/help-search.html">help-search(1)</a></li><li><a href="../doc/index.html">index(1)</a></li></ul>
38 38
 </div>
39  
-<p id="footer">help &mdash; npm@1.1.21</p>
  39
+<p id="footer">help &mdash; npm@1.1.23</p>
40 40
 <script>
41 41
 ;(function () {
42 42
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/doc/index.html
@@ -384,7 +384,7 @@ <h2 id="npm-whoami-3"><a href="../api/whoami.html">whoami(3)</a></h2>
384 384
 
385 385
 <p> Display npm username</p>
386 386
 </div>
387  
-<p id="footer">index &mdash; npm@1.1.21</p>
  387
+<p id="footer">index &mdash; npm@1.1.23</p>
388 388
 <script>
389 389
 ;(function () {
390 390
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/doc/init.html
@@ -29,7 +29,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
29 29
 
30 30
 <ul><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/version.html">version(1)</a></li></ul>
31 31
 </div>
32  
-<p id="footer">init &mdash; npm@1.1.21</p>
  32
+<p id="footer">init &mdash; npm@1.1.23</p>
33 33
 <script>
34 34
 ;(function () {
35 35
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/doc/install.html
@@ -133,7 +133,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
133 133
 
134 134
 <ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/update.html">update(1)</a></li><li><a href="../doc/link.html">link(1)</a></li><li><a href="../doc/rebuild.html">rebuild(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/build.html">build(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/tag.html">tag(1)</a></li><li><a href="../doc/rm.html">rm(1)</a></li><li><a href="../doc/shrinkwrap.html">shrinkwrap(1)</a></li></ul>
135 135
 </div>
136  
-<p id="footer">install &mdash; npm@1.1.21</p>
  136
+<p id="footer">install &mdash; npm@1.1.23</p>
137 137
 <script>
138 138
 ;(function () {
139 139
 var wrapper = document.getElementById("wrapper")
2  deps/npm/html/doc/json.html
@@ -478,7 +478,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
478 478
 
479 479
 <ul><li><a href="../doc/semver.html">semver(1)</a></li><li><a href="../doc/init.html">init(1)</a></li><li><a href="../doc/version.html">version(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/help.html">help(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/publish.html">publish(1)