Skip to content

Commit 0b8623a

Browse files
committed
Release v1.17.0
1 parent 1f187b5 commit 0b8623a

File tree

4 files changed

+16
-33
lines changed

4 files changed

+16
-33
lines changed

CHANGELOG.md

+13-30
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ This release includes type inference of patterns to provide warnings for an init
44

55
## Warnings from gradual set-theoretic types
66

7-
This release introduces gradual set-theoretic types to infer types from patterns and guards and use them to type check programs, enabling the Elixir compiler to find faults and bugs in codebases without requiring changes to existing software. The underlying principles, theory, and roadmap of our work have been outlined in ["The Design Principles of the Elixir Type System" by Giuseppe Castagna, Guillaume Duboc, José Valim](https://arxiv.org/abs/2306.06391).
7+
This release introduces gradual set-theoretic types to infer types from patterns and use them to type check programs, enabling the Elixir compiler to find faults and bugs in codebases without requiring changes to existing software. The underlying principles, theory, and roadmap of our work have been outlined in ["The Design Principles of the Elixir Type System" by Giuseppe Castagna, Guillaume Duboc, José Valim](https://arxiv.org/abs/2306.06391).
88

99
At the moment, Elixir developers will interact with set-theoretic types only through warnings found by the type system. The current implementation models all data types in the language:
1010

@@ -72,35 +72,7 @@ Finally, a new `Kernel.to_timeout/1` function has been added, which helps develo
7272
Process.send_after(pid, :wake_up, to_timeout(hour: 1))
7373
```
7474

75-
## v1.17.0-rc.1 (2024-06-03)
76-
77-
### 1. Enhancements
78-
79-
#### Elixir
80-
81-
* [Duration] Add `Duration.to_iso8601/1` and `Duration.from_iso8601/1`
82-
* [Keyword] Add `Keyword.intersect/2-3` to mirror the `Map` API
83-
84-
#### Mix
85-
86-
* [mix profile.tprof] Add a new profiler, available on Erlang/OTP 27+, which can measure count, time, and heap usage
87-
* [mix test] Generate cover HTML files in parallel
88-
89-
### 2. Bug fixes
90-
91-
#### Elixir
92-
93-
* [Kernel] Avoid double tracing events when capturing a function
94-
* [Kernel] Fix a bug where captured arguments would conflict when a capture included a macro that also used captures
95-
96-
### 3. Soft deprecations
97-
98-
#### Mix
99-
100-
* [mix profile.cprof] Deprecated in favor of the new `mix profile.tprof`
101-
* [mix profile.eprof] Deprecated in favor of the new `mix profile.tprof`
102-
103-
## v1.17.0-rc.0 (2024-05-24)
75+
## v1.17.0 (2024-06-12)
10476

10577
### 1. Enhancements
10678

@@ -118,6 +90,7 @@ Process.send_after(pid, :wake_up, to_timeout(hour: 1))
11890
* [Kernel] Add `Kernel.to_timeout/1`
11991
* [Kernel] Emit warnings for undefined functions from modules defined within the same context as the caller code
12092
* [Kernel] Support integers in uppercase sigils
93+
* [Keyword] Add `Keyword.intersect/2-3` to mirror the `Map` API
12194
* [Macro] Add `Macro.Env.define_alias/4`, `Macro.Env.define_import/4`, `Macro.Env.define_require/4`, `Macro.Env.expand_alias/4`, `Macro.Env.expand_import/5`, and `Macro.Env.expand_require/6` to aid the implementation of language servers and embedded languages
12295
* [NaiveDateTime] Add `NaiveDateTime.shift/2` to shift naive datetimes with duration and calendar-specific semantics
12396
* [Process] Add `Process.set_label/1`
@@ -147,9 +120,12 @@ Process.send_after(pid, :wake_up, to_timeout(hour: 1))
147120
* [mix deps] Warn if `:optional` is used in combination with `:in_umbrella`
148121
* [mix deps.get] Do not add optional dependency requirements if its parent dep was skipped
149122
* [mix deps.tree] Add `--umbrella-only` to `mix deps.tree`
123+
* [mix profile.tprof] Add a new profiler, available on Erlang/OTP 27+, which can measure count, time, and heap usage
150124
* [mix test] Add `mix test --breakpoints` that sets up a breakpoint before each test that will run
151125
* [mix test] Add `mix test --repeat-until-failure` to rerun tests until a failure occurs
152126
* [mix test] Add `mix test --slowest-modules` to print slowest modules based on all of the tests they hold
127+
* [mix test] Generate cover HTML files in parallel
128+
153129

154130
### 2. Bug fixes
155131

@@ -162,6 +138,8 @@ Process.send_after(pid, :wake_up, to_timeout(hour: 1))
162138
* [Kernel] Do not expand code in `quote bind_quoted: ...` twice
163139
* [Kernel] Respect `:line` property when `:file` is given as option to `quote`
164140
* [Kernel] Do not crash on `Macro.escape/2` when passing a quote triplet without valid meta
141+
* [Kernel] Avoid double tracing events when capturing a function
142+
* [Kernel] Fix a bug where captured arguments would conflict when a capture included a macro that also used captures
165143
* [Module] Return default value in `Module.get_attribute/3` for persisted attributes which have not yet been written to
166144

167145
#### IEx
@@ -178,6 +156,11 @@ Process.send_after(pid, :wake_up, to_timeout(hour: 1))
178156

179157
* [GenServer] Deprecate `c:GenServer.format_status/2` callback to align with Erlang/OTP 25+
180158

159+
#### Mix
160+
161+
* [mix profile.cprof] Deprecated in favor of the new `mix profile.tprof`
162+
* [mix profile.eprof] Deprecated in favor of the new `mix profile.tprof`
163+
181164
### 4. Hard deprecations
182165

183166
#### Elixir

VERSION

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.17.0-rc.1
1+
1.17.0

bin/elixir

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/sh
22
set -e
33

4-
ELIXIR_VERSION=1.17.0-rc.1
4+
ELIXIR_VERSION=1.17.0
55

66
if [ $# -eq 0 ] || { [ $# -eq 1 ] && { [ "$1" = "--help" ] || [ "$1" = "-h" ]; }; }; then
77
cat <<USAGE >&2

bin/elixir.bat

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
@echo off
22

3-
set ELIXIR_VERSION=1.17.0-rc.1
3+
set ELIXIR_VERSION=1.17.0
44

55
if ""%1""=="""" if ""%2""=="""" goto documentation
66
if /I ""%1""==""--help"" if ""%2""=="""" goto documentation

0 commit comments

Comments
 (0)