Commit Graph
2684 Commits
Author SHA1 Message Date
Łukasz Samson 007efde2d5 Fix reentrancy of Code.eval_* (#15306)
Keep env and dbg callbacks on stacks in process dict

Closes #15303
2026-04-28 19:38:28 +02:00
José Valim e5d8b00e5b Remove maps:put/3 inlining, as it is done by the Erlang compiler, closes #15313 2026-04-27 12:03:24 +02:00
Łukasz Samson 76d3fbad88 Disallow raw CR line ending in strings, comments and after ? (#15307) 2026-04-26 09:32:12 +02:00
Łukasz Samson 4ad7497d0e Consistently validate column option passed to parser (#15295)
Apply the same guard `line` option uses
2026-04-21 13:41:04 +02:00
Łukasz Samson 5e44c78fff Fix compiler crash on invalid nested bitstring (#15280) 2026-04-16 15:32:48 +02:00
Lukasz Samson 4d56bdd898 Do not reset quote level on calls in has_unquotes/2
The bug was introduced in 146fb4e3ff

Signed-off-by: José Valim <jose.valim@gmail.com>
2026-04-16 13:49:37 +02:00
José Valim 2e9981d98c Raise when splicing cons without head, closes #15282 2026-04-16 13:48:08 +02:00
José Valim 370e7db14a Ensure compiler modules are returned on failures, closes #15279 2026-04-16 08:26:16 +02:00
Łukasz Samson 5a1fa351dc Fix invalid module reference in prune_stacktrace (#15272)
Closes #15271
2026-04-15 08:59:08 +02:00
Łukasz Samson b7a832ea32 Add missing catch-all in :elixir_import.is_sigil/1 (#15264)
Fixes a compiler crash when importing a module with
only: :sigils option when the imported module exports
non sigil symbols with `sigil_` prefix.

Closes #15263.
2026-04-13 20:25:33 +02:00
José Valim 8011552eac Remove ?break handling duplication 2026-04-13 19:42:28 +02:00
Łukasz Samson 898f1a2f69 Reject unsupported newlines in tokenizer ASCII fast path (#15262) 2026-04-13 19:30:31 +02:00
José Valim 603602e67b Implement reverse arrows for case (#15260) 2026-04-13 15:21:08 +02:00
José Valim 245066b405 Relax handling of __exception__
We were used to assert it to be true but,
given the value is not used in any shape,
we can relax the definition and simply assert
on the presence of the key.

Closes #15251.
2026-04-11 17:42:01 +02:00
José Valim 4d30464ec4 Avoid conflicts between internal vars and empty vars, closes #15246 2026-04-11 17:25:12 +02:00
José Valim 8fdef5c48f Properly track variables inside comprehensions size, closes #15247 2026-04-11 12:24:44 +02:00
Lukasz Samson 5d794ab17c Pass correct bitstring meta during expansion
Closes #15244
2026-04-08 18:42:12 +02:00
José Valim 2916f20189 Keep warnings on map/remote dispatch with/without parens
Closes #15219.
2026-03-30 10:27:58 +02:00
Jean Klingler a58a40ce48 Purge and delete modules if after_verify/2 callback fails (#15220) 2026-03-26 20:08:02 +09:00
José Valim a9ce579829 Revert structs into export time dependencies 2026-03-23 12:52:50 +01:00
José Valim 7945446cb4 Allow preserving sigil metadata in container cursor to quoted
Closes #14243.
2026-03-13 20:03:34 +01:00
José Valim 5bad452d0a Show undefined function errors even on variable failure, closes #13465 2026-03-13 17:07:37 +01:00
Jonatan Kłosko 7967ff985b Add :dbg_callback option to Code eval functions (#15189) 2026-03-13 08:13:01 +01:00
Gonzalo R 4021272d42 Fix missing space typo in compiler error message (#15186) 2026-03-12 21:45:00 +01:00
José Valim f9310524b1 Revert "Fix unnecessary recompilation when dbg_callback is modified at runtime (#15007)" (#15185)
This reverts commit c80a3b1a0e.
2026-03-12 12:50:48 +01:00
José Valim 382b5b06de Convert domains to also use orddict 2026-03-10 08:17:00 +01:00
Jean Klingler 2c54f9a64a More cleanup: remove compatibility code for OTP26- (#15166)
* Remove compatibility code for OTP26-

* Remove support for application/erlang+html docs v1

* Remove workaround for bug in older OTP versions

* Update OTP version checks

* Remove OTP25- skipping in tests

* More test cleanup
2026-03-10 16:12:36 +09:00
Jean Klingler 2817a70680 Remove mentions to OTP27+ versions from docs, comments and tests (#15165)
* Remove mentions of "since OTP27+"

* Remove test code for OTP26-
2026-03-10 15:39:03 +09:00
Jean Klingler 13024f43c0 Remove OTP26 support and add OTP29-rc (#15164)
* Update OTP compatibility table

* Add OTP 29.0 rc to CI, remove 26.0

* Remove :elxiir_json polyfill

* Remove :elixir_utils.jaro_similarity polyfill

* defdelegate directly to :proc_lib.set_label/2
2026-03-10 15:10:19 +09:00
José Valim 9a663cf3fa Convert map fields into an orddict and implement meet optimizations (#15142)
Related to #15129.
2026-03-06 21:57:55 +01:00
José Valim 77e6687eef Handle Kernel.in/2 in type system instead of using rewrite rules, closes #15130 2026-03-05 08:48:03 +01:00
José Valim f7c4047d30 Keep old functions around so old artifacts still work as expected 2026-03-03 13:37:27 +01:00
José Valim 6e6ed6a3b5 Only return purgeable modules back to pool 2026-03-03 13:35:09 +01:00
José Valim b792fb41c5 Clarify error message for always failing private function, closes #14401 2026-02-27 15:16:02 +01:00
José Valim 4c203429d6 Include maybe feature 2026-02-23 14:27:56 +01:00
José Valim a0ef7f0c3e Move struct validation in patterns and updates to type checker
This means changing a struct definition only cases
recompilation when structs are created, no longer on
matches and updates.

Closes #15098.
2026-02-23 14:24:29 +01:00
José Valim 34a50002f9 Keep Kernel.in/2 as :lists.member/2 and optimize in type checker and Erlang pass 2026-02-23 14:24:29 +01:00
José Valim b05fec0c87 Use evaluation when compiling modules (#15087) 2026-02-19 18:11:28 +01:00
José Valim 85b1ad0764 Do not emit warnings during IEx parsing
Closes #15090.

Unfortunately, I could not write a test for this as the error
only happens when using actual I/O devices. When using the mock
device we use in tests, the warning appears as expected.
2026-02-18 13:45:56 +01:00
José Valim 5abcc33267 Improve error message and docs for headless clauses, closes #15104 2026-02-18 09:54:04 +01:00
José Valim 3fbe977035 Validate Macro.Env struct upfront to avoid failures deep within the compiler, closes #15088 2026-02-01 20:49:59 +01:00
José Valim c40c140e3f Postpone deletion of modules to avoid code server bottleneck 2026-01-31 13:56:15 +01:00
José Valim 8def030f38 Use type warning instead of typing violation, closes #15065 2026-01-16 08:37:04 +01:00
José Valim bfa154e70b Consider subtyping on bitstring segments 2026-01-10 19:12:19 +01:00
José Valim 2a2be0acde Track alias defined through require usage, closes #14789 2026-01-09 12:34:55 +01:00
José Valim 4ee0241a5e Represent bitstring and binary as distinct types (#15038) 2026-01-07 12:00:25 +01:00
José Valim f1bbb2cd32 Infer types from guards and do post-inference on stdlib (#15032)
We now infer types from guards although we don't
yet infer conditional types (such as on `or`).
2026-01-02 19:48:45 +01:00
José Valim 19c628ae23 Mark invididual guards of ||, &&, if, and unless as generated 2025-12-30 12:00:11 +01:00
Dave Lucia 8d8111af07 Convert (most) links to https (#15028) 2025-12-30 09:21:23 +01:00
José Valim b60e424204 Typecheck Map.from_struct/1 2025-12-12 13:29:37 +01:00