Can't compile que on Erlang 20.2 and Elixir 1.6rc1
dmarko484 opened this issue · comments
Running on Windows: Erlang 20.2, Elixir 1.6rc1
... having compilation error see traceback below ... Any idea?
==> que
Compiling 12 files (.ex)
warning: Enum.partition/2 is deprecated, use Enum.split_with/2
lib/que/server_supervisor.ex:75
warning: variable "worker" does not exist and is being expanded to "worker()", please use parentheses to remove the ambiguity or change the variable name
lib/que/persistence/mnesia.ex:173
warning: variable "status" does not exist and is being expanded to "status()", please use parentheses to remove the ambiguity or change the variable name
lib/que/persistence/mnesia.ex:173
warning: variable "status" does not exist and is being expanded to "status()", please use parentheses to remove the ambiguity or change the variable name
lib/que/persistence/mnesia.ex:183
warning: variable "status" does not exist and is being expanded to "status()", please use parentheses to remove the ambiguity or change the variable name
lib/que/persistence/mnesia.ex:183
warning: variable "worker" does not exist and is being expanded to "worker()", please use parentheses to remove the ambiguity or change the variable name
lib/que/persistence/mnesia.ex:193
warning: variable "status" does not exist and is being expanded to "status()", please use parentheses to remove the ambiguity or change the variable name
lib/que/persistence/mnesia.ex:193
warning: variable "status" does not exist and is being expanded to "status()", please use parentheses to remove the ambiguity or change the variable name
lib/que/persistence/mnesia.ex:193
warning: variable "worker" does not exist and is being expanded to "worker()", please use parentheses to remove the ambiguity or change the variable name
lib/que/persistence/mnesia.ex:213
warning: variable "status" does not exist and is being expanded to "status()", please use parentheses to remove the ambiguity or change the variable name
lib/que/persistence/mnesia.ex:213
== Compilation error in file lib/que/persistence/mnesia.ex ==
** (CompileError) lib/que/persistence/mnesia.ex:173: undefined function status/0
(stdlib) lists.erl:1338: :lists.foreach/2
lib/que/persistence/mnesia.ex:131: (module)
could not compile dependency :que, "mix compile" failed. You can recompile this dependency with "mix deps.compile que", update it with "mix deps.update que" or clean it with "mix deps.clean que"
Just tried with Elixir1.5.3 and no problem here ... so its Elixir 1.6 compatibility issue
I'm also having issues compiling que
. Just tried it on the fresh release of 1.6.0
. Same errors as @dmarko484 above, this is on a Mac.
code/myproject on master [!] via 💧 v1.6.0 ➜ mix deps.compile que
==> que
Compiling 12 files (.ex)
warning: Enum.partition/2 is deprecated, use Enum.split_with/2
lib/que/server_supervisor.ex:75
warning: variable "worker" does not exist and is being expanded to "worker()", please use parentheses to remove the ambiguity or change the variable name
lib/que/persistence/mnesia.ex:173
warning: variable "status" does not exist and is being expanded to "status()", please use parentheses to remove the ambiguity or change the variable name
lib/que/persistence/mnesia.ex:173
warning: variable "status" does not exist and is being expanded to "status()", please use parentheses to remove the ambiguity or change the variable name
lib/que/persistence/mnesia.ex:183
warning: variable "status" does not exist and is being expanded to "status()", please use parentheses to remove the ambiguity or change the variable name
lib/que/persistence/mnesia.ex:183
warning: variable "worker" does not exist and is being expanded to "worker()", please use parentheses to remove the ambiguity or change the variable name
lib/que/persistence/mnesia.ex:193
warning: variable "status" does not exist and is being expanded to "status()", please use parentheses to remove the ambiguity or change the variable name
lib/que/persistence/mnesia.ex:193
warning: variable "status" does not exist and is being expanded to "status()", please use parentheses to remove the ambiguity or change the variable name
lib/que/persistence/mnesia.ex:193
warning: variable "worker" does not exist and is being expanded to "worker()", please use parentheses to remove the ambiguity or change the variable name
lib/que/persistence/mnesia.ex:213
warning: variable "status" does not exist and is being expanded to "status()", please use parentheses to remove the ambiguity or change the variable name
lib/que/persistence/mnesia.ex:213
== Compilation error in file lib/que/persistence/mnesia.ex ==
** (CompileError) lib/que/persistence/mnesia.ex:173: undefined function status/0
(stdlib) lists.erl:1338: :lists.foreach/2
lib/que/persistence/mnesia.ex:131: (module)
could not compile dependency :que, "mix compile" failed. You can recompile this dependency with "mix deps.compile que", update it with "mix deps.update que" or clean it with "mix deps.clean que"
Thank you @dmarko484 and @brandonparsons for reporting this issue!
This is indeed a critical bug, and have traced the issue back to the query implementation in the Amnesia
library (which I believe, uses the Exquisite
project). I have also opened an issue on the project's Github with details on how to reproduce it, and am waiting for a response from the author (@meh).
If you need a temporary workaround for Que, have a look at my fork, and the changes I did to get Que to work again on 1.6. https://github.com/AlloyCI/que/commit/593dc65c3405c0f5381a091ce2703c3401618485
Any updates on this one?
Published new release with fixes for Elixir 1.6
.
I'm in the process of completely phasing Exquisite
out of the project since it has created more problems than it has solved, but Amnesia's dependence on it is another issue. Next release for Elixir 1.7 might not depend on either.