I need to work with someone else’s code repository and I have zero experience in Julia (although I know how to program). This code repository runs workflows on GitHub Actions, and one of the workflows that runs under Julia nightly version, fails with the following error:
WARNING: Method definition eval(Any) in module OpenInterfaces at /home/runner/work/open-interfaces/open-interfaces/lang_julia/package/src/OpenInterfaces.jl:1 overwritten at /home/runner/work/open-interfaces/open-interfaces/lang_julia/package/src/OpenInterfaces.jl:18.
ERROR: LoadError: Method overwriting is not permitted during Module precompile.
When I look at the module OpenInterfaces.jl
, the code looks like this (I left only relevant staff):
module OpenInterfaces
function eval(expression)
ret = @ccall "liboif_connector".oif_connector_eval_expression(expression::Cstring)::Cint
check_call(ret, "cannot eval $expression")
end
end
What I do not understand is that I do not see any rewrite of the function eval
in this module. The Julia manual on modules says that each module is a separate namespace, so it seems that there is no implicit override of this method from built-in Julia libraries. At the same time the warning implies that at line 1 of this module (at the very beginning) somehow the function eval
is already defined.
Could someone explain to me the issue and how to fix it? Thanks!