OLD | NEW |
1 ## 1.23.0 | 1 ## 1.23.0 |
2 | 2 |
3 ### Language | 3 ### Language |
4 * Allow using URI strings in `part of` declarations to refer to the | 4 * Allow using URI strings in `part of` declarations to refer to the |
5 importing library. | 5 importing library. |
6 | 6 |
7 ### Core library changes | 7 ### Core library changes |
8 | 8 |
9 * `dart:core` | 9 * `dart:core` |
10 * Added `Uri.isScheme` function to check the scheme of a URI. | 10 * Added `Uri.isScheme` function to check the scheme of a URI. |
11 Example: `uri.isScheme("http")`. Ignores case when comparing. | 11 Example: `uri.isScheme("http")`. Ignores case when comparing. |
12 * Make `UriData.parse` validate its input better. | 12 * Make `UriData.parse` validate its input better. |
13 If the data is base-64 encoded, the data is normalized wrt. | 13 If the data is base-64 encoded, the data is normalized wrt. |
14 alphabet and padding, and it contains invalid base-64 data, | 14 alphabet and padding, and it contains invalid base-64 data, |
15 parsing fails. Also normalizes non-base-64 data. | 15 parsing fails. Also normalizes non-base-64 data. |
16 * `dart:io` | 16 * `dart:io` |
17 * Added functions `File.lastAccessed`, `File.lastAccessedSync`, | 17 * Added functions `File.lastAccessed`, `File.lastAccessedSync`, |
18 `File.setLastModified`, `File.setLastModifiedSync`, `File.setLastAccessed`, | 18 `File.setLastModified`, `File.setLastModifiedSync`, `File.setLastAccessed`, |
19 and `File.setLastAccessedSync`. | 19 and `File.setLastAccessedSync`. |
20 * Added `{Stdin,Stdout}.supportsAnsiEscapes`. | 20 * Added `{Stdin,Stdout}.supportsAnsiEscapes`. |
21 | 21 |
22 ### Dart VM | 22 ### Dart VM |
| 23 |
23 * Calls to `print()` and `Stdout.write*()` now correctly print unicode | 24 * Calls to `print()` and `Stdout.write*()` now correctly print unicode |
24 characters to the console on Windows. Calls to `Stdout.add*()` behave as | 25 characters to the console on Windows. Calls to `Stdout.add*()` behave as |
25 before. | 26 before. |
26 | 27 |
27 ### Tool changes | 28 ### Tool changes |
28 | 29 |
29 * Analysis | 30 * Analysis |
30 * `dartanalyzer` now follows the same rules as the analysis server to find | 31 * `dartanalyzer` now follows the same rules as the analysis server to find |
31 an analysis options file, stopping when an analysis options file is found: | 32 an analysis options file, stopping when an analysis options file is found: |
32 * Search up the directory hierarchy looking for an analysis options file. | 33 * Search up the directory hierarchy looking for an analysis options file. |
33 * If analyzing a project referencing the [Flutter](https://flutter.io/) | 34 * If analyzing a project referencing the [Flutter](https://flutter.io/) |
34 package, then use the | 35 package, then use the |
35 [default Flutter analysis options](https://github.com/flutter/flutter/blob
/master/packages/flutter/lib/analysis_options_user.yaml) | 36 [default Flutter analysis options](https://github.com/flutter/flutter/blob
/master/packages/flutter/lib/analysis_options_user.yaml) |
36 found in `package:flutter`. | 37 found in `package:flutter`. |
37 * If in a Bazel workspace, then use the analysis options in | 38 * If in a Bazel workspace, then use the analysis options in |
38 `package:dart.analysis_options/default.yaml` if it exists. | 39 `package:dart.analysis_options/default.yaml` if it exists. |
39 * Use the default analysis options rules. | 40 * Use the default analysis options rules. |
40 * In addition, specific to `dartanalyzer`: | 41 * In addition, specific to `dartanalyzer`: |
41 * an analysis options file can be specified on the command line via | 42 * an analysis options file can be specified on the command line via |
42 `--options` and that file will be used instead of searching for an | 43 `--options` and that file will be used instead of searching for an |
43 analysis options file. | 44 analysis options file. |
44 * any analysis option specified on the command line | 45 * any analysis option specified on the command line |
45 (e.g. `--strong` or `--no-strong`) takes precedence over any corresponding | 46 (e.g. `--strong` or `--no-strong`) takes precedence over any corresponding |
46 value specified in the analysis options file. | 47 value specified in the analysis options file. |
47 | 48 |
48 * Dartium, dart2js, and DDC | 49 * Dartium, dart2js, and DDC |
49 | 50 |
50 * Imports to `dart:io` are allowed, but the imported library is not supported | 51 * Imports to `dart:io` are allowed, but the imported library is not supported |
51 and will likely fail on most APIs at runtime. This change was made as a | 52 and will likely fail on most APIs at runtime. This change was made as a |
(...skipping 11 matching lines...) Expand all Loading... |
63 * No longer produces "UID too large" errors on OS X. All packages are now | 64 * No longer produces "UID too large" errors on OS X. All packages are now |
64 uploaded with the user and group names set to "pub". | 65 uploaded with the user and group names set to "pub". |
65 * No longer fails with a stack overflow when uploading a package that uses | 66 * No longer fails with a stack overflow when uploading a package that uses |
66 Git submodules. | 67 Git submodules. |
67 * `pub get` and `pub upgrade` | 68 * `pub get` and `pub upgrade` |
68 * Produce more informative error messages if they're run directly in a | 69 * Produce more informative error messages if they're run directly in a |
69 package that uses Flutter. | 70 package that uses Flutter. |
70 * Properly unlock SDK and path dependencies if they have a new version | 71 * Properly unlock SDK and path dependencies if they have a new version |
71 that's also valid according to the user's pubspec. | 72 that's also valid according to the user's pubspec. |
72 | 73 |
| 74 * dartfmt |
| 75 * Make the precedence of cascades more visible. |
| 76 * Fix a couple of places where spurious newlines were inserted. |
| 77 * Correctly report unchanged formatting when reading from stdin. |
| 78 * Other small formatting tweaks. |
| 79 |
73 ## 1.22.0 | 80 ## 1.22.0 |
74 | 81 |
75 ### Language | 82 ### Language |
76 | 83 |
77 * Breaking change: | 84 * Breaking change: |
78 ['Generalized tear-offs'](https://github.com/gbracha/generalizedTearOffs/blo
b/master/proposal.md) | 85 ['Generalized tear-offs'](https://github.com/gbracha/generalizedTearOffs/blo
b/master/proposal.md) |
79 are no longer supported, and will cause errors. We updated the language spec | 86 are no longer supported, and will cause errors. We updated the language spec |
80 and added warnings in 1.21, and are now taking the last step to fully | 87 and added warnings in 1.21, and are now taking the last step to fully |
81 de-support them. They were previously only supported in the VM, and there | 88 de-support them. They were previously only supported in the VM, and there |
82 are almost no known uses of them in the wild. | 89 are almost no known uses of them in the wild. |
83 | 90 |
84 * The `assert()` statement has been expanded to support an optional second | 91 * The `assert()` statement has been expanded to support an optional second |
85 `message` argument | 92 `message` argument |
86 (SDK issue [27342](https://github.com/dart-lang/sdk/issues/27342)). | 93 (SDK issue [27342](https://github.com/dart-lang/sdk/issues/27342)). |
87 | 94 |
88 The message is displayed if the assert fails. It can be any object, and it | 95 The message is displayed if the assert fails. It can be any object, and it |
89 is accessible as `AssertionError.message`. It can be used to provide more | 96 is accessible as `AssertionError.message`. It can be used to provide more |
90 user friendly exception outputs. As an example, the following assert: | 97 user friendly exception outputs. As an example, the following assert: |
91 | 98 |
92 ```dart | 99 ```dart |
93 assert(configFile != null, "Tool config missing. Please see https://goo.gl/k
8iAi for details."); | 100 assert(configFile != null, "Tool config missing. Please see https://goo.gl/k
8iAi for details."); |
94 ``` | 101 ``` |
95 | 102 |
(...skipping 1641 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1737 they will keep the Dart process alive until they time out. This fixes the | 1744 they will keep the Dart process alive until they time out. This fixes the |
1738 handling of persistent connections. Previously, the client would shut down | 1745 handling of persistent connections. Previously, the client would shut down |
1739 immediately after a request. | 1746 immediately after a request. |
1740 | 1747 |
1741 * **Breaking change:** `HttpServer` no longer compresses all traffic by | 1748 * **Breaking change:** `HttpServer` no longer compresses all traffic by |
1742 default. The new `autoCompress` property can be set to `true` to re-enable | 1749 default. The new `autoCompress` property can be set to `true` to re-enable |
1743 compression. | 1750 compression. |
1744 | 1751 |
1745 * `dart:isolate`: `Isolate.spawnUri` added the optional `packageRoot` argument, | 1752 * `dart:isolate`: `Isolate.spawnUri` added the optional `packageRoot` argument, |
1746 which controls how it resolves `package:` URIs. | 1753 which controls how it resolves `package:` URIs. |
OLD | NEW |