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
+29Lines changed: 29 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,6 +18,28 @@ Elixir follows the recommendations in [Unicode Annex #31](http://unicode.org/rep
18
18
19
19
For a complete reference on Elixir syntax, see the [Syntax Reference](https://hexdocs.pm/elixir/syntax-reference.html). For technical details on Unicode support, see [Unicode Syntax](https://hexdocs.pm/elixir/unicode-syntax.html).
20
20
21
+
## IEx improvements
22
+
23
+
IEx got many improvements. The autocompletion system is now capable of autocompleting variables and user imports. New helpers have also been added:
24
+
25
+
*`exports/1` lists all exports (functions and macros) in a given module
26
+
*`open/1` opens up the source of a module or function directly in your editor. For example, `open MyApp.Module`
27
+
*`system_info/0` prints general information about the running system, such as number of cores, runtime version, allocation of memory in the VM and more
28
+
29
+
IEx also features a breakpoint system for code debugging. The following functions have been added to aid debugging:
30
+
31
+
*`break!/2` - sets up a breakpoint for a given `Mod.fun/arity`
32
+
*`break!/4` - sets up a breakpoint for the given module, function, arity
33
+
*`breaks/0` - prints all breakpoints and their ids
34
+
*`continue/0` - continues until the next breakpoint in the same process
35
+
*`open/0` - opens editor on the current breakpoint
36
+
*`remove_breaks/0` - removes all breakpoints in all modules
37
+
*`remove_breaks/1` - removes all breakpoints in a given module
38
+
*`reset_break/1` - sets the number of stops on the given id to zero
39
+
*`reset_break/3` - sets the number of stops on the given module, function, arity to zer
40
+
*`respawn/0` - starts a new shell (breakpoints will ask for permission once more)
41
+
*`whereami/1` - shows the current location
42
+
21
43
## Exception.blame
22
44
23
45
`Exception.blame/3` is a new function in Elixir that is capable of attaching debug information to certain exceptions. Currently this is used to augment `FunctionClauseError`s with a summary of all clauses and which parts of clause match and which ones didn't. For example:
@@ -146,6 +168,13 @@ This release brings further improvements to Calendar types. It adds arithmetic a
146
168
*[Kernel] Cache the AST on definitions. This speeds up the compilation time from 10% to 15% measured across different projects.
147
169
*[Stream] Introduce `Stream.chunk_every/2` and `Stream.chunk_every/4` with a more explicit API than `Stream.chunk/2` and `Stream.chunk/4`
148
170
171
+
#### IEx
172
+
173
+
*[IEx.Helpers] Add `break!/2`, `break!/4`, `breaks/0`, `continue/0`, `open/0`, `remove_breaks/0`, `remove_breaks/1`, `reset_break/1`, `reset_break/3` and `whereami/1` for code debugging
174
+
*[IEx.Helpers] No longer emit warnings for IEx commands without parentheses
175
+
*[IEx.Helpers] Add `system_info/0` for printing runtime system information
176
+
*[IEx.Helpers] Add `open/1` to open the source of a given module/function in your editor
0 commit comments