Commit Graph
12080 Commits
Author SHA1 Message Date
José Valim 0fac5d5f4a Remove line breaks from deprecations table 2025-10-30 21:59:45 +01:00
Leslieandwolfgang 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