|
20 | 20 | * [Enum] Add `Enum.zip_with/2` and `Enum.zip_with/3`
|
21 | 21 | * [Enum] Add support for functions as the second argument of `Enum.with_index/2`
|
22 | 22 | * [Float] Add `Float.pow/2`
|
23 |
| - * [Integer] Add `Integer.pow/2` |
| 23 | + * [Integer] Add `Integer.pow/2` and `Integer.extended_gcd/2` |
24 | 24 | * [List] Add default value for `List.first/1` and `List.last/1`
|
| 25 | + * [Kernel] Add `start..stop//step` as support for stepped ranges |
25 | 26 | * [Kernel] Also warn for literal structs on `min/2` and `max/2`
|
26 | 27 | * [Kernel] Add `Kernel.tap/2` and `Kernel.then/2`
|
27 | 28 | * [Kernel] Do not add runtime dependencies to remotes in typespecs
|
|
33 | 34 | * [Module] Raise on invalid `@dialyzer` attributes
|
34 | 35 | * [Module] Add `Module.get_definition/2` and `Module.delete_definition/2`
|
35 | 36 | * [Module] Allow `@on_load` to be a private function
|
| 37 | + * [Module] Validate `@dialyzer` related module attributes |
| 38 | + * [Range] Add `Range.new/3`, `Range.empty?/1`, and `Range.size/1` |
36 | 39 | * [Regex] Add offset option to `Regex.scan/3` and `Regex.run/3`
|
37 | 40 | * [Registry] Support compression on `Registry` tables
|
38 | 41 | * [Stream] Add `Stream.zip_with/2` and `Stream.zip_with/3`
|
|
43 | 46 |
|
44 | 47 | #### ExUnit
|
45 | 48 |
|
46 |
| - * [ExUnit] Intercept SIGQUIT and show a list of all aborted tests as well as intermediate test results |
| 49 | + * [ExUnit] Intercept SIGQUIT (via Ctrl+\\) and show a list of all aborted tests as well as intermediate test results |
47 | 50 | * [ExUnit] Interpolate module attributes in match assertions diffs
|
48 | 51 | * [ExUnit] Print how much time is spent on `async` vs `sync` tests
|
49 | 52 | * [ExUnit] Improve error messages for doctests
|
|
61 | 64 | * [Mix] Support `:exit_code` option in `Mix.raise/2`
|
62 | 65 | * [Mix] Discard `MIX_ENV` and `MIX_TARGET` values if they are empty strings
|
63 | 66 | * [Mix] Print the time taken to execute a task with on `MIX_DEBUG=1`
|
| 67 | + * [mix compile.erlang] Compile multiple files in parallel |
64 | 68 | * [mix escript.build] Deep merge configuration and ensure argv is set when executing `config/runtime.exs`
|
65 | 69 | * [mix release] Add `RELEASE_PROG` to releases with the name of the executable starting the release
|
| 70 | + * [mix test] Run all available tests if there are no pending `--failed` tests. This provides a better workflow as you no longer need to toggle the `--failed` flag between runs |
66 | 71 |
|
67 | 72 | ### 2. Bug fixes
|
68 | 73 |
|
|
82 | 87 | * [Task] Ensure `Task.async_stream/2` with `ordered: false` discard results as they are emitted, instead of needlessly accumulating inside the stream manager
|
83 | 88 | * [URI] Do not discard empty paths on `URI.merge/2`
|
84 | 89 |
|
| 90 | +#### ExUnit |
| 91 | + |
| 92 | + * [ExUnit.Diff] Fix cases where the diffing algorithm would fail to print a pattern correct |
| 93 | + |
85 | 94 | #### IEx
|
86 | 95 |
|
87 | 96 | * [IEx] Fix auto-completion inside remote shells
|
88 | 97 |
|
89 | 98 | #### Mix
|
90 | 99 |
|
91 | 100 | * [mix compile.elixir] Ensure that a manifest is generated even with no source code
|
92 |
| - * [mix compile.elixir] Make sure export dependencies trigger recompilation when removed |
| 101 | + * [mix compile.elixir] Make sure export dependencies trigger recompilation when the dependency is removed as well as when the whole file is removed |
93 | 102 | * [mix compile.elixir] Do not emit false positive warnings when a path dependency adds a module that is then used by the current application
|
94 | 103 | * [mix test] Ensure protocols within the current project are consolidated when `--cover` is given
|
95 | 104 | * [mix release] Improve compliance of release scripts with stripped down Linux installations
|
96 | 105 | * [mix release] Preserve file mode when copying non-beam ebin files
|
97 | 106 |
|
98 | 107 | ### 3. Soft-deprecations (no warnings emitted)
|
99 | 108 |
|
| 109 | +#### Elixir |
| 110 | + |
| 111 | + * [Kernel] Using `start..stop` to match on ranges is soft-deprecated and will warn on future Elixir versions. Use `start..stop//step` instead |
| 112 | + * [Kernel] Using `start..stop` to create decreasing ranges is soft-deprecated and will warn on future versions. However, note this will only warn if the right-side is a variable. For example, `1..-2` and `x..-1` won't warn, but `1..x` or `x..y` will |
| 113 | + |
100 | 114 | ### 4. Hard-deprecations
|
101 | 115 |
|
102 | 116 | #### EEx
|
|
105 | 119 |
|
106 | 120 | #### Elixir
|
107 | 121 |
|
| 122 | + * [Kernel] The binary operator `^^^` is deprecated. If you are using `Bitwise.^^^/2`, use `Bitwise.bxor/2` instead |
108 | 123 | * [Kernel] Deprecate `@foo()` in favor of `@foo`
|
109 | 124 | * [System] Deprecate `System.stacktrace/0` (it was already deprecated outside of catch/rescue and now it is deprecated everywhere)
|
110 | 125 |
|
|
0 commit comments