Skip to content

Commit 38ddc98

Browse files
committed
Release v1.16.0
1 parent 1b7c732 commit 38ddc98

File tree

4 files changed

+30
-49
lines changed

4 files changed

+30
-49
lines changed

CHANGELOG.md

Lines changed: 27 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -70,59 +70,15 @@ A huge thank you to Vinícius Müller for working on the new diagnostics.
7070

7171
## Revamped documentation
7272

73-
Elixir's Getting Started guided has been made part of the Elixir repository and incorporated into ExDoc. This was an opportunity to revisit and unify all official guides and references.
73+
Elixir's Getting Started guides have been made part of the Elixir repository and incorporated into ExDoc. This was an opportunity to revisit and unify all official guides and references.
7474

7575
We have also incorporated and extended the work on [Understanding Code Smells in Elixir Functional Language](https://github.com/lucasvegi/Elixir-Code-Smells/blob/main/etc/2023-emse-code-smells-elixir.pdf), by Lucas Vegi and Marco Tulio Valente, from [ASERG/DCC/UFMG](http://aserg.labsoft.dcc.ufmg.br/), into the official document in the form of anti-patterns. The anti-patterns are divided into four categories: code-related, design-related, process-related, and meta-programming. Our goal is to give all developers examples of potential anti-patterns, with context and examples on how to improve their codebases.
7676

7777
Another [ExDoc](https://github.com/elixir-lang/ex_doc) feature we have incorporated in this release is the addition of cheatsheets, starting with [a cheatsheet for the Enum module](https://hexdocs.pm/elixir/main/enum-cheat.html). If you would like to contribute future cheatsheets to Elixir itself, feel free to start a discussion with an issue.
7878

7979
Finally, we have started enriching our documentation with [Mermaid.js](https://mermaid.js.org/) diagrams. You can find examples in the [GenServer](https://hexdocs.pm/elixir/main/GenServer.html) and [Supervisor](https://hexdocs.pm/elixir/main/Supervisor.html) docs.
8080

81-
## v1.16.0-rc.1 (2023-12-12)
82-
83-
### 1. Enhancements
84-
85-
#### Elixir
86-
87-
* [Code] Add `:emit_warnings` for `Code.string_to_quoted/2`
88-
* [File] Add `:offset` option to `File.stream!/2`
89-
* [Kernel] Auto infer size of matched variable in bitstrings
90-
* [Kernel] Preserve column information when translating typespecs
91-
* [String] Add `String.replace_invalid/2`
92-
93-
#### Logger
94-
95-
* [Logger] Add `Logger.levels/0`
96-
97-
#### Mix
98-
99-
* [mix archive.install] Support `--sparse` option
100-
* [mix compile.app] Warn if both `:applications` and `:extra_applications` are used
101-
* [mix compile.elixir] Pass original exception down to diagnostic `:details` when possible
102-
* [mix deps.clean] Emit a warning instead of crashing when a dependency cannot be removed
103-
* [mix escript.install] Support `--sparse` option
104-
* [mix release] Include `include/` directory in releases
105-
106-
### 2. Bug fixes
107-
108-
#### Elixir
109-
110-
* [Code] Keep quotes for atom keys in formatter
111-
* [Kernel] Re-enabled compiler optimizations for top level functions in scripts (disabled in v1.14.0 but shouldn't impact most programs)
112-
* [Macro] Address exception on `Macro.to_string/1` for certain ASTs
113-
* [Module] Make sure file and position information is included in several module warnings (regression)
114-
* [Path] Lazily evaluate `File.cwd!/0` in `Path.expand/1` and `Path.absname/1`
115-
116-
#### IEx
117-
118-
* [IEx.Pry] Fix prying functions with only literals in their body
119-
120-
#### Mix
121-
122-
* [mix archive.install] Restore code paths after archive.install
123-
* [mix escript.install] Restore code paths after escript.install
124-
125-
## v1.16.0-rc.0 (2023-10-31)
81+
## v1.16.0 (2023-12-22)
12682

12783
### 1. Enhancements
12884

@@ -132,46 +88,71 @@ Finally, we have started enriching our documentation with [Mermaid.js](https://m
13288

13389
#### Elixir
13490

91+
* [Code] Add `:emit_warnings` for `Code.string_to_quoted/2`
13592
* [Code] Automatically include columns in parsing options
13693
* [Code] Introduce `MismatchedDelimiterError` for handling mismatched delimiter exceptions
13794
* [Code.Fragment] Handle anonymous calls in fragments
13895
* [Code.Formatter] Trim trailing whitespace on heredocs with `\r\n`
96+
* [File] Add `:offset` option to `File.stream!/2`
97+
* [Kernel] Auto infer size of matched variable in bitstrings
98+
* [Kernel] Preserve column information when translating typespecs
13999
* [Kernel] Suggest module names based on suffix and casing errors when the module does not exist in `UndefinedFunctionError`
140100
* [Kernel.ParallelCompiler] Introduce `Kernel.ParallelCompiler.pmap/2` to compile multiple additional entries in parallel
141101
* [Kernel.SpecialForms] Warn if `True`/`False`/`Nil` are used as aliases and there is no such alias
142102
* [Macro] Add `Macro.compile_apply/4`
143103
* [Module] Add support for `@nifs` annotation from Erlang/OTP 25
144104
* [Module] Add support for missing `@dialyzer` configuration
145105
* [String] Update to Unicode 15.1.0
106+
* [String] Add `String.replace_invalid/2`
146107
* [Task] Add `:limit` option to `Task.yield_many/2`
147108

109+
#### Logger
110+
111+
* [Logger] Add `Logger.levels/0`
112+
148113
#### Mix
149114

150115
* [mix] Add `MIX_PROFILE` to profile a list of comma separated tasks
116+
* [mix archive.install] Support `--sparse` option
117+
* [mix compile.app] Warn if both `:applications` and `:extra_applications` are used
118+
* [mix compile.elixir] Pass original exception down to diagnostic `:details` when possible
151119
* [mix compile.elixir] Optimize scenario where there are thousands of files in `lib/` and one of them is changed
120+
* [mix deps.clean] Emit a warning instead of crashing when a dependency cannot be removed
121+
* [mix escript.install] Support `--sparse` option
122+
* [mix release] Include `include/` directory in releases
152123
* [mix test] Allow testing multiple file:line at once, such as `mix test test/foo_test.exs:13 test/bar_test.exs:27`
153124

154125
### 2. Bug fixes
155126

156127
#### Elixir
157128

129+
* [Code] Keep quotes for atom keys in formatter
158130
* [Code.Fragment] Fix crash in `Code.Fragment.surround_context/2` when matching on `->`
159131
* [IO] Raise when using `IO.binwrite/2` on terminated device (mirroring `IO.write/2`)
160132
* [Kernel] Do not expand aliases recursively (the alias stored in Macro.Env is already expanded)
161133
* [Kernel] Ensure `dbg` module is a compile-time dependency
162134
* [Kernel] Warn when a private function or macro uses `unquote/1` and the function/macro itself is unused
135+
* [Kernel] Re-enabled compiler optimizations for top level functions in scripts (disabled in v1.14.0 but shouldn't impact most programs)
163136
* [Kernel] Do not define an alias for nested modules starting with `Elixir.` in their definition
164137
* [Kernel.ParallelCompiler] Consider a module has been defined in `@after_compile` callbacks to avoid deadlocks
138+
* [Macro] Address exception on `Macro.to_string/1` for certain ASTs
139+
* [Path] Lazily evaluate `File.cwd!/0` in `Path.expand/1` and `Path.absname/1`
165140
* [Path] Ensure `Path.relative_to/2` returns a relative path when the given argument does not share a common prefix with `cwd`
166141

167142
#### ExUnit
168143

169144
* [ExUnit] Raise on incorrectly dedented doctests
170145

146+
#### IEx
147+
148+
* [IEx.Pry] Fix prying functions with only literals in their body
149+
171150
#### Mix
172151

152+
* [mix archive.install] Restore code paths after `mix archive.install`
173153
* [mix compile] Ensure files with duplicate modules are recompiled whenever any of the files change
174154
* [mix compile] Update Mix compiler diagnostics documentation and typespecs to match the Elixir compiler behaviour where both lines and columns start from one (before it inaccurately said that columns started from zero)
155+
* [mix escript.install] Restore code paths after `mix escript.install`
175156

176157
### 3. Soft deprecations (no warnings emitted)
177158

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.16.0-rc.1
1+
1.16.0

bin/elixir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/sh
22
set -e
33

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

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

bin/elixir.bat

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
@if defined ELIXIR_CLI_ECHO (@echo on) else (@echo off)
22

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

55
setlocal enabledelayedexpansion
66
if ""%1""=="""" if ""%2""=="""" goto documentation

0 commit comments

Comments
 (0)