-
Notifications
You must be signed in to change notification settings - Fork 188
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PyCall master trips LLVM assertion on precompile #269
Comments
Related to #254? Maybe this is related to my use of |
I'm finding this problem too. |
something wrong in the homebrew build of julia.
|
@zaburo-ch, good to know; I wonder what is wrong with Homebrew? |
@stevengj sorry... I couldn't find what is wrong. |
It's not something wrong with the Homebrew build, it's that Homebrew LLVM On Wed, May 18, 2016, 08:03 Kaizaburo Chubachi [email protected]
-E |
@staticfloat, thanks for the clarification. So there is a Julia problem that is being hidden by the lack of assertions? Or is there an incorrect assertion somewhere? |
I think there are many julia problems hidden by the lack of assertions. |
I see this too, with a self-compiled Julia-0.4.5 on Ubuntu-14.04 (built with |
Is there any temporary workaround for this issue? |
My current workaround is
;-) |
Thanks! This works for me. PyPlot was unusable after the update. |
Pinning is quickly getting out of hand, though - now I have to pin SymPy too, because the latest version needs a current PyCall, and the last version that works with PyCall 1.4.0 has a problem with Plots. Any new on this issue, @stevengj ? |
I'm unable to reproduce the problem. I just tried the Homebrew Julia 0.4.5 (on OSX 10.11.4) with the latest PyCall |
I also tried it with This is with |
Ah, I had forgotten about the |
Okay, I can reproduce the problem. |
Nothing to do with |
Seems to be a Julia bug. Here is a minimal module that exhibits the error: __precompile__()
module PyCall
type PyObject
o::Ptr{Void} # the actual PyObject*
end
PyNULL() = PyObject(C_NULL)
function jl_Function_call(self_::Ptr{Void}, args_::Ptr{Void}, kw_::Ptr{Void})
args = PyNULL()
try
return C_NULL
catch e
finally
args.o = C_NULL # don't decref
end
return C_NULL
end
precompile(jl_Function_call, (Ptr{Void},Ptr{Void},Ptr{Void}))
end # module PyCall |
Thanks for the quick analysis, @stevengj! |
As a workaround (until JuliaLang/julia/#16546 is fixed), it's sufficient to disable line 3155 in
Of course it just hides the underlying issue, but PyCall (and PyPlot, SymPy, etc. on top of it) work fine again so far. |
The easiest workaround seems like it would be to download the official Julia binaries for MacOS, rather than using the Homebrew build. If you want a command-line Julia in your path, you can just do
|
@stevengj true, however, I have the problem on Linux, too. I need to enable assertions because Cxx.jl doesn't work if they're disabled. |
Using the
Homebrew
build of Julia, which has LLVM assertions enabled by default, we get:The text was updated successfully, but these errors were encountered: