Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 ## 1.9.1 (2015-03-25) | |
| 2 | |
| 3 ### Language changes | |
| 4 | |
| 5 * Support for `async`, `await`, `sync*`, `async*`, `yield`, `yield*`, and `await | |
| 6 for`. See the [the language tour][async] for more details. | |
| 7 | |
| 8 * Enum support is fully enabled. See [the language tour][enum] for more details. | |
| 9 | |
| 10 [async]: https://www.dartlang.org/docs/dart-up-and-running/ch02.html#asynchrony | |
| 11 [enum]: https://www.dartlang.org/docs/dart-up-and-running/ch02.html#enums | |
| 12 | |
| 13 ### Tool changes | |
| 14 | |
| 15 * The formatter is much more comprehensive and generates much more readable | |
| 16 code. See [its tool page][dartfmt] for more details. | |
| 17 | |
| 18 * The analysis server is integrated into the IntelliJ plugin and the Dart | |
| 19 editor. This allows analysis to run out-of-process, so that interaction | |
| 20 remains smooth even for large projects. | |
| 21 | |
| 22 * Analysis supports more and better hints, including unused variables and unused | |
| 23 private members. | |
| 24 | |
| 25 [dartfmt]: https://www.dartlang.org/tools/dartfmt/ | |
| 26 | |
| 27 ### Core library changes | |
| 28 | |
| 29 #### Highlights | |
| 30 | |
| 31 * There's a new model for shared server sockets with no need for a `Socket` | |
| 32 reference. | |
| 33 | |
| 34 * A new, much faster [regular expression engine][regexp]. | |
| 35 | |
| 36 * The Isolate API now works across the VM and `dart2js`. | |
| 37 | |
| 38 [regexp]: http://news.dartlang.org/2015/02/irregexp-dart-vms-new-regexp.html | |
| 39 | |
| 40 #### Details | |
| 41 | |
| 42 For more information on any of these changes, see the corresponding | |
| 43 documentation on the [Dart API site](http://api.dartlang.org). | |
| 44 | |
| 45 * `dart:async`: | |
| 46 | |
| 47 * `Future.wait` added a new named argument, `cleanUp`, which is a callback | |
| 48 that releases resources allocated by a successful `Future`. | |
| 49 | |
| 50 * The `SynchronousStreamController` class was added as an explicit name for | |
| 51 the type returned when the `sync` argument is passed to `new | |
| 52 StreamController`. | |
| 53 | |
| 54 * `dart:collection`: The `new SplayTreeSet.from(Iterable)` constructor was | |
| 55 added. | |
| 56 | |
| 57 * `dart:convert`: `Utf8Encoder.convert` and `Utf8Decoder.convert` added optional | |
| 58 `start` and `end` arguments. | |
| 59 | |
| 60 * `dart:core`: | |
| 61 | |
| 62 * `RangeError` added new static helper functions: `checkNotNegative`, | |
| 63 `checkValidIndex`, `checkValidRange`, and `checkValueInInterval`. | |
| 64 | |
| 65 * `int` added the `modPow` function. | |
| 66 | |
| 67 * `String` added the `replaceFirstMapped` and `replaceRange` functions. | |
| 68 | |
| 69 * `dart:io`: | |
| 70 | |
| 71 * Support for locking files to prevent concurrent modification was added. This | |
| 72 includes the `File.lock`, `File.lockSync`, `File.unlock`, and | |
| 73 `File.unlockSync` functions as well as the `FileLock` class. | |
| 74 | |
| 75 * Support for starting detached processes by passing the named `mode` argument | |
| 76 (a `ProcessStartMode`) to `Process.start`. A process can be fully attached, | |
| 77 fully detached, or detached except for its standard IO streams. | |
| 78 | |
| 79 * `HttpServer.bind` and `HttpServer.bindSecure` added the `v6Only` named | |
| 80 argument. If this is true, only IPv6 connections will be accepted. | |
| 81 | |
| 82 * `HttpServer.bind`, `HttpServer.bindSecure`, `ServerSocket.bind`, | |
| 83 `RawServerSocket.bind`, `SecureServerSocket.bind` and | |
| 84 `RawSecureServerSocket.bind` added the `shared` named argument. If this is | |
| 85 true, multiple servers or sockets in the same Dart process may bind to the | |
| 86 same address, and incoming requests will automatically be distributed | |
| 87 between them. | |
| 88 | |
| 89 * **Deprecation:** the experimental `ServerSocketReference` and | |
| 90 `RawServerSocketReference` classes, as well as getters that returned them, | |
| 91 are marked as deprecated. The `shared` named argument should be used | |
| 92 instead. These will be removed in Dart 1.10. | |
| 93 | |
| 94 * `Socket.connect` and `RawSocket.connect` added the `sourceAddress` named | |
| 95 argument, which specifies the local address to bind when making a | |
| 96 connection. | |
| 97 | |
| 98 * The static `Process.killPid` method was added to kill a process with a given | |
| 99 PID. | |
| 100 | |
| 101 * `Stdout` added the `nonBlocking` instance property, which returns a | |
| 102 non-blocking `IOSink` that writes to standard output. | |
| 103 | |
| 104 * `dart:isolate`: | |
| 105 | |
| 106 * The static getter `Isolate.current` was added. | |
| 107 | |
| 108 * The `Isolate` methods `addOnExitListener`, `removeOnExitListener`, | |
| 109 `setErrorsFatal`, `addOnErrorListener`, and `removeOnErrorListener` now work | |
| 110 on the VM. | |
| 111 | |
| 112 * Isolates spawned via `Isolate.spawn` now allow most objects, including | |
| 113 top-level and static functions, to be sent between them. | |
| 114 | |
| 115 ## 1.8.5 (2015-01-21) | |
| 116 | |
| 117 * Code generation for SIMD on ARM and ARM64 is fixed. | |
| 118 | |
| 119 * A possible crash on MIPS with newer GCC toolchains has been prevented. | |
| 120 | |
| 121 * A segfault when using `rethrow` was fixed ([issue 21795][]). | |
| 122 | |
| 123 [issue 21795]: https://code.google.com/p/dart/issues/detail?id=21795 | |
| 124 | |
| 125 ## 1.8.3 (2014-12-10) | |
| 126 | |
| 127 * Breakpoints can be set in the Editor using file suffixes ([issue 21280][]). | |
| 128 | |
| 129 * IPv6 addresses are properly handled by `HttpClient` in `dart:io`, fixing a | |
| 130 crash in pub ([issue 21698][]). | |
| 131 | |
| 132 * Issues with the experimental `async`/`await` syntax have been fixed. | |
| 133 | |
| 134 * Issues with a set of number operations in the VM have been fixed. | |
| 135 | |
| 136 * `ListBase` in `dart:collection` always returns an `Iterable` with the correct | |
| 137 type argument. | |
| 138 | |
| 139 [issue 21280]: https://code.google.com/p/dart/issues/detail?id=21280 | |
| 140 [issue 21698]: https://code.google.com/p/dart/issues/detail?id=21698 | |
| 141 | |
| 142 ## 1.8.0 (2014-11-28) | |
| 143 | |
| 144 * `dart:collection`: `SplayTree` added the `toSet` function. | |
| 145 | |
| 146 * `dart:convert`: The `JsonUtf8Encoder` class was added. | |
| 147 | |
| 148 * `dart:core`: | |
| 149 | |
| 150 * The `IndexError` class was added for errors caused by an index being outside | |
| 151 its expected range. | |
| 152 | |
| 153 * The `new RangeError.index` constructor was added. It forwards to `new | |
| 154 IndexError`. | |
| 155 | |
| 156 * `RangeError` added three new properties. `invalidProperty` is the value that | |
| 157 caused the error, and `start` and `end` are the minimum and maximum values | |
| 158 that the value is allowed to assume. | |
| 159 | |
| 160 * `new RangeError.value` and `new RangeError.range` added an optional | |
| 161 `message` argument. | |
| 162 | |
| 163 * The `new String.fromCharCodes` constructor added optional `start` and `end` | |
| 164 arguments. | |
| 165 | |
| 166 * `dart:io`: | |
| 167 | |
| 168 * Support was added for the [Application-Layer Protocol Negotiation][alpn] | |
| 169 extension to the TLS protocol for both the client and server. | |
| 170 | |
| 171 * `SecureSocket.connect`, `SecureServerSocket.bind`, | |
| 172 `RawSecureSocket.connect`, `RawSecureSocket.secure`, | |
| 173 `RawSecureSocket.secureServer`, and `RawSecureServerSocket.bind` added a | |
| 174 `supportedProtocols` named argument for protocol negotiation. | |
| 175 | |
| 176 * `RawSecureServerSocket` added a `supportedProtocols` field. | |
| 177 | |
| 178 * `RawSecureSocket` and `SecureSocket` added a `selectedProtocol` field which | |
| 179 contains the protocol selected during protocol negotation. | |
|
kevmoo
2015/04/03 23:08:48
Fix my spelling - negotiation
| |
| 180 | |
| 181 [alpn]: https://tools.ietf.org/html/rfc7301 | |
| 182 | |
| 183 ## 1.7.0 (2014-10-15) | |
| 184 | |
| 185 ### Tool changes | |
| 186 | |
| 187 * `pub` now generates binstubs for packages that are globally activated so that | |
| 188 they can be put on the user's `PATH` and used as normal executables. See the | |
| 189 [`pub global activate` documentation][pub global activate]. | |
| 190 | |
| 191 * When using `dart2js`, deferred loading now works with multiple Dart apps on | |
| 192 the same page. | |
| 193 | |
| 194 [pub global activate]: https://www.dartlang.org/tools/pub/cmd/pub-global.html#ru nning-a-script-from-your-path | |
| 195 | |
| 196 ### Core library changes | |
| 197 | |
| 198 * `dart:async`: `Zone`, `ZoneDelegate`, and `ZoneSpecification` added the | |
| 199 `errorCallback` function, which allows errors that have been programmatically | |
| 200 added to a `Future` or `Stream` to be intercepted. | |
| 201 | |
| 202 * `dart:io`: | |
| 203 | |
| 204 * **Breaking change:** `HttpClient.close` must be called for all clients or | |
| 205 they will keep the Dart process alive until they time out. This fixes the | |
| 206 handling of persistent connections. Previously, the client would shut down | |
| 207 immediately after a request. | |
| 208 | |
| 209 * **Breaking change:** `HttpServer` no longer compresses all traffic by | |
| 210 default. The new `autoCompress` property can be set to `true` to re-enable | |
| 211 compression. | |
| 212 | |
| 213 * `dart:isolate`: `Isolate.spawnUri` added the optional `packageRoot` argument, | |
| 214 which controls how it resolves `package:` URIs. | |
| OLD | NEW |