代码之家  ›  专栏  ›  技术社区  ›  Flame_Phoenix

我们可以用哪种版本的透析器?

  •  -1
  • Flame_Phoenix  · 技术社区  · 6 年前

    背景

    最新版本的elixir(1.7.x)具有 bug that prevents the usage of dialyzer 16 .

    现在,我知道以前的一些版本没有这个问题,但我不知道是哪个版本。

    我试过什么

    我已经测试了以下版本:

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

    一切都不能正常工作。

    可以使用mwe复制错误:

    问题

    不受此bug影响的elixir-otp-erlang的最新版本是什么?

    2 回复  |  直到 6 年前
        1
  •  2
  •   Marcos Tapajós    6 年前

    我写了一个脚本(使用官方Docker图片)来测试 1.7 版本和所有版本都失败。

    最新版本似乎是 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)
    
        2
  •  0
  •   m3characters    6 年前

    我不确定您的其他设置是什么,但正如我前面提到的,它对我来说适用于以下各项:

    $ 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
    

    雨伞组合.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
    
    推荐文章