-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
Compile Error: env.jl #8540
Comments
On a 32-bit x86 platform? If so, it's probably the same issue as #8535 . |
You might want to try the |
I made the change suggested by @JeffBezanson here which fixes the failure in
edit: this is on ARM. |
I think i fixed that one (https://github.com/JuliaLang/julia/compare/mn/itruncalypse), but there's plenty more waiting... |
Thanks @nolta. @staticfloat do you happen to have a 32-bit vm I could log in to? getting to the crash takes ~10-15 minutes on ARM. |
@ihnorton I have emailed you instructions on how to login and inspect what's going on. |
@ihnorton you can also do a i686-w64-mingw32 cross-compile and get the same errors |
@tkelman How to understand "try release-0.3"? Sorry, I am a newbie here. |
@ttsxfwsy if you just want to use Julia, rather than being on the bleeding edge where things occasionally break like this, you should probably use the stable |
@tkelman Thank you. It worked. |
I see the failure on ARM too. I think we should keep this open till we fix it on master as it is clearly failing on x86 32-bit as well as per the original report. |
@JeffBezanson it appears that hashing of ASCIIStrings is subtlly broken. I get an diff --git a/base/dict.jl b/base/dict.jl
index 5381a97..3599d87 100644
--- a/base/dict.jl
+++ b/base/dict.jl
@@ -495,7 +495,23 @@ function ht_keyindex2{K,V}(h::Dict{K,V}, key)
sz = length(h.keys)
iter = 0
maxprobe = max(16, sz>>6)
+ ccall(:jl_static_show, Void, (Ptr{Void}, Any),Intrinsics.pointerref(Intrinsics.cglobal(:jl_uv_stdout,Ptr{Void}),1), "key: ")
+ ccall(:jl_static_show, Void, (Ptr{Void}, Any),Intrinsics.pointerref(Intrinsics.cglobal(:jl_uv_stdout,Ptr{Void}),1), key )
+ ccall(:jl_static_show, Void, (Ptr{Void}, Any),Intrinsics.pointerref(Intrinsics.cglobal(:jl_uv_stdout,Ptr{Void}),1), ", " )
+ ccall(:jl_static_show, Void, (Ptr{Void}, Any),Intrinsics.pointerref(Intrinsics.cglobal(:jl_uv_stdout,Ptr{Void}),1), typeof(key) )
+ ccall(:jl_static_show, Void, (Ptr{Void}, Any),Intrinsics.pointerref(Intrinsics.cglobal(:jl_uv_stdout,Ptr{Void}),1), ", " )
+ ccall(:jl_static_show, Void, (Ptr{Void}, Any),Intrinsics.pointerref(Intrinsics.cglobal(:jl_uv_stdout,Ptr{Void}),1), sz )
+ ccall(:jl_static_show, Void, (Ptr{Void}, Any),Intrinsics.pointerref(Intrinsics.cglobal(:jl_uv_stdout,Ptr{Void}),1), "\n" )
+ z = object_id(key)
+ ccall(:jl_static_show, Void, (Ptr{Void}, Any),Intrinsics.pointerref(Intrinsics.cglobal(:jl_uv_stdout,Ptr{Void}),1), "object_id(key):
+ ccall(:jl_static_show, Void, (Ptr{Void}, Any),Intrinsics.pointerref(Intrinsics.cglobal(:jl_uv_stdout,Ptr{Void}),1), z)
+ ccall(:jl_static_show, Void, (Ptr{Void}, Any),Intrinsics.pointerref(Intrinsics.cglobal(:jl_uv_stdout,Ptr{Void}),1), "\n")
+ v = reinterpret(Int,hash(key))
+ ccall(:jl_static_show, Void, (Ptr{Void}, Any),Intrinsics.pointerref(Intrinsics.cglobal(:jl_uv_stdout,Ptr{Void}),1), "reinterpret: ")
+ ccall(:jl_static_show, Void, (Ptr{Void}, Any),Intrinsics.pointerref(Intrinsics.cglobal(:jl_uv_stdout,Ptr{Void}),1), v)
+ ccall(:jl_static_show, Void, (Ptr{Void}, Any),Intrinsics.pointerref(Intrinsics.cglobal(:jl_uv_stdout,Ptr{Void}),1), "\n")
index = hashindex(key, sz)
+ ccall(:jl_static_show, Void, (Ptr{Void}, Any),Intrinsics.pointerref(Intrinsics.cglobal(:jl_uv_stdout,Ptr{Void}),1), "finished successfully\n")
avail = 0
keys = h.keys which is annoying when the key you're looking at is terminal control codes. ;) The output of this monstrosity is gisted in (almost) full here, but the important bit is that this is the call that's freaking out:
The |
In string.jl:662 there's another one of those big constants: |
Is this related? JuliaCollections/DataStructures.jl#54 |
Thanks, I went ahead and found a bunch of other constants, I've got a PR open now, but we still have some bugs to work out. |
Appears to be fixed. |
Hi,
I met this problem compiling julia:
error during bootstrap: LoadError(at "sysimg.jl" line 98: LoadError(at "env.jl" line 133: InexactError()))
make[1]: *** [/root/julia/usr/lib/julia/sys0.o] Error 1
make: *** [release] Error 2
I have already tried "make clean" or "make cleanall", but they didn't work. I don't know how to fix this problem or how to skip that to finish the compling process.
The text was updated successfully, but these errors were encountered: