Which version of elixir-otp-erlang can we use with dialyzer?












-1















Background



The newest version of Elixir (1.7.X) has a bug that prevents the usage of dialyzer 16.



Now, I am aware that some previous versions were free from this problem, but I don’t know which ones.



What I tried



I have tested the following builds:



1.7.2-otp-21
1.7.3-otp-21
1.7.4-otp-21


All failed to work properly.



The bug can be reproduced with the MWE:




  • https://github.com/Fl4m3Ph03n1x/dialyxir-problem


Question



What is the latest version of elixir-otp-erlang that is not affected by this bug?










share|improve this question



























    -1















    Background



    The newest version of Elixir (1.7.X) has a bug that prevents the usage of dialyzer 16.



    Now, I am aware that some previous versions were free from this problem, but I don’t know which ones.



    What I tried



    I have tested the following builds:



    1.7.2-otp-21
    1.7.3-otp-21
    1.7.4-otp-21


    All failed to work properly.



    The bug can be reproduced with the MWE:




    • https://github.com/Fl4m3Ph03n1x/dialyxir-problem


    Question



    What is the latest version of elixir-otp-erlang that is not affected by this bug?










    share|improve this question

























      -1












      -1








      -1








      Background



      The newest version of Elixir (1.7.X) has a bug that prevents the usage of dialyzer 16.



      Now, I am aware that some previous versions were free from this problem, but I don’t know which ones.



      What I tried



      I have tested the following builds:



      1.7.2-otp-21
      1.7.3-otp-21
      1.7.4-otp-21


      All failed to work properly.



      The bug can be reproduced with the MWE:




      • https://github.com/Fl4m3Ph03n1x/dialyxir-problem


      Question



      What is the latest version of elixir-otp-erlang that is not affected by this bug?










      share|improve this question














      Background



      The newest version of Elixir (1.7.X) has a bug that prevents the usage of dialyzer 16.



      Now, I am aware that some previous versions were free from this problem, but I don’t know which ones.



      What I tried



      I have tested the following builds:



      1.7.2-otp-21
      1.7.3-otp-21
      1.7.4-otp-21


      All failed to work properly.



      The bug can be reproduced with the MWE:




      • https://github.com/Fl4m3Ph03n1x/dialyxir-problem


      Question



      What is the latest version of elixir-otp-erlang that is not affected by this bug?







      elixir otp dialyzer






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 22 '18 at 9:39









      Flame_PhoenixFlame_Phoenix

      6,0541778162




      6,0541778162
























          2 Answers
          2






          active

          oldest

          votes


















          2














          I wrote a script (using official docker images) to test against all 1.7 versions and all of them failed.



          The lasted version that works seems to be 1.6.6.



          root@0697cad23f07:/data# mix dialyzer
          Finding suitable PLTs
          Checking PLT...
          [:accept, :compiler, :crypto, :elixir, :kernel, :logger, :mime, :plug, :plug_crypto, :prometheus, :prometheus_ex, :prometheus_plugs, :stdlib]
          PLT is up to date!
          Starting Dialyzer
          [
          check_plt: false,
          init_plt: '/data/_build/dev/dialyxir_erlang-20.3.8.14_elixir-1.6.6_deps-dev.plt',
          files_rec: ['/data/_build/dev/lib/myapp/ebin'],
          warnings: [:unknown]
          ]
          Total errors: 0, Skipped: 0
          done in 0m2.83s
          done (passed successfully)





          share|improve this answer
























          • How interesting. Which erlang version did you compiled with? 1.6.6-otp-20 or 1.6.6-otp-21?

            – Flame_Phoenix
            Nov 22 '18 at 14:28











          • Elixir 1.6.6 (compiled with OTP 20) using this: github.com/c0b/docker-elixir/blob/…

            – Marcos Tapajós
            Nov 22 '18 at 15:16



















          0














          I'm not sure what is your other setup, but as I mentioned before, for me it works with the following:



          $ mix dialyzer
          Finding suitable PLTs
          Checking PLT...
          [:asn1, :bamboo, :bcrypt_elixir, :cache_server, :certifi, :compiler, :connection, :core, :cors_plug, :cowboy, :cowlib, :crypto, :database, :db_connection, :decimal, :ecto, :eex, :elixir, :elixir_make, :gettext, :hackney, :idna, :jason, :kernel, :logger, :metrics, :mime, :mimerl, :parse_trans, :phoenix, :phoenix_html, :phoenix_pubsub, :plug, :poison, :poolboy, :postgrex, :public_key, :ranch, :runtime_tools, :ssl, :ssl_verify_fun, :stdlib, :unicode_util_compat]
          PLT is up to date!
          Starting Dialyzer
          [
          check_plt: false,
          init_plt: '/______/code/aetherwars_umbrella/_build/dev/dialyxir_erlang-21.0_elixir-1.7.2_deps-dev.plt',
          files_rec: ['/______/code/aetherwars_umbrella/_build/dev/lib/web/ebin',
          '/______/code/aetherwars_umbrella/_build/dev/lib/cache_server/ebin',
          '/______/code/aetherwars_umbrella/_build/dev/lib/database/ebin',
          '/______/code/aetherwars_umbrella/_build/dev/lib/core/ebin'],
          warnings: [:unknown]
          ]
          Total errors: 70, Skipped: 0
          done in 2m2.05s


          Umbrella mix.exs:



          # ...
          def project do
          [
          apps_path: "apps",
          start_permanent: Mix.env() == :prod,
          deps: deps(),
          dialyzer: [plt_add_deps: :transitive],
          aliases: aliases()
          ]
          end

          #....

          defp deps do
          [
          {:dialyxir, "~> 1.0.0-rc.3", only: [:dev], runtime: false},
          {:benchee, "~> 0.11", only: :dev}
          ]
          end





          share|improve this answer























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53427886%2fwhich-version-of-elixir-otp-erlang-can-we-use-with-dialyzer%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            2














            I wrote a script (using official docker images) to test against all 1.7 versions and all of them failed.



            The lasted version that works seems to be 1.6.6.



            root@0697cad23f07:/data# mix dialyzer
            Finding suitable PLTs
            Checking PLT...
            [:accept, :compiler, :crypto, :elixir, :kernel, :logger, :mime, :plug, :plug_crypto, :prometheus, :prometheus_ex, :prometheus_plugs, :stdlib]
            PLT is up to date!
            Starting Dialyzer
            [
            check_plt: false,
            init_plt: '/data/_build/dev/dialyxir_erlang-20.3.8.14_elixir-1.6.6_deps-dev.plt',
            files_rec: ['/data/_build/dev/lib/myapp/ebin'],
            warnings: [:unknown]
            ]
            Total errors: 0, Skipped: 0
            done in 0m2.83s
            done (passed successfully)





            share|improve this answer
























            • How interesting. Which erlang version did you compiled with? 1.6.6-otp-20 or 1.6.6-otp-21?

              – Flame_Phoenix
              Nov 22 '18 at 14:28











            • Elixir 1.6.6 (compiled with OTP 20) using this: github.com/c0b/docker-elixir/blob/…

              – Marcos Tapajós
              Nov 22 '18 at 15:16
















            2














            I wrote a script (using official docker images) to test against all 1.7 versions and all of them failed.



            The lasted version that works seems to be 1.6.6.



            root@0697cad23f07:/data# mix dialyzer
            Finding suitable PLTs
            Checking PLT...
            [:accept, :compiler, :crypto, :elixir, :kernel, :logger, :mime, :plug, :plug_crypto, :prometheus, :prometheus_ex, :prometheus_plugs, :stdlib]
            PLT is up to date!
            Starting Dialyzer
            [
            check_plt: false,
            init_plt: '/data/_build/dev/dialyxir_erlang-20.3.8.14_elixir-1.6.6_deps-dev.plt',
            files_rec: ['/data/_build/dev/lib/myapp/ebin'],
            warnings: [:unknown]
            ]
            Total errors: 0, Skipped: 0
            done in 0m2.83s
            done (passed successfully)





            share|improve this answer
























            • How interesting. Which erlang version did you compiled with? 1.6.6-otp-20 or 1.6.6-otp-21?

              – Flame_Phoenix
              Nov 22 '18 at 14:28











            • Elixir 1.6.6 (compiled with OTP 20) using this: github.com/c0b/docker-elixir/blob/…

              – Marcos Tapajós
              Nov 22 '18 at 15:16














            2












            2








            2







            I wrote a script (using official docker images) to test against all 1.7 versions and all of them failed.



            The lasted version that works seems to be 1.6.6.



            root@0697cad23f07:/data# mix dialyzer
            Finding suitable PLTs
            Checking PLT...
            [:accept, :compiler, :crypto, :elixir, :kernel, :logger, :mime, :plug, :plug_crypto, :prometheus, :prometheus_ex, :prometheus_plugs, :stdlib]
            PLT is up to date!
            Starting Dialyzer
            [
            check_plt: false,
            init_plt: '/data/_build/dev/dialyxir_erlang-20.3.8.14_elixir-1.6.6_deps-dev.plt',
            files_rec: ['/data/_build/dev/lib/myapp/ebin'],
            warnings: [:unknown]
            ]
            Total errors: 0, Skipped: 0
            done in 0m2.83s
            done (passed successfully)





            share|improve this answer













            I wrote a script (using official docker images) to test against all 1.7 versions and all of them failed.



            The lasted version that works seems to be 1.6.6.



            root@0697cad23f07:/data# mix dialyzer
            Finding suitable PLTs
            Checking PLT...
            [:accept, :compiler, :crypto, :elixir, :kernel, :logger, :mime, :plug, :plug_crypto, :prometheus, :prometheus_ex, :prometheus_plugs, :stdlib]
            PLT is up to date!
            Starting Dialyzer
            [
            check_plt: false,
            init_plt: '/data/_build/dev/dialyxir_erlang-20.3.8.14_elixir-1.6.6_deps-dev.plt',
            files_rec: ['/data/_build/dev/lib/myapp/ebin'],
            warnings: [:unknown]
            ]
            Total errors: 0, Skipped: 0
            done in 0m2.83s
            done (passed successfully)






            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Nov 22 '18 at 12:09









            Marcos TapajósMarcos Tapajós

            1915




            1915













            • How interesting. Which erlang version did you compiled with? 1.6.6-otp-20 or 1.6.6-otp-21?

              – Flame_Phoenix
              Nov 22 '18 at 14:28











            • Elixir 1.6.6 (compiled with OTP 20) using this: github.com/c0b/docker-elixir/blob/…

              – Marcos Tapajós
              Nov 22 '18 at 15:16



















            • How interesting. Which erlang version did you compiled with? 1.6.6-otp-20 or 1.6.6-otp-21?

              – Flame_Phoenix
              Nov 22 '18 at 14:28











            • Elixir 1.6.6 (compiled with OTP 20) using this: github.com/c0b/docker-elixir/blob/…

              – Marcos Tapajós
              Nov 22 '18 at 15:16

















            How interesting. Which erlang version did you compiled with? 1.6.6-otp-20 or 1.6.6-otp-21?

            – Flame_Phoenix
            Nov 22 '18 at 14:28





            How interesting. Which erlang version did you compiled with? 1.6.6-otp-20 or 1.6.6-otp-21?

            – Flame_Phoenix
            Nov 22 '18 at 14:28













            Elixir 1.6.6 (compiled with OTP 20) using this: github.com/c0b/docker-elixir/blob/…

            – Marcos Tapajós
            Nov 22 '18 at 15:16





            Elixir 1.6.6 (compiled with OTP 20) using this: github.com/c0b/docker-elixir/blob/…

            – Marcos Tapajós
            Nov 22 '18 at 15:16













            0














            I'm not sure what is your other setup, but as I mentioned before, for me it works with the following:



            $ mix dialyzer
            Finding suitable PLTs
            Checking PLT...
            [:asn1, :bamboo, :bcrypt_elixir, :cache_server, :certifi, :compiler, :connection, :core, :cors_plug, :cowboy, :cowlib, :crypto, :database, :db_connection, :decimal, :ecto, :eex, :elixir, :elixir_make, :gettext, :hackney, :idna, :jason, :kernel, :logger, :metrics, :mime, :mimerl, :parse_trans, :phoenix, :phoenix_html, :phoenix_pubsub, :plug, :poison, :poolboy, :postgrex, :public_key, :ranch, :runtime_tools, :ssl, :ssl_verify_fun, :stdlib, :unicode_util_compat]
            PLT is up to date!
            Starting Dialyzer
            [
            check_plt: false,
            init_plt: '/______/code/aetherwars_umbrella/_build/dev/dialyxir_erlang-21.0_elixir-1.7.2_deps-dev.plt',
            files_rec: ['/______/code/aetherwars_umbrella/_build/dev/lib/web/ebin',
            '/______/code/aetherwars_umbrella/_build/dev/lib/cache_server/ebin',
            '/______/code/aetherwars_umbrella/_build/dev/lib/database/ebin',
            '/______/code/aetherwars_umbrella/_build/dev/lib/core/ebin'],
            warnings: [:unknown]
            ]
            Total errors: 70, Skipped: 0
            done in 2m2.05s


            Umbrella mix.exs:



            # ...
            def project do
            [
            apps_path: "apps",
            start_permanent: Mix.env() == :prod,
            deps: deps(),
            dialyzer: [plt_add_deps: :transitive],
            aliases: aliases()
            ]
            end

            #....

            defp deps do
            [
            {:dialyxir, "~> 1.0.0-rc.3", only: [:dev], runtime: false},
            {:benchee, "~> 0.11", only: :dev}
            ]
            end





            share|improve this answer




























              0














              I'm not sure what is your other setup, but as I mentioned before, for me it works with the following:



              $ mix dialyzer
              Finding suitable PLTs
              Checking PLT...
              [:asn1, :bamboo, :bcrypt_elixir, :cache_server, :certifi, :compiler, :connection, :core, :cors_plug, :cowboy, :cowlib, :crypto, :database, :db_connection, :decimal, :ecto, :eex, :elixir, :elixir_make, :gettext, :hackney, :idna, :jason, :kernel, :logger, :metrics, :mime, :mimerl, :parse_trans, :phoenix, :phoenix_html, :phoenix_pubsub, :plug, :poison, :poolboy, :postgrex, :public_key, :ranch, :runtime_tools, :ssl, :ssl_verify_fun, :stdlib, :unicode_util_compat]
              PLT is up to date!
              Starting Dialyzer
              [
              check_plt: false,
              init_plt: '/______/code/aetherwars_umbrella/_build/dev/dialyxir_erlang-21.0_elixir-1.7.2_deps-dev.plt',
              files_rec: ['/______/code/aetherwars_umbrella/_build/dev/lib/web/ebin',
              '/______/code/aetherwars_umbrella/_build/dev/lib/cache_server/ebin',
              '/______/code/aetherwars_umbrella/_build/dev/lib/database/ebin',
              '/______/code/aetherwars_umbrella/_build/dev/lib/core/ebin'],
              warnings: [:unknown]
              ]
              Total errors: 70, Skipped: 0
              done in 2m2.05s


              Umbrella mix.exs:



              # ...
              def project do
              [
              apps_path: "apps",
              start_permanent: Mix.env() == :prod,
              deps: deps(),
              dialyzer: [plt_add_deps: :transitive],
              aliases: aliases()
              ]
              end

              #....

              defp deps do
              [
              {:dialyxir, "~> 1.0.0-rc.3", only: [:dev], runtime: false},
              {:benchee, "~> 0.11", only: :dev}
              ]
              end





              share|improve this answer


























                0












                0








                0







                I'm not sure what is your other setup, but as I mentioned before, for me it works with the following:



                $ mix dialyzer
                Finding suitable PLTs
                Checking PLT...
                [:asn1, :bamboo, :bcrypt_elixir, :cache_server, :certifi, :compiler, :connection, :core, :cors_plug, :cowboy, :cowlib, :crypto, :database, :db_connection, :decimal, :ecto, :eex, :elixir, :elixir_make, :gettext, :hackney, :idna, :jason, :kernel, :logger, :metrics, :mime, :mimerl, :parse_trans, :phoenix, :phoenix_html, :phoenix_pubsub, :plug, :poison, :poolboy, :postgrex, :public_key, :ranch, :runtime_tools, :ssl, :ssl_verify_fun, :stdlib, :unicode_util_compat]
                PLT is up to date!
                Starting Dialyzer
                [
                check_plt: false,
                init_plt: '/______/code/aetherwars_umbrella/_build/dev/dialyxir_erlang-21.0_elixir-1.7.2_deps-dev.plt',
                files_rec: ['/______/code/aetherwars_umbrella/_build/dev/lib/web/ebin',
                '/______/code/aetherwars_umbrella/_build/dev/lib/cache_server/ebin',
                '/______/code/aetherwars_umbrella/_build/dev/lib/database/ebin',
                '/______/code/aetherwars_umbrella/_build/dev/lib/core/ebin'],
                warnings: [:unknown]
                ]
                Total errors: 70, Skipped: 0
                done in 2m2.05s


                Umbrella mix.exs:



                # ...
                def project do
                [
                apps_path: "apps",
                start_permanent: Mix.env() == :prod,
                deps: deps(),
                dialyzer: [plt_add_deps: :transitive],
                aliases: aliases()
                ]
                end

                #....

                defp deps do
                [
                {:dialyxir, "~> 1.0.0-rc.3", only: [:dev], runtime: false},
                {:benchee, "~> 0.11", only: :dev}
                ]
                end





                share|improve this answer













                I'm not sure what is your other setup, but as I mentioned before, for me it works with the following:



                $ mix dialyzer
                Finding suitable PLTs
                Checking PLT...
                [:asn1, :bamboo, :bcrypt_elixir, :cache_server, :certifi, :compiler, :connection, :core, :cors_plug, :cowboy, :cowlib, :crypto, :database, :db_connection, :decimal, :ecto, :eex, :elixir, :elixir_make, :gettext, :hackney, :idna, :jason, :kernel, :logger, :metrics, :mime, :mimerl, :parse_trans, :phoenix, :phoenix_html, :phoenix_pubsub, :plug, :poison, :poolboy, :postgrex, :public_key, :ranch, :runtime_tools, :ssl, :ssl_verify_fun, :stdlib, :unicode_util_compat]
                PLT is up to date!
                Starting Dialyzer
                [
                check_plt: false,
                init_plt: '/______/code/aetherwars_umbrella/_build/dev/dialyxir_erlang-21.0_elixir-1.7.2_deps-dev.plt',
                files_rec: ['/______/code/aetherwars_umbrella/_build/dev/lib/web/ebin',
                '/______/code/aetherwars_umbrella/_build/dev/lib/cache_server/ebin',
                '/______/code/aetherwars_umbrella/_build/dev/lib/database/ebin',
                '/______/code/aetherwars_umbrella/_build/dev/lib/core/ebin'],
                warnings: [:unknown]
                ]
                Total errors: 70, Skipped: 0
                done in 2m2.05s


                Umbrella mix.exs:



                # ...
                def project do
                [
                apps_path: "apps",
                start_permanent: Mix.env() == :prod,
                deps: deps(),
                dialyzer: [plt_add_deps: :transitive],
                aliases: aliases()
                ]
                end

                #....

                defp deps do
                [
                {:dialyxir, "~> 1.0.0-rc.3", only: [:dev], runtime: false},
                {:benchee, "~> 0.11", only: :dev}
                ]
                end






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 22 '18 at 17:18









                m3charactersm3characters

                1,6462815




                1,6462815






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53427886%2fwhich-version-of-elixir-otp-erlang-can-we-use-with-dialyzer%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Can a sorcerer learn a 5th-level spell early by creating spell slots using the Font of Magic feature?

                    ts Property 'filter' does not exist on type '{}'

                    mat-slide-toggle shouldn't change it's state when I click cancel in confirmation window