2011.06.29, Version 0.4.9 (stable) * Improve documentation * #1095 error handling bug in stream.pipe() (Felix Geisendörfer) * #1097 Fix a few leaks in node_crypto.cc (Ben Noordhuis) * #562 #1078 Parse file:// urls properly (Ryan Petrello) * #880 Option to disable SSLv2 (Jérémy Lal) * #1087 Disabling SSL compression disabled with early OpenSSLs. * #1144 debugger: don't allow users to input non-valid commands (Siddharth Mahendraker) * Perf improvement for util.inherits * #1166 Support for signature verification with RSA/DSA public keys (Mark Cavage) * #1177 Remove node_modules lookup optimization to better support nested project structures (Mathias Buus) * #1203 Add missing scope.Close to fs.sendfileSync * #1187 Support multiple 'link' headers * #1196 Fix -e/--eval can't load module from node_modules (Koichi Kobayashi) * Upgrade V8 to 3.1.8.25, upgrade http-parser. 2011.05.20, Version 0.4.8 (stable), 7dd22c26e4365698dc3efddf138c4d399cb912c8 * #974 Properly report traceless errors (isaacs) * #983 Better JSON.parse error detection in REPL (isaacs) * #836 Agent socket errors bubble up to req only if req exists * #1041 Fix event listener leak check timing (koichik) * #1038 Fix dns.resolve() with 'PTR' throws Error: Unknown type "PTR" (koichik) * #1073 Share SSL context between server connections (Fedor Indutny) * Disable compression with OpenSSL. Improves memory perf. * Implement os.totalmem() and os.freemem() for SunOS (Alexandre Marangone) * Fix a special characters in URL regression (isaacs) * Fix idle timeouts in HTTPS (Felix Geisendörfer) * SlowBuffer.write() with 'ucs2' throws ReferenceError. (koichik) * http.ServerRequest 'close' sometimes gets an error argument (Felix Geisendörfer) * Doc improvements * cleartextstream.destroy() should close(2) the socket. Previously was being mapped to a shutdown(2) syscall. * No longer compile out asserts and debug statements in normal build. * Debugger improvements. * Upgrade V8 to 3.1.8.16. 2011.04.22, Version 0.4.7 (stable) * Don't emit error on ECONNRESET from read() #670 * Fix: Multiple pipes to the same stream were broken #929 (Felix Geisendörfer) * URL parsing/formatting corrections #954 (isaacs) * make it possible to do repl.start('', stream) (Wade Simmons) * Add os.loadavg for SunOS (Robert Mustacchi) * Fix timeouts with floating point numbers #897 (Jorge Chamorro Bieling) * Improve docs. 2011.04.13, Version 0.4.6 (stable) * Don't error on ENOTCONN from shutdown() #670 * Auto completion of built-in debugger suggests prefix match rather than partial match. (koichik) * circular reference in vm modules. #822 (Jakub Lekstan) * http response.readable should be false after 'end' #867 (Abe Fettig) * Implemenet os.cpus() and os.uptime() on Solaris (Scott McWhirter) * fs.ReadStream: Allow omission of end option for range reads #801 (Felix Geisendörfer) * Buffer.write() with UCS-2 should not be write partial char #916 (koichik) * Pass secureProtocol through on tls.Server creation (Theo Schlossnagle) * TLS use RC4-SHA by default * Don't strangely drop out of event loop on HTTPS client uploads #892 * Doc improvements * Upgrade v8 to 3.1.8.10 2011.04.01, Version 0.4.5 (stable) * Fix listener leak in stream.pipe() (Mikeal Rogers) * Retain buffers in fs.read/write() GH-814 (Jorge Chamorro Bieling) * TLS performance improvements * SlowBuffer.prototype.slice bug GH-843 * process.stderr.write should return true * Immediate pause/resume race condition GH-535 (isaacs) * Set default host header properly GH-721 (isaacs) * Upgrade V8 to 3.1.8.8 2011.03.26, Version 0.4.4 (stable), 25122b986a90ba0982697b7abcb0158c302a1019 * CryptoStream.end shouldn't throw if not writable GH-820 * Drop out if connection destroyed before connect() GH-819 * expose https.Agent * Correctly setsid in tty.open GH-815 * Bug fix for failed buffer construction * Added support for removing .once listeners (GH-806) * Upgrade V8 to 3.1.8.5 2011.03.18, Version 0.4.3 (stable), c095ce1a1b41ca015758a713283bf1f0bd41e4c4 * Don't decrease server connection counter again if destroy() is called more than once GH-431 (Andreas Reich, Anders Conbere) * Documentation improvements (koichik) * Fix bug with setMaxListeners GH-682 * Start up memory footprint improvement. (Tom Hughes) * Solaris improvements. * Buffer::Length(Buffer*) should not invoke itself recursively GH-759 (Ben Noordhuis) * TLS: Advertise support for client certs GH-774 (Theo Schlossnagle) * HTTP Agent bugs: GH-787, GH-784, GH-803. * Don't call GetMemoryUsage every 5 seconds. * Upgrade V8 to 3.1.8.3 2011.03.02, Version 0.4.2 (stable), 39280e1b5731f3fcd8cc42ad41b86cdfdcb6d58b * Improve docs. * Fix process.on edge case with signal event (Alexis Sellier) * Pragma HTTP header comma separation * In addition to 'aborted' emit 'close' from incoming requests (Felix Geisendörfer) * Fix memleak in vm.runInNewContext * Do not cache modules that throw exceptions (Felix Geisendörfer) * Build system changes for libnode (Aria Stewart) * Read up the prototype of the 'env' object. (Nathan Rajlich) * Add 'close' and 'aborted' events to Agent responses * http: fix missing 'drain' events (Russell Haering) * Fix process.stdout.end() throws ENOTSOCK error. (Koichi Kobayashi) * REPL bug fixes (isaacs) * node_modules folders should be highest priority (isaacs) * URL parse more safely (isaacs) * Expose errno with a string for dns/cares (Felix Geisendörfer) * Fix tty.setWindowSize * spawn: setuid after chdir (isaacs) * SIGUSR1 should break the VM without delay * Upgrade V8 to 3.1.8. 2011.02.19, Version 0.4.1 (stable), e8aef84191bc2c1ba2bcaa54f30aabde7f03769b * Fixed field merging with progressive fields on writeHead() (TJ Holowaychuk) * Make the repl respect node_modules folders (isaacs) * Fix for DNS fail in HTTP request (Richard Rodger) * Default to port 80 for http.request and http.get. * Improve V8 support for Cygwin (Bert Belder) * Fix fs.open param parsing. (Felix Geisendörfer) * Fixed null signal. * Fix various HTTP and HTTPS bugs * cmake improvements (Tom Hughes) * Fix: TLS sockets should not be writable after 'end' * Fix os.cpus() on cygwin (Brian White) * MinGW: OpenSSL support (Bert Belder) * Upgrade V8 to 3.1.5, libev to 4.4. 2011.02.10, Version 0.4.0 (stable) * require() improvements (isaacs) - understand package.json (isaacs) - look for 'node_modules' dir * cmake fixes (Daniel Gröber) * http: fix buffer writes to outgoing messages (Russell Haering) * Expose UCS-2 Encoding (Konstantin Käfer) * Support strings for octal modes (isaacs) * Support array-ish args to Buffer ctor (isaacs) * cygwin and mingw improvements (Bert Belder) * TLS improvements * Fewer syscalls during require (Bert Belder, isaacs) * More DTrace probes (Bryan Cantrill, Robert Mustacchi) * 'pipe' event on pipe() (Mikeal Rogers) * CRL support in TLS (Theo Schlossnagle) * HTTP header manipulation methods (Tim Caswell, Charlie Robbins) * Upgrade V8 to 3.1.2 2011.02.04, Version 0.3.8 (unstable) * Add req.abort() for client side requests. * Add exception.code for easy testing: Example: if (err.code == 'EADDRINUSE'); * Add process.stderr. * require.main is the main module. (Isaac Schlueter) * dgram: setMulticastTTL, setMulticastLoopback and addMembership. (Joe Walnes) * Fix throttling in TLS connections * Add socket.bufferSize * MinGW improvements (Bert Belder) * Upgrade V8 to 3.1.1 2011.01.27, Version 0.3.7 (unstable) * Expose agent in http and https client. (Mikeal Rogers) * Fix bug in http request's end method. (Ali Farhadi) * MinGW: better net support (Bert Belder) * fs.open should set FD_CLOEXEC * DTrace probes (Bryan Cantrill) * REPL fixes and improvements (isaacs, Bert Belder) * Fix many bugs with legacy http.Client interface * Deprecate process.assert. Use require('assert').ok * Add callback parameter to socket.setTimeout(). (Ali Farhadi) * Fixing bug in http request default encoding (Ali Farhadi) * require: A module ID with a trailing slash must be a dir. (isaacs) * Add ext_key_usage to getPeerCertificate (Greg Hughes) * Error when child_process.exec hits maxBuffer. * Fix option parsing in tls.connect() * Upgrade to V8 3.0.10 2011.01.21, Version 0.3.6 (unstable), bb3e71466e5240626d9d21cf791fe43e87d90011 * REPL and other improvements on MinGW (Bert Belder) * listen/bind errors should close net.Server * New HTTP and HTTPS client APIs * Upgrade V8 to 3.0.9 2011.01.16, Version 0.3.5 (unstable), b622bc6305e3c675e0edfcdbaa387d849ad0bba0 * Built-in debugger improvements. * Add setsid, setuid, setgid options to child_process.spawn (Isaac Schlueter) * tty module improvements. * Upgrade libev to 4.3, libeio to latest, c-ares to 1.7.4 * Allow third party hooks before main module load. (See 496be457b6a2bc5b01ec13644b9c9783976159b2) * Don't stat() on cached modules. (Felix Geisendörfer) 2011.01.08, Version 0.3.4 (unstable) * Primordal mingw build (Bert Belder) * HTTPS server * Built in debugger 'node debug script.js' * realpath files during module load (Mihai Călin Bazon) * Rename net.Stream to net.Socket (existing name will continue to be supported) * Fix process.platform 2011.01.02, Version 0.3.3 (unstable), 57544ba1c54c7d0da890317deeb73076350c5647 * TLS improvements. * url.parse(url, true) defaults query field to {} (Jeremy Martin) * Upgrade V8 to 3.0.4 * Handle ECONNABORT properly (Theo Schlossnagle) * Fix memory leaks (Tom Hughes) * Add os.cpus(), os.freemem(), os.totalmem(), os.loadavg() and other functions for OSX, Linux, and Cygwin. (Brian White) * Fix REPL syntax error bug (GH-543), improve how REPL commands are evaulated. * Use process.stdin instead of process.openStdin(). * Disable TLS tests when node doesn't have OpenSSL. 2010.12.16, Version 0.3.2 (unstable), 4bb914bde9f3c2d6de00853353b6b8fc9c66143a * Rip out the old (broken) TLS implementation introduce new tested implementation and API. See docs. HTTPS not supported in this release. * Introduce 'os' and 'tty' modules. * Callback parameters for socket.write() and socket.connect(). * Support CNAME lookups in DNS module. (Ben Noordhuis) * cmake support (Tom Hughes) * 'make lint' * oprofile support (./configure --oprofile) * Lots of bug fixes, including: - Memory leak in ChildProcess:Spawn(). (Tom Hughes) - buffer.slice(0, 0) - Global variable leaks - clearTimeouts calling multiple times (Michael W) - utils.inspect's detection of circular structures (Tim Cooijmans) - Apple's threaded write()s bug (Jorge Chamorro Bieling) - Make sure raw mode is disabled when exiting a terminal-based REPL. (Brian White) * Deprecate process.compile, process.ENV * Upgrade V8 to 3.0.3, upgrade http-parser. 2010.11.16, Version 0.3.1 (unstable), ce9a54aa1fbf709dd30316af8a2f14d83150e947 * TLS improvments (Paul Querna) - Centralize error handling in SecureStream - Add SecurePair for handling of a ssl/tls stream. * New documentation organization (Micheil Smith) * allowHalfOpen TCP connections disabled by default. * Add C++ API for constructing fast buffer from string * Move idle timers into its own module * Gracefully handle EMFILE and server.maxConnections * make "node --eval" eval in the global scope. (Jorge Chamorro Bieling) * Let exit listeners know the exit code (isaacs) * Handle cyclic links smarter in fs.realpath (isaacs) * Remove node-repl (just use 'node' without args) * Rewrite libeio After callback to use req->result instead of req->errorno for error checking (Micheil Smith) * Remove warning about deprecating 'sys' - too aggressive * Make writes to process.env update the real environment. (Ben Noordhuis) * Set FD_CLOEXEC flag on stdio FDs before spawning. (Guillaume Tuton) * Move ev_loop out of javascript * Switch \n with \r\n for all strings printed out. * Added support for cross compilation (Rasmus Andersson) * Add --profile flag to configure script, enables gprof profiling. (Ben Noordhuis) * writeFileSync could exhibit pathological behavior when a buffer could not be written to the file in a single write() call. * new path.join behavior (isaacs) - Express desired path.join behavior in tests. - Update fs.realpath to reflect new path.join behavior - Update url.resolve() to use new path.join behavior. * API: Move process.binding('evals') to require('vm') * Fix V8 build on Cygwin (Bert Belder) * Add ref to buffer during fs.write and fs.read * Fix segfault on test-crypto * Upgrade http-parser to latest and V8 to 2.5.3 2010.10.23, Version 0.3.0 (unstable) 1582cfebd6719b2d2373547994b3dca5c8c569c0 * Bugfix: Do not spin on aceept() with EMFILE * Improvments to readline.js (Trent Mick, Johan Euphrosine, Brian White) * Safe constructors (missing 'new' doesn't segfault) * Fix process.nextTick so thrown errors don't confuse it. (Benjamin Thomas) * Allow Strings for ports on net.Server.listen (Bradley Meck) * fs bugfixes (Tj Holowaychuk, Tobie Langel, Marco Rogers, isaacs) * http bug fixes (Fedor Indutny, Mikeal Rogers) * Faster buffers; breaks C++ API (Tim-Smart, Stéphan Kochen) * crypto, tls improvements (Paul Querna) * Add lfs flags to node addon script * Simpler querystring parsing; breaks API (Peter Griess) * HTTP trailers (Mark Nottingham) * http 100-continue support (Mark Nottingham) * Module system simplifications (Herbert Vojčík, isaacs, Tim-Smart) - remove require.async - remove registerExtension, add .extensions - expose require.resolve - expose require.cache - require looks in node_modules folders * Add --eval command line option (TJ Holowaychuk) * Commas last in sys.inspect * Constatnts moved from process object to require('constants') * Fix parsing of linux memory (Vitali Lovich) * inspect shows function names (Jorge Chamorro Bieling) * uncaughtException corner cases (Felix Geisendörfer) * TCP clients now buffer writes before connection * Rename sys module to 'util' (Micheil Smith) * Properly set stdio handlers to blocking on SIGTERM and SIGINT (Tom Hughes) * Add destroy methods to HTTP messages * base64 improvements (isaacs, Jorge Chamorro Bieling) * API for defining REPL commands (Sami Samhuri) * child_process.exec timeout fix (Aaron Heckmann) * Upgrade V8 to 2.5.1, Libev to 4.00, libeio, http-parser 2010.08.20, Version 0.2.0, 9283e134e558900ba89d9a33c18a9bdedab07cb9 * process.title support for FreeBSD, Macintosh, Linux * Fix OpenSSL 100% CPU usage on error (Illarionov Oleg) * Implement net.Server.maxConnections. * Fix process.platform, add process.version. * Add --without-snapshot configure option. * Readline REPL improvements (Trent Mick) * Bug fixes. * Upgrade V8 to 2.3.8 2010.08.13, Version 0.1.104 * Various bug fixes (console, querystring, require) * Set cwd for child processes (Bert Belder) * Tab completion for readline (Trent Mick) * process.title getter/setter for OSX, Linux, Cygwin. (Rasmus Andersson, Bert Belder) * Upgrade V8 to 2.3.6 2010.08.04, Version 0.1.103, 0b925d075d359d03426f0b32bb58a5e05825b4ea * Implement keep-alive for http.Client (Mikeal Rogers) * base64 fixes. (Ben Noordhuis) * Fix --debug-brk (Danny Coates) * Don't let path.normalize get above the root. (Isaac Schlueter) * Allow signals to be used with process.on in addition to process.addListener. (Brian White) * Globalize the Buffer object * Use kqueue on recent macintosh builds * Fix addrlen for unix_dgram sockets (Benjamin Kramer) * Fix stats.isDirectory() and friends (Benjamin Kramer) * Upgrade http-parser, V8 to 2.3.5 2010.07.25, Version 0.1.102, 2a4568c85f33869c75ff43ccd30f0ec188b43eab * base64 encoding for Buffers. * Buffer support for Cipher, Decipher, Hmac, Sign and Verify (Andrew Naylor) * Support for reading byte ranges from files using fs.createReadStream. (Chandra Sekar) * Fix Buffer.toString() on 0-length slices. (Peter Griess) * Cache modules based on filename rather than ID (Isaac Schlueter) * querystring improvments (Jan Kassens, Micheil Smith) * Support DEL in the REPL. (Jérémy Lal) * Upgrade http-parser, upgrade V8 to 2.3.2 2010.07.16, Version 0.1.101, 0174ceb6b24caa0bdfc523934c56af9600fa9b58 * Added env to child_process.exec (Сергей Крыжановский) * Allow modules to optionally be loaded in separate contexts with env var NODE_MODULE_CONTEXTS=1. * setTTL and setBroadcast for dgram (Matt Ranney) * Use execPath for default NODE_PATH, not installPrefix (Isaac Schlueter) * Support of console.dir + console.assert (Jerome Etienne) * on() as alias to addListener() * Use javascript port of Ronn to build docs (Jérémy Lal) * Upgrade V8 to 2.3.0 2010.07.03, Version 0.1.100, a6b8586e947f9c3ced180fe68c233d0c252add8b * process.execPath (Marshall Culpepper) * sys.pump (Mikeal Rogers) * Remove ini and mjsunit libraries. * Introduce console.log() and friends. * Switch order of arguments for Buffer.write (Blake Mizerany) * On overlapping buffers use memmove (Matt Ranney) * Resolve .local domains with getaddrinfo() * Upgrade http-parser, V8 to 2.2.21 2010.06.21, Version 0.1.99, a620b7298f68f68a855306437a3b60b650d61d78 * Datagram sockets (Paul Querna) * fs.writeFile could not handle utf8 (Felix Geisendörfer) and now accepts Buffers (Aaron Heckmann) * Fix crypto memory leaks. * A replacement for decodeURIComponent that doesn't throw. (Isaac Schlueter) * Only concatenate some incoming HTTP headers. (Peter Griess) * Upgrade V8 to 2.2.18 2010.06.11, Version 0.1.98, 10d8adb08933d1d4cea60192c2a31c56d896733d * Port to Windows/Cygwin (Raffaele Sena) * File descriptor passing on unix sockets. (Peter Griess) * Simple, builtin readline library. REPL is now entered by executing "node" without arguments. * Add a parameter to spawn() that sets the child's stdio file descriptors. (Orlando Vazquez) * Upgrade V8 to 2.2.16, http-parser fixes, upgrade c-ares to 1.7.3. 2010.05.29, Version 0.1.97, 0c1aa36835fa6a3557843dcbc6ed6714d353a783 * HTTP throttling: outgoing messages emit 'drain' and write() returns false when send buffer is full. * API: readFileSync without encoding argument now returns a Buffer * Improve Buffer C++ API; addons now compile with debugging symbols. * Improvements to path.extname() and REPL; add fs.chown(). * fs.ReadStream now emits buffers, fs.readFileSync returns buffers. * Bugfix: parsing HTTP responses to HEAD requests. * Port to OpenBSD. * Upgrade V8 to 2.2.12, libeio, http-parser. 2010.05.21, Version 0.1.96, 9514a4d5476225e8c8310ce5acae2857033bcaaa * Thrown errors in http and socket call back get bubbled up. * Add fs.fsync (Andrew Johnston) * Bugfix: signal unregistering (Jonas Pfenniger) * Added better error messages for async and sync fs calls with paths (TJ Holowaychuk) * Support arrays and strings in buffer constructor. (Felix Geisendörfer) * Fix errno reporting in DNS exceptions. * Support buffers in fs.WriteStream.write. * Bugfix: Safely decode a utf8 streams that are broken on a multbyte character (http and net). (Felix Geisendörfer) * Make Buffer's C++ constructor public. * Deprecate sys.p() * FIX path.dirname('/tmp') => '/'. (Jonathan Rentzsch) 2010.05.13, Version 0.1.95, 0914d33842976c2c870df06573b68f9192a1fb7a * Change GC idle notify so that it runs alongside setInterval * Install node_buffer.h on make install * fs.readFile returns Buffer by default (Tim Caswell) * Fix error reporting in child_process callbacks * Better logic for testing if an argument is a port * Improve error reporting (single line "node.js:176:9" errors) * Bugfix: Some http responses being truncated (appeared in 0.1.94) * Fix long standing net idle timeout bugs. Enable 2 minute timeout by default in HTTP servers. * Add fs.fstat (Ben Noordhuis) * Upgrade to V8 2.2.9 2010.05.06, Version 0.1.94, f711d5343b29d1e72e87107315708e40951a7826 * 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) * Added c-ares headers for linux-arm (Jonathan Knezek) * Add symbols to release build * HTTP upgrade improvements, docs (Micheil Smith) * HTTP server emits 'clientError' instead of printing message * Bugfix: Don't emit 'error' twice from http.Client * Bugfix: Ignore SIGPIPE * Bugfix: destroy() instead of end() http connection at end of pipeline * Bugfix: http.Client may be prematurely released back to the free pool. (Thomas Lee) * Upgrade V8 to 2.2.8 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 * Remove legacy modules http_old and tcp_old * Support DNS MX queries (Jérémy Lal) * Fix large socket write (tlb@tlb.org) * Fix child process exit codes (Felix Geisendörfer) * Allow callers to disable PHP/Rails style parameter munging in querystring.stringify (Thomas Lee) * Upgrade V8 to 2.2.6 2010.04.23, Version 0.1.92, caa828a242f39b6158084ef4376355161c14fe34 * OpenSSL support. Still undocumented (see tests). (Rhys Jones) * API: Unhandled 'error' events throw. * Script class with eval-function-family in binding('evals') plus tests. (Herbert Vojcik) * stream.setKeepAlive (Julian Lamb) * Bugfix: Force no body on http 204 and 304 * Upgrade Waf to 1.5.16, V8 to 2.2.4.2 2010.04.15, Version 0.1.91, 311d7dee19034ff1c6bc9098c36973b8d687eaba * Add incoming.httpVersion * Object.prototype problem with C-Ares binding * REPL can be run from multiple different streams. (Matt Ranney) * After V8 heap is compact, don't use a timer every 2 seconds. * Improve nextTick implementation. * Add primative support for Upgrading HTTP connections. (See commit log for docs 760bba5) * Add timeout and maxBuffer options to child_process.exec * Fix bugs. * Upgrade V8 to 2.2.3.1 2010.04.09, Version 0.1.90, 07e64d45ffa1856e824c4fa6afd0442ba61d6fd8 * Merge writing of networking system (net2) - New Buffer object for binary data. - Support UNIX sockets, Pipes - Uniform stream API - Currently no SSL - Legacy modules can be accessed at 'http_old' and 'tcp_old' * Replace udns with c-ares. (Krishna Rajendran) * New documentation system using Markdown and Ronn (Tim Caswell, Micheil Smith) * Better idle-time GC * Countless small bug fixes. * Upgrade V8 to 2.2.X, WAF 1.5.15 2010.03.19, Version 0.1.33, 618296ef571e873976f608d91a3d6b9e65fe8284 * Include lib/ directory in node executable. Compile on demand. * evalcx clean ups (Isaac Z. Schlueter, Tim-Smart) * Various fixes, clean ups * V8 upgraded to 2.1.5 2010.03.12, Version 0.1.32, 61c801413544a50000faa7f58376e9b33ba6254f * Optimize event emitter for single listener * Add process.evalcx, require.registerExtension (Tim Smart) * Replace --cflags with --vars * Fix bugs in fs.create*Stream (Felix Geisendörfer) * Deprecate process.mixin, process.unloop * Remove the 'Error: (no message)' exceptions, print stack trace instead * INI parser bug fixes (Isaac Schlueter) * FreeBSD fixes (Vanilla Hsu) * Upgrade to V8 2.1.3, WAF 1.5.14a, libev 2010.03.05, Version 0.1.31, 39b63dfe1737d46a8c8818c92773ef181fd174b3 * API: - Move process.watchFile into fs module - Move process.inherits to sys * Improve Solaris port * tcp.Connection.prototype.write now returns boolean to indicate if argument was flushed to the kernel buffer. * Added fs.link, fs.symlink, fs.readlink, fs.realpath (Rasmus Andersson) * Add setgid,getgid (James Duncan) * Improve sys.inspect (Benjamin Thomas) * Allow passing env to child process (Isaac Schlueter) * fs.createWriteStream, fs.createReadStream (Felix Geisendörfer) * Add INI parser (Rob Ellis) * Bugfix: fs.readFile handling encoding (Jacek Becela) * Upgrade V8 to 2.1.2 2010.02.22, Version 0.1.30, bb0d1e65e1671aaeb21fac186b066701da0bc33b * Major API Changes - Promises removed. See http://groups.google.com/group/nodejs/msg/426f3071f3eec16b http://groups.google.com/group/nodejs/msg/df199d233ff17efa The API for fs was fs.readdir("/usr").addCallback(function (files) { puts("/usr files: " + files); }); It is now fs.readdir("/usr", function (err, files) { if (err) throw err; puts("/usr files: " + files); }); - Synchronous fs operations exposed, use with care. - tcp.Connection.prototype.readPause() and readResume() renamed to pause() and resume() - http.ServerResponse.prototype.sendHeader() renamed to writeHeader(). Now accepts reasonPhrase. * Compact garbage on idle. * Configurable debug ports, and --debug-brk (Zoran Tomicic) * Better command line option parsing (Jeremy Ashkenas) * Add fs.chmod (Micheil Smith), fs.lstat (Isaac Z. Schlueter) * Fixes to process.mixin (Rasmus Andersson, Benjamin Thomas) * Upgrade V8 to 2.1.1 2010.02.17, Version 0.1.29, 87d5e5b316a4276bcf881f176971c1a237dcdc7a * Major API Changes - Remove 'file' module - require('posix') -----------------> require('fs') - fs.cat ---------------------------> fs.readFile - file.write -----------------------> fs.writeFile - TCP 'receive' event --------------> 'data' - TCP 'eof' event ------------------> 'end' - TCP send() -----------------------> write() - HTTP sendBody() ------------------> write() - HTTP finish() --------------------> close() - HTTP 'body' event ----------------> 'data' - HTTP 'complete' event ------------> 'end' - http.Client.prototype.close() (formerly finish()) no longer takes an argument. Add the 'response' listener manually. - Allow strings for the flag argument to fs.open ("r", "r+", "w", "w+", "a", "a+") * Added multiple arg support for sys.puts(), print(), etc. (tj@vision-media.ca) * sys.inspect(Date) now shows the date value (Mark Hansen) * Calculate page size with getpagesize for armel (Jérémy Lal) * Bugfix: stderr flushing. * Bugfix: Promise late chain (Yuichiro MASUI) * Bugfix: wait() on fired promises (Felix Geisendörfer, Jonas Pfenniger) * Bugfix: Use InstanceTemplate() instead of PrototypeTemplate() for accessor methods. Was causing a crash with Eclipse debugger. (Zoran Tomicic) * Bugfix: Throw from connection.connect if resolving. (Reported by James Golick) 2010.02.09, Version 0.1.28, 49de41ef463292988ddacfb01a20543b963d9669 * Use Google's jsmin.py which can be used for evil. * Add posix.truncate() * Throw errors from server.listen() * stdio bugfix (test by Mikeal Rogers) * Module system refactor (Felix Geisendörfer, Blaine Cook) * Add process.setuid(), getuid() (Michael Carter) * sys.inspect refactor (Tim Caswell) * Multipart library rewrite (isaacs) 2010.02.03, Version 0.1.27, 0cfa789cc530848725a8cb5595224e78ae7b9dd0 * Implemented __dirname (Felix Geisendörfer) * Downcase process.ARGV, process.ENV, GLOBAL (now process.argv, process.env, global) * Bug Fix: Late promise promise callbacks firing (Felix Geisendörfer, Jonas Pfenniger) * Make assert.AssertionError instance of Error * Removed inline require call for querystring (self@cloudhead.net) * Add support for MX, TXT, and SRV records in DNS module. (Blaine Cook) * Bugfix: HTTP client automatically reconnecting * Adding OS X .dmg build scripts. (Standa Opichal) * Bugfix: ObjectWrap memory leak * Bugfix: Multipart handle Content-Type headers with charset (Felix Geisendörfer) * Upgrade http-parser to fix header overflow attack. * Upgrade V8 to 2.1.0 * Various other bug fixes, performance improvements. 2010.01.20, Version 0.1.26, da00413196e432247346d9e587f8c78ce5ceb087 * Bugfix, HTTP eof causing crash (Ben Williamson) * Better error message on SyntaxError * API: Move Promise and EventEmitter into 'events' module * API: Add process.nextTick() * Allow optional params to setTimeout, setInterval (Micheil Smith) * API: change some Promise behavior (Felix Geisendörfer) - Removed Promise.cancel() - Support late callback binding - Make unhandled Promise errors throw an exception * Upgrade V8 to 2.0.6.1 * Solaris port (Erich Ocean) 2010.01.09, Version 0.1.25, 39ca93549af91575ca9d4cbafd1e170fbcef3dfa * sys.inspect() improvements (Tim Caswell) * path module improvements (isaacs, Benjamin Thomas) * API: request.uri -> request.url It is no longer an object, but a string. The 'url' module was addded to parse that string. That is, node no longer parses the request URL automatically. require('url').parse(request.url) is roughly equivlent to the old request.uri object. (isaacs) * Bugfix: Several libeio related race conditions. * Better errors for multipart library (Felix Geisendörfer) * Bugfix: Update node-waf version to 1.5.10 * getmem for freebsd (Vanilla Hsu) 2009.12.31, Version 0.1.24, 642c2773a7eb2034f597af1cd404b9e086b59632 * Bugfix: don't chunk responses to HTTP/1.0 clients, even if they send Connection: Keep-Alive (e.g. wget) * Bugfix: libeio race condition * Bugfix: Don't segfault on unknown http method * Simplify exception reporting * Upgrade V8 to 2.0.5.4 2009.12.22, Version 0.1.23, f91e347eeeeac1a8bd6a7b462df0321b60f3affc * Bugfix: require("../blah") issues (isaacs) * Bugfix: posix.cat (Jonas Pfenniger) * Do not pause request for multipart parsing (Felix Geisendörfer) 2009.12.19, Version 0.1.22, a2d809fe902f6c4102dba8f2e3e9551aad137c0f * Bugfix: child modules get wrong id with "index.js" (isaacs) * Bugfix: require("../foo") cycles (isaacs) * Bugfix: require() should throw error if module does. * New URI parser stolen from Narwhal (isaacs) * Bugfix: correctly check kqueue and epoll. (Rasmus Andersson) * Upgrade WAF to 1.5.10 * Bugfix: posix.statSync() was crashing * Statically define string symbols for performance improvement * Bugfix: ARGV[0] weirdness * Added superCtor to ctor.super_ instead superCtor.prototype. (Johan Dahlberg) * http-parser supports webdav methods * API: http.Client.prototype.request() (Christopher Lenz) 2009.12.06, Version 0.1.21, c6affb64f96a403a14d20035e7fbd6d0ce089db5 * Feature: Add HTTP client TLS support (Rhys Jones) * Bugfix: use --jobs=1 with WAF * Bugfix: Don't use chunked encoding for 1.0 requests * Bugfix: Duplicated header weren't handled correctly * Improve sys.inspect (Xavier Shay) * Upgrade v8 to 2.0.3 * Use CommonJS assert API (Felix Geisendörfer, Karl Guertin) 2009.11.28, Version 0.1.20, aa42c6790da8ed2cd2b72051c07f6251fe1724d8 * Add gnutls version to configure script * Add V8 heap info to process.memoryUsage() * process.watchFile callback has 2 arguments with the stat object (choonkeat@gmail.com) 2009.11.28, Version 0.1.19, 633d6be328708055897b72327b88ac88e158935f * Feature: Initial TLS support for TCP servers and clients. (Rhys Jones) * Add options to process.watchFile() * Add process.umask() (Friedemann Altrock) * Bugfix: only detach timers when active. * Bugfix: lib/file.js write(), shouldn't always emit errors or success (onne@onnlucky.com) * Bugfix: Memory leak in fs.write (Reported by onne@onnlucky.com) * Bugfix: Fix regular expressions detecting outgoing message headers. (Reported by Elliott Cable) * Improvements to Multipart parser (Felix Geisendörfer) * New HTTP parser * Upgrade v8 to 2.0.2 2009.11.17, Version 0.1.18, 027829d2853a14490e6de9fc5f7094652d045ab8 * Feature: process.watchFile() process.unwatchFile() * Feature: "uncaughtException" event on process (Felix Geisendörfer) * Feature: 'drain' event to tcp.Connection * Bugfix: Promise.timeout() blocked the event loop (Felix Geisendörfer) * Bugfix: sendBody() and chunked utf8 strings (Felix Geisendörfer) * Supply the strerror as a second arg to the tcp.Connection close event (Johan Sørensen) * Add EventEmitter.removeListener (frodenius@gmail.com) * Format JSON for inspecting objects (Felix Geisendörfer) * Upgrade libev to latest CVS 2009.11.07, Version 0.1.17, d1f69ef35dac810530df8249d523add168e09f03 * Feature: process.chdir() (Brandon Beacher) * Revert http parser upgrade. (b893859c34f05db5c45f416949ebc0eee665cca6) Broke keep-alive. * API: rename process.inherits to sys.inherits 2009.11.03, Version 0.1.16, 726865af7bbafe58435986f4a193ff11c84e4bfe * API: Use CommonJS-style module requiring - require("/sys.js") becomes require("sys") - require("circle.js") becomes require("./circle") - process.path.join() becomes require("path").join() - __module becomes module * API: Many namespacing changes - Move node.* into process.* - Move node.dns into module "dns" - Move node.fs into module "posix" - process is no longer the global object. GLOBAL is. For more information on the API changes see: http://thread.gmane.org/gmane.comp.lang.javascript.nodejs/6 http://thread.gmane.org/gmane.comp.lang.javascript.nodejs/14 * Feature: process.platform, process.memoryUsage() * Feature: promise.cancel() (Felix Geisendörfer) * Upgrade V8 to 1.3.18 2009.10.28, Version 0.1.15, eca2de73ed786b935507fd1c6faccd8df9938fd3 * Many build system fixes (esp. for OSX users) * Feature: promise.timeout() (Felix Geisendörfer) * Feature: Added external interface for signal handlers, process.pid, and process.kill() (Brandon Beacher) * API: Rename node.libraryPaths to require.paths * Bugfix: 'data' event for stdio should emit a string * Large file support * Upgrade http_parser * Upgrade v8 to 1.3.16 2009.10.09, Version 0.1.14, b12c809bb84d1265b6a4d970a5b54ee8a4890513 * Feature: Improved addon builds with node-waf * Feature: node.SignalHandler (Brandon Beacher) * Feature: Enable V8 debugging (but still need to make a debugger) * API: Rename library /utils.js to /sys.js * Clean up Node's build system * Don't use parseUri for HTTP server * Remove node.pc * Don't use /bin/sh to create child process except with exec() * API: Add __module to reference current module * API: Remove include() add node.mixin() * Normalize http headers; "Content-Length" becomes "content-length" * Upgrade V8 to 1.3.15 2009.09.30, Version 0.1.13, 58493bb05b3da3dc8051fabc0bdea9e575c1a107 * Feature: Multipart stream parser (Felix Geisendörfer) * API: Move node.puts(), node.exec() and others to /utils.js * API: Move http, tcp libraries to /http.js and /tcp.js * API: Rename node.exit() to process.exit() * Bugfix: require() and include() should work in callbacks. * Pass the Host header in http.cat calls * Add warning when coroutine stack size grows too large. * Enhance repl library (Ray Morgan) * Bugfix: build script for GCC 4.4 (removed -Werror in V8), on Linux 2.4, and with Python 2.4.4. * Add read() and write() to /file.js to read and write whole files at once. 2009.09.24, Version 0.1.12, 2f56ccb45e87510de712f56705598b3b4e3548ec * Feature: System modules, node.libraryPaths * API: Remove "raw" encoding, rename "raws" to "binary". * API: Added connection.setNoDElay() to disable Nagle algo. * Decrease default TCP server backlog to 128 * Bugfix: memory leak involving node.fs.* methods. * Upgrade v8 to 1.3.13 2009.09.18, Version 0.1.11, 5ddc4f5d0c002bac0ae3d62fc0dc58f0d2d83ec4 * API: default to utf8 encoding for node.fs.cat() * API: add node.exec() * API: node.fs.read() takes a normal encoding parameter. * API: Change arguments of emit(), emitSuccess(), emitError() * Bugfix: node.fs.write() was stack allocating buffer. * Bugfix: ReportException shouldn't forget the top frame. * Improve buffering for HTTP outgoing messages * Fix and reenable x64 macintosh build. * Upgrade v8 to 1.3.11 2009.09.11, Version 0.1.10, 12bb0d46ce761e3d00a27170e63b40408c15b558 * Feature: raw string encoding "raws" * Feature: access to environ through "ENV" * Feature: add isDirectory, isFile, isSocket, ... methods to stats object. * Bugfix: Internally use full paths when loading modules this fixes a shebang loading problem. * Bugfix: Add '--' command line argument for seperating v8 args from program args. * Add man page. * Add node-repl * Upgrade v8 to 1.3.10 2009.09.05, Version 0.1.9, d029764bb32058389ecb31ed54a5d24d2915ad4c * Bugfix: Compile on Snow Leopard. * Bugfix: Malformed URIs raising exceptions. 2009.09.04, Version 0.1.8, e6d712a937b61567e81b15085edba863be16ba96 * Feature: External modules * Feature: setTimeout() for node.tcp.Connection * Feature: add node.cwd(), node.fs.readdir(), node.fs.mkdir() * Bugfix: promise.wait() releasing out of order. * Bugfix: Asyncly do getaddrinfo() on Apple. * Disable useless evcom error messages. * Better stack traces. * Built natively on x64. * Upgrade v8 to 1.3.9 2009.08.27, Version 0.1.7, f7acef9acf8ba8433d697ad5ed99d2e857387e4b * Feature: global 'process' object. Emits "exit". * Feature: promise.wait() * Feature: node.stdio * Feature: EventEmitters emit "newListener" when listeners are added * API: Use flat object instead of array-of-arrays for HTTP headers. * API: Remove buffered file object (node.File) * API: require(), include() are synchronous. (Uses continuations.) * API: Deprecate onLoad and onExit. * API: Rename node.Process to node.ChildProcess * Refactor node.Process to take advantage of evcom_reader/writer. * Upgrade v8 to 1.3.7 2009.08.22, Version 0.1.6, 9c97b1db3099d61cd292aa59ec2227a619f3a7ab * Bugfix: Ignore SIGPIPE. 2009.08.21, Version 0.1.5, b0fd3e281cb5f7cd8d3a26bd2b89e1b59998e5ed * Bugfix: Buggy connections could crash node.js. Now check connection before sending data every time (Kevin van Zonneveld) * Bugfix: stdin fd (0) being ignored by node.File. (Abe Fettig) * API: Remove connnection.fullClose() * API: Return the EventEmitter from addListener for chaining. * API: tcp.Connection "disconnect" event renamed to "close" * Upgrade evcom Upgrade v8 to 1.3.6 2009.08.13, Version 0.1.4, 0f888ed6de153f68c17005211d7e0f960a5e34f3 * Major refactor to evcom. * Enable test-tcp-many-clients. * Add -m32 gcc flag to udns. * Add connection.readPause() and connection.readResume() Add IncomingMessage.prototype.pause() and resume(). * Fix http benchmark. Wasn't correctly dispatching. * Bugfix: response.setBodyEncoding("ascii") not working. * Bugfix: Negative ints in HTTP's on_body and node.fs.read() * Upgrade v8 to 1.3.4 Upgrade libev to 3.8 Upgrade http_parser to v0.2 2009.08.06, Version 0.1.3, 695f0296e35b30cf8322fd1bd934810403cca9f3 * Upgrade v8 to 1.3.2 * Bugfix: node.http.ServerRequest.setBodyEncoding('ascii') not working * Bugfix: node.encodeUtf8 was broken. (Connor Dunn) * Add ranlib to udns Makefile. * Upgrade evcom - fix accepting too many connections issue. * Initial support for shebang * Add simple command line switches * Add node.version API 2009.08.01, Version 0.1.2, 025a34244d1cea94d6d40ad7bf92671cb909a96c * Add DNS API * node.tcp.Server's backlog option is now an argument to listen() * Upgrade V8 to 1.3.1 * Bugfix: Default to chunked for client requests without Content-Length. * Bugfix: Line numbers in stack traces. * Bugfix: negative integers in raw encoding stream * Bugfix: node.fs.File was not passing args to promise callbacks. 2009.07.27, Version 0.1.1, 77d407df2826b20e9177c26c0d2bb4481e497937 * Simplify and clean up ObjectWrap. * Upgrade liboi (which is now called evcom) Upgrade libev to 3.7 Upgrade V8 to 1.2.14 * Array.prototype.encodeUtf8 renamed to node.encodeUtf8(array) * Move EventEmitter.prototype.emit() completely into C++. * Bugfix: Fix memory leak in event emitters. http://groups.google.com/group/nodejs/browse_thread/thread/a8d1dfc2fd57a6d1 * Bugfix: Had problems reading scripts with non-ascii characters. * Bugfix: Fix Detach() in node::Server * Bugfix: Sockets not properly reattached if reconnected during disconnect event. * Bugfix: Server-side clients not attached between creation and on_connect. * Add 'close' event to node.tcp.Server * Simplify and clean up http.js. (Takes more advantage of event infrastructure.) * Add benchmark scripts. Run with "make benchmark". 2009.06.30, Version 0.1.0, 0fe44d52fe75f151bceb59534394658aae6ac328 * Update documentation, use asciidoc. * EventEmitter and Promise interfaces. (Breaks previous API.) * Remove node.Process constructor in favor of node.createProcess * Add -m32 flags for compiling on x64 platforms. (Thanks to András Bártházi) * Upgrade v8 to 1.2.10 and libev to 3.6 * Bugfix: Timer::RepeatSetter wasn't working. * Bugfix: Spawning many processes in a loop (reported by Felix Geisendörfer) 2009.06.24, Version 0.0.6, fbe0be19ebfb422d8fa20ea5204c1713e9214d5f * Load modules via HTTP URLs (Urban Hafner) * Bugfix: Add HTTPConnection->size() and HTTPServer->size() * New node.Process API * Clean up build tools, use v8's test runner. * Use ev_unref() instead of starting/stopping the eio thread pool watcher. 2009.06.18, Version 0.0.5, 3a2b41de74b6c343b8464a68eff04c4bfd9aebea * Support for IPv6 * Remove namespace node.constants * Upgrade v8 to 1.2.8.1 * Accept ports as strings in the TCP client and server. * Bugfix: HTTP Client race * Bugfix: freeaddrinfo() wasn't getting called after getaddrinfo() for TCP servers * Add "opening" to TCP client readyState * Add remoteAddress to TCP client * Add global print() function. 2009.06.13, Version 0.0.4, 916b9ca715b229b0703f0ed6c2fc065410fb189c * Add interrupt() method to server-side HTTP requests. * Bugfix: onBodyComplete was not getting called on server-side HTTP 2009.06.11, Version 0.0.3, 6e0dfe50006ae4f5dac987f055e0c9338662f40a * Many bug fixes including the problem with http.Client on macintosh * Upgrades v8 to 1.2.7 * Adds onExit hook * Guard against buffer overflow in http parser * require() and include() now need the ".js" extension * http.Client uses identity transfer encoding by default.