Commit Graph
1262 Commits
Author SHA1 Message Date
Alexander Gubarev a46b95b816 Fix IEx.h/1 macro spec introspection (#15863) 2026-09-07 08:26:05 +02:00
Alexander Gubarev 7223808989 Fix IEx incomplete codepoint autocomplete crash (#15864) 2026-09-07 08:25:50 +02:00
José Valim 3389f84059 Fix more warnings during test suite runs 2026-08-25 13:53:28 +02:00
Alexander Gubarev 138680489e Fix IEx.Helpers.h print spec for default arg function (#15692) 2026-07-28 13:23:40 +02:00
Alexander Gubarev a598106b23 Fix 'not in' as continuation operator in IEx (#15678) 2026-07-26 14:37:16 +02:00
Alexander Gubarev 4b4ac32b73 Remove stale :three_op operator from IEx.Evaluator (#15677) 2026-07-25 21:40:37 +02:00
Alexander Gubarev 8f63ee11b3 Fix IEx.configure_opts() typespec and add missing IEx.Server doc option (#15661) 2026-07-23 18:17:32 +02:00
Alexander Gubarev 92648c7eb2 Fix IEx.Helpers.process_info/1 heap and stack memory calculation (#15628) 2026-07-17 17:30:24 +02:00
Alexander Gubarev dae2bcb4bd Fix IEx.Helpers.r/1 fails reload modules defined in same file (#15627) 2026-07-17 16:22:34 +02:00
Alexander Gubarev 84f3ed66c9 Fix IEx.Helpers.i/1 doc example to actual shape (#15617) 2026-07-15 12:25:58 +02:00
Alexander Gubarev 7e9c89780c Fix IEx completion crash on maps with non-atom keys (#15612) 2026-07-14 21:55:56 +02:00
Alexander Gubarev 2429df6a6a Fix IEx missing evaluator continuation binary operator ** (#15608) 2026-07-14 13:00:14 +02:00
Alexander Gubarev e578a71b79 Fix IEx.Info.info/1 spec and update docs (#15600) 2026-07-13 00:32:29 +02:00
Alexander Gubarev ac8c3dd3ab Fix IEx.__break__!/3 fallback clause arity (#15595) 2026-07-12 12:32:08 +02:00
José Valim 6adff3fcc2 Fix cursor completion after operators
Treat trailing operator keywords as completion fragments
when they follow another operator.

Assisted-by: Codex:GPT-5

Closes #15591.
2026-07-11 16:52:00 +02:00
Jean Klingler 83e9b66e65 Add to_unsafe_atom/1 and soft-deprecate to_atom/1 (#15494) 2026-06-16 20:50:11 +09:00
Steffen Deusch 1cb62b731c Add trace helper to ExUnit.Assertions (#15432) 2026-06-08 14:17:55 +02:00
José Valim 64d381bd05 Avoid warnings when editor is not set 2026-05-14 21:55:35 +02:00
Łukasz Samson 68c413f76c Improve ambiguous import error message (#15335) 2026-05-06 12:22:34 +02:00
José Valim 8f40bf117a Add "mix source MODULE" to print or open a given module/function location (#15234) 2026-04-04 21:11:25 +02:00
José Valim 6f2e24ca63 Add source/1 to IEx 2026-04-04 19:55:26 +02:00
Jean Klingler 10902df940 More cleanup of older OTP versions (#15170)
* More cleanup since we require OTP 27

* Remove mentions to OTP25- in docs

* Use same versions in Getting Started as in Mix guide
2026-03-10 19:49:17 +09: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
José Valim 64a5c1742f Document why binary_part operation is safe 2026-03-08 23:46:17 +01:00
Daniel Kukula 2973af6c97 Filter modules during collection in IEx autocomplete (#15143)
Instead of collecting all modules as strings, sorting the full list, and
then linearly scanning for matching prefixes, filter modules during
collection and only sort the (much smaller) set of matches.

Benchmarked with 261 loaded modules, compared against the original code
(before the previous two optimizations) and the current code:

  match_modules("Elixir.Enum"):
    before PR:  333 µs, 13.6 KB heap
    current:     91 µs,  1.6 KB heap
    proposed:    30 µs,  0.5 KB heap  (11x faster, 26x less heap)

  match_modules("er"):
    before PR:  345 µs, 13.8 KB heap
    current:     97 µs,  2.9 KB heap
    proposed:    39 µs,  0.4 KB heap  (9x faster, 33x less heap)
2026-03-07 09:12:36 +01:00
Daniel Kukula 7d3863fcf6 Reduce memory usage in IEx autocomplete module listing (#15140)
Use :erlang.loaded/0 instead of :code.all_loaded/0 since we only need
module names, not file paths. The latter copies the full path for every
loaded module, which on production systems with many dependencies
caused significant memory spikes (measured 2.8MB -> 172KB on a real pod).

Also replace Enum.sort/1 |> Enum.dedup/1 with :lists.usort/1 and
avoid list allocations.
2026-03-06 19:20:41 +01:00
Michał Łępicki 6d5f43318c Allow specifying SEED when running tests (#15111)
this is helpful when reproducing flaky test failures
2026-02-25 09:12:15 +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 23633f7723 Use IEx.Broker.shell to find nodes instead of group leader, closes #15092 2026-02-18 12:15:22 +01:00
José Valim ac44e723ba Keep collecting buffer in IEx parser 2025-12-04 00:28:51 +01:00
José Valim 2ac361a4a4 Fix #iex:break as part of multi-line prompts, closes #14992 2025-12-04 00:07:26 +01:00
José Valim 504c680870 Fix IEx parser fetching on mix release 2025-10-16 08:46:24 +02:00
Zach Daniel f310ed9d82 Make errors when piping expressions in IEx safer (#14795) 2025-09-28 16:18:09 +02:00
Jesse Stimpson ff9608fc22 Improve docs on iex remote shell halt behaviour (#14721) 2025-08-22 15:31:51 +02:00
Jonatan Männchen 374f6e342a Update ORT Scanner (#14594) 2025-07-31 15:46:09 +02:00
Eksperimental 352f2723a9 Use backticks around literals in documentation (#14633) 2025-07-10 09:36:20 +02:00
Jean Klingler 57c254f725 Increase test coverage of IEx ls helper, handle edge case and make windows consistent (#14626) 2025-07-05 17:49:19 +09:00
Łukasz Samson 3e373e8a59 Handle filesystem errors in iex helpers (#14618)
`File.cd` and `File.ls` can return any posix error code
2025-07-03 10:24:19 +02:00
José Valim cf8689e498 Remove specs which are pass through and from private modules 2025-07-01 10:44:03 +02:00
Łukasz Samson e3f7759fde Replace keyword with concrete keyword lists in specs (#14611) 2025-06-30 17:24:28 +02:00
José Valim a5d2aa88f3 Deal with undefined on :shell.whereis/0 2025-06-26 13:48:55 +02:00
José Valim b188f4d33d Do not send quoted expressions to Macro.dbg 2025-06-26 13:38:14 +02:00
José Valim 3482e4e740 Fix pry on Erlang/OTP 28 2025-06-26 13:32:51 +02:00
José Valim 09dcbf7566 Introduce deprecations scheduled for Elixir v1.20 2025-06-07 21:55:06 +02:00
José Valim e87cc66041 Allow updated options to be returned from Inspect protocol (#14554) 2025-06-02 15:55:36 +02:00
José Valim 85e068e144 Do not read ~/.iex.exs in tests (#14553)
Closes #14514.
2025-06-02 10:11:38 +02:00
José Valim 99145c7ed4 Add Mix.Task.Compiler.run/2 2025-05-27 08:45:22 +02:00
José Valim a7703a9ee2 Use Keyword.get_lazy/3 2025-05-23 17:52:12 +02:00