Enhancement
48 changes
Add Access.values/0 for traversing maps and keyword lists values
Add functions to verify if an encoding is valid, such as valid16?, valid64?, and so forth
Support 2-arity options for Calendar.strftime/3 which receives the whole data type
Add :migrate_call_parens_on_pipe formatter option
Add :indentation option to Code.string_to_quoted/2
Preserve more block content around cursor in container_cursor_to_quoted
Add :block_keyword_or_binary_operator to Code.Fragment for more precise suggestions after operators and closing terminators
Add Code.Fragment.lines/1
Provide more information on Enum.OutOfBoundsError
Allow optional: :all when deriving Inspect
Add optimistic/pessimistic groups as a simplified implementation of next_break_fits
Add ANSI codes to turn off conceal and crossed_out
Raise when U+2028 and U+2029 characters are present in comments and strings to avoid line spoofing attacks
Include the line for the previous clause in errors/warnings related to conflicts between defaults on function definitions
Support min/2 and max/2 as guards
Add each_long_verification_threshold which invokes a callback when type checking a module takes too long
Include lines in == Compilation error in file ... == slogans
Print debugging results from Macro.dbg/3 as they happen, instead of once at the end
Add __escape__/1 callback so structs can escape references and other runtime data types in Macro.escape/1
Do not automatically load modules after their compilation, guaranteeing a more consistent compile time experience and drastically improving compilation times
Support the :regex type
Enhance parsing error to display available options
Type checking of protocols dispatch and implementations
Add Regex.to_embed/2 which returns an embeddable representation of regex in another regex
Raise error message when regexes are used as default values in struct fields for compatibility with Erlang/OTP 28
Add key-based partitioning of duplicate registries
Add String.count/2 to count occurrences of a pattern
Update to Unicode 17.0.0
Set a process label for each test
Parallelize log dispatch when multiple processes are capturing log
Add :test_group to the test context
Support ellipsis in doctest exceptions to match the remaining of the exception
Add :inspect_opts option for doctest
Support multi-line prompts (due to this feature, :continuation_prompt and :alive_continuation_prompt are no longer supported as IEx configuration)
Functions annotated with @doc group: "Name" metadata will appear within their own groups in autocompletion
Accept any enumerable in Logger.metadata/1
Add support for MIX_PROFILE_FLAGS to configure MIX_PROFILE
Debug the compiler and type checker PID when MIX_DEBUG=1 and compilation/verification thresholds are met
Add Mix.Tasks.Compiler.reenable/1
Support MIX_OS_DEPS_COMPILE_PARTITION_COUNT for compiling deps concurrently across multiple operating system processes
Add mix help Mod, mix help :mod, mix help Mod.fun, mix help Mod.fun/arity, and mix help app:package
Add options to mix format to allow excluding of files
Add --name-pattern option to mix test
Allow to distinguish the exit status between warnings as errors and test failures
Add support for --format json
Emit a warning if --source is part of a cycle
Support the :compilers option
Add Mix.Task.Compiler.run/2