1 2010.04.23, Version 0.1.92
3 * OpenSSL support. Still undocumented (see tests). (Rhys Jones)
5 * API: Unhandled 'error' events throw.
7 * Script class with eval-function-family in binding('evals') plus tests.
10 * stream.setKeepAlive (Julian Lamb)
12 * Bugfix: Force no body on http 204 and 304
14 * Upgrade Waf to 1.5.16, V8 to 2.2.4.2
17 2010.04.15, Version 0.1.91, 311d7dee19034ff1c6bc9098c36973b8d687eaba
19 * Add incoming.httpVersion
21 * Object.prototype problem with C-Ares binding
23 * REPL can be run from multiple different streams. (Matt Ranney)
25 * After V8 heap is compact, don't use a timer every 2 seconds.
27 * Improve nextTick implementation.
29 * Add primative support for Upgrading HTTP connections.
30 (See commit log for docs 760bba5)
32 * Add timeout and maxBuffer options to child_process.exec
36 * Upgrade V8 to 2.2.3.1
39 2010.04.09, Version 0.1.90, 07e64d45ffa1856e824c4fa6afd0442ba61d6fd8
41 * Merge writing of networking system (net2)
42 - New Buffer object for binary data.
43 - Support UNIX sockets, Pipes
46 - Legacy modules can be accessed at 'http_old' and 'tcp_old'
48 * Replace udns with c-ares. (Krishna Rajendran)
50 * New documentation system using Markdown and Ronn
51 (Tim Caswell, Micheil Smith)
55 * Countless small bug fixes.
57 * Upgrade V8 to 2.2.X, WAF 1.5.15
60 2010.03.19, Version 0.1.33, 618296ef571e873976f608d91a3d6b9e65fe8284
62 * Include lib/ directory in node executable. Compile on demand.
64 * evalcx clean ups (Isaac Z. Schlueter, Tim-Smart)
66 * Various fixes, clean ups
68 * V8 upgraded to 2.1.5
71 2010.03.12, Version 0.1.32, 61c801413544a50000faa7f58376e9b33ba6254f
73 * Optimize event emitter for single listener
75 * Add process.evalcx, require.registerExtension (Tim Smart)
77 * Replace --cflags with --vars
79 * Fix bugs in fs.create*Stream (Felix Geisendörfer)
81 * Deprecate process.mixin, process.unloop
83 * Remove the 'Error: (no message)' exceptions, print stack
86 * INI parser bug fixes (Isaac Schlueter)
88 * FreeBSD fixes (Vanilla Hsu)
90 * Upgrade to V8 2.1.3, WAF 1.5.14a, libev
93 2010.03.05, Version 0.1.31, 39b63dfe1737d46a8c8818c92773ef181fd174b3
95 * API: - Move process.watchFile into fs module
96 - Move process.inherits to sys
98 * Improve Solaris port
100 * tcp.Connection.prototype.write now returns boolean to indicate if
101 argument was flushed to the kernel buffer.
103 * Added fs.link, fs.symlink, fs.readlink, fs.realpath
106 * Add setgid,getgid (James Duncan)
108 * Improve sys.inspect (Benjamin Thomas)
110 * Allow passing env to child process (Isaac Schlueter)
112 * fs.createWriteStream, fs.createReadStream (Felix Geisendörfer)
114 * Add INI parser (Rob Ellis)
116 * Bugfix: fs.readFile handling encoding (Jacek Becela)
118 * Upgrade V8 to 2.1.2
121 2010.02.22, Version 0.1.30, bb0d1e65e1671aaeb21fac186b066701da0bc33b
125 - Promises removed. See
126 http://groups.google.com/group/nodejs/msg/426f3071f3eec16b
127 http://groups.google.com/group/nodejs/msg/df199d233ff17efa
130 fs.readdir("/usr").addCallback(function (files) {
131 puts("/usr files: " + files);
136 fs.readdir("/usr", function (err, files) {
138 puts("/usr files: " + files);
141 - Synchronous fs operations exposed, use with care.
143 - tcp.Connection.prototype.readPause() and readResume()
144 renamed to pause() and resume()
146 - http.ServerResponse.prototype.sendHeader() renamed to
147 writeHeader(). Now accepts reasonPhrase.
149 * Compact garbage on idle.
151 * Configurable debug ports, and --debug-brk (Zoran Tomicic)
153 * Better command line option parsing (Jeremy Ashkenas)
155 * Add fs.chmod (Micheil Smith), fs.lstat (Isaac Z. Schlueter)
157 * Fixes to process.mixin (Rasmus Andersson, Benjamin Thomas)
159 * Upgrade V8 to 2.1.1
162 2010.02.17, Version 0.1.29, 87d5e5b316a4276bcf881f176971c1a237dcdc7a
165 - Remove 'file' module
166 - require('posix') -----------------> require('fs')
167 - fs.cat ---------------------------> fs.readFile
168 - file.write -----------------------> fs.writeFile
169 - TCP 'receive' event --------------> 'data'
170 - TCP 'eof' event ------------------> 'end'
171 - TCP send() -----------------------> write()
172 - HTTP sendBody() ------------------> write()
173 - HTTP finish() --------------------> close()
174 - HTTP 'body' event ----------------> 'data'
175 - HTTP 'complete' event ------------> 'end'
176 - http.Client.prototype.close() (formerly finish()) no longer
177 takes an argument. Add the 'response' listener manually.
178 - Allow strings for the flag argument to fs.open
179 ("r", "r+", "w", "w+", "a", "a+")
181 * Added multiple arg support for sys.puts(), print(), etc.
184 * sys.inspect(Date) now shows the date value (Mark Hansen)
186 * Calculate page size with getpagesize for armel (Jérémy Lal)
188 * Bugfix: stderr flushing.
190 * Bugfix: Promise late chain (Yuichiro MASUI)
192 * Bugfix: wait() on fired promises
193 (Felix Geisendörfer, Jonas Pfenniger)
195 * Bugfix: Use InstanceTemplate() instead of PrototypeTemplate() for
196 accessor methods. Was causing a crash with Eclipse debugger.
199 * Bugfix: Throw from connection.connect if resolving.
200 (Reported by James Golick)
203 2010.02.09, Version 0.1.28, 49de41ef463292988ddacfb01a20543b963d9669
205 * Use Google's jsmin.py which can be used for evil.
207 * Add posix.truncate()
209 * Throw errors from server.listen()
211 * stdio bugfix (test by Mikeal Rogers)
213 * Module system refactor (Felix Geisendörfer, Blaine Cook)
215 * Add process.setuid(), getuid() (Michael Carter)
217 * sys.inspect refactor (Tim Caswell)
219 * Multipart library rewrite (isaacs)
222 2010.02.03, Version 0.1.27, 0cfa789cc530848725a8cb5595224e78ae7b9dd0
224 * Implemented __dirname (Felix Geisendörfer)
226 * Downcase process.ARGV, process.ENV, GLOBAL
227 (now process.argv, process.env, global)
229 * Bug Fix: Late promise promise callbacks firing
230 (Felix Geisendörfer, Jonas Pfenniger)
232 * Make assert.AssertionError instance of Error
234 * Removed inline require call for querystring
237 * Add support for MX, TXT, and SRV records in DNS module.
240 * Bugfix: HTTP client automatically reconnecting
242 * Adding OS X .dmg build scripts. (Standa Opichal)
244 * Bugfix: ObjectWrap memory leak
246 * Bugfix: Multipart handle Content-Type headers with charset
249 * Upgrade http-parser to fix header overflow attack.
251 * Upgrade V8 to 2.1.0
253 * Various other bug fixes, performance improvements.
256 2010.01.20, Version 0.1.26, da00413196e432247346d9e587f8c78ce5ceb087
258 * Bugfix, HTTP eof causing crash (Ben Williamson)
260 * Better error message on SyntaxError
262 * API: Move Promise and EventEmitter into 'events' module
264 * API: Add process.nextTick()
266 * Allow optional params to setTimeout, setInterval
269 * API: change some Promise behavior (Felix Geisendörfer)
270 - Removed Promise.cancel()
271 - Support late callback binding
272 - Make unhandled Promise errors throw an exception
274 * Upgrade V8 to 2.0.6.1
276 * Solaris port (Erich Ocean)
279 2010.01.09, Version 0.1.25, 39ca93549af91575ca9d4cbafd1e170fbcef3dfa
281 * sys.inspect() improvements (Tim Caswell)
283 * path module improvements (isaacs, Benjamin Thomas)
285 * API: request.uri -> request.url
286 It is no longer an object, but a string. The 'url' module
287 was addded to parse that string. That is, node no longer
288 parses the request URL automatically.
290 require('url').parse(request.url)
292 is roughly equivlent to the old request.uri object.
295 * Bugfix: Several libeio related race conditions.
297 * Better errors for multipart library (Felix Geisendörfer)
299 * Bugfix: Update node-waf version to 1.5.10
301 * getmem for freebsd (Vanilla Hsu)
304 2009.12.31, Version 0.1.24, 642c2773a7eb2034f597af1cd404b9e086b59632
306 * Bugfix: don't chunk responses to HTTP/1.0 clients, even if
307 they send Connection: Keep-Alive (e.g. wget)
309 * Bugfix: libeio race condition
311 * Bugfix: Don't segfault on unknown http method
313 * Simplify exception reporting
315 * Upgrade V8 to 2.0.5.4
318 2009.12.22, Version 0.1.23, f91e347eeeeac1a8bd6a7b462df0321b60f3affc
320 * Bugfix: require("../blah") issues (isaacs)
322 * Bugfix: posix.cat (Jonas Pfenniger)
324 * Do not pause request for multipart parsing (Felix Geisendörfer)
327 2009.12.19, Version 0.1.22, a2d809fe902f6c4102dba8f2e3e9551aad137c0f
329 * Bugfix: child modules get wrong id with "index.js" (isaacs)
331 * Bugfix: require("../foo") cycles (isaacs)
333 * Bugfix: require() should throw error if module does.
335 * New URI parser stolen from Narwhal (isaacs)
337 * Bugfix: correctly check kqueue and epoll. (Rasmus Andersson)
339 * Upgrade WAF to 1.5.10
341 * Bugfix: posix.statSync() was crashing
343 * Statically define string symbols for performance improvement
345 * Bugfix: ARGV[0] weirdness
347 * Added superCtor to ctor.super_ instead superCtor.prototype.
350 * http-parser supports webdav methods
352 * API: http.Client.prototype.request() (Christopher Lenz)
355 2009.12.06, Version 0.1.21, c6affb64f96a403a14d20035e7fbd6d0ce089db5
357 * Feature: Add HTTP client TLS support (Rhys Jones)
359 * Bugfix: use --jobs=1 with WAF
361 * Bugfix: Don't use chunked encoding for 1.0 requests
363 * Bugfix: Duplicated header weren't handled correctly
365 * Improve sys.inspect (Xavier Shay)
367 * Upgrade v8 to 2.0.3
369 * Use CommonJS assert API (Felix Geisendörfer, Karl Guertin)
372 2009.11.28, Version 0.1.20, aa42c6790da8ed2cd2b72051c07f6251fe1724d8
374 * Add gnutls version to configure script
376 * Add V8 heap info to process.memoryUsage()
378 * process.watchFile callback has 2 arguments with the stat object
379 (choonkeat@gmail.com)
382 2009.11.28, Version 0.1.19, 633d6be328708055897b72327b88ac88e158935f
384 * Feature: Initial TLS support for TCP servers and clients.
387 * Add options to process.watchFile()
389 * Add process.umask() (Friedemann Altrock)
391 * Bugfix: only detach timers when active.
393 * Bugfix: lib/file.js write(), shouldn't always emit errors or success
396 * Bugfix: Memory leak in fs.write
397 (Reported by onne@onnlucky.com)
399 * Bugfix: Fix regular expressions detecting outgoing message headers.
400 (Reported by Elliott Cable)
402 * Improvements to Multipart parser (Felix Geisendörfer)
406 * Upgrade v8 to 2.0.2
409 2009.11.17, Version 0.1.18, 027829d2853a14490e6de9fc5f7094652d045ab8
411 * Feature: process.watchFile() process.unwatchFile()
413 * Feature: "uncaughtException" event on process
416 * Feature: 'drain' event to tcp.Connection
418 * Bugfix: Promise.timeout() blocked the event loop
421 * Bugfix: sendBody() and chunked utf8 strings
424 * Supply the strerror as a second arg to the tcp.Connection close
425 event (Johan Sørensen)
427 * Add EventEmitter.removeListener (frodenius@gmail.com)
429 * Format JSON for inspecting objects (Felix Geisendörfer)
431 * Upgrade libev to latest CVS
434 2009.11.07, Version 0.1.17, d1f69ef35dac810530df8249d523add168e09f03
436 * Feature: process.chdir() (Brandon Beacher)
438 * Revert http parser upgrade. (b893859c34f05db5c45f416949ebc0eee665cca6)
441 * API: rename process.inherits to sys.inherits
444 2009.11.03, Version 0.1.16, 726865af7bbafe58435986f4a193ff11c84e4bfe
446 * API: Use CommonJS-style module requiring
447 - require("/sys.js") becomes require("sys")
448 - require("circle.js") becomes require("./circle")
449 - process.path.join() becomes require("path").join()
450 - __module becomes module
452 * API: Many namespacing changes
453 - Move node.* into process.*
454 - Move node.dns into module "dns"
455 - Move node.fs into module "posix"
456 - process is no longer the global object. GLOBAL is.
458 For more information on the API changes see:
459 http://thread.gmane.org/gmane.comp.lang.javascript.nodejs/6
460 http://thread.gmane.org/gmane.comp.lang.javascript.nodejs/14
462 * Feature: process.platform, process.memoryUsage()
464 * Feature: promise.cancel() (Felix Geisendörfer)
466 * Upgrade V8 to 1.3.18
469 2009.10.28, Version 0.1.15, eca2de73ed786b935507fd1c6faccd8df9938fd3
471 * Many build system fixes (esp. for OSX users)
473 * Feature: promise.timeout() (Felix Geisendörfer)
475 * Feature: Added external interface for signal handlers, process.pid, and
476 process.kill() (Brandon Beacher)
478 * API: Rename node.libraryPaths to require.paths
480 * Bugfix: 'data' event for stdio should emit a string
484 * Upgrade http_parser
486 * Upgrade v8 to 1.3.16
489 2009.10.09, Version 0.1.14, b12c809bb84d1265b6a4d970a5b54ee8a4890513
491 * Feature: Improved addon builds with node-waf
493 * Feature: node.SignalHandler (Brandon Beacher)
495 * Feature: Enable V8 debugging (but still need to make a debugger)
497 * API: Rename library /utils.js to /sys.js
499 * Clean up Node's build system
501 * Don't use parseUri for HTTP server
505 * Don't use /bin/sh to create child process except with exec()
507 * API: Add __module to reference current module
509 * API: Remove include() add node.mixin()
511 * Normalize http headers; "Content-Length" becomes "content-length"
513 * Upgrade V8 to 1.3.15
516 2009.09.30, Version 0.1.13, 58493bb05b3da3dc8051fabc0bdea9e575c1a107
518 * Feature: Multipart stream parser (Felix Geisendörfer)
520 * API: Move node.puts(), node.exec() and others to /utils.js
522 * API: Move http, tcp libraries to /http.js and /tcp.js
524 * API: Rename node.exit() to process.exit()
526 * Bugfix: require() and include() should work in callbacks.
528 * Pass the Host header in http.cat calls
530 * Add warning when coroutine stack size grows too large.
532 * Enhance repl library (Ray Morgan)
534 * Bugfix: build script for
535 GCC 4.4 (removed -Werror in V8),
537 and with Python 2.4.4.
539 * Add read() and write() to /file.js to read and write
543 2009.09.24, Version 0.1.12, 2f56ccb45e87510de712f56705598b3b4e3548ec
545 * Feature: System modules, node.libraryPaths
547 * API: Remove "raw" encoding, rename "raws" to "binary".
549 * API: Added connection.setNoDElay() to disable Nagle algo.
551 * Decrease default TCP server backlog to 128
553 * Bugfix: memory leak involving node.fs.* methods.
555 * Upgrade v8 to 1.3.13
558 2009.09.18, Version 0.1.11, 5ddc4f5d0c002bac0ae3d62fc0dc58f0d2d83ec4
560 * API: default to utf8 encoding for node.fs.cat()
562 * API: add node.exec()
564 * API: node.fs.read() takes a normal encoding parameter.
566 * API: Change arguments of emit(), emitSuccess(), emitError()
568 * Bugfix: node.fs.write() was stack allocating buffer.
570 * Bugfix: ReportException shouldn't forget the top frame.
572 * Improve buffering for HTTP outgoing messages
574 * Fix and reenable x64 macintosh build.
576 * Upgrade v8 to 1.3.11
579 2009.09.11, Version 0.1.10, 12bb0d46ce761e3d00a27170e63b40408c15b558
581 * Feature: raw string encoding "raws"
583 * Feature: access to environ through "ENV"
585 * Feature: add isDirectory, isFile, isSocket, ... methods
588 * Bugfix: Internally use full paths when loading modules
589 this fixes a shebang loading problem.
591 * Bugfix: Add '--' command line argument for seperating v8
592 args from program args.
598 * Upgrade v8 to 1.3.10
600 2009.09.05, Version 0.1.9, d029764bb32058389ecb31ed54a5d24d2915ad4c
602 * Bugfix: Compile on Snow Leopard.
604 * Bugfix: Malformed URIs raising exceptions.
606 2009.09.04, Version 0.1.8, e6d712a937b61567e81b15085edba863be16ba96
608 * Feature: External modules
610 * Feature: setTimeout() for node.tcp.Connection
612 * Feature: add node.cwd(), node.fs.readdir(), node.fs.mkdir()
614 * Bugfix: promise.wait() releasing out of order.
616 * Bugfix: Asyncly do getaddrinfo() on Apple.
618 * Disable useless evcom error messages.
620 * Better stack traces.
622 * Built natively on x64.
624 * Upgrade v8 to 1.3.9
626 2009.08.27, Version 0.1.7, f7acef9acf8ba8433d697ad5ed99d2e857387e4b
628 * Feature: global 'process' object. Emits "exit".
630 * Feature: promise.wait()
632 * Feature: node.stdio
634 * Feature: EventEmitters emit "newListener" when listeners are
637 * API: Use flat object instead of array-of-arrays for HTTP
640 * API: Remove buffered file object (node.File)
642 * API: require(), include() are synchronous. (Uses
645 * API: Deprecate onLoad and onExit.
647 * API: Rename node.Process to node.ChildProcess
649 * Refactor node.Process to take advantage of evcom_reader/writer.
651 * Upgrade v8 to 1.3.7
653 2009.08.22, Version 0.1.6, 9c97b1db3099d61cd292aa59ec2227a619f3a7ab
655 * Bugfix: Ignore SIGPIPE.
657 2009.08.21, Version 0.1.5, b0fd3e281cb5f7cd8d3a26bd2b89e1b59998e5ed
659 * Bugfix: Buggy connections could crash node.js. Now check
660 connection before sending data every time (Kevin van Zonneveld)
662 * Bugfix: stdin fd (0) being ignored by node.File. (Abe Fettig)
664 * API: Remove connnection.fullClose()
666 * API: Return the EventEmitter from addListener for chaining.
668 * API: tcp.Connection "disconnect" event renamed to "close"
673 2009.08.13, Version 0.1.4, 0f888ed6de153f68c17005211d7e0f960a5e34f3
675 * Major refactor to evcom.
677 * Enable test-tcp-many-clients.
679 * Add -m32 gcc flag to udns.
681 * Add connection.readPause() and connection.readResume()
682 Add IncomingMessage.prototype.pause() and resume().
684 * Fix http benchmark. Wasn't correctly dispatching.
686 * Bugfix: response.setBodyEncoding("ascii") not working.
688 * Bugfix: Negative ints in HTTP's on_body and node.fs.read()
690 * Upgrade v8 to 1.3.4
692 Upgrade http_parser to v0.2
694 2009.08.06, Version 0.1.3, 695f0296e35b30cf8322fd1bd934810403cca9f3
696 * Upgrade v8 to 1.3.2
698 * Bugfix: node.http.ServerRequest.setBodyEncoding('ascii') not
701 * Bugfix: node.encodeUtf8 was broken. (Connor Dunn)
703 * Add ranlib to udns Makefile.
705 * Upgrade evcom - fix accepting too many connections issue.
707 * Initial support for shebang
709 * Add simple command line switches
711 * Add node.version API
714 2009.08.01, Version 0.1.2, 025a34244d1cea94d6d40ad7bf92671cb909a96c
718 * node.tcp.Server's backlog option is now an argument to listen()
720 * Upgrade V8 to 1.3.1
722 * Bugfix: Default to chunked for client requests without
725 * Bugfix: Line numbers in stack traces.
727 * Bugfix: negative integers in raw encoding stream
729 * Bugfix: node.fs.File was not passing args to promise callbacks.
732 2009.07.27, Version 0.1.1, 77d407df2826b20e9177c26c0d2bb4481e497937
734 * Simplify and clean up ObjectWrap.
736 * Upgrade liboi (which is now called evcom)
740 * Array.prototype.encodeUtf8 renamed to node.encodeUtf8(array)
742 * Move EventEmitter.prototype.emit() completely into C++.
744 * Bugfix: Fix memory leak in event emitters.
745 http://groups.google.com/group/nodejs/browse_thread/thread/a8d1dfc2fd57a6d1
747 * Bugfix: Had problems reading scripts with non-ascii characters.
749 * Bugfix: Fix Detach() in node::Server
751 * Bugfix: Sockets not properly reattached if reconnected during
754 * Bugfix: Server-side clients not attached between creation and
757 * Add 'close' event to node.tcp.Server
759 * Simplify and clean up http.js. (Takes more advantage of event
762 * Add benchmark scripts. Run with "make benchmark".
765 2009.06.30, Version 0.1.0, 0fe44d52fe75f151bceb59534394658aae6ac328
767 * Update documentation, use asciidoc.
769 * EventEmitter and Promise interfaces. (Breaks previous API.)
771 * Remove node.Process constructor in favor of node.createProcess
773 * Add -m32 flags for compiling on x64 platforms.
774 (Thanks to András Bártházi)
776 * Upgrade v8 to 1.2.10 and libev to 3.6
778 * Bugfix: Timer::RepeatSetter wasn't working.
780 * Bugfix: Spawning many processes in a loop
781 (reported by Felix Geisendörfer)
784 2009.06.24, Version 0.0.6, fbe0be19ebfb422d8fa20ea5204c1713e9214d5f
786 * Load modules via HTTP URLs (Urban Hafner)
788 * Bugfix: Add HTTPConnection->size() and HTTPServer->size()
790 * New node.Process API
792 * Clean up build tools, use v8's test runner.
794 * Use ev_unref() instead of starting/stopping the eio thread
798 2009.06.18, Version 0.0.5, 3a2b41de74b6c343b8464a68eff04c4bfd9aebea
802 * Remove namespace node.constants
804 * Upgrade v8 to 1.2.8.1
806 * Accept ports as strings in the TCP client and server.
808 * Bugfix: HTTP Client race
810 * Bugfix: freeaddrinfo() wasn't getting called after
811 getaddrinfo() for TCP servers
813 * Add "opening" to TCP client readyState
815 * Add remoteAddress to TCP client
817 * Add global print() function.
820 2009.06.13, Version 0.0.4, 916b9ca715b229b0703f0ed6c2fc065410fb189c
822 * Add interrupt() method to server-side HTTP requests.
824 * Bugfix: onBodyComplete was not getting called on server-side
828 2009.06.11, Version 0.0.3, 6e0dfe50006ae4f5dac987f055e0c9338662f40a
830 * Many bug fixes including the problem with http.Client on
833 * Upgrades v8 to 1.2.7
837 * Guard against buffer overflow in http parser
839 * require() and include() now need the ".js" extension
841 * http.Client uses identity transfer encoding by default.