Fetching contributors…
Cannot retrieve contributors at this time
1590 lines (849 sloc) 39.3 KB
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
2011.04.01, Version 0.4.5 (stable)
* Fix listener leak in stream.pipe() (Mikeal Rogers)
* Retain buffers in 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
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 GH-815
* Bug fix for failed buffer construction
* Added support for removing .once listeners (GH-806)
* Upgrade V8 to
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
* 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
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 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)
* 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.
* 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
* 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
* 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
* 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
* 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
* Remove legacy modules http_old and tcp_old
* Support DNS MX queries (Jérémy Lal)
* Fix large socket write (
* 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
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
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.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
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.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
("r", "r+", "w", "w+", "a", "a+")
* Added multiple arg support for sys.puts(), print(), etc.
* 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 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
* 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
* 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.
is roughly equivlent to the old request.uri object.
* 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
2009.12.22, Version 0.1.23, f91e347eeeeac1a8bd6a7b462df0321b60f3affc
* Bugfix: require("../blah") issues (isaacs)
* Bugfix: (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
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
* Bugfix: Memory leak in fs.write
(Reported by
* 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 (
* 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:
* 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,, 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 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
* API: add node.exec()
* API: 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
* API: Use flat object instead of array-of-arrays for HTTP
* API: Remove buffered file object (node.File)
* API: require(), include() are synchronous. (Uses
* 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
* 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
* 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
* 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
* 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.
* 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
* Add 'close' event to node.tcp.Server
* Simplify and clean up http.js. (Takes more advantage of event
* 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
* 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
2009.06.11, Version 0.0.3, 6e0dfe50006ae4f5dac987f055e0c9338662f40a
* Many bug fixes including the problem with http.Client on
* 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.