Doc improvements
[platform/upstream/nodejs.git] / ChangeLog
1 2011.07.19, Version 0.4.10 (stable)
2
3 * #394 Fix Buffer drops last null character in UTF-8
4
5 * #829 Backport r8577 from V8 (Ben Noordhuis)
6
7 * #877 Don't wait for HTTP Agent socket pool to establish connections. 
8
9 * #915 Find kqueue on FreeBSD correctly (Brett Kiefer) 
10
11 * #1085 HTTP: Fix race in abort/dispatch code (Stefan Rusu)
12
13 * #1274 debugger improvement (Yoshihiro Kikuchi)
14
15 * #1291 Properly respond to HEAD during end(body) hot path (Reid Burke)
16
17 * #1304 TLS: Fix race in abort/connection code (Stefan Rusu)
18
19 * #1360 Allow _ in url hostnames.
20
21 * Revert 37d529f8 - unbreaks debugger command parsing.
22
23 * Bring back global execScript
24
25 * Doc improvements
26
27
28 2011.06.29, Version 0.4.9 (stable)
29
30 * Improve documentation
31
32 * #1095 error handling bug in stream.pipe() (Felix Geisendörfer)
33
34 * #1097 Fix a few leaks in node_crypto.cc (Ben Noordhuis)
35
36 * #562 #1078 Parse file:// urls properly (Ryan Petrello)
37
38 * #880 Option to disable SSLv2 (Jérémy Lal)
39
40 * #1087 Disabling SSL compression disabled with early OpenSSLs.
41
42 * #1144 debugger: don't allow users to input non-valid commands
43   (Siddharth Mahendraker)
44
45 * Perf improvement for util.inherits
46
47 * #1166 Support for signature verification with RSA/DSA public keys
48   (Mark Cavage)
49
50 * #1177 Remove node_modules lookup optimization to better support
51   nested project structures (Mathias Buus)
52
53 * #1203 Add missing scope.Close to fs.sendfileSync
54
55 * #1187 Support multiple 'link' headers
56
57 * #1196 Fix -e/--eval can't load module from node_modules (Koichi Kobayashi)
58
59 * Upgrade V8 to 3.1.8.25, upgrade http-parser.
60
61
62 2011.05.20, Version 0.4.8 (stable), 7dd22c26e4365698dc3efddf138c4d399cb912c8
63
64 * #974 Properly report traceless errors (isaacs)
65
66 * #983 Better JSON.parse error detection in REPL (isaacs)
67
68 * #836 Agent socket errors bubble up to req only if req exists
69
70 * #1041 Fix event listener leak check timing (koichik)
71
72 *       #1038 Fix dns.resolve() with 'PTR' throws Error: Unknown type "PTR"
73   (koichik)
74
75 * #1073 Share SSL context between server connections (Fedor Indutny)
76
77 * Disable compression with OpenSSL. Improves memory perf.
78
79 * Implement os.totalmem() and os.freemem() for SunOS (Alexandre Marangone)
80
81 * Fix a special characters in URL regression (isaacs)
82
83 * Fix idle timeouts in HTTPS (Felix Geisendörfer)
84
85 * SlowBuffer.write() with 'ucs2' throws ReferenceError. (koichik)
86
87 * http.ServerRequest 'close' sometimes gets an error argument
88   (Felix Geisendörfer)
89
90 * Doc improvements
91
92 * cleartextstream.destroy() should close(2) the socket. Previously was being
93         mapped to a shutdown(2) syscall.
94
95 * No longer compile out asserts and debug statements in normal build.
96
97 * Debugger improvements.
98
99 * Upgrade V8 to 3.1.8.16.
100
101
102 2011.04.22, Version 0.4.7 (stable)
103
104 * Don't emit error on ECONNRESET from read() #670
105
106 * Fix: Multiple pipes to the same stream were broken #929
107   (Felix Geisendörfer)
108
109 * URL parsing/formatting corrections #954 (isaacs)
110
111 * make it possible to do repl.start('', stream) (Wade Simmons)
112
113 * Add os.loadavg for SunOS (Robert Mustacchi)
114
115 * Fix timeouts with floating point numbers #897 (Jorge Chamorro Bieling)
116
117 * Improve docs.
118
119
120 2011.04.13, Version 0.4.6 (stable)
121
122 * Don't error on ENOTCONN from shutdown() #670
123
124 * Auto completion of built-in debugger suggests prefix match rather than
125         partial match. (koichik)
126
127 * circular reference in vm modules. #822 (Jakub Lekstan)
128
129 * http response.readable should be false after 'end' #867 (Abe Fettig)
130
131 * Implement os.cpus() and os.uptime() on Solaris (Scott McWhirter)
132
133 * fs.ReadStream: Allow omission of end option for range reads #801
134         (Felix Geisendörfer)
135
136 * Buffer.write() with UCS-2 should not be write partial char
137         #916 (koichik)
138
139 * Pass secureProtocol through on tls.Server creation (Theo Schlossnagle)
140
141 * TLS use RC4-SHA by default
142
143 * Don't strangely drop out of event loop on HTTPS client uploads #892
144
145 * Doc improvements
146
147 * Upgrade v8 to 3.1.8.10
148
149
150 2011.04.01, Version 0.4.5 (stable)
151
152 * Fix listener leak in stream.pipe() (Mikeal Rogers)
153
154 * Retain buffers in fs.read/write() GH-814 (Jorge Chamorro Bieling)
155
156 * TLS performance improvements
157
158 * SlowBuffer.prototype.slice bug GH-843
159
160 * process.stderr.write should return true
161
162 * Immediate pause/resume race condition GH-535 (isaacs)
163
164 * Set default host header properly GH-721 (isaacs)
165
166 * Upgrade V8 to 3.1.8.8
167
168
169 2011.03.26, Version 0.4.4 (stable), 25122b986a90ba0982697b7abcb0158c302a1019
170
171 * CryptoStream.end shouldn't throw if not writable GH-820
172
173 * Drop out if connection destroyed before connect() GH-819
174
175 * expose https.Agent
176
177 * Correctly setsid in tty.open GH-815
178
179 * Bug fix for failed buffer construction
180
181 * Added support for removing .once listeners (GH-806)
182
183 * Upgrade V8 to 3.1.8.5
184
185
186 2011.03.18, Version 0.4.3 (stable), c095ce1a1b41ca015758a713283bf1f0bd41e4c4
187
188 * Don't decrease server connection counter again if destroy() is called more
189         than once GH-431 (Andreas Reich, Anders Conbere)
190
191 * Documentation improvements (koichik)
192
193 * Fix bug with setMaxListeners GH-682
194
195 * Start up memory footprint improvement. (Tom Hughes)
196
197 * Solaris improvements.
198
199 * Buffer::Length(Buffer*) should not invoke itself recursively GH-759 (Ben
200   Noordhuis)
201
202 * TLS: Advertise support for client certs GH-774 (Theo Schlossnagle)
203
204 * HTTP Agent bugs: GH-787, GH-784, GH-803.
205
206 * Don't call GetMemoryUsage every 5 seconds.
207
208 * Upgrade V8 to 3.1.8.3
209
210
211 2011.03.02, Version 0.4.2 (stable), 39280e1b5731f3fcd8cc42ad41b86cdfdcb6d58b
212
213 * Improve docs.
214
215 * Fix process.on edge case with signal event (Alexis Sellier)
216
217 * Pragma HTTP header comma separation
218
219 * In addition to 'aborted' emit 'close' from incoming requests
220   (Felix Geisendörfer)
221
222 * Fix memleak in vm.runInNewContext
223
224 * Do not cache modules that throw exceptions (Felix Geisendörfer)
225
226 * Build system changes for libnode (Aria Stewart)
227
228 * Read up the prototype of the 'env' object. (Nathan Rajlich)
229
230 * Add 'close' and 'aborted' events to Agent responses
231
232 * http: fix missing 'drain' events (Russell Haering)
233
234 * Fix process.stdout.end() throws ENOTSOCK error. (Koichi Kobayashi)
235
236 * REPL bug fixes (isaacs)
237
238 * node_modules folders should be highest priority (isaacs)
239
240 * URL parse more safely (isaacs)
241
242 * Expose errno with a string for dns/cares (Felix Geisendörfer)
243
244 * Fix tty.setWindowSize
245
246 * spawn: setuid after chdir (isaacs)
247
248 * SIGUSR1 should break the VM without delay
249
250 * Upgrade V8 to 3.1.8.
251
252
253 2011.02.19, Version 0.4.1 (stable), e8aef84191bc2c1ba2bcaa54f30aabde7f03769b
254
255 * Fixed field merging with progressive fields on writeHead()
256   (TJ Holowaychuk)
257
258 * Make the repl respect node_modules folders (isaacs)
259
260 * Fix for DNS fail in HTTP request (Richard Rodger)
261
262 * Default to port 80 for http.request and http.get.
263
264 * Improve V8 support for Cygwin (Bert Belder)
265
266 * Fix fs.open param parsing. (Felix Geisendörfer)
267
268 * Fixed null signal.
269
270 * Fix various HTTP and HTTPS bugs
271
272 * cmake improvements (Tom Hughes)
273
274 * Fix: TLS sockets should not be writable after 'end'
275
276 * Fix os.cpus() on cygwin (Brian White)
277
278 * MinGW: OpenSSL support (Bert Belder)
279
280 * Upgrade V8 to 3.1.5, libev to 4.4.
281
282
283 2011.02.10, Version 0.4.0 (stable)
284
285 * require() improvements (isaacs)
286   - understand package.json (isaacs)
287   - look for 'node_modules' dir
288
289 * cmake fixes (Daniel Gröber)
290
291 * http: fix buffer writes to outgoing messages (Russell Haering)
292
293 * Expose UCS-2 Encoding (Konstantin Käfer)
294
295 * Support strings for octal modes (isaacs)
296
297 * Support array-ish args to Buffer ctor (isaacs)
298
299 * cygwin and mingw improvements (Bert Belder)
300
301 * TLS improvements
302
303 * Fewer syscalls during require (Bert Belder, isaacs)
304
305 * More DTrace probes (Bryan Cantrill,  Robert Mustacchi)
306
307 * 'pipe' event on pipe() (Mikeal Rogers)
308
309 * CRL support in TLS (Theo Schlossnagle)
310
311 * HTTP header manipulation methods (Tim Caswell, Charlie Robbins)
312
313 * Upgrade V8 to 3.1.2
314
315
316 2011.02.04, Version 0.3.8 (unstable)
317
318 * Add req.abort() for client side requests.
319
320 * Add exception.code for easy testing:
321   Example: if (err.code == 'EADDRINUSE');
322
323 * Add process.stderr.
324
325 * require.main is the main module. (Isaac Schlueter)
326
327 * dgram: setMulticastTTL, setMulticastLoopback and addMembership.
328   (Joe Walnes)
329
330 * Fix throttling in TLS connections
331
332 * Add socket.bufferSize
333
334 * MinGW improvements (Bert Belder)
335
336 * Upgrade V8 to 3.1.1
337
338 2011.01.27, Version 0.3.7 (unstable)
339
340 * Expose agent in http and https client. (Mikeal Rogers)
341
342 * Fix bug in http request's end method. (Ali Farhadi)
343
344 * MinGW: better net support (Bert Belder)
345
346 * fs.open should set FD_CLOEXEC
347
348 * DTrace probes (Bryan Cantrill)
349
350 * REPL fixes and improvements (isaacs, Bert Belder)
351
352 * Fix many bugs with legacy http.Client interface
353
354 * Deprecate process.assert. Use require('assert').ok
355
356 * Add callback parameter to socket.setTimeout(). (Ali Farhadi)
357
358 * Fixing bug in http request default encoding (Ali Farhadi)
359
360 * require: A module ID with a trailing slash must be a dir.
361   (isaacs)
362
363 * Add ext_key_usage to getPeerCertificate (Greg Hughes)
364
365 * Error when child_process.exec hits maxBuffer.
366
367 * Fix option parsing in tls.connect()
368
369 * Upgrade to V8 3.0.10
370
371
372 2011.01.21, Version 0.3.6 (unstable), bb3e71466e5240626d9d21cf791fe43e87d90011
373
374 * REPL and other improvements on MinGW (Bert Belder)
375
376 * listen/bind errors should close net.Server
377
378 * New HTTP and HTTPS client APIs
379
380 * Upgrade V8 to 3.0.9
381
382
383 2011.01.16, Version 0.3.5 (unstable), b622bc6305e3c675e0edfcdbaa387d849ad0bba0
384
385 * Built-in debugger improvements.
386
387 * Add setsid, setuid, setgid options to child_process.spawn
388   (Isaac Schlueter)
389
390 * tty module improvements.
391
392 * Upgrade libev to 4.3, libeio to latest, c-ares to 1.7.4
393
394 * Allow third party hooks before main module load.
395   (See 496be457b6a2bc5b01ec13644b9c9783976159b2)
396
397 * Don't stat() on cached modules. (Felix Geisendörfer)
398
399
400 2011.01.08, Version 0.3.4 (unstable)
401
402 * Primordial mingw build (Bert Belder)
403
404 * HTTPS server
405
406 * Built in debugger 'node debug script.js' 
407
408 * realpath files during module load (Mihai Călin Bazon)
409
410 * Rename net.Stream to net.Socket (existing name will continue to be
411   supported)
412
413 * Fix process.platform
414
415
416 2011.01.02, Version 0.3.3 (unstable), 57544ba1c54c7d0da890317deeb73076350c5647
417
418 * TLS improvements.
419
420 * url.parse(url, true) defaults query field to {} (Jeremy Martin)
421
422 * Upgrade V8 to 3.0.4
423
424 * Handle ECONNABORT properly (Theo Schlossnagle)
425
426 * Fix memory leaks (Tom Hughes)
427
428 * Add os.cpus(), os.freemem(), os.totalmem(), os.loadavg() and other
429   functions for OSX, Linux, and Cygwin. (Brian White)
430
431 * Fix REPL syntax error bug (GH-543), improve how REPL commands are
432   evaluated.
433
434 * Use process.stdin instead of process.openStdin().
435
436 * Disable TLS tests when node doesn't have OpenSSL.
437
438
439 2010.12.16, Version 0.3.2 (unstable), 4bb914bde9f3c2d6de00853353b6b8fc9c66143a
440
441 * Rip out the old (broken) TLS implementation introduce new tested
442   implementation and API. See docs. HTTPS not supported in this release.
443
444 * Introduce 'os' and 'tty' modules.
445
446 * Callback parameters for socket.write() and socket.connect().
447
448 * Support CNAME lookups in DNS module. (Ben Noordhuis)
449
450 * cmake support (Tom Hughes)
451
452 * 'make lint'
453
454 * oprofile support (./configure --oprofile)
455
456 * Lots of bug fixes, including:
457   - Memory leak in ChildProcess:Spawn(). (Tom Hughes)
458   - buffer.slice(0, 0)
459   - Global variable leaks
460   - clearTimeouts calling multiple times (Michael W)
461   - utils.inspect's detection of circular structures (Tim Cooijmans)
462   - Apple's threaded write()s bug (Jorge Chamorro Bieling)
463   - Make sure raw mode is disabled when exiting a terminal-based REPL.
464     (Brian White)
465
466 * Deprecate process.compile, process.ENV
467
468 * Upgrade V8 to 3.0.3, upgrade http-parser.
469
470
471 2010.11.16, Version 0.3.1 (unstable), ce9a54aa1fbf709dd30316af8a2f14d83150e947
472
473 * TLS improvements (Paul Querna)
474   - Centralize error handling in SecureStream
475   - Add SecurePair for handling of a ssl/tls stream.
476
477 * New documentation organization (Micheil Smith)
478
479 * allowHalfOpen TCP connections disabled by default.
480
481 * Add C++ API for constructing fast buffer from string
482
483 * Move idle timers into its own module
484
485 * Gracefully handle EMFILE and server.maxConnections
486
487 * make "node --eval" eval in the global scope.
488   (Jorge Chamorro Bieling)
489
490 * Let exit listeners know the exit code (isaacs)
491
492 * Handle cyclic links smarter in fs.realpath (isaacs)
493
494 * Remove node-repl (just use 'node' without args)
495
496 * Rewrite libeio After callback to use req->result instead of req->errorno
497   for error checking (Micheil Smith)
498
499 * Remove warning about deprecating 'sys' - too aggressive
500
501 * Make writes to process.env update the real environment. (Ben Noordhuis)
502
503 * Set FD_CLOEXEC flag on stdio FDs before spawning. (Guillaume Tuton)
504
505 * Move ev_loop out of javascript
506
507 * Switch \n with \r\n for all strings printed out.
508
509 * Added support for cross compilation (Rasmus Andersson)
510
511 * Add --profile flag to configure script, enables gprof profiling.
512   (Ben Noordhuis)
513
514 * writeFileSync could exhibit pathological behavior when a buffer
515   could not be written to the file in a single write() call.
516
517 * new path.join behavior (isaacs)
518   - Express desired path.join behavior in tests.
519   - Update fs.realpath to reflect new path.join behavior
520   - Update url.resolve() to use new path.join behavior.
521
522 * API: Move process.binding('evals') to require('vm')
523
524 * Fix V8 build on Cygwin (Bert Belder)
525
526 * Add ref to buffer during fs.write and fs.read
527
528 * Fix segfault on test-crypto
529
530 * Upgrade http-parser to latest and V8 to 2.5.3
531
532
533 2010.10.23, Version 0.3.0 (unstable) 1582cfebd6719b2d2373547994b3dca5c8c569c0
534
535 * Bugfix: Do not spin on accept() with EMFILE
536
537 * Improvements to readline.js (Trent Mick, Johan Euphrosine, Brian White)
538
539 * Safe constructors (missing 'new' doesn't segfault)
540
541 * Fix process.nextTick so thrown errors don't confuse it.
542   (Benjamin Thomas)
543
544 * Allow Strings for ports on net.Server.listen (Bradley Meck)
545
546 * fs bugfixes (Tj Holowaychuk, Tobie Langel, Marco Rogers, isaacs)
547
548 * http bug fixes (Fedor Indutny, Mikeal Rogers) 
549
550 * Faster buffers; breaks C++ API (Tim-Smart, Stéphan Kochen)
551
552 * crypto, tls improvements (Paul Querna)
553
554 * Add lfs flags to node addon script
555
556 * Simpler querystring parsing; breaks API (Peter Griess)
557
558 * HTTP trailers (Mark Nottingham)
559
560 * http 100-continue support (Mark Nottingham)
561
562 * Module system simplifications (Herbert Vojčík, isaacs, Tim-Smart)
563   - remove require.async
564   - remove registerExtension, add .extensions
565   - expose require.resolve
566   - expose require.cache
567   - require looks in  node_modules folders
568
569 * Add --eval command line option (TJ Holowaychuk)
570
571 * Commas last in sys.inspect
572
573 * Constants moved from process object to require('constants')
574
575 * Fix parsing of linux memory (Vitali Lovich)
576
577 * inspect shows function names (Jorge Chamorro Bieling)
578
579 * uncaughtException corner cases (Felix Geisendörfer)
580
581 * TCP clients now buffer writes before connection
582
583 * Rename sys module to 'util' (Micheil Smith)
584
585 * Properly set stdio handlers to blocking on SIGTERM and SIGINT
586   (Tom Hughes)
587
588 * Add destroy methods to HTTP messages
589
590 * base64 improvements (isaacs, Jorge Chamorro Bieling)
591
592 * API for defining REPL commands (Sami Samhuri)
593
594 * child_process.exec timeout fix (Aaron Heckmann)
595
596 * Upgrade V8 to 2.5.1, Libev to 4.00, libeio, http-parser
597
598
599 2010.08.20, Version 0.2.0, 9283e134e558900ba89d9a33c18a9bdedab07cb9
600
601 * process.title support for FreeBSD, Macintosh, Linux
602
603 * Fix OpenSSL 100% CPU usage on error (Illarionov Oleg)
604
605 * Implement net.Server.maxConnections.
606
607 * Fix process.platform, add process.version.
608
609 * Add --without-snapshot configure option.
610
611 * Readline REPL improvements (Trent Mick)
612
613 * Bug fixes.
614
615 * Upgrade V8 to 2.3.8
616
617
618 2010.08.13, Version 0.1.104
619
620 * Various bug fixes (console, querystring, require)
621
622 * Set cwd for child processes (Bert Belder)
623
624 * Tab completion for readline (Trent Mick)
625
626 * process.title getter/setter for OSX, Linux, Cygwin.
627         (Rasmus Andersson, Bert Belder)
628
629 * Upgrade V8 to 2.3.6
630
631
632 2010.08.04, Version 0.1.103, 0b925d075d359d03426f0b32bb58a5e05825b4ea
633
634 * Implement keep-alive for http.Client (Mikeal Rogers)
635
636 * base64 fixes. (Ben Noordhuis)
637
638 * Fix --debug-brk (Danny Coates)
639
640 * Don't let path.normalize get above the root. (Isaac Schlueter)
641
642 * Allow signals to be used with process.on in addition to
643   process.addListener. (Brian White)
644
645 * Globalize the Buffer object
646
647 * Use kqueue on recent macintosh builds
648
649 * Fix addrlen for unix_dgram sockets (Benjamin Kramer)
650
651 * Fix stats.isDirectory() and friends (Benjamin Kramer)
652
653 * Upgrade http-parser, V8 to 2.3.5
654
655
656 2010.07.25, Version 0.1.102, 2a4568c85f33869c75ff43ccd30f0ec188b43eab
657
658 * base64 encoding for Buffers.
659
660 * Buffer support for Cipher, Decipher, Hmac, Sign and Verify
661   (Andrew Naylor)
662
663 * Support for reading byte ranges from files using fs.createReadStream.
664   (Chandra Sekar)
665
666 * Fix Buffer.toString() on 0-length slices. (Peter Griess)
667
668 * Cache modules based on filename rather than ID (Isaac Schlueter)
669
670 * querystring improvments (Jan Kassens, Micheil Smith)
671
672 * Support DEL in the REPL. (Jérémy Lal)
673
674 * Upgrade http-parser, upgrade V8 to 2.3.2
675
676
677 2010.07.16, Version 0.1.101, 0174ceb6b24caa0bdfc523934c56af9600fa9b58
678
679 * Added env to child_process.exec (Сергей Крыжановский)
680
681 * Allow modules to optionally be loaded in separate contexts
682   with env var NODE_MODULE_CONTEXTS=1.
683
684 * setTTL and setBroadcast for dgram (Matt Ranney)
685
686 * Use execPath for default NODE_PATH, not installPrefix
687   (Isaac Schlueter)
688
689 * Support of console.dir + console.assert (Jerome Etienne)
690
691 * on() as alias to addListener()
692
693 * Use javascript port of Ronn to build docs (Jérémy Lal)
694
695 * Upgrade V8 to 2.3.0
696
697
698 2010.07.03, Version 0.1.100, a6b8586e947f9c3ced180fe68c233d0c252add8b
699
700 * process.execPath (Marshall Culpepper)
701
702 * sys.pump (Mikeal Rogers)
703
704 * Remove ini and mjsunit libraries.
705
706 * Introduce console.log() and friends.
707
708 * Switch order of arguments for Buffer.write (Blake Mizerany)
709
710 * On overlapping buffers use memmove (Matt Ranney)
711
712 * Resolve .local domains with getaddrinfo()
713
714 * Upgrade http-parser, V8 to 2.2.21
715
716
717 2010.06.21, Version 0.1.99, a620b7298f68f68a855306437a3b60b650d61d78 
718
719 * Datagram sockets (Paul Querna)
720
721 * fs.writeFile could not handle utf8 (Felix Geisendörfer)
722   and now accepts Buffers (Aaron Heckmann)
723
724 * Fix crypto memory leaks.
725
726 * A replacement for decodeURIComponent that doesn't throw.
727   (Isaac Schlueter)
728
729 * Only concatenate some incoming HTTP headers. (Peter Griess)
730
731 * Upgrade V8 to 2.2.18
732
733
734 2010.06.11, Version 0.1.98, 10d8adb08933d1d4cea60192c2a31c56d896733d
735
736 * Port to Windows/Cygwin (Raffaele Sena)
737
738 * File descriptor passing on unix sockets. (Peter Griess)
739
740 * Simple, builtin readline library. REPL is now entered by
741   executing "node" without arguments.
742
743 * Add a parameter to spawn() that sets the child's stdio file
744   descriptors. (Orlando Vazquez)
745
746 * Upgrade V8 to 2.2.16, http-parser fixes, upgrade c-ares to 1.7.3.
747
748
749 2010.05.29, Version 0.1.97, 0c1aa36835fa6a3557843dcbc6ed6714d353a783
750
751 * HTTP throttling: outgoing messages emit 'drain' and write() returns false
752   when send buffer is full.
753
754 * API: readFileSync without encoding argument now returns a Buffer
755
756 * Improve Buffer C++ API; addons now compile with debugging symbols.
757
758 * Improvements to  path.extname() and REPL; add fs.chown().
759
760 * fs.ReadStream now emits buffers, fs.readFileSync returns buffers.
761
762 * Bugfix: parsing HTTP responses to HEAD requests.
763
764 * Port to OpenBSD.
765
766 * Upgrade V8 to 2.2.12, libeio, http-parser.
767
768
769 2010.05.21, Version 0.1.96, 9514a4d5476225e8c8310ce5acae2857033bcaaa
770
771 * Thrown errors in http and socket call back get bubbled up.
772
773 * Add fs.fsync (Andrew Johnston)
774
775 * Bugfix: signal unregistering (Jonas Pfenniger)
776
777 * Added better error messages for async and sync fs calls with paths
778   (TJ Holowaychuk)
779
780 * Support arrays and strings in buffer constructor.
781   (Felix Geisendörfer)
782
783 * Fix errno reporting in DNS exceptions.
784
785 * Support buffers in fs.WriteStream.write.
786
787 * Bugfix: Safely decode a utf8 streams that are broken on a multbyte
788   character (http and net). (Felix Geisendörfer)
789
790 * Make Buffer's C++ constructor public.
791
792 * Deprecate sys.p()
793
794 * FIX path.dirname('/tmp') => '/'. (Jonathan Rentzsch)
795
796
797 2010.05.13, Version 0.1.95, 0914d33842976c2c870df06573b68f9192a1fb7a
798
799 * Change GC idle notify so that it runs alongside setInterval
800
801 * Install node_buffer.h on make install
802
803 * fs.readFile returns Buffer by default (Tim Caswell)
804
805 * Fix error reporting in child_process callbacks
806
807 * Better logic for testing if an argument is a port
808
809 * Improve error reporting (single line "node.js:176:9" errors)
810
811 * Bugfix: Some http responses being truncated (appeared in 0.1.94)
812
813 * Fix long standing net idle timeout bugs. Enable 2 minute timeout
814   by default in HTTP servers.
815
816 * Add fs.fstat (Ben Noordhuis)
817
818 * Upgrade to V8 2.2.9
819
820
821 2010.05.06, Version 0.1.94, f711d5343b29d1e72e87107315708e40951a7826
822
823 * Look in /usr/local/lib/node for modules, so that there's a way 
824   to install modules globally (Issac Schlueter)
825
826 * SSL improvements (Rhys Jones, Paulo Matias)
827
828 * Added c-ares headers for linux-arm (Jonathan Knezek)
829
830 * Add symbols to release build
831
832 * HTTP upgrade improvements, docs (Micheil Smith)
833
834 * HTTP server emits 'clientError' instead of printing message
835
836 * Bugfix: Don't emit 'error' twice from http.Client
837
838 * Bugfix: Ignore SIGPIPE
839
840 * Bugfix: destroy() instead of end() http connection at end of
841   pipeline
842
843 * Bugfix: http.Client may be prematurely released back to the 
844   free pool.  (Thomas Lee)
845
846 * Upgrade V8 to 2.2.8
847
848
849 2010.04.29, Version 0.1.93, 557ba6bd97bad3afe0f9bd3ac07efac0a39978c1
850
851   * Fixed no 'end' event on long chunked HTTP messages
852     http://github.com/ry/node/issues/#issue/77
853
854   * Remove legacy modules http_old and tcp_old
855
856   * Support DNS MX queries (Jérémy Lal)
857
858   * Fix large socket write (tlb@tlb.org)
859
860   * Fix child process exit codes (Felix Geisendörfer)
861
862   * Allow callers to disable PHP/Rails style parameter munging in
863     querystring.stringify (Thomas Lee)
864
865   * Upgrade V8 to 2.2.6
866
867
868 2010.04.23, Version 0.1.92, caa828a242f39b6158084ef4376355161c14fe34
869
870   * OpenSSL support. Still undocumented (see tests). (Rhys Jones)
871
872   * API: Unhandled 'error' events throw.
873
874   * Script class with eval-function-family in binding('evals') plus tests.
875     (Herbert Vojcik)
876
877   * stream.setKeepAlive (Julian Lamb)
878
879   * Bugfix: Force no body on http 204 and 304
880
881   * Upgrade Waf to 1.5.16, V8 to 2.2.4.2
882
883
884 2010.04.15, Version 0.1.91, 311d7dee19034ff1c6bc9098c36973b8d687eaba
885
886   * Add incoming.httpVersion
887
888   * Object.prototype problem with C-Ares binding
889
890   * REPL can be run from multiple different streams. (Matt Ranney)
891
892   * After V8 heap is compact, don't use a timer every 2 seconds.
893
894   * Improve nextTick implementation.
895
896   * Add primative support for Upgrading HTTP connections.
897     (See commit log for docs 760bba5)
898
899   * Add timeout and maxBuffer options to child_process.exec
900
901   * Fix bugs.
902
903   * Upgrade V8 to 2.2.3.1
904
905
906 2010.04.09, Version 0.1.90, 07e64d45ffa1856e824c4fa6afd0442ba61d6fd8
907
908   * Merge writing of networking system (net2)
909    - New Buffer object for binary data.
910    - Support UNIX sockets, Pipes
911    - Uniform stream API
912    - Currently no SSL
913    - Legacy modules can be accessed at 'http_old' and 'tcp_old'
914
915   * Replace udns with c-ares. (Krishna Rajendran)
916
917   * New documentation system using Markdown and Ronn
918     (Tim Caswell, Micheil Smith)
919
920   * Better idle-time GC
921
922   * Countless small bug fixes.
923
924   * Upgrade V8 to 2.2.X, WAF 1.5.15
925
926
927 2010.03.19, Version 0.1.33, 618296ef571e873976f608d91a3d6b9e65fe8284
928
929   * Include lib/ directory in node executable. Compile on demand.
930
931   * evalcx clean ups (Isaac Z. Schlueter, Tim-Smart)
932
933   * Various fixes, clean ups
934
935   * V8 upgraded to 2.1.5
936
937
938 2010.03.12, Version 0.1.32, 61c801413544a50000faa7f58376e9b33ba6254f
939
940   * Optimize event emitter for single listener
941
942   * Add process.evalcx, require.registerExtension (Tim Smart)
943
944   * Replace --cflags with --vars
945
946   * Fix bugs in fs.create*Stream (Felix Geisendörfer)
947
948   * Deprecate process.mixin, process.unloop
949
950   * Remove the 'Error: (no message)' exceptions, print stack
951     trace instead
952
953   * INI parser bug fixes (Isaac Schlueter)
954
955   * FreeBSD fixes (Vanilla Hsu)
956
957   * Upgrade to V8 2.1.3, WAF 1.5.14a, libev
958
959
960 2010.03.05, Version 0.1.31, 39b63dfe1737d46a8c8818c92773ef181fd174b3
961
962   * API: - Move process.watchFile into fs module
963          - Move process.inherits to sys
964
965   * Improve Solaris port
966
967   * tcp.Connection.prototype.write now returns boolean to indicate if
968     argument was flushed to the kernel buffer.
969
970   * Added fs.link, fs.symlink, fs.readlink, fs.realpath
971     (Rasmus Andersson)
972
973   * Add setgid,getgid (James Duncan)
974
975   * Improve sys.inspect (Benjamin Thomas)
976
977   * Allow passing env to child process (Isaac Schlueter)
978
979   * fs.createWriteStream, fs.createReadStream (Felix Geisendörfer)
980
981   * Add INI parser (Rob Ellis)
982
983   * Bugfix: fs.readFile handling encoding (Jacek Becela)
984
985   * Upgrade V8 to 2.1.2
986
987
988 2010.02.22, Version 0.1.30, bb0d1e65e1671aaeb21fac186b066701da0bc33b
989
990   * Major API Changes
991
992     - Promises removed. See
993       http://groups.google.com/group/nodejs/msg/426f3071f3eec16b
994       http://groups.google.com/group/nodejs/msg/df199d233ff17efa
995       The API for fs was
996
997          fs.readdir("/usr").addCallback(function (files) {
998            puts("/usr files: " + files);
999          });
1000
1001       It is now
1002
1003          fs.readdir("/usr", function (err, files) {
1004            if (err) throw err;
1005            puts("/usr files: " + files);
1006          });
1007
1008     - Synchronous fs operations exposed, use with care.
1009
1010     - tcp.Connection.prototype.readPause() and readResume()
1011       renamed to pause() and resume()
1012
1013     - http.ServerResponse.prototype.sendHeader() renamed to
1014       writeHeader(). Now accepts reasonPhrase.
1015
1016   * Compact garbage on idle.
1017
1018   * Configurable debug ports, and --debug-brk (Zoran Tomicic)
1019
1020   * Better command line option parsing (Jeremy Ashkenas)
1021
1022   * Add fs.chmod (Micheil Smith), fs.lstat (Isaac Z. Schlueter)
1023
1024   * Fixes to process.mixin (Rasmus Andersson, Benjamin Thomas)
1025
1026   * Upgrade V8 to 2.1.1
1027
1028
1029 2010.02.17, Version 0.1.29, 87d5e5b316a4276bcf881f176971c1a237dcdc7a
1030
1031   * Major API Changes
1032     - Remove 'file' module
1033     - require('posix') -----------------> require('fs')
1034     - fs.cat ---------------------------> fs.readFile
1035     - file.write -----------------------> fs.writeFile
1036     - TCP 'receive' event --------------> 'data'
1037     - TCP 'eof' event ------------------> 'end'
1038     - TCP send() -----------------------> write()
1039     - HTTP sendBody() ------------------> write()
1040     - HTTP finish() --------------------> close()
1041     - HTTP 'body' event ----------------> 'data'
1042     - HTTP 'complete' event ------------> 'end'
1043     - http.Client.prototype.close() (formerly finish()) no longer
1044       takes an argument. Add the 'response' listener manually.
1045     - Allow strings for the flag argument to fs.open
1046       ("r", "r+", "w", "w+", "a", "a+")
1047
1048   * Added multiple arg support for sys.puts(), print(), etc.
1049     (tj@vision-media.ca)
1050
1051   * sys.inspect(Date) now shows the date value (Mark Hansen)
1052
1053   * Calculate page size with getpagesize for armel (Jérémy Lal)
1054
1055   * Bugfix: stderr flushing.
1056
1057   * Bugfix: Promise late chain (Yuichiro MASUI)
1058
1059   * Bugfix: wait() on fired promises
1060     (Felix Geisendörfer, Jonas Pfenniger)
1061
1062   * Bugfix: Use InstanceTemplate() instead of PrototypeTemplate() for
1063     accessor methods. Was causing a crash with Eclipse debugger.
1064     (Zoran Tomicic)
1065
1066   * Bugfix: Throw from connection.connect if resolving.
1067     (Reported by James Golick)
1068
1069
1070 2010.02.09, Version 0.1.28, 49de41ef463292988ddacfb01a20543b963d9669
1071
1072   * Use Google's jsmin.py which can be used for evil.
1073
1074   * Add posix.truncate()
1075
1076   * Throw errors from server.listen()
1077
1078   * stdio bugfix (test by Mikeal Rogers)
1079
1080   * Module system refactor (Felix Geisendörfer, Blaine Cook)
1081
1082   * Add process.setuid(), getuid() (Michael Carter)
1083
1084   * sys.inspect refactor (Tim Caswell)
1085
1086   * Multipart library rewrite (isaacs)
1087
1088
1089 2010.02.03, Version 0.1.27, 0cfa789cc530848725a8cb5595224e78ae7b9dd0
1090
1091   * Implemented __dirname (Felix Geisendörfer)
1092
1093   * Downcase process.ARGV, process.ENV, GLOBAL
1094     (now process.argv, process.env, global)
1095
1096   * Bug Fix: Late promise promise callbacks firing
1097     (Felix Geisendörfer, Jonas Pfenniger)
1098
1099   * Make assert.AssertionError instance of Error
1100
1101   * Removed inline require call for querystring
1102     (self@cloudhead.net)
1103
1104   * Add support for MX, TXT, and SRV records in DNS module.
1105     (Blaine Cook)
1106
1107   * Bugfix: HTTP client automatically reconnecting
1108
1109   * Adding OS X .dmg build scripts. (Standa Opichal)
1110
1111   * Bugfix: ObjectWrap memory leak
1112
1113   * Bugfix: Multipart handle Content-Type headers with charset
1114     (Felix Geisendörfer)
1115
1116   * Upgrade http-parser to fix header overflow attack.
1117
1118   * Upgrade V8 to 2.1.0
1119
1120   * Various other bug fixes, performance improvements.
1121
1122
1123 2010.01.20, Version 0.1.26, da00413196e432247346d9e587f8c78ce5ceb087
1124
1125   * Bugfix, HTTP eof causing crash (Ben Williamson)
1126
1127   * Better error message on SyntaxError
1128
1129   * API: Move Promise and EventEmitter into 'events' module
1130
1131   * API: Add process.nextTick()
1132
1133   * Allow optional params to setTimeout, setInterval
1134     (Micheil Smith)
1135
1136   * API: change some Promise behavior (Felix Geisendörfer)
1137     - Removed Promise.cancel()
1138     - Support late callback binding
1139     - Make unhandled Promise errors throw an exception
1140
1141   * Upgrade V8 to 2.0.6.1
1142
1143   * Solaris port (Erich Ocean)
1144
1145
1146 2010.01.09, Version 0.1.25, 39ca93549af91575ca9d4cbafd1e170fbcef3dfa
1147
1148   * sys.inspect() improvements (Tim Caswell)
1149
1150   * path module improvements (isaacs, Benjamin Thomas)
1151
1152   * API: request.uri -> request.url
1153     It is no longer an object, but a string. The 'url' module
1154     was addded to parse that string. That is, node no longer
1155     parses the request URL automatically.
1156
1157        require('url').parse(request.url)
1158
1159     is roughly equivlent to the old request.uri object.
1160     (isaacs)
1161
1162   * Bugfix: Several libeio related race conditions.
1163
1164   * Better errors for multipart library (Felix Geisendörfer)
1165
1166   * Bugfix: Update node-waf version to 1.5.10
1167
1168   * getmem for freebsd (Vanilla Hsu)
1169
1170
1171 2009.12.31, Version 0.1.24, 642c2773a7eb2034f597af1cd404b9e086b59632
1172
1173   * Bugfix: don't chunk responses to HTTP/1.0 clients, even if
1174     they send Connection: Keep-Alive (e.g. wget)
1175
1176   * Bugfix: libeio race condition
1177
1178   * Bugfix: Don't segfault on unknown http method
1179
1180   * Simplify exception reporting
1181
1182   * Upgrade V8 to 2.0.5.4
1183
1184
1185 2009.12.22, Version 0.1.23, f91e347eeeeac1a8bd6a7b462df0321b60f3affc
1186
1187   * Bugfix: require("../blah") issues (isaacs)
1188
1189   * Bugfix: posix.cat (Jonas Pfenniger)
1190
1191   * Do not pause request for multipart parsing (Felix Geisendörfer)
1192
1193
1194 2009.12.19, Version 0.1.22, a2d809fe902f6c4102dba8f2e3e9551aad137c0f
1195
1196   * Bugfix: child modules get wrong id with "index.js" (isaacs)
1197
1198   * Bugfix: require("../foo") cycles (isaacs)
1199
1200   * Bugfix: require() should throw error if module does.
1201
1202   * New URI parser stolen from Narwhal (isaacs)
1203
1204   * Bugfix: correctly check kqueue and epoll. (Rasmus Andersson)
1205
1206   * Upgrade WAF to 1.5.10
1207
1208   * Bugfix: posix.statSync() was crashing
1209
1210   * Statically define string symbols for performance improvement
1211
1212   * Bugfix: ARGV[0] weirdness
1213
1214   * Added superCtor to ctor.super_ instead superCtor.prototype.
1215     (Johan Dahlberg)
1216
1217   * http-parser supports webdav methods
1218
1219   * API: http.Client.prototype.request() (Christopher Lenz)
1220
1221
1222 2009.12.06, Version 0.1.21, c6affb64f96a403a14d20035e7fbd6d0ce089db5
1223
1224   * Feature: Add HTTP client TLS support (Rhys Jones)
1225
1226   * Bugfix: use --jobs=1 with WAF
1227
1228   * Bugfix: Don't use chunked encoding for 1.0 requests
1229
1230   * Bugfix: Duplicated header weren't handled correctly
1231
1232   * Improve sys.inspect (Xavier Shay)
1233
1234   * Upgrade v8 to 2.0.3
1235
1236   * Use CommonJS assert API (Felix Geisendörfer, Karl Guertin)
1237
1238
1239 2009.11.28, Version 0.1.20, aa42c6790da8ed2cd2b72051c07f6251fe1724d8
1240
1241   * Add gnutls version to configure script
1242
1243   * Add V8 heap info to process.memoryUsage()
1244
1245   * process.watchFile callback has 2 arguments with the stat object
1246     (choonkeat@gmail.com)
1247
1248
1249 2009.11.28, Version 0.1.19, 633d6be328708055897b72327b88ac88e158935f
1250
1251   * Feature: Initial TLS support for TCP servers and clients.
1252     (Rhys Jones)
1253
1254   * Add options to process.watchFile()
1255
1256   * Add process.umask() (Friedemann Altrock)
1257
1258   * Bugfix: only detach timers when active.
1259
1260   * Bugfix: lib/file.js write(), shouldn't always emit errors or success
1261     (onne@onnlucky.com)
1262
1263   * Bugfix: Memory leak in fs.write
1264     (Reported by onne@onnlucky.com)
1265
1266   * Bugfix: Fix regular expressions detecting outgoing message headers.
1267     (Reported by Elliott Cable)
1268
1269   * Improvements to Multipart parser (Felix Geisendörfer)
1270
1271   * New HTTP parser
1272
1273   * Upgrade v8 to 2.0.2
1274
1275
1276 2009.11.17, Version 0.1.18, 027829d2853a14490e6de9fc5f7094652d045ab8
1277
1278   * Feature: process.watchFile() process.unwatchFile()
1279
1280   * Feature: "uncaughtException" event on process
1281     (Felix Geisendörfer)
1282
1283   * Feature: 'drain' event to tcp.Connection
1284
1285   * Bugfix: Promise.timeout() blocked the event loop
1286     (Felix Geisendörfer)
1287
1288   * Bugfix: sendBody() and chunked utf8 strings
1289     (Felix Geisendörfer)
1290
1291   * Supply the strerror as a second arg to the tcp.Connection close
1292     event (Johan Sørensen)
1293
1294   * Add EventEmitter.removeListener (frodenius@gmail.com)
1295
1296   * Format JSON for inspecting objects (Felix Geisendörfer)
1297
1298   * Upgrade libev to latest CVS
1299
1300
1301 2009.11.07, Version 0.1.17, d1f69ef35dac810530df8249d523add168e09f03
1302
1303   * Feature: process.chdir() (Brandon Beacher)
1304
1305   * Revert http parser upgrade. (b893859c34f05db5c45f416949ebc0eee665cca6)
1306     Broke keep-alive.
1307
1308   * API: rename process.inherits to sys.inherits
1309
1310
1311 2009.11.03, Version 0.1.16, 726865af7bbafe58435986f4a193ff11c84e4bfe
1312
1313   * API: Use CommonJS-style module requiring
1314     - require("/sys.js") becomes require("sys")
1315     - require("circle.js") becomes require("./circle")
1316     - process.path.join() becomes require("path").join()
1317     - __module becomes module
1318
1319   * API: Many namespacing changes
1320     - Move node.* into process.*
1321     - Move node.dns into module "dns"
1322     - Move node.fs into module "posix"
1323     - process is no longer the global object. GLOBAL is.
1324
1325   For more information on the API changes see:
1326     http://thread.gmane.org/gmane.comp.lang.javascript.nodejs/6
1327     http://thread.gmane.org/gmane.comp.lang.javascript.nodejs/14
1328
1329   * Feature: process.platform, process.memoryUsage()
1330
1331   * Feature: promise.cancel() (Felix Geisendörfer)
1332
1333   * Upgrade V8 to 1.3.18
1334
1335
1336 2009.10.28, Version 0.1.15, eca2de73ed786b935507fd1c6faccd8df9938fd3
1337
1338   * Many build system fixes (esp. for OSX users)
1339
1340   * Feature: promise.timeout() (Felix Geisendörfer)
1341
1342   * Feature: Added external interface for signal handlers, process.pid, and
1343     process.kill() (Brandon Beacher)
1344
1345   * API: Rename node.libraryPaths to require.paths
1346
1347   * Bugfix: 'data' event for stdio should emit a string
1348
1349   * Large file support
1350
1351   * Upgrade http_parser
1352
1353   * Upgrade v8 to 1.3.16
1354
1355
1356 2009.10.09, Version 0.1.14, b12c809bb84d1265b6a4d970a5b54ee8a4890513
1357
1358   * Feature: Improved addon builds with node-waf
1359
1360   * Feature: node.SignalHandler (Brandon Beacher)
1361
1362   * Feature: Enable V8 debugging (but still need to make a debugger)
1363
1364   * API: Rename library /utils.js to /sys.js
1365
1366   * Clean up Node's build system
1367
1368   * Don't use parseUri for HTTP server
1369
1370   * Remove node.pc
1371
1372   * Don't use /bin/sh to create child process except with exec()
1373
1374   * API: Add __module to reference current module
1375
1376   * API: Remove include() add node.mixin()
1377
1378   * Normalize http headers; "Content-Length" becomes "content-length"
1379
1380   * Upgrade V8 to 1.3.15
1381
1382
1383 2009.09.30, Version 0.1.13, 58493bb05b3da3dc8051fabc0bdea9e575c1a107
1384
1385   * Feature: Multipart stream parser (Felix Geisendörfer)
1386
1387   * API: Move node.puts(), node.exec() and others to /utils.js
1388
1389   * API: Move http, tcp libraries to /http.js and /tcp.js
1390
1391   * API: Rename node.exit() to process.exit()
1392
1393   * Bugfix: require() and include() should work in callbacks.
1394
1395   * Pass the Host header in http.cat calls
1396
1397   * Add warning when coroutine stack size grows too large.
1398
1399   * Enhance repl library (Ray Morgan)
1400
1401   * Bugfix: build script for
1402       GCC 4.4 (removed -Werror in V8),
1403       on Linux 2.4,
1404       and with Python 2.4.4.
1405
1406   * Add read() and write() to /file.js to read and write
1407     whole files at once.
1408
1409
1410 2009.09.24, Version 0.1.12, 2f56ccb45e87510de712f56705598b3b4e3548ec
1411
1412   * Feature: System modules, node.libraryPaths
1413
1414   * API: Remove "raw" encoding, rename "raws" to "binary".
1415
1416   * API: Added connection.setNoDElay() to disable Nagle algo.
1417
1418   * Decrease default TCP server backlog to 128
1419
1420   * Bugfix: memory leak involving node.fs.* methods.
1421
1422   * Upgrade v8 to 1.3.13
1423
1424
1425 2009.09.18, Version 0.1.11, 5ddc4f5d0c002bac0ae3d62fc0dc58f0d2d83ec4
1426
1427   * API: default to utf8 encoding for node.fs.cat()
1428
1429   * API: add node.exec()
1430
1431   * API: node.fs.read() takes a normal encoding parameter.
1432
1433   * API: Change arguments of emit(), emitSuccess(), emitError()
1434
1435   * Bugfix: node.fs.write() was stack allocating buffer.
1436
1437   * Bugfix: ReportException shouldn't forget the top frame.
1438
1439   * Improve buffering for HTTP outgoing messages
1440
1441   * Fix and reenable x64 macintosh build.
1442
1443   * Upgrade v8 to 1.3.11
1444
1445
1446 2009.09.11, Version 0.1.10, 12bb0d46ce761e3d00a27170e63b40408c15b558
1447
1448   * Feature: raw string encoding "raws"
1449
1450   * Feature: access to environ through "ENV"
1451
1452   * Feature: add isDirectory, isFile, isSocket, ... methods
1453     to stats object.
1454
1455   * Bugfix: Internally use full paths when loading modules
1456     this fixes a shebang loading problem.
1457
1458   * Bugfix: Add '--' command line argument for seperating v8
1459     args from program args.
1460
1461   * Add man page.
1462
1463   * Add node-repl
1464
1465   * Upgrade v8 to 1.3.10
1466
1467 2009.09.05, Version 0.1.9, d029764bb32058389ecb31ed54a5d24d2915ad4c
1468
1469   * Bugfix: Compile on Snow Leopard.
1470
1471   * Bugfix: Malformed URIs raising exceptions.
1472
1473 2009.09.04, Version 0.1.8, e6d712a937b61567e81b15085edba863be16ba96
1474
1475   * Feature: External modules
1476
1477   * Feature: setTimeout() for node.tcp.Connection
1478
1479   * Feature: add node.cwd(), node.fs.readdir(), node.fs.mkdir()
1480
1481   * Bugfix: promise.wait() releasing out of order.
1482
1483   * Bugfix: Asyncly do getaddrinfo() on Apple.
1484
1485   * Disable useless evcom error messages.
1486
1487   * Better stack traces.
1488
1489   * Built natively on x64.
1490
1491   * Upgrade v8 to 1.3.9
1492
1493 2009.08.27, Version 0.1.7, f7acef9acf8ba8433d697ad5ed99d2e857387e4b
1494
1495   * Feature: global 'process' object. Emits "exit".
1496
1497   * Feature: promise.wait()
1498
1499   * Feature: node.stdio
1500
1501   * Feature: EventEmitters emit "newListener" when listeners are
1502     added
1503
1504   * API:  Use flat object instead of array-of-arrays for HTTP
1505     headers.
1506
1507   * API: Remove buffered file object (node.File)
1508
1509   * API: require(), include() are synchronous. (Uses
1510     continuations.)
1511
1512   * API: Deprecate onLoad and onExit.
1513
1514   * API: Rename node.Process to node.ChildProcess
1515
1516   * Refactor node.Process to take advantage of evcom_reader/writer.
1517
1518   * Upgrade v8 to 1.3.7
1519
1520 2009.08.22, Version 0.1.6, 9c97b1db3099d61cd292aa59ec2227a619f3a7ab
1521
1522   * Bugfix: Ignore SIGPIPE.
1523
1524 2009.08.21, Version 0.1.5, b0fd3e281cb5f7cd8d3a26bd2b89e1b59998e5ed
1525
1526   * Bugfix: Buggy connections could crash node.js. Now check
1527     connection before sending data every time (Kevin van Zonneveld)
1528
1529   * Bugfix: stdin fd (0) being ignored by node.File. (Abe Fettig)
1530
1531   * API: Remove connnection.fullClose()
1532
1533   * API: Return the EventEmitter from addListener for chaining.
1534
1535   * API: tcp.Connection "disconnect" event renamed to "close"
1536
1537   * Upgrade evcom
1538     Upgrade v8 to 1.3.6
1539
1540 2009.08.13, Version 0.1.4, 0f888ed6de153f68c17005211d7e0f960a5e34f3
1541
1542   * Major refactor to evcom.
1543
1544   * Enable test-tcp-many-clients.
1545
1546   * Add -m32 gcc flag to udns.
1547
1548   * Add connection.readPause() and connection.readResume()
1549     Add IncomingMessage.prototype.pause() and resume().
1550
1551   * Fix http benchmark. Wasn't correctly dispatching.
1552
1553   * Bugfix: response.setBodyEncoding("ascii") not working.
1554
1555   * Bugfix: Negative ints in HTTP's on_body and node.fs.read()
1556
1557   * Upgrade v8 to 1.3.4
1558     Upgrade libev to 3.8
1559     Upgrade http_parser to v0.2
1560
1561 2009.08.06, Version 0.1.3, 695f0296e35b30cf8322fd1bd934810403cca9f3
1562
1563   * Upgrade v8 to 1.3.2
1564
1565   * Bugfix: node.http.ServerRequest.setBodyEncoding('ascii') not
1566     working
1567
1568   * Bugfix: node.encodeUtf8 was broken. (Connor Dunn)
1569
1570   * Add ranlib to udns Makefile.
1571
1572   * Upgrade evcom - fix accepting too many connections issue.
1573
1574   * Initial support for shebang
1575
1576   * Add simple command line switches
1577
1578   * Add node.version API
1579
1580
1581 2009.08.01, Version 0.1.2, 025a34244d1cea94d6d40ad7bf92671cb909a96c
1582
1583   * Add DNS API
1584
1585   * node.tcp.Server's backlog option is now an argument to listen()
1586
1587   * Upgrade V8 to 1.3.1
1588
1589   * Bugfix: Default to chunked for client requests without
1590     Content-Length.
1591
1592   * Bugfix: Line numbers in stack traces.
1593
1594   * Bugfix: negative integers in raw encoding stream
1595
1596   * Bugfix: node.fs.File was not passing args to promise callbacks.
1597
1598
1599 2009.07.27, Version 0.1.1, 77d407df2826b20e9177c26c0d2bb4481e497937
1600
1601   * Simplify and clean up ObjectWrap.
1602
1603   * Upgrade liboi (which is now called evcom)
1604     Upgrade libev to 3.7
1605     Upgrade V8 to 1.2.14
1606
1607   * Array.prototype.encodeUtf8 renamed to node.encodeUtf8(array)
1608
1609   * Move EventEmitter.prototype.emit() completely into C++.
1610
1611   * Bugfix: Fix memory leak in event emitters.
1612     http://groups.google.com/group/nodejs/browse_thread/thread/a8d1dfc2fd57a6d1
1613
1614   * Bugfix: Had problems reading scripts with non-ascii characters.
1615
1616   * Bugfix: Fix Detach() in node::Server
1617
1618   * Bugfix: Sockets not properly reattached if reconnected during
1619     disconnect event.
1620
1621   * Bugfix: Server-side clients not attached between creation and
1622     on_connect.
1623
1624   * Add 'close' event to node.tcp.Server
1625
1626   * Simplify and clean up http.js. (Takes more advantage of event
1627     infrastructure.)
1628
1629   * Add benchmark scripts. Run with "make benchmark".
1630
1631
1632 2009.06.30, Version 0.1.0, 0fe44d52fe75f151bceb59534394658aae6ac328
1633
1634   * Update documentation, use asciidoc.
1635
1636   * EventEmitter and Promise interfaces. (Breaks previous API.)
1637
1638   * Remove node.Process constructor in favor of node.createProcess
1639
1640   * Add -m32 flags for compiling on x64 platforms.
1641     (Thanks to András Bártházi)
1642
1643   * Upgrade v8 to 1.2.10 and libev to 3.6
1644
1645   * Bugfix: Timer::RepeatSetter wasn't working.
1646
1647   * Bugfix: Spawning many processes in a loop
1648     (reported by Felix Geisendörfer)
1649
1650
1651 2009.06.24, Version 0.0.6, fbe0be19ebfb422d8fa20ea5204c1713e9214d5f
1652
1653   * Load modules via HTTP URLs (Urban Hafner)
1654
1655   * Bugfix: Add HTTPConnection->size() and HTTPServer->size()
1656
1657   * New node.Process API
1658
1659   * Clean up build tools, use v8's test runner.
1660
1661   * Use ev_unref() instead of starting/stopping the eio thread
1662     pool watcher.
1663
1664
1665 2009.06.18, Version 0.0.5, 3a2b41de74b6c343b8464a68eff04c4bfd9aebea
1666
1667   * Support for IPv6
1668
1669   * Remove namespace node.constants
1670
1671   * Upgrade v8 to 1.2.8.1
1672
1673   * Accept ports as strings in the TCP client and server.
1674
1675   * Bugfix: HTTP Client race
1676
1677   * Bugfix: freeaddrinfo() wasn't getting called after
1678     getaddrinfo() for TCP servers
1679
1680   * Add "opening" to TCP client readyState
1681
1682   * Add remoteAddress to TCP client
1683
1684   * Add global print() function.
1685
1686
1687 2009.06.13, Version 0.0.4, 916b9ca715b229b0703f0ed6c2fc065410fb189c
1688
1689  * Add interrupt() method to server-side HTTP requests.
1690
1691  * Bugfix: onBodyComplete was not getting called on server-side
1692    HTTP
1693
1694
1695 2009.06.11, Version 0.0.3, 6e0dfe50006ae4f5dac987f055e0c9338662f40a
1696
1697  * Many bug fixes including the problem with http.Client on
1698    macintosh
1699
1700  * Upgrades v8 to 1.2.7
1701
1702  * Adds onExit hook
1703
1704  * Guard against buffer overflow in http parser
1705
1706  * require() and include() now need the ".js" extension
1707
1708  * http.Client uses identity transfer encoding by default.