Łukasz Samson
784db65375
Fix missed optimization of Kernel.put_elem/3 ( #15480 )
...
?reorder added in 87582af54 used wrong arity and wrong erlang call
2026-06-15 12:16:54 +02:00
Jean Klingler
2421be6732
Fix bin comprehensions when option is used ( #15473 )
...
* Fix bin comprehensions - static size
* Fix bin comprehensions - pinned var size
* Fix bin comprehensions - operations
* Add tests for nested generators
2026-06-15 17:32:26 +09:00
Barna Kovacs
d5e131623d
Optimize behaviour_defined? ( #15478 )
2026-06-15 10:19:03 +02:00
Barna Kovacs
9046a2fe72
Optimize URI.to_string/1 ( #15477 )
2026-06-15 00:20:48 +02:00
Barna Kovacs
1796733076
Optimize unpercent with guard and by avoiding with clause ( #15476 )
2026-06-14 21:46:02 +02:00
Barna Kovacs
c958e540e9
Optimize bag_distance by calling bag_difference only once
2026-06-14 20:31:27 +02:00
José Valim
36f272cdf0
Raise better error messages when expected structs disappear, closes #15472
2026-06-14 13:55:28 +02:00
Barna Kovacs
efcdfb8eca
Optimize MapSet.symmetric_difference/2 when sizes mismatched ( #15471 )
2026-06-14 12:58:17 +02:00
Jean Klingler
df9d1d6e52
Cleaner error message for unquote when quote is used in a pattern ( #15469 )
2026-06-13 21:15:55 +09:00
José Valim
09e1448710
Simplify precision tracking in bitstrings
2026-06-13 12:11:14 +02:00
José Valim
47b762b4f1
Track reused variables in bitstring patterns
2026-06-13 11:17:26 +02:00
Barna Kovacs
b48221d221
Optimize Keyword.pop/3, pop!/2, and pop_lazy/3 ( #15466 )
...
Eliminate redundant list traversal by calling :lists.keyfind + delete_key
directly instead of going through fetch/2 + delete/2.
The old code performed 3 traversals when the key was present:
1. :lists.keyfind (inside fetch)
2. :lists.keymember (inside delete — redundant)
3. delete_key (inside delete)
The new code performs 2 traversals:
1. :lists.keyfind (find the value)
2. delete_key (remove all matching entries)
Benchmark shows ~1.15x speedup on avg (noisy system)
2026-06-12 21:02:13 +02:00
José Valim
82fa62d0a5
Use cyclic instead of recursive, add more examples, closes #15462
2026-06-12 18:50:54 +02:00
José Valim
83ac4fe29c
Ignore additional callbacks in protocol implementation, closes #15456
2026-06-12 18:45:43 +02:00
José Valim
6a14c55681
Warn on unaligned binary segments
...
Closes #15465 .
2026-06-12 18:06:05 +02:00
José Valim
3ba669da3e
Log times to type check modules when profiling
2026-06-12 13:57:16 +02:00
Barna Kovacs
7ad36f1bcc
Correct :as_list typo to :as_lists in inspect examples ( #15464 )
...
Fixes occurrences where :as_list was used instead of :as_lists
for the :charlists option in List documentation and the getting
started guide.
2026-06-12 13:15:13 +02:00
José Valim
9f24a452f8
Provide bare and opt set operations ( #15433 )
2026-06-10 19:37:25 +02:00
Łukasz Samson
fcf47f34ab
Add missing required key to __info__(:struct) type ( #15453 )
2026-06-10 16:41:15 +02:00
José Valim
f8ffaf01b5
Document false positives, closes #15451
2026-06-10 09:27:32 +02:00
Alexander Gubarev
bb8480fc3c
Typo fixes ( #15447 )
2026-06-10 00:25:22 +02:00
José Valim
c64417d72f
Limit version numbers to 14 bytes
...
This avoids parsing too large integers.
CVE-2026-49762
GHSA-w2h8-8x3g-278p
2026-06-09 15:25:57 +02:00
José Valim
eacf0a9baf
Add docs about URI encoding/to_string
2026-06-09 14:20:41 +02:00
José Valim
eab32c2797
Cap width in strftime to 1024 characters
2026-06-09 13:25:55 +02:00
José Valim
65e6b08576
Tag lists member as returning boolean
2026-06-07 11:07:14 +02:00
Gary Rennie
9ee4bcf564
Add support for erlc_options and beam_debug_info chunk to support edb ( #15438 )
2026-06-07 10:53:57 +02:00
Łukasz Samson
8a8fbcf2b1
Add capture_arg to Code.Fragment.cursor_context spec ( #15441 )
2026-06-06 18:31:28 +02:00
Andrea Leopardi and José Valim
45fc548139
Add more docs to System.otp_release/0 ( #15440 )
...
Co-authored-by: José Valim <jose.valim@dashbit.co >
2026-06-06 13:45:16 +02:00
José Valim
9b65902446
Deal with empty canonical on doc generation
2026-06-05 15:08:18 +02:00
José Valim
b897da7b4c
require_file releases the file if compilation fails
2026-06-04 19:42:34 +02:00
José Valim
d44ad8142a
Do not discard metadata when proxying to elixir typespecs
2026-06-04 19:29:50 +02:00
aeturnumfluctus
7ff272706a
Remove pluralization in RuntimeError documentation ( #15435 )
2026-06-03 16:17:25 +02:00
José Valim
fa1ff52c39
Clarify registry docs, closes #15431
2026-06-02 10:28:15 +02:00
Raymond Loranger
55da97b9a3
Remove qualified call in IO.ANSI ( #15430 )
2026-06-01 21:49:25 +02:00
Jonatan Männchen
b5f1864d4e
Use package.hexdocs.pm URL format instead of hexdocs.pm/package ( #15429 )
2026-05-30 22:19:31 +02:00
José Valim
f781a02a24
Unify reverse_arrow/guard_context handling
2026-05-27 11:10:16 +02:00
Guillaume Duboc
91e622889d
Refine static predicate branches ( #15426 )
2026-05-27 10:48:55 +02:00
Jean Klingler
db6e80277d
Never suggest back invalid characters in tokenizer hint ( #15421 )
2026-05-27 10:23:12 +02:00
José Valim
23a431223b
Optimize Registry exact key matching
...
Assisted-by: ChatGPT-5.5/Codex for test case generation.
Closes #15418 .
2026-05-26 12:31:47 +02:00
Jean Klingler
571c108503
Inline in empty list in erlang pass ( #15413 )
2026-05-24 09:05:42 +09:00
Łukasz Samson
209b0b31ff
Fix typo in JSON.Encoder moduledoc ( #15416 )
2026-05-23 19:33:39 +09:00
Łukasz Samson
274dbb6e10
Fix trapped signal documentation ( #15415 )
...
`sigstop` is untrappable on POSIX
`erl_signal_handler` implementation confirms that `sigterm` is trapped
https://github.com/erlang/otp/blob/bf6adb8744a589c89eb79c8ae9c49ca348f325fd/lib/kernel/src/erl_signal_handler.erl#L39
2026-05-23 10:05:26 +02:00
José Valim
e17cb856a0
Avoid false positives on cascading warnings
...
Only emit warnings for missing exports in defined
modules to avoid false positives with modules from
the current project which may not have been defined
yet.
2026-05-22 10:41:13 +02:00
José Valim
32d5bf3f18
Improve tracking of g df within the type system
2026-05-22 10:14:30 +02:00
José Valim
c494891344
Avoid warnings when generating docs
2026-05-22 10:05:14 +02:00
José Valim
5337ab8716
Revert expansion of or/and in guards
...
This partially reverts aad63173 as it caused
massive AST to generate when expanding guards
with `expr in [...]` checks in them, as each
`or` became a full-blown case expression.
Alternative approaches will be explored in
future releases.
2026-05-22 09:51:09 +02:00
José Valim
8336f33263
Wrap quote in a function that will implement recursive types
...
Closes #15410 .
2026-05-22 09:51:09 +02:00
José Valim
b08f6fa3e2
Avoid redundant emptiness checks on list/tuple emptiness ( #15412 )
2026-05-22 09:08:19 +02:00
Kevin Schweikert
97abb54442
Colorize CLI error banner ( #15408 )
...
The script-crash path in Kernel.CLI.print_error/3 now renders the
exception banner (e.g. "** (ArgumentError) ...") in red when
IO.ANSI.enabled?/0 is true. The stacktrace stays plain.
Assisted-by: claude-code:claude-opus-4-7
2026-05-21 15:05:13 +02:00
José Valim
07e34342da
Deprecate Macro.Env.fetch_alias/2 and Macro.Env.fetch_macro_alias/2
2026-05-21 13:52:13 +02:00