Re: [julia-users] Re: Error precompiling on Windows 64 (julia 0.4.0 and 0.4.6)
You're probably thinking of linux sonames with dots. Windows doesn't have that, the dash in the name is a libtool convention for the best approximation you can get to allowing multiple versions of the library to be installed side by side, and different applications to link to different versions. The linker doesn't know about this convention on Windows, it's usually handled by libtool with associated .la or .dll.a files.
Re: [julia-users] Re: Error precompiling on Windows 64 (julia 0.4.0 and 0.4.6)
Well, I thought that when you link against libgmp normally, it doesn't care that the filename is libgmp-16.dll. I thought the linker just took care of it for you, So I was surprised by this behaviour. I might just be confused though. On Friday, 22 July 2016 22:30:50 UTC+2, Tony Kelman wrote: > > Fragile how? The -16 is part of the library name.
Re: [julia-users] Re: Error precompiling on Windows 64 (julia 0.4.0 and 0.4.6)
Fragile how? The -16 is part of the library name.
Re: [julia-users] Re: Error precompiling on Windows 64 (julia 0.4.0 and 0.4.6)
I found the issue. The dll is called libgmp-16.dll. But Julia expects the full name of the dll to be provided, i.e. libgmp-16, not just libgmp. This seems a bit fragile to me. Bill.
Re: [julia-users] Re: Error precompiling on Windows 64 (julia 0.4.0 and 0.4.6)
The errors are precisely the same if I invoke Julia with --inline=no. Bill. On 22 July 2016 at 20:25, Bill Hart wrote: > What's totally bizarre about this, apart from the lack of traceback > information, is that this is precisely the same as the code used in Julia > itself in gmp.jl. > > Bill. > > On 22 July 2016 at 20:09, 'Bill Hart' via julia-users < > julia-users@googlegroups.com> wrote: > >> I've narrowed it down to an issue in the following snippet of code which >> is in __init__ in our package: >> >>ccall((:__gmp_set_memory_functions, libgmp), Void, >> (Ptr{Void},Ptr{Void},Ptr{Void}), >> cglobal(:jl_gc_counted_malloc), >> cglobal(:jl_gc_counted_realloc_with_old_size), >> cglobal(:jl_gc_counted_free)) >> >> Can anyone see what could possibly be wrong with this? It works just fine >> on Linux, but not Windows 64. >> >> Note, we define libgmp as follows (which I am sure is correct): >> >> const pkgdir = realpath(joinpath(dirname(@__FILE__), "..")) >> const libdir = joinpath(pkgdir, "local", "lib") >> const libgmp = joinpath(pkgdir, "local", "lib", "libgmp") >> >> Bill. >> > >
Re: [julia-users] Re: Error precompiling on Windows 64 (julia 0.4.0 and 0.4.6)
What's totally bizarre about this, apart from the lack of traceback information, is that this is precisely the same as the code used in Julia itself in gmp.jl. Bill. On 22 July 2016 at 20:09, 'Bill Hart' via julia-users < julia-users@googlegroups.com> wrote: > I've narrowed it down to an issue in the following snippet of code which > is in __init__ in our package: > >ccall((:__gmp_set_memory_functions, libgmp), Void, > (Ptr{Void},Ptr{Void},Ptr{Void}), > cglobal(:jl_gc_counted_malloc), > cglobal(:jl_gc_counted_realloc_with_old_size), > cglobal(:jl_gc_counted_free)) > > Can anyone see what could possibly be wrong with this? It works just fine > on Linux, but not Windows 64. > > Note, we define libgmp as follows (which I am sure is correct): > > const pkgdir = realpath(joinpath(dirname(@__FILE__), "..")) > const libdir = joinpath(pkgdir, "local", "lib") > const libgmp = joinpath(pkgdir, "local", "lib", "libgmp") > > Bill. >
[julia-users] Re: Error precompiling on Windows 64 (julia 0.4.0 and 0.4.6)
I've narrowed it down to an issue in the following snippet of code which is in __init__ in our package: ccall((:__gmp_set_memory_functions, libgmp), Void, (Ptr{Void},Ptr{Void},Ptr{Void}), cglobal(:jl_gc_counted_malloc), cglobal(:jl_gc_counted_realloc_with_old_size), cglobal(:jl_gc_counted_free)) Can anyone see what could possibly be wrong with this? It works just fine on Linux, but not Windows 64. Note, we define libgmp as follows (which I am sure is correct): const pkgdir = realpath(joinpath(dirname(@__FILE__), "..")) const libdir = joinpath(pkgdir, "local", "lib") const libgmp = joinpath(pkgdir, "local", "lib", "libgmp") Bill.
[julia-users] Re: Error precompiling on Windows 64 (julia 0.4.0 and 0.4.6)
I think there is a access violation occurring in one of the dlls we are loading in __init__. However, these are precisely the same dlls we used in the old version of Nemo, so I'm quite puzzled how they are causing an access violation just because we are using a later version of Nemo. I'll have to check all the julia code we use to load the dlls and see what we changed. I know that we are setting some memory functions now that we didn't use to set, so Julia can do counted_malloc. This is a real head scratcher, because I can't think of a plausible explanation for the problem. If I remove all the code to set the memory functions except the one to set the GMP memory functions, it complains that it can't find the GMP dll. That's despite the fact that we use this dll without problems in the old version of Nemo. Bill.
[julia-users] Re: Error precompiling on Windows 64 (julia 0.4.0 and 0.4.6)
You could try to run Julia with the `--inline=no` flag to see if you get more debug information.
[julia-users] Re: Error precompiling on Windows 64 (julia 0.4.0 and 0.4.6)
Here are some other things I tried: 1) Run Julia as administrator : no change 2) turn off precompilation : still doesn't work, error message below [2] That's the entire error message. There's no useful diagnostic information to suggest what might have gone wrong at all. Bill. [2] [ ERROR: Nemo ]= failed process: Process(`'C:\Users\User\AppData\Local\Julia-0.4.6\bin\julia' --check-bounds=yes --code-coverage=none --color=yes 'C:\Users\User\.julia\v0.4\Nemo\test\runtests.jl'`, ProcessExited(3221225477)) [3221225477] ERROR: Nemo had test errors in error at error.jl:21