elixir
elixir copied to clipboard
Support Erlang/OTP 26 new features
To be implemented and backported when Erlang 26 is released:
- [x] Support
custom_options: [sort_maps: true]for sorting maps - [x] Make the suite resilient to unordered maps
- [x] Give the new shell on Windows a try and ensure that ANSI detection works out of the box
- [x] Ensure history works
To be implemented when Erlang 26 is released:
- [x] Ensure we properly cache code paths
- [x] Support concurrent application boot
To be implemented when we require Erlang 26 exclusively:
- [ ] Support
minandmaxin guards - [ ] Support groups in autocomplete
- [ ]
:erlang.nodes/2 - [ ] Allow parallel binary matching (https://github.com/erlang/otp/pull/6415)
- [x] Remove WERL/--werl altogether (including release scripts)
- [ ] Remove setting of ansi_enabled from bin/ scripts
Please do not send PRs for those, as it will take a while until we can effectively accept them.
If you want to, you may want to check out the new possible return values from edlin_expand:expand/1,2 introduced in https://github.com/erlang/otp/pull/5924.
https://github.com/erlang/otp/blob/master/lib/stdlib/src/edlin_expand.erl#L41-L47
It allows the expand function to return structured data so that you can group completions. In Erlang we use it to make completions like this:
1> h<TAB> bifs halt( hd( commands h( hcb( help( history( ht( modules heart: http_chunk: http_request: http_response: http_transport: http_uri: http_util: httpc: httpc_cookie: httpc_handler: httpc_handler_sup: httpc_manager: httpc_profile_sup: httpc_request: httpc_response: httpc_sup: httpd: httpd_acceptor: httpd_acceptor_sup: httpd_cgi: httpd_conf: httpd_connection_sup: httpd_custom: httpd_custom_api: httpd_esi: httpd_example: httpd_file: httpd_instance_sup: httpd_log: httpd_logger: httpd_manager: httpd_misc_sup: httpd_request: httpd_request_handler: httpd_response: httpd_script_env: httpd_socket: httpd_sup: httpd_util:
and like this:
1> ssl:connect(<TAB>
typespecs
ssl:connect(Host, Port, TLSOptions)
ssl:connect(Host, Port, TLSOptions, Timeout)
ssl:host() :: {0..255, ...} {0..65535, ...}
string()
ssl:connect(TCPSocket, TLSOptions)
ssl:connect(TCPSocket, TLSOptions, Timeout)
ssl:socket() :: {'$inet', ...} port()
How about :erlang.nodes/2 added in https://github.com/erlang/otp/pull/6007 and released in OTP 25.1?
hello, I am finding an issue that maybe is something not yet implemented but in OTP 26 the follow code breaks
Mix.Task.get("phx.new").
I had a mix task that tries to detect if phoenix is installed by detecting the mix task above. All worked till OTP 26. but in OTP 26 it cannot find the code being loaded somehow. Any idea ? We are seeing that a lot with atom (to_existiing_atom failing in our code base and having to force loading the module before so the atom are available)
Hi @epinault, please use the ElixirForum or do a complete bug report, I don't want to sidetrack the existing issues.
done https://github.com/elixir-lang/elixir/issues/13116 (so if people find this they know where I moved the issue to)