José Valim
8793c68822
Remove line breaks from deprecations table
2025-10-30 21:59:52 +01:00
Leslie and wolfgang
3827b73d2d
Fix struct update example in guide ( #14877 )
...
Co-authored-by: wolfgang <wolfgang.yin@gmail.com >
2025-10-30 22:53:07 +09:00
Jean Klingler
730fd0f824
Warn on deprecated ~~~ unary op in tokenizer ( #14870 )
2025-10-29 19:27:48 +09:00
Jean Klingler
297bc8302b
Fix dialyzer warning on IO.inspect :label ( #14865 )
2025-10-28 16:06:40 +09:00
José Valim
cc5837caa7
Pass signatures on the side instead of module map
2025-10-23 00:18:29 +02:00
José Valim
1738ed453f
Do not include signatures twice in beam files
2025-10-23 00:01:32 +02:00
José Valim
3e18aafa0a
Measure and optimize writing of .beam files in the compiler
...
This should provide meaningful benefits when working with
containers and network mounted drives.
2025-10-22 10:47:03 +02:00
José Valim
613f631487
Simplify always true and always false bdd nodes
2025-10-21 12:51:11 +02:00
José Valim
f08a84af10
Make bdd functions public to aid debugging
2025-10-21 12:40:29 +02:00
José Valim
83c68cecc1
Simplify computation of mismatched parts for error messages
...
Before we were doing:
common = intersection(actual, expected)
uncommon = difference(actual, common)
But the second clause is:
actual and not (actual and expected)
Which is literally the same as:
actual and not expected
But much faster as it avoids the large nesting of BDDs.
Closes #14836 .
2025-10-18 18:54:39 +02:00
José Valim
184b724483
More optimizations for differences
...
* when a1 < a2
* when a1 == a2 and c2 == bottom and d2 == bottom
* when a1 == a2 and u2 == bottom
2025-10-18 18:33:18 +02:00
José Valim
47fea9580a
Perform expensive operation once
2025-10-18 18:32:44 +02:00
José Valim
ec87c6b111
Improve protocol violation warnings
2025-10-18 18:32:28 +02:00
José Valim
0c595489b6
Improve protocol type error to list possible root causes
2025-10-18 18:32:22 +02:00
José Valim
baa25991fa
Do not escape dbg options, closes #14839
2025-10-17 22:15:22 +02:00
José Valim
177dc8ab59
Release v1.19.0
2025-10-16 08:52:04 +02:00
José Valim
dea8456022
Escape meta within existing quote extensions ( #14832 )
...
Closes #14829
Closes #14830
2025-10-14 13:05:44 +02:00
Eksperimental
f382affce3
Fix typos in v1.19 ( #14826 )
2025-10-09 08:48:14 +02:00
José Valim
36190985d2
Include a hint for defimpl type checking
2025-10-08 18:27:39 +02:00
José Valim
74fab3caf4
Update parallel compiler docs, closes #14821
2025-10-07 17:54:41 +02:00
Eksperimental
f1a6a4e019
Improve Kernel.ParallelCompiler warning ( #14820 )
2025-10-07 17:54:41 +02:00
Eksperimental
c7884ca393
Elixir v1.19 introduces a warning related to structs, ( #14818 )
...
hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of:
user = some_fun()
%User{user | name: "John Doe"}
it is enough to write:
%User{} = user = some_fun()
%{user | name: "John Doe"}
Since this could be seen by new-comers to the language, offering a better user experience by avoiding abbreviations. Favoring the usage of "some_function" instead of "some_fun"
2025-10-07 17:54:41 +02:00
José Valim
8c14d3a818
Add newline after inspection, closes #14819
2025-10-07 17:15:24 +02:00
José Valim
64f69cfee8
Improve error message when escaping default values with custom rules in structs, closes #14817
2025-10-07 14:26:11 +02:00
José Valim
7844c98fe7
Ensure escaping works within struct fields, closes #14817
2025-10-07 13:07:42 +02:00
Rafał Studnicki
e29c40a7e9
Add key-based partitioning to duplicate registries ( #14654 )
2025-10-06 19:02:01 +02:00
José Valim
9fc3708980
Fix optimizations for closed map checking ( #14813 )
2025-10-06 17:25:10 +02:00
Art Kay
195a4cf9f7
Optimize Access.filter to eliminate intermediate list creation ( #14749 )
2025-10-05 15:38:42 +02:00
José Valim
8daa2a6f67
Checkpoint before verification to avoid ignore modules warnings
2025-10-05 15:33:41 +02:00
José Valim
734d76a51b
Store bdd leaves in a unified and compact format ( #14807 )
2025-10-04 13:12:38 +02:00
José Valim
44fd817935
Use lazy bdd for all types ( #14806 )
...
We use Lazy BDDS: ternary trees (instead of binary) where the additional node
encodes a lazy union, as in "COVARIANCE AND CONTRAVARIANCE:
A FRESH LOOK AT AN OLD ISSUE", with some additional optimisations
for intersections and differences to avoid materialising unions.
2025-10-04 13:10:31 +02:00
José Valim
ce403643cd
Include previous clause line on default errors/warnings, closes #14804
2025-10-01 08:45:01 +02:00
José Valim
668c9a8f5d
Revert "Do not allow protocols to define structs nor exceptions, closes #14158 "
...
Projects rely on this feature, therefore we have to revert
to avoid breaking changes.
This reverts commit 01c82022f2 .
Closes #14803 .
2025-10-01 08:21:28 +02:00
Eksperimental
3175901d89
Align Regex dotall modifier to PCRE2 ( #14792 )
2025-09-30 16:48:03 +02:00
José Valim
a2baac915a
Address regressions on 'not in' operator
...
Closes #14783 .
2025-09-30 16:47:11 +02:00
José Valim
cb15a3dd4c
Convert line break error into a warning for v1.19
2025-09-29 09:26:15 +02:00
José Valim
a4f98b1177
Optimize DNFs to avoid negations when possible
2025-09-28 20:01:26 +02:00
Guillaume Duboc
5b2f9c9201
Rewrite maps, tuples, lists as BDDs and improve performance ( #14693 )
2025-09-28 19:05:30 +02:00
Jean Klingler
bfbd7658b3
Assert scope is not match/guard when using escaped regexes ( #14780 )
2025-09-27 23:02:05 +09:00
José Valim
1327c0c5c3
Improve docs for shift vs add
2025-09-22 10:42:54 +02:00
Jean Klingler
64c61df2bf
Warn on boot for OTP28.0 ( #14732 )
2025-09-18 19:10:12 +09:00
Jean Klingler
4363dffaf5
Fix Macro.escape/1 bug when :quote tuples is in the tail of a list ( #14775 )
...
Close https://github.com/elixir-lang/elixir/issues/14771
2025-09-17 07:15:52 +09:00
Jean Klingler
7be008c1b0
Bugfix: Macro.escape/1 properly escapes meta in :quote tuples ( #14773 )
...
Close #14771
Also internally renames the `op` field inside `elixir_quote`: `none -> escape`, `prune_metadata` -> `escape_and_prune`, `add_context -> quote`.
2025-09-16 18:37:16 +09:00
José Valim
b18cdb0f7a
Do not persist temporary compilation warnings, closes #14768
2025-09-14 10:45:01 +02:00
José Valim
62949b0728
Revert "Convert verification errors into diagnostics, closes #14768 "
...
This reverts commit 2dc3d2713c .
This solution will still leave a corrupted state if
verification is manually aborted.
2025-09-14 10:44:58 +02:00
José Valim
1f7ddd7acd
Convert verification errors into diagnostics, closes #14768
2025-09-13 20:07:44 +02:00
José Valim
7477c9326e
Expand on why we supervise, not how ( #14764 )
...
Closes #14763 .
2025-09-10 22:16:01 +02:00
Jean Klingler
c0e334df2a
Add missing :generated to Macro.escape_opts/0 type ( #14761 )
2025-09-10 20:14:26 +09:00
José Valim
fd9dbf8490
Update Unicode to version 17.0.0 ( #14760 )
...
This is an automated commit created by the Maintenance project
https://github.com/eksperimental/maintenance
Please read the release notes by visiting
<http://www.unicode.org/versions/Unicode17.0.0/ >.
2025-09-10 09:10:32 +02:00
Jean Klingler
7f45befed6
Have mix test fail if warnings and --warnings-as-errors ( #14756 )
2025-09-10 07:46:45 +09:00