-
-
Notifications
You must be signed in to change notification settings - Fork 142
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
Partial failure to handle Elixir 1.15-dev. Omens of incompatibility! #478
Comments
I can recreate it with asdf on If you launch Elixir 14: iex(8)> :prettypr.text('hi')
{:text, [2, 104, 105]} Elixir main-otp25: iex(2)> :prettypr.text('hi')
** (UndefinedFunctionError) function :prettypr.text/1 is undefined (module :prettypr is not available)
:prettypr.text(~c"hi") |
It's a bit peculiar, as in
|
FWIW, I'm trying to manually build up some PLTs and run dialyzer afterwards in this set up. |
@cognivore We needed to add some dependencies to extra_applications. can you try with dialyxir |
Will do!
…On Mon, Feb 27, 2023 at 3:08 PM Jeremy Huffman ***@***.***> wrote:
@cognivore <https://github.com/cognivore> We needed to add some
dependencies to extra_applications. can you try with dialyxir master now?
—
Reply to this email directly, view it on GitHub
<#478 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/APY6WRVVYFKLXOZEZBHJVFLWZS7PRANCNFSM6AAAAAAVIPLTSU>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
@jeremyjh you fixed it so quickly! It's so much appreciated. It indeed works with the latest commit in upstream! Thank you! P.S. I've confirmed that this works on real projects too. I think this can be closed. |
Elixir versions >= 1.15 seem to be unable to find the :prettypr module, causing errors like the following: ``` Finding applications for dialyxir_erlang-25.3.2.10.plt Finding modules for dialyxir_erlang-25.3.2.10.plt Creating dialyxir_erlang-25.3.2.10.plt :dialyzer.run error: Analysis failed with error: Looking up modules in dialyxir_erlang-25.3.2.10.plt {undef,[{prettypr,text,["'undefined'"],[]}, {cerl_prettypr,lay_ann,2,[{file,"cerl_prettypr.erl"},{line,401}]}, {cerl_prettypr,format,2,[{file,"cerl_prettypr.erl"},{line,261}]}, {dialyzer_dataflow,signal_guard_failure,5, [{file,"dialyzer_dataflow.erl"},{line,2478}]}, {dialyzer_dataflow,bind_guard,5, [{file,"dialyzer_dataflow.erl"},{line,1811}]}, {dialyzer_dataflow,handle_guard_and,5, [{file,"dialyzer_dataflow.erl"},{line,2254}]}, {dialyzer_dataflow,bind_guard,3, [{file,"dialyzer_dataflow.erl"},{line,1712}]}, {dialyzer_dataflow,do_clause,7, [{file,"dialyzer_dataflow.erl"},{line,1268}]}]} ``` See: jeremyjh/dialyxir#478
Elixir versions >= 1.15 seem to be unable to find the :prettypr module, causing errors like the following: ``` Finding applications for dialyxir_erlang-25.3.2.10.plt Finding modules for dialyxir_erlang-25.3.2.10.plt Creating dialyxir_erlang-25.3.2.10.plt :dialyzer.run error: Analysis failed with error: Looking up modules in dialyxir_erlang-25.3.2.10.plt {undef,[{prettypr,text,["'undefined'"],[]}, {cerl_prettypr,lay_ann,2,[{file,"cerl_prettypr.erl"},{line,401}]}, {cerl_prettypr,format,2,[{file,"cerl_prettypr.erl"},{line,261}]}, {dialyzer_dataflow,signal_guard_failure,5, [{file,"dialyzer_dataflow.erl"},{line,2478}]}, {dialyzer_dataflow,bind_guard,5, [{file,"dialyzer_dataflow.erl"},{line,1811}]}, {dialyzer_dataflow,handle_guard_and,5, [{file,"dialyzer_dataflow.erl"},{line,2254}]}, {dialyzer_dataflow,bind_guard,3, [{file,"dialyzer_dataflow.erl"},{line,1712}]}, {dialyzer_dataflow,do_clause,7, [{file,"dialyzer_dataflow.erl"},{line,1268}]}]} ``` See: jeremyjh/dialyxir#478
Precheck
Environment
Installed into the system with
nix
from this commit.Current behavior
Dialyzer works but it displays a huge wall of errors while building PLTs / being ran the first time.
They are of three problems types:
prettyptr
not foundEnum.reduce/3
is not a function andString.t/0
is not a type (it means that Elixir wasn't dialyzed?!)As you see even the first time in this particular project, dialyzer run happens, later on it's business as usual:
In another project, however, it won't run at all:
Expected behavior
It's expected that dialyxir either crashes catastrofically on both projects, signaling incompatibility with 1.15-dev, or works correctly, returning the results.
The text was updated successfully, but these errors were encountered: