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