José Valim
0fac5d5f4a
Remove line breaks from deprecations table
2025-10-30 21:59:45 +01:00
Leslie and wolfgang
9a1c722737
Fix struct update example in guide ( #14877 )
...
Co-authored-by: wolfgang <wolfgang.yin@gmail.com >
2025-10-30 22:52:31 +09:00
Jean Klingler
aef3dcecd1
Warn on deprecated ~~~ unary op in tokenizer ( #14870 )
2025-10-29 19:23:31 +09:00
Raúl R Pearson
25771dd347
Remove duplicates in Keyword.get_and_update/3 ( #14868 )
...
This commit also tweaks some variable names so that get_and_update/3 and
get_and_update!/3 implementations match a bit closer.
2025-10-29 07:44:54 +01:00
Jean Klingler
bd3b2f6e00
Fix dialyzer warning on IO.inspect :label ( #14865 )
2025-10-28 16:06:08 +09:00
Jérémy Aubé
5bcfbd38be
Fix typo ( #14859 )
2025-10-24 20:42:02 +02:00
hictamenvivit
7a1dde6034
Fix typo on task-and-gen-tcp.md ( #14854 )
2025-10-24 07:50:15 +02:00
José Valim
260149951e
Configure search engines in latest ExDoc
2025-10-23 21:00:49 +02:00
José Valim
dc6647c0e9
Pass signatures on the side instead of module map
2025-10-23 00:18:14 +02:00
José Valim
d18088a3b4
Do not include signatures twice in beam files
2025-10-22 23:58:33 +02:00
José Valim
22b47d7f48
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:00 +02:00
José Valim
5d29d61890
Simplify always true and always false bdd nodes
2025-10-21 12:51:30 +02:00
José Valim
faa8d4722e
Make bdd functions public to aid debugging
2025-10-21 12:51:30 +02:00
Yinameah
809b035dcc
Fix typo in gen-tcp (Guide) ( #14845 )
2025-10-18 21:39:08 +02:00
José Valim
4e867b3775
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:49:58 +02:00
José Valim
3992ad4ade
Improve protocol violation warnings
2025-10-18 18:31:35 +02:00
José Valim
9cc24c9d92
Perform expensive operation once
2025-10-18 10:48:15 +02:00
José Valim
43aeded377
Do not escape dbg options, closes #14839
2025-10-17 22:15:14 +02:00
José Valim
d596853211
More optimizations for differences
...
* when a1 < a2
* when a1 == a2 and c2 == bottom and d2 == bottom
* when a1 == a2 and u2 == bottom
2025-10-16 23:49:25 +02:00
José Valim
640275b8ba
Improve protocol type error to list possible root causes
2025-10-16 23:49:25 +02:00
José Valim
f4aa384d1b
Escape meta within existing quote extensions ( #14832 )
...
Closes #14829
Closes #14830
2025-10-14 13:07:05 +02:00
Eksperimental
33467dad7b
Fix typos ( #14825 )
2025-10-09 04:51:26 +09:00
José Valim
a4bbb96d7a
Include a hint for defimpl type checking
2025-10-08 18:26:36 +02:00
José Valim
0f597b7327
Update parallel compiler docs, closes #14821
2025-10-07 17:54:00 +02:00
Eksperimental
d792fe55f7
Improve Kernel.ParallelCompiler warning ( #14820 )
2025-10-07 17:50:03 +02:00
José Valim
06ef46ceb5
Add newline after inspection, closes #14819
2025-10-07 17:15:39 +02:00
Eksperimental
da20a70810
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 15:59:08 +02:00
José Valim
e07f0117bd
Improve error message when escaping default values with custom rules in structs, closes #14817
2025-10-07 14:26:02 +02:00
José Valim
36b0a69d3c
Ensure escaping works within struct fields, closes #14817
2025-10-07 13:07:18 +02:00
Eksperimental
e7c121609e
Grammar correction: to warn of ( #14816 )
...
Use "to warn of something" instead of "to warn for something".
Some instances of "to warn on" and "to warn about" have been replaced.
2025-10-06 19:05:04 +02:00
Rafał Studnicki
fecb22116c
Add key-based partitioning to duplicate registries ( #14654 )
2025-10-06 18:58:03 +02:00
José Valim
e4d0a0d252
Fix optimizations for closed map checking ( #14813 )
2025-10-06 15:39:26 +02:00
Eksperimental
92a28606ac
Fix redundant warnings when implementing a callback of undefined behaviour ( #14814 )
2025-10-06 15:26:42 +02:00
José Valim
781d500246
Checkpoint before verification to avoid ignore modules warnings
2025-10-05 15:36:13 +02:00
José Valim
7afabc99cb
Store bdd leaves in a unified and compact format ( #14807 )
2025-10-04 13:12:15 +02:00
José Valim
20564ba6d9
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-02 19:30:35 +02:00
José Valim
184c7717f6
Include previous clause line on default errors/warnings, closes #14804
2025-10-01 08:43:16 +02:00
José Valim
2b57a97d0a
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:20:11 +02:00
Jean Klingler
16fb81545d
Optimize for comprehensions into: MapSet ( #14796 )
2025-09-29 18:15:50 +09:00
José Valim
3146daf162
Optimize DNFs to avoid negations when possible
2025-09-28 19:59:53 +02:00
Guillaume Duboc
5a2a5ae96c
Rewrite maps, tuples, lists as BDDs and improve performance ( #14693 )
2025-09-28 19:04:45 +02:00
José Valim
0685a35c63
Address regressions on 'not in' operator
...
Closes #14783 .
2025-09-28 17:03:32 +02:00
José Valim
bba5542393
Do not warn on conditional requires or requires from quote
2025-09-27 16:33:05 +02:00
Jean Klingler
c9b529a43c
Assert scope is not match/guard when using escaped regexes ( #14780 )
2025-09-27 22:57:50 +09:00
Eksperimental
81cd55beef
Align Regex dotall modifier to PCRE2 ( #14792 )
2025-09-26 09:41:55 +02:00
Thiago Santos
f089571351
Warn on unused require ( #14779 )
2025-09-23 09:38:06 +02:00
Zach Allaun
811767fa6c
Update JSON.Encoder moduledoc ( #14784 )
2025-09-22 21:15:48 +02:00
José Valim
20c7d07345
Improve docs for shift vs add
2025-09-22 10:42:44 +02:00
Jean Klingler
9a8794183e
Warn on boot for OTP28.0 ( #14732 )
2025-09-18 19:08:39 +09:00
Jean Klingler
514bc86a71
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:16 +09:00