-2012.03.02 Version 0.6.12 (stable)
+2012.02.23, Version 0.7.5 (unstable)
+
+* startup speed improvements (Maciej Małecki)
+
+* crypto: add function getDiffieHellman() (Tomasz Buchert)
+
+* buffer: support decoding of URL-safe base64 (Ben Noordhuis)
+
+* Make QueryString.parse() even faster (Brian White)
+
+* url: decode url entities in auth section (Ben Noordhuis)
+
+* http: support PURGE request method (Ben Noordhuis)
+
+* http: Generate Date headers on responses (Mark Nottingham)
+
+* Fix #2762: Add callback to close function. (Mikeal Rogers)
+
+* dgram: fix out-of-bound memory read (Ben Noordhuis)
+
+* repl: add automatic loading of built-in libs (Brandon Benvie)
+
+* repl: remove double calls where possible (Fedor Indutny)
+
+* Readline improvements. Related: #2737 #2756 (Colton Baker)
+
+* build: disable -fomit-frame-pointer on solaris (Dave Pacheco)
+
+* build: arch detection improvements (Nathan Rajlich)
+
+* build: Make a fat binary for the OS X `make pkg`. (Nathan Rajlich)
+
+* jslint src/ and lib/ on 'make test' (isaacs)
+
+
+
+2012.02.14, Version 0.7.4 (unstable), de21de920cf93ec40736ada3792a7f85f3eadeda
+
+* Upgrade V8 to 3.9.5
+
+* Upgrade npm to 1.1.1
+
+* build: Detect host_arch better (Karl Skomski)
+
+* debugger: export `debug_port` to `process` (Fedor Indutny)
+
+* api docs: CSS bug fixes (isaacs)
+
+* build: use -fPIC for native addons on UNIX (Nathan Rajlich)
+
+* Re-add top-level v8::Locker (Marcel Laverdet)
+
+* Move images out of the dist tarballs (isaacs)
+
+* libuv: Remove uv_export and uv_import (Ben Noordhuis)
+
+* build: Support x64 build on Windows (Igor Zinkovsky)
+
+
+2012.02.07, Version 0.7.3 (unstable), 99059aad8d654acda4abcfaa68df182b50f2ec90
+
+* Upgrade V8 to 3.9.2
+
+* Revert support for isolates. (Ben Noordhuis)
+
+* cluster: Cleanup docs, event handling, and process.disconnect (Andreas Madsen)
+
+* gyp_addon: link with node.lib on Windows (Nathan Rajlich)
+
+* http: fix case where http-parser is freed twice (koichik)
+
+* Windows: disable RTTI and exceptions (Bert Belder)
+
+
+2012.02.01, Version 0.7.2 (unstable), ec79acb3a6166e30f0bf271fbbfda1fb575b3321
+
+* Update V8 to 3.8.9
+
+* Support for sharing streams across Isolates (Igor Zinkovsky)
+
+* #2636 - Fix case where http_parsers are freed too early (koichik)
+
+* url: Support for IPv6 addresses in URLs (Łukasz Walukiewicz)
+
+* child_process: Add disconnect() method to child processes (Andreas Madsen)
+
+* fs: add O_EXCL support, exclusive open file (Ben Noordhuis)
+
+* fs: more specific error messages (Tj Holowaychuk)
+
+* tty: emit 'unknown' key event if key sequence not found (Dan VerWeire, Nathan Rajlich)
+
+* build: compile release build too if BUILDTYPE=Debug (Ben Noordhuis)
+
+* module: fix --debug-brk on symlinked scripts (Fedor Indutny)
+
+* zlib: fix `Failed to set dictionary` issue (Fedor Indutny)
+
+* waf: predict target arch for OS X (Fedor Indutny)
+
+
+2012.01.23, Version 0.7.1 (unstable), a74354735ab5d5b0fa35a1e4ff7e653757d2069b
+
+* Update V8 to 3.8.8
+
+* Install node-waf by default (Fedor Indutny)
+
+* crypto: Add ability to turn off PKCS padding (Ingmar Runge)
+
+* v8: implement VirtualMemory class on SunOS (Ben Noordhuis)
+
+* Add cluster.setupMaster (Andreas Madsen)
+
+* move `path.exists*` to `fs.exists*` (Maciej Małecki)
+
+* typed arrays: set class name (Ben Noordhuis)
+
+* libuv bug fixes (Igor Zinkovsky, Ben Noordhuis, Dan VerWeire)
+
+
+2012.01.16, Version 0.7.0 (unstable), 9cc55dca6f67a6096c858b841c677b0593404321
+
+* Upgrade V8 to 3.8.6
+
+* Use GYP build system on unix (Ben Noordhuis)
+
+* Experimenetal isolates support (Ben Noordhuis)
+
+* Improvements to Cluster API (Andreas Madsen)
+
+* Use isolates for internal debugger (Fedor Indutny)
+
+* Bug fixes
+
+
++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)
static void uv__timer_cb(EV_P_ ev_timer* w, int revents) {
- uv_timer_t* timer = w->data;
+ uv_timer_t* timer = container_of(w, uv_timer_t, timer_watcher);
+
+ assert(uv__timer_active(timer));
+ assert(uv__timer_active(timer));
+
if (!uv__timer_repeating(timer)) {
timer->flags &= ~UV_TIMER_ACTIVE;
ev_ref(EV_A);
See `kill(2)`
++
### child.send(message, [sendHandle])
* `message` {Object}
}
});
-
-
+To close the IPC connection between parent and child use the
+`child.disconnect()` method. This allows the child to exit gracefully since
+there is no IPC channel keeping it alive. When calling this method the
+`disconnect` event will be emitted in both parent and child, and the
+`connected` flag will be set to `false`. Please note that you can also call
+`process.disconnect()` in the child process.
-
}).listen(8000);
}
+### Event: 'online'
+* `worker` {Worker object}
-## cluster.fork()
+Same as the `cluster.on('online')` event, but emits only when the state change
+on the specified worker.
-Spawn a new worker process. This can only be called from the master process.
+ cluster.fork().on('online', function (worker) {
+ // Worker is online
+ };
-## cluster.isMaster
-## cluster.isWorker
+### Event: 'listening'
+
+* `worker` {Worker object}
-Boolean flags to determine if the current process is a master or a worker
-process in a cluster. A process `isMaster` if `process.env.NODE_WORKER_ID`
-is undefined.
+Same as the `cluster.on('listening')` event, but emits only when the state change
+on the specified worker.
+
+ cluster.fork().on('listening', function (worker) {
+ // Worker is listening
+ };
- ### Event: 'death'
+ ## Event: 'death'
-When any of the workers die the cluster module will emit the 'death' event.
-This can be used to restart the worker by calling `fork()` again.
+* `worker` {Worker object}
- cluster.on('death', function(worker) {
- console.log('worker ' + worker.pid + ' died. restart...');
- cluster.fork();
- });
+Same as the `cluster.on('death')` event, but emits only when the state change
+on the specified worker.
-Different techniques can be used to restart the worker depending on the
-application.
+ cluster.fork().on('death', function (worker) {
+ // Worker has died
+ };
Note: `decipher` object can not be used after `final()` method been called.
+### decipher.setAutoPadding(auto_padding=true)
+
+You can disable auto padding if the data has been encrypted without standard block padding to prevent
+`decipher.final` from checking and removing it. Can only work if the input data's length is a multiple of the
+ciphers block size. You must call this before streaming data to `decipher.update`.
-
## crypto.createSign(algorithm)
Creates and returns a signing object, with the given algorithm.
The synchronous version of `fs.writeFile`.
+## fs.appendFile(filename, data, encoding='utf8', [callback])
+
+Asynchronously append data to a file, creating the file if it not yet exists.
+`data` can be a string or a buffer. The `encoding` argument is ignored if
+`data` is a buffer.
+
+Example:
+
+ fs.appendFile('message.txt', 'data to append', function (err) {
+ if (err) throw err;
+ console.log('The "data to append" was appended to file!');
+ });
+
+## fs.appendFileSync(filename, data, encoding='utf8')
+
+The synchronous version of `fs.appendFile`.
+
## fs.watchFile(filename, [options], listener)
+ Stability: 2 - Unstable. Use fs.watch instead, if available.
+
Watch for changes on `filename`. The callback `listener` will be called each
time the file is accessed.
fs.watch('somedir', function (event, filename) {
console.log('event is: ' + event);
- if (filename) {
+ if (filename) {
console.log('filename provided: ' + filename);
- } else {
- console.log('filename not provided');
- }
+ } else {
+ console.log('filename not provided');
+ }
});
+## fs.exists(p, [callback])
+
+Test whether or not the given path exists by checking with the file system.
+Then call the `callback` argument with either true or false. Example:
+
+ fs.exists('/etc/passwd', function (exists) {
+ util.debug(exists ? "it's there" : "no passwd!");
+ });
+
+
+## fs.existsSync(p)
+
+Synchronous version of `fs.exists`.
+
## Class: fs.Stats
Objects returned from `fs.stat()`, `fs.lstat()` and `fs.fstat()` and their
### Event: 'open'
- `function (fd) { }`
-* `fd` {Integer} file descriptor used by the ReadStream.
++* `fd` {Integer} file descriptor used by the WriteStream.
- `fd` is the file descriptor used by the WriteStream.
+ Emitted when the WriteStream's file is opened.
### file.bytesWritten
Used to print to stdout and stderr. See the [stdio](stdio.html) section.
--## Buffer
++## Class: Buffer
<!-- type=global -->
--* {Object}
++* {Function}
Used to handle binary data. See the [buffer section](buffer.html).
To require modules. See the [Modules](modules.html#modules) section.
`require` isn't actually a global but rather local to each module.
--
### require.resolve()
Use the internal `require()` machinery to look up the location of a module,
* {Object}
A reference to the current module. In particular
-`module.exports` is the same as the `exports` object. See `src/node.js`
-for more information.
+`module.exports` is the same as the `exports` object.
`module` isn't actually a global but rather local to each module.
+See the [module system documentation](modules.html) for more
+information.
-
## exports
<!-- type=var -->
nc -U /tmp/echo.sock
- ## net.connect(options, [cnnectionListener])
- ## net.createConnection(options, [cnnectionListener])
-## net.connect(arguments...)
-## net.createConnection(arguments...)
++## net.connect(options, [connectionListener])
++## net.createConnection(options, [connectionListener])
-Construct a new socket object and opens a socket to the given location. When
-the socket is established the ['connect'](#event_connect_) event will be
+Constructs a new socket object and opens the socket to the given location.
+When the socket is established, the ['connect'](#event_connect_) event will be
emitted.
-The arguments for these methods change the type of connection:
+For TCP sockets, `options` argument should be an object which specifies:
-* `net.connect(port, [host], [connectListener])`
-* `net.createConnection(port, [host], [connectListener])`
+ - `port`: Port the client should connect to (Required).
- Creates a TCP connection to `port` on `host`. If `host` is omitted,
- `'localhost'` will be assumed.
+ - `host`: Host the client should connect to. Defaults to `'localhost'`.
-* `net.connect(path, [connectListener])`
-* `net.createConnection(path, [connectListener])`
+For UNIX domain sockets, `options` argument should be an object which specifies:
- Creates unix socket connection to `path`.
+ - `path`: Path the client should connect to (Required).
+
+Common options are:
+
+ - `allowHalfOpen`: if `true`, the socket won't automatically send
+ a FIN packet when the other end of the socket sends a FIN packet.
+ Defaults to `false`.
+ See ['end'](#event_end_) event for more information.
The `connectListener` parameter will be added as an listener for the
['connect'](#event_connect_) event.
Readies readline for input from the user, putting the current `setPrompt`
options on a new line, giving the user a new spot to write.
++<<<<<<< HEAD
+This will also resume the `in` stream used with `createInterface` if it has
+been paused.
+
++=======
++>>>>>>> ry/v0.6
### rl.question(query, callback)
Prepends the prompt with `query` and invokes `callback` with the user's
applications that run across distributed devices.</p>
<a href="#download" class="button" id="downloadbutton">Download</a>
- <a href="http://nodejs.org/docs/latest/api/index.html" class="button" id="docsbutton">Docs</a>
+ <a href="http://nodejs.org/api/index.html" class="button" id="docsbutton">Docs</a>
- <p class="version">v0.6.12</p>
+ <p class="version">v0.7.5</p>
</div>
<div id="quotes" class="clearfix">
<h2>Node.js in the Industry</h2>