Commit Graph
196 Commits
Author SHA1 Message Date
José Valim f7f82b2c21 Support debugging the PID in slow compilation 2025-04-28 13:18:27 +02:00
José Valim 64a387da82 Load modules lazily and only if needed (#14453) 2025-04-28 12:45:25 +02:00
José Valim aca578bb88 Add a note about native code in mix releases, closes #14386 2025-04-01 18:49:54 +02:00
Jonatan Männchen 980500551c Inline Licence Info & Copyright for non-test files (#14256) 2025-02-07 21:11:09 +01:00
José Valim 591e97a49f Merge compile.protocols into compile.elixir (#14109) 2024-12-24 10:05:07 +01:00
José Valim f9f61bbb20 Do not recompile if compilation fails due to --warnings-as-errors 2024-12-23 18:25:42 +01:00
José Valim 098c01a7ee Introduce deprecations scheduled for v1.19 2024-12-11 11:59:36 +01:00
José Valim bb028b951f Always consider Elixir modules on inference (#14000) 2024-11-19 13:40:16 +01:00
José Valim 485ca72ae2 Infer types and use them across remote calls (#13981)
This also unifies handling of deterministic builds with Erlang/OTP
as well as warnings_as_errors.
2024-11-09 18:00:27 +01:00
José Valim 705407b61a Share profiling code in ParallelCompiler 2024-10-30 20:05:34 +01:00
André Albuquerque 63aa5703de Measure each_cycle callback + deadlock detection (#13941) 2024-10-30 19:45:32 +01:00
Steffen Deusch c28a4eb040 Add max_concurrency to Kernel.ParallelCompiler (#13634) 2024-06-04 16:04:15 +02:00
José Valim de74ea5d52 Remove duplicate purge compiler modules call 2024-02-15 17:24:11 +01:00
José Valim 04e2724591 Do not purge compiler modules during compilation, only after (#13346)
The compiler freezing is mostly caused by a bug upstream,
but it may be speed up compilation to avoid purging as
we compile, as purging blocks the code server.

A potential downside is higher memory usage during
compilation.

Closes #13264.
2024-02-15 12:48:53 +01:00
José Valim 0da0b2899e Ensure the compiler is notified immediately after async 2024-01-18 15:52:58 +01:00
José Valim e4a71032d5 Always log errors at the end 2024-01-17 23:14:20 +01:00
José Valim af2b21d67d Do not crash parallel compiler on external reports, closes #13224 2024-01-10 10:16:49 +01:00
José Valim 4a14c03135 Remove unecessary @doc false function 2023-12-31 18:04:18 +01:00
José Valim 3a52c2d729 Add source field to diagnostics 2023-12-21 17:05:47 +01:00
José Valim a818ee3dd0 Normalize exception handling in diagnostics 2023-12-17 11:41:02 +01:00
José Valim 4d712b25ea Normalize token missing and mismatched delimiter exceptions
Closes #13183.
Closes #13185.
Closes #13186.
Closes #13187.
2023-12-14 17:02:15 +01:00
José Valim ed2bbe5b37 Pass original exception down to details in diagnostic, closes #13142 2023-12-10 03:23:45 +11:00
Vinícius Müller 7e9006988d Add span field to diagnostics (#12843) 2023-09-03 21:14:51 +02:00
José Valim 22dcba75d2 Introduce Kernel.ParallelCompiler.pmap/2 (#12899) 2023-08-30 14:59:48 +02:00
sabiwara 4fc5b77c40 Code.with_diagnostics/2 formats paths as relative (#12590)
* Code.with_diagnostics/2 formats paths as relative

* Fix in :elixir_errors instead

* Fix it in parallel checker too
2023-05-25 20:07:09 +09:00
José Valim e9f305c56b Fix typespecs and code comments 2023-05-16 14:21:41 +02:00
José Valim a0f0f75ee8 Add Code.with_diagnostics/2, closes #12276 2023-05-16 11:52:59 +02:00
José Valim 6476355246 Keep stacktrace in diagnostics 2023-05-15 23:35:07 +02:00
José Valim 48e2efd2d9 Return diagnostics from Kernel.ParallelCompiler 2023-05-10 12:32:25 +02:00
John Bampton d6ba278b31 Fix some typos here and there (#12396) 2023-02-13 21:41:57 +01:00
José Valim 6b078a21fe Track compile and runtime warnings separately, closes #12372 2023-02-13 15:18:42 +01:00
Greg Mefford f8540ab193 Add details about waiting information in --profile time compiler output (#12310) 2023-01-04 23:31:21 +01:00
José Valim c6bce1b115 Precompile runtime module paths 2022-12-08 07:02:56 +01:00
José Valim 2b1efdea7a Revert "Ensure all runtime_modules loaded before mapping their paths (#12287)"
We don't want to load all modules because some may have specified
`@compile {:autoload, false}`.

This reverts commit 28e22d090c.
2022-12-08 06:39:31 +01:00
Alex NaserandAlex Naser 28e22d090c Ensure all runtime_modules loaded before mapping their paths (#12287)
Co-authored-by: Alex Naser <alex.naser@remote.com>
2022-12-05 20:45:41 +01:00
José Valim b24869687b Introduce mechanism to collect several errors in a module (#12275) 2022-11-28 15:40:30 +01:00
José Valim 4a20f87a71 Assert there are no files if waiting/spawn are empty 2022-11-06 20:41:11 +01:00
José Valim 5b4956fe5f Use the result mapping to track waiting processes 2022-08-19 12:38:01 +02:00
José Valim 5af48aaab8 Keep waiting in parallel compiler as a map for faster lookups 2022-08-19 11:26:15 +02:00
José Valim 4ce0376e76 Only consume DOWN messages dedicated to the parallel compiler, closes #12087 2022-08-19 09:49:03 +02:00
sabiwara 29bf449f3f Evaluate formating charlists as ~c sigils (#12064) 2022-08-10 06:47:00 +02:00
José Valim ed82538f9a Simplify passing of values to the checker 2022-07-12 12:55:48 +02:00
José Valim 5f0454d27d Start checker processes lazily 2022-07-12 12:13:04 +02:00
José Valim 390fab4495 Include column information on error diagnostics when possible, closes #11964 2022-07-05 22:49:53 +02:00
Łukasz Samson bd89d5fbbc Improve diagnostic and compile typespec (#11962) 2022-07-05 12:10:15 +02:00
Eksperimental 37d18271d3 Replace misspelt helper nillify with nilify (#11919) 2022-06-11 18:06:46 +02:00
sabiwara d509be1b6f Add line in diagnostic for invalid struct key (#11701) 2022-03-13 09:06:06 +01:00
José Valim 293a1ae27b Deprecate features pending for v1.14 2021-11-09 18:34:01 +01:00
Michał Łępicki f362c623cd Fix mistake in ParallelCompiler.require/2 spec (#11340) 2021-10-25 10:45:48 +02:00
José Valim 65ab34224f Include column in warnings emitted by compiler (#11339)
We also extend Mix.Tasks.Compiler.Diagnostic
to include {line, column} as possible position.
We also explicitly document the behaviour of
line=0, which is equivalent to unknown line.
Elixir was already setting the line to zero in
multiple occasions prior to this patch, so this
patch makes it official and we stop returning `nil`
for said cases.
2021-10-24 16:28:36 +02:00