Elixir1.0.5 は Erlang18 に未対応ではなかった
というのを初めて知った。
きっかけは、dialyxir を使おうと思ったから。
dialyxir をインストールする時の必ずエラーが発生しインストールに失敗する。 エラーの内容は以下の通り。
Creating PLT /home/ymmtmsys/.dialyxir_core_18_1.0.5.plt ... ** (FunctionClauseError) no function clause matching in Keyword.get/3 (elixir) lib/keyword.ex:118: Keyword.get(:no_such_file, :files, nil) lib/mix/tasks/dialyzer.plt.ex:132: Mix.Tasks.Dialyzer.Plt.core_plt_contains?/2 lib/mix/tasks/dialyzer.plt.ex:123: anonymous fn/1 in Mix.Tasks.Dialyzer.Plt.missing_apps/0 (elixir) lib/enum.ex:662: anonymous fn/3 in Enum.filter/2 (elixir) lib/enum.ex:1261: Enum."-reduce/3-lists^foldl/2-0-"/3 (elixir) lib/enum.ex:662: Enum.filter/2 lib/mix/tasks/dialyzer.plt.ex:106: Mix.Tasks.Dialyzer.Plt.need_add?/0 lib/mix/tasks/dialyzer.plt.ex:57: Mix.Tasks.Dialyzer.Plt.run/1
:no_such_file
ということなのでファイルが存在していなくエラーになっているっぽいが。。。よくわからないのでググってみると
こんなissueを発見。そしてコメントに
と書かれているのを発見。
...あれ、今まで動いていたから気付いていなかったけど、まだ Erlang18 は対応してないっぽい。
Elixir の github を覗いてみると、確かにv1.2.0でErlan1 18.0に対応するようだ
とりあえず、自分の環境の Erlang のバージョンを下げよう。
追記 (2015/09/15)
インストールに失敗する原因は、Erlang のバージョンではなくメモリ不足によるものだった。 512Mのメモリを積んだVM上でインストールして失敗を繰り返していたたけれど、2Gに増やしたら成功した。 ちなみに1Gでは失敗した。
自分のPCは4GBしか積んでないので、VMに2Gも割けないのでインストールが終わったら通常の512Mに戻した。
追記 (2015/09/29)
https://github.com/elixir-lang/elixir/releases/tag/v1.0.5 を見るとErlang18.0 に対応したと書いてありました。