Malt.jl: Running into world age problems

Hi there,

this naive usage of Malt.jl leads to “method too new to be called from this world contex”:

module GreatNewModule
f()="dummy"
end

In a separate project (after dev’ed GreatNewModule of course)

using GreatNewModule
using Malt

w = Malt.Worker()

Malt.remote_eval_wait(w, :(using Pkg; Pkg.activate(joinpath(@__DIR__)); using GreatNewModule))

Malt.remote_call_wait(GreatNewModule.f,w)

I receive from the last line:

ERROR: Remote exception from Malt.Worker on port 9608 with PID 2685608:

MethodError: no method matching f()
The applicable method may be too new: running in world age 31470, while current world is 31471.

Closest candidates are:
  f() (method too new to be called from this world context.)
   @ GreatNewModule XXX/GreatNewModule/src/GreatNewModule.jl:2

Please help.

Greetings
Para

You should be able to work around this with Base.invokelatest. Try:

Malt.remote_call_wait(Base.invokelastest, w, GreatNewModule.f)