sheharyarn / que

Simple Job Processing in Elixir with Mnesia :zap:

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.