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
These API improvements make the code more concise and readable and they have also been added to `Enum.sort_by`, `Enum.min_by`, `Enum.max_by`, and friends.
76
76
77
-
###Tracking of compile-time configuration
77
+
## Tracking of compile-time configuration
78
78
79
79
In Elixir, we organize our code in applications. Libraries, your dependencies, and your own project are all separate applications. All applications in Elixir also come with an application environment.
80
80
@@ -124,7 +124,7 @@ By using `compile_env/3`, Elixir will store the values used during compilation a
124
124
125
125
In future versions, we will deprecate the use `Application.get_env` at compile-time with a clear message pointing users to configuration best practices, effectively addressing the scenario where users read from the application environment at compile time unaware of its pitfalls.
126
126
127
-
###Compiler tracing
127
+
## Compiler tracing
128
128
129
129
This release brings enhancements to the Elixir compiler and adds new capabilities for developers to listen to compilation events.
130
130
@@ -141,7 +141,7 @@ Elixir itself is using the new compiler tracing to provide new functionality. On
141
141
142
142
Previously, this information had to be added to the overall project configuration, which was far away from where the optional call effectively happened.
143
143
144
-
###Other enhancements
144
+
## Other enhancements
145
145
146
146
Elixir's calendar data types got many improvements, such as sigil support for third-party calendars, as well as the additions of `DateTime.now!/2`, `DateTime.shift_zone!/3`, and `NaiveDateTime.local_now/0`.
147
147
@@ -179,6 +179,7 @@ Now imagine that `json_payload` is a large JSON blob and the `"key"` inside the
179
179
*[Kernel] Warn when function head comes immediately after the implementation instead of before the implementation
180
180
*[Kernel] Warn if duplicate key is found in struct declaration
181
181
*[Kernel] Print all undefined functions as warnings and then raise. This allows users to see all undefined calls at once, when it would otherwise require them to compile the code multiple times
182
+
*[Kernel] Allow file, line and context to be dynamically set on `quote`
182
183
*[Keyword] Add `Keyword.pop!/2` and `Keyword.pop_values/2`
183
184
*[Map] Add `Map.pop!/2`
184
185
*[MapSet] Optimize multiple operations
@@ -227,6 +228,7 @@ Now imagine that `json_payload` is a large JSON blob and the `"key"` inside the
227
228
228
229
*[Enum] Allow positive range slices on infinite streams given to `Enum.slice/2`
229
230
*[Kernel] Raise error on functions/guards without implementation
231
+
*[Kernel] Do not expand expressions inside interpolation twice
230
232
*[Keyword] Ensure keyword replace and update preserve order
231
233
*[Module] Raise instead of silently failing when performing a write module operation during after-compile
232
234
*[Module] Fix `@macrocallback` definitions with a `when` clause
0 commit comments