You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+27-46Lines changed: 27 additions & 46 deletions
Original file line number
Diff line number
Diff line change
@@ -70,59 +70,15 @@ A huge thank you to Vinícius Müller for working on the new diagnostics.
70
70
71
71
## Revamped documentation
72
72
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.
74
74
75
75
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.
76
76
77
77
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.
78
78
79
79
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.
80
80
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)
126
82
127
83
### 1. Enhancements
128
84
@@ -132,46 +88,71 @@ Finally, we have started enriching our documentation with [Mermaid.js](https://m
132
88
133
89
#### Elixir
134
90
91
+
*[Code] Add `:emit_warnings` for `Code.string_to_quoted/2`
135
92
*[Code] Automatically include columns in parsing options
136
93
*[Code] Introduce `MismatchedDelimiterError` for handling mismatched delimiter exceptions
137
94
*[Code.Fragment] Handle anonymous calls in fragments
138
95
*[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
139
99
*[Kernel] Suggest module names based on suffix and casing errors when the module does not exist in `UndefinedFunctionError`
140
100
*[Kernel.ParallelCompiler] Introduce `Kernel.ParallelCompiler.pmap/2` to compile multiple additional entries in parallel
141
101
*[Kernel.SpecialForms] Warn if `True`/`False`/`Nil` are used as aliases and there is no such alias
142
102
*[Macro] Add `Macro.compile_apply/4`
143
103
*[Module] Add support for `@nifs` annotation from Erlang/OTP 25
144
104
*[Module] Add support for missing `@dialyzer` configuration
145
105
*[String] Update to Unicode 15.1.0
106
+
*[String] Add `String.replace_invalid/2`
146
107
*[Task] Add `:limit` option to `Task.yield_many/2`
147
108
109
+
#### Logger
110
+
111
+
*[Logger] Add `Logger.levels/0`
112
+
148
113
#### Mix
149
114
150
115
*[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
151
119
*[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
152
123
*[mix test] Allow testing multiple file:line at once, such as `mix test test/foo_test.exs:13 test/bar_test.exs:27`
153
124
154
125
### 2. Bug fixes
155
126
156
127
#### Elixir
157
128
129
+
*[Code] Keep quotes for atom keys in formatter
158
130
*[Code.Fragment] Fix crash in `Code.Fragment.surround_context/2` when matching on `->`
159
131
*[IO] Raise when using `IO.binwrite/2` on terminated device (mirroring `IO.write/2`)
160
132
*[Kernel] Do not expand aliases recursively (the alias stored in Macro.Env is already expanded)
161
133
*[Kernel] Ensure `dbg` module is a compile-time dependency
162
134
*[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)
163
136
*[Kernel] Do not define an alias for nested modules starting with `Elixir.` in their definition
164
137
*[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`
165
140
*[Path] Ensure `Path.relative_to/2` returns a relative path when the given argument does not share a common prefix with `cwd`
166
141
167
142
#### ExUnit
168
143
169
144
*[ExUnit] Raise on incorrectly dedented doctests
170
145
146
+
#### IEx
147
+
148
+
*[IEx.Pry] Fix prying functions with only literals in their body
149
+
171
150
#### Mix
172
151
152
+
*[mix archive.install] Restore code paths after `mix archive.install`
173
153
*[mix compile] Ensure files with duplicate modules are recompiled whenever any of the files change
174
154
*[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`
0 commit comments