-
Notifications
You must be signed in to change notification settings - Fork 3.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support Erlang 21 new features #6611
Comments
No way of doing that when building on OTP21 as it stands before it is required? |
We need to check the version because otherwise the data ends up in compile_info but in the wrong place (under options). |
I wonder about support for |
Could this error be related? rabbitmq/rabbitmq-server-boshrelease@0d23f39 We're hitting it on OTP 21.0-rc1 with RabbitMQ 3.7.4 which is using Elixir 1.6.0 |
Yes. Elixir does not support OTP 21 yet, some failures are expected. |
An additional thing is map iterators - many functions in the erlang's maps module accept either a map or a map iterator. Should we extend our Map module in the same way? |
@michalmuskala that's a good point. I think we can wait for some usage patterns to emerge before actually adding it to the language. |
Relevant discussion here: https://elixirforum.com/t/discussion-incorporating-erlang-otp-21-map-guards-in-elixir/14816 |
When I try to run Elixir from source,an error occured after running
Erlang/OTP version: |
@7ethan how have you installed Erlang? Also see this issue: #7794 (comment) |
oh,got it. |
Hey guys, Since Erlang 22.0 was released, how about closing this issue and moving tasks to #8414? |
@ekremkaraca we still support Erlang/OTP 20, so while we support it, we can't work on the pending tasks here. We will drop Erlang/OTP 20 once Elixir v1.10 is out (January 2020), then this issue can be addressed. |
With defguard is_member(map_set, value)
when :erlang.is_map_key(value, :erlang.map_get(:map, map_set)) Curious if there's any interest in that and/or a better implementation. |
Should it also check There's a possibility dialyzer will complain about this guard because we are accessing internal fields of an opaque type. |
Good point about checking |
Would the |
I did a test some time ago and unfortunately using iterators made a big performance difference - about 15%. The primary reason is that iterators are prepared for the erlang-style |
This is ready to be tackled. |
Rel elixir-lang#6611 Co-Authored-By: Eksperimental <[email protected]>
"Add is_struct/1" can be ticked off, and "and is_struct/2" crossed out. |
I would like to work on |
Sorry, I am almost done with is_map_key but I am calling it a night. :) I
will push it tomorrow morning.
--
*José Valimwww.plataformatec.com.br
<http://www.plataformatec.com.br/>Founder and Director of R&D*
|
Closed 🎉 |
To be implemented when Erlang 21 is released (part of v1.7):
handle_continue/2
gen_server callback__STACKTRACE__
variable incatch
andrescue
and Erlang's new try/catch clausesSystem.stacktrace
outside ofcatch
andrescue
To be implemented when we require Erlang 21 exclusively:
:logger
andLogger
metadata (done in Use Erlang's logger as main logging implementation #9333)get_env/put_env
(find_executable
andcmd
still need it)elixir_erl_try.erl
by removing old stacktrace logic and unifying all clauses into a single one withmap_get
is_struct/1
andis_struct/2
is_map_key/2
The text was updated successfully, but these errors were encountered: