|
1 | 1 | # io.js ChangeLog
|
2 | 2 |
|
| 3 | +## 2015-08-01, Version 3.0.0, @rvagg |
| 4 | + |
| 5 | +### Notable changes |
| 6 | + |
| 7 | +* **buffer**: |
| 8 | + - Due to changes in V8, it has been necessary to reimplement `Buffer` on top of V8's `Uint8Array`. While every effort has been made to maintain performance, users are likely to experience a different performance profile depending on how `Buffer` is used. (Trevor Norris) [#1825](https://github.com/nodejs/io.js/pull/1825). |
| 9 | + - `Buffer` can now take `ArrayBuffer`s as a constructor argument (Trevor Norris) [#2002](https://github.com/nodejs/io.js/pull/2002). |
| 10 | + - When a single buffer is passed to `Buffer.concat()`, a new, copied `Buffer` object will be returned; previous behavior was to return the original `Buffer` object (Sakthipriyan Vairamani) [#1937](https://github.com/nodejs/io.js/pull/1937). |
| 11 | +* **build**: PPC support has been added to core to allow compiling on pLinux BE and LE (AIX support coming soon) (Michael Dawson) [#2124](https://github.com/nodejs/io.js/pull/2124). |
| 12 | +* **dgram**: If an error occurs within `socket.send()` and a callback has been provided, the error is only passed as the first argument to the callback and not emitted on the `socket` object; previous behavior was to do both (Matteo Collina & Chris Dickinson) [#1796](https://github.com/nodejs/io.js/pull/1796) |
| 13 | +* **freelist**: Deprecate the undocumented `freelist` core module (Sakthipriyan Vairamani) [#2176](https://github.com/nodejs/io.js/pull/2176). |
| 14 | +* **http**: |
| 15 | + - Status codes now all use the official [IANA names](http://www.iana.org/assignments/http-status-codes) as per [RFC7231](https://tools.ietf.org/html/rfc7231), e.g. `http.STATUS_CODES[414]` now returns `'URI Too Long'` rather than `'Request-URI Too Large'` (jomo) [#1470](https://github.com/nodejs/io.js/pull/1470). |
| 16 | + - Calling .getName() on an HTTP agent no longer returns a trailing colon, HTTPS agents will no longer return an extra colon near the middle of the string (Brendan Ashworth) [#1617](https://github.com/nodejs/io.js/pull/1617). |
| 17 | +* **node**: |
| 18 | + - `NODE_MODULE_VERSION` has been bumped to `45` to reflect the break in ABI (Rod Vagg) [#2096](https://github.com/nodejs/io.js/pull/2096). |
| 19 | + - Introduce a new `process.release` object that contains a `name` property set to `'io.js'` and `sourceUrl`, `headersUrl` and `libUrl` (Windows only) properties containing URLs for the relevant resources; this is intended to be used by node-gyp (Rod Vagg) [#2154](https://github.com/nodejs/io.js/pull/2154). |
| 20 | + - The version of node-gyp bundled with io.js now downloads and uses a tarball of header files from iojs.org rather than the full source for compiling native add-ons; it is hoped this is a temporary floating patch and the change will be upstreamed to node-gyp soon (Rod Vagg) [#2066](https://github.com/nodejs/io.js/pull/2066). |
| 21 | +* **repl**: Persistent history is now enabled by default. The history file is located at ~/.node_repl_history, which can be overridden by the new environment variable `NODE_REPL_HISTORY`. This deprecates the previous `NODE_REPL_HISTORY_FILE` variable. Additionally, the format of the file has been changed to plain text to better handle file corruption. (Jeremiah Senkpiel) [#2224](https://github.com/nodejs/io.js/pull/2224). |
| 22 | +* **smalloc**: The `smalloc` module has been removed as it is no longer possible to provide the API due to changes in V8 (Ben Noordhuis) [#2022](https://github.com/nodejs/io.js/pull/2022). |
| 23 | +* **tls**: Add `server.getTicketKeys()` and `server.setTicketKeys()` methods for [TLS session key](https://www.ietf.org/rfc/rfc5077.txt) rotation (Fedor Indutny) [#2227](https://github.com/nodejs/io.js/pull/2227). |
| 24 | +* **v8**: Upgraded to 4.4.63.26 |
| 25 | + - ES6: Enabled [computed property names](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer#Computed_property_names) |
| 26 | + - ES6: `Array` can now be subclassed |
| 27 | + - ES6: Implement [rest parameters](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/rest_parameters) in staging, use the `--harmony-rest-parameters` command line flag |
| 28 | + - ES6: Implement the [spread operator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator) in staging, use the `--harmony-spreadcalls` command line flag |
| 29 | + - Removed `SetIndexedPropertiesToExternalArrayData` and related APIs, forcing a shift to `Buffer` to be reimplemented based on `Uint8Array` |
| 30 | + - Introduction of `Maybe` and `MaybeLocal` C++ API for objects which _may_ or _may not_ have a value. |
| 31 | + - Added support for PPC |
| 32 | + |
| 33 | +### Known issues |
| 34 | + |
| 35 | +See https://github.com/nodejs/io.js/labels/confirmed-bug for complete and current list of known issues. |
| 36 | + |
| 37 | +* Some problems with unreferenced timers running during `beforeExit` are still to be resolved. See [#1264](https://github.com/nodejs/io.js/issues/1264). |
| 38 | +* Surrogate pair in REPL can freeze terminal. [#690](https://github.com/nodejs/io.js/issues/690) |
| 39 | +* `process.send()` is not synchronous as the docs suggest, a regression introduced in 1.0.2, see [#760](https://github.com/nodejs/io.js/issues/760). |
| 40 | +* Calling `dns.setServers()` while a DNS query is in progress can cause the process to crash on a failed assertion. [#894](https://github.com/nodejs/io.js/issues/894) |
| 41 | +* `url.resolve` may transfer the auth portion of the url when resolving between two full hosts, see [#1435](https://github.com/nodejs/io.js/issues/1435). |
| 42 | + |
| 43 | +### Commits |
| 44 | + |
| 45 | +* [[`c479f4f347`](https://github.com/nodejs/io.js/commit/c479f4f347)] - **buffer**: fix missing null/undefined check (Trevor Norris) |
| 46 | +* [[`66546969dc`](https://github.com/nodejs/io.js/commit/66546969dc)] - **buffer**: fix not return on error (Trevor Norris) [#2225](https://github.com/nodejs/io.js/pull/2225) |
| 47 | +* [[`27a279202f`](https://github.com/nodejs/io.js/commit/27a279202f)] - **buffer**: rename internal/buffer_new.js to buffer.js (Ben Noordhuis) [#2022](https://github.com/nodejs/io.js/pull/2022) |
| 48 | +* [[`cd4711b1eb`](https://github.com/nodejs/io.js/commit/cd4711b1eb)] - **(SEMVER-MINOR)** **buffer**: allow ArrayBuffer as Buffer argument (Trevor Norris) [#2002](https://github.com/nodejs/io.js/pull/2002) |
| 49 | +* [[`35fd7c1f89`](https://github.com/nodejs/io.js/commit/35fd7c1f89)] - **buffer**: minor cleanup from rebase (Trevor Norris) [#2003](https://github.com/nodejs/io.js/pull/2003) |
| 50 | +* [[`23da05cfe3`](https://github.com/nodejs/io.js/commit/23da05cfe3)] - **buffer**: fix usage of kMaxLength (Trevor Norris) [#2003](https://github.com/nodejs/io.js/pull/2003) |
| 51 | +* [[`1c6279392d`](https://github.com/nodejs/io.js/commit/1c6279392d)] - **(SEMVER-MAJOR)** **buffer**: fix case of one buffer passed to concat (Sakthipriyan Vairamani) [#1937](https://github.com/nodejs/io.js/pull/1937) |
| 52 | +* [[`fa8ba08e58`](https://github.com/nodejs/io.js/commit/fa8ba08e58)] - **buffer**: make additional changes to native API (Trevor Norris) [#1825](https://github.com/nodejs/io.js/pull/1825) |
| 53 | +* [[`cc07cc9729`](https://github.com/nodejs/io.js/commit/cc07cc9729)] - **buffer**: switch API to return MaybeLocal<T> (Trevor Norris) [#1825](https://github.com/nodejs/io.js/pull/1825) |
| 54 | +* [[`06cbede2e9`](https://github.com/nodejs/io.js/commit/06cbede2e9)] - **buffer**: switch to using Maybe<T> API (Trevor Norris) [#1825](https://github.com/nodejs/io.js/pull/1825) |
| 55 | +* [[`64365e9812`](https://github.com/nodejs/io.js/commit/64365e9812)] - **buffer**: finish implementing FreeCallback (Trevor Norris) [#1825](https://github.com/nodejs/io.js/pull/1825) |
| 56 | +* [[`46f011f9ee`](https://github.com/nodejs/io.js/commit/46f011f9ee)] - **buffer**: implement Uint8Array backed Buffer (Trevor Norris) [#1825](https://github.com/nodejs/io.js/pull/1825) |
| 57 | +* [[`1d9f152040`](https://github.com/nodejs/io.js/commit/1d9f152040)] - **buffer**: allow ARGS_THIS to accept a name (Trevor Norris) [#1825](https://github.com/nodejs/io.js/pull/1825) |
| 58 | +* [[`d77ae26302`](https://github.com/nodejs/io.js/commit/d77ae26302)] - **build**: prepare Windows installer for i18n support (Frederic Hemberger) [#2247](https://github.com/nodejs/io.js/pull/2247) |
| 59 | +* [[`9978a0c777`](https://github.com/nodejs/io.js/commit/9978a0c777)] - **build**: add 'x86' option back in to configure (Rod Vagg) |
| 60 | +* [[`5cbff9576a`](https://github.com/nodejs/io.js/commit/5cbff9576a)] - **build**: first set of updates to enable PPC support (Michael Dawson) [#2124](https://github.com/nodejs/io.js/pull/2124) |
| 61 | +* [[`24dd016deb`](https://github.com/nodejs/io.js/commit/24dd016deb)] - **build**: produce symbol map files on windows (Ali Ijaz Sheikh) [#2243](https://github.com/nodejs/io.js/pull/2243) |
| 62 | +* [[`97f321b479`](https://github.com/nodejs/io.js/commit/97f321b479)] - **cluster**: do not unconditionally set --debug-port (cjihrig) [#1949](https://github.com/nodejs/io.js/pull/1949) |
| 63 | +* [[`fa98b97171`](https://github.com/nodejs/io.js/commit/fa98b97171)] - **cluster**: add handle ref/unref stubs in rr mode (Ben Noordhuis) [#2274](https://github.com/nodejs/io.js/pull/2274) |
| 64 | +* [[`d27a3d60d9`](https://github.com/nodejs/io.js/commit/d27a3d60d9)] - **crypto**: remove kMaxLength on randomBytes() (Trevor Norris) [#1825](https://github.com/nodejs/io.js/pull/1825) |
| 65 | +* [[`ce640ab8a7`](https://github.com/nodejs/io.js/commit/ce640ab8a7)] - **deps**: update V8 to 4.4.63.26 (Michaël Zasso) [#2220](https://github.com/nodejs/io.js/pull/2220) |
| 66 | +* [[`a5896d550a`](https://github.com/nodejs/io.js/commit/a5896d550a)] - **deps**: upgrade v8 to 4.4.63.12 (Ben Noordhuis) [#2092](https://github.com/nodejs/io.js/pull/2092) |
| 67 | +* [[`baf0fec202`](https://github.com/nodejs/io.js/commit/baf0fec202)] - **(SEMVER-MAJOR)** **deps**: update v8 to 4.4.63.9 (Ben Noordhuis) [#2022](https://github.com/nodejs/io.js/pull/2022) |
| 68 | +* [[`5f8558fdb1`](https://github.com/nodejs/io.js/commit/5f8558fdb1)] - **deps**: backport 7b24219346 from v8 upstream (Rod Vagg) [#1805](https://github.com/nodejs/io.js/pull/1805) |
| 69 | +* [[`93a0d94f60`](https://github.com/nodejs/io.js/commit/93a0d94f60)] - **(SEMVER-MAJOR)** **deps**: update v8 to 4.3.61.21 (Chris Dickinson) [iojs/io.js#1632](https://github.com/iojs/io.js/pull/1632) |
| 70 | +* [[`2a63cf612b`](https://github.com/nodejs/io.js/commit/2a63cf612b)] - **deps**: make node-gyp work with io.js (cjihrig) [iojs/io.js#990](https://github.com/iojs/io.js/pull/990) |
| 71 | +* [[`bf63266460`](https://github.com/nodejs/io.js/commit/bf63266460)] - **deps**: upgrade to npm 2.13.3 (Kat Marchán) [#2284](https://github.com/nodejs/io.js/pull/2284) |
| 72 | +* [[`f4ad51bf97`](https://github.com/nodejs/io.js/commit/f4ad51bf97)] - **(SEMVER-MAJOR)** **dgram**: make send cb act as "error" event handler (Matteo Collina) [#1796](https://github.com/nodejs/io.js/pull/1796) |
| 73 | +* [[`df3c032e66`](https://github.com/nodejs/io.js/commit/df3c032e66)] - **(SEMVER-MAJOR)** **dgram**: make send cb act as "error" event handler (Chris Dickinson) [#1796](https://github.com/nodejs/io.js/pull/1796) |
| 74 | +* [[`5cfecc96b8`](https://github.com/nodejs/io.js/commit/5cfecc96b8)] - ***Revert*** "**dns**: remove AI_V4MAPPED hint flag on FreeBSD" (cjihrig) [iojs/io.js#1555](https://github.com/iojs/io.js/pull/1555) |
| 75 | +* [[`9573011488`](https://github.com/nodejs/io.js/commit/9573011488)] - **doc**: document repl persistent history changes (Jeremiah Senkpiel) [#2224](https://github.com/nodejs/io.js/pull/2224) |
| 76 | +* [[`d843fe6151`](https://github.com/nodejs/io.js/commit/d843fe6151)] - **doc**: update v8 flags in man page (Michaël Zasso) [iojs/io.js#1701](https://github.com/iojs/io.js/pull/1701) |
| 77 | +* [[`d168d01b04`](https://github.com/nodejs/io.js/commit/d168d01b04)] - **doc**: properly inheriting from EventEmitter (Sakthipriyan Vairamani) [#2168](https://github.com/nodejs/io.js/pull/2168) |
| 78 | +* [[`500f2538cc`](https://github.com/nodejs/io.js/commit/500f2538cc)] - **doc**: a listener, not "an" listener (Sam Roberts) [#1025](https://github.com/nodejs/io.js/pull/1025) |
| 79 | +* [[`54627a919d`](https://github.com/nodejs/io.js/commit/54627a919d)] - **doc**: server close event does not have an argument (Sam Roberts) [#1025](https://github.com/nodejs/io.js/pull/1025) |
| 80 | +* [[`0e0eeb3fb7`](https://github.com/nodejs/io.js/commit/0e0eeb3fb7)] - **(SEMVER-MAJOR)** **http**: fix agent.getName() and add tests (Brendan Ashworth) [#1617](https://github.com/nodejs/io.js/pull/1617) |
| 81 | +* [[`dbc2931459`](https://github.com/nodejs/io.js/commit/dbc2931459)] - **(SEMVER-MAJOR)** **http**: use official IANA Status Codes (jomo) [#1470](https://github.com/nodejs/io.js/pull/1470) |
| 82 | +* [[`d1974e2cb5`](https://github.com/nodejs/io.js/commit/d1974e2cb5)] - **(SEMVER-MAJOR)** **http_server**: `prefinish` vs `finish` (Fedor Indutny) [#1411](https://github.com/nodejs/io.js/pull/1411) |
| 83 | +* [[`c6b9e2bb3c`](https://github.com/nodejs/io.js/commit/c6b9e2bb3c)] - **net**: do not set V4MAPPED on FreeBSD (Julien Gilli) [iojs/io.js#1555](https://github.com/iojs/io.js/pull/1555) |
| 84 | +* [[`3951336b99`](https://github.com/nodejs/io.js/commit/3951336b99)] - **node**: remove redundant --use-old-buffer (Rod Vagg) [#2275](https://github.com/nodejs/io.js/pull/2275) |
| 85 | +* [[`303e635024`](https://github.com/nodejs/io.js/commit/303e635024)] - **(SEMVER-MAJOR)** **node**: do not override `message`/`stack` of error (Fedor Indutny) [#2108](https://github.com/nodejs/io.js/pull/2108) |
| 86 | +* [[`89b435e51e`](https://github.com/nodejs/io.js/commit/89b435e51e)] - **node-gyp**: detect RC build with x.y.z-rc.n format (Rod Vagg) [#2171](https://github.com/nodejs/io.js/pull/2171) |
| 87 | +* [[`71af53f6d9`](https://github.com/nodejs/io.js/commit/71af53f6d9)] - **node-gyp**: download header tarball for compile (Rod Vagg) [#2066](https://github.com/nodejs/io.js/pull/2066) |
| 88 | +* [[`47ee1e4bc1`](https://github.com/nodejs/io.js/commit/47ee1e4bc1)] - **node-gyp**: make aware of nightly, next-nightly & rc (Rod Vagg) |
| 89 | +* [[`2a9de8f3e1`](https://github.com/nodejs/io.js/commit/2a9de8f3e1)] - **(SEMVER-MINOR)** **readline**: allow tabs in input (Rich Trott) [#1761](https://github.com/nodejs/io.js/pull/1761) |
| 90 | +* [[`b701f0f689`](https://github.com/nodejs/io.js/commit/b701f0f689)] - **repl**: default persistence to ~/.node_repl_history (Jeremiah Senkpiel) [#2224](https://github.com/nodejs/io.js/pull/2224) |
| 91 | +* [[`d372f3b21b`](https://github.com/nodejs/io.js/commit/d372f3b21b)] - **(SEMVER-MAJOR)** **repl**: persist history in plain text (Jeremiah Senkpiel) [#2224](https://github.com/nodejs/io.js/pull/2224) |
| 92 | +* [[`376757abe0`](https://github.com/nodejs/io.js/commit/376757abe0)] - **repl**: fix persistent history size limiting (Jeremiah Senkpiel) [#2224](https://github.com/nodejs/io.js/pull/2224) |
| 93 | +* [[`638b0e6d74`](https://github.com/nodejs/io.js/commit/638b0e6d74)] - **src**: disable vector ICs on arm (Michaël Zasso) [#2220](https://github.com/nodejs/io.js/pull/2220) |
| 94 | +* [[`2dcdd435f3`](https://github.com/nodejs/io.js/commit/2dcdd435f3)] - **(SEMVER-MINOR)** **src**: introduce process.release object (Rod Vagg) [#2154](https://github.com/nodejs/io.js/pull/2154) |
| 95 | +* [[`06f5cec529`](https://github.com/nodejs/io.js/commit/06f5cec529)] - **src**: increment NODE_MODULE_VERSION to 45 (Rod Vagg) [#2096](https://github.com/nodejs/io.js/pull/2096) |
| 96 | +* [[`8295a89939`](https://github.com/nodejs/io.js/commit/8295a89939)] - **test**: add tests for persistent repl history (Jeremiah Senkpiel) [#2224](https://github.com/nodejs/io.js/pull/2224) |
| 97 | +* [[`5209940476`](https://github.com/nodejs/io.js/commit/5209940476)] - **test**: remove two obsolete pummel tests (Ben Noordhuis) [#2022](https://github.com/nodejs/io.js/pull/2022) |
| 98 | +* [[`c526951b94`](https://github.com/nodejs/io.js/commit/c526951b94)] - **test**: don't use arguments.callee (Ben Noordhuis) [#2022](https://github.com/nodejs/io.js/pull/2022) |
| 99 | +* [[`009442157e`](https://github.com/nodejs/io.js/commit/009442157e)] - **test**: remove obsolete harmony flags (Chris Dickinson) |
| 100 | +* [[`64cf71195c`](https://github.com/nodejs/io.js/commit/64cf71195c)] - **test**: change the hostname to an invalid name (Sakthipriyan Vairamani) [#2287](https://github.com/nodejs/io.js/pull/2287) |
| 101 | +* [[`80a1cf7425`](https://github.com/nodejs/io.js/commit/80a1cf7425)] - **test**: fix messages and use return to skip tests (Sakthipriyan Vairamani) [#2290](https://github.com/nodejs/io.js/pull/2290) |
| 102 | +* [[`d5ab92bcc1`](https://github.com/nodejs/io.js/commit/d5ab92bcc1)] - **test**: use common.isWindows consistently (Sakthipriyan Vairamani) [#2269](https://github.com/nodejs/io.js/pull/2269) |
| 103 | +* [[`bc733f7065`](https://github.com/nodejs/io.js/commit/bc733f7065)] - **test**: fix fs.readFile('/dev/stdin') tests (Ben Noordhuis) [#2265](https://github.com/nodejs/io.js/pull/2265) |
| 104 | +* [[`3cbb5870e5`](https://github.com/nodejs/io.js/commit/3cbb5870e5)] - **tools**: expose skip output to test runner (Johan Bergström) [#2130](https://github.com/nodejs/io.js/pull/2130) |
| 105 | +* [[`8047015a8f`](https://github.com/nodejs/io.js/commit/8047015a8f)] - **vm**: fix symbol access (Domenic Denicola) [#1773](https://github.com/nodejs/io.js/pull/1773) |
| 106 | +* [[`5dcfaa3ff5`](https://github.com/nodejs/io.js/commit/5dcfaa3ff5)] - **vm**: remove unnecessary access checks (Domenic Denicola) [#1773](https://github.com/nodejs/io.js/pull/1773) |
| 107 | +* [[`9b29e24c81`](https://github.com/nodejs/io.js/commit/9b29e24c81)] - **vm**: fix property descriptors of sandbox properties (Domenic Denicola) [#1773](https://github.com/nodejs/io.js/pull/1773) |
| 108 | +* [[`9bac1dbae9`](https://github.com/nodejs/io.js/commit/9bac1dbae9)] - **win,node-gyp**: enable delay-load hook by default (Bert Belder) [iojs/io.js#1433](https://github.com/iojs/io.js/pull/1433) |
| 109 | + |
3 | 110 | ## 2015-07-28, Version 2.5.0, @cjihrig
|
4 | 111 |
|
5 | 112 | ### Notable changes
|
|
0 commit comments