This version of the fortran code dates from 2014, and there have been a number of updates since, so I would like to update the JLL to build the latest version of the code, however I am running into problems with the resulting binary. I am not the original developer of the package and know next to nothing about fortran so am not sure what is going wrong.
I had already updated the JLL to use a more recent source a while ago (here) which builds successfully, but when the resulting library is used from the existing GLMNet.jl, it runs into a segfault:
(GLMNet) pkg> test ... Testing Running tests... signal (11): Segmentation fault: 11 in expression starting at /private/tmp/GLMNet.jl/test/runtests.jl:16 getindex at ./array.jl:924 [inlined] #glmnet!#10 at /private/tmp/GLMNet.jl/src/GLMNet.jl:264 glmnet! at /private/tmp/GLMNet.jl/src/GLMNet.jl:271 #glmnet#40 at /private/tmp/GLMNet.jl/src/GLMNet.jl:485 [inlined] glmnet at /private/tmp/GLMNet.jl/src/GLMNet.jl:485 [inlined] #glmnet#41 at /private/tmp/GLMNet.jl/src/GLMNet.jl:487 glmnet at /private/tmp/GLMNet.jl/src/GLMNet.jl:487 [inlined] glmnet at /private/tmp/GLMNet.jl/src/GLMNet.jl:487
The line it is crashing on is this one, where it tries to access
alm to get results after calling the fortran code. Right above this, it accessed the value of
lmu_ref which was also passed into the fortran code, so some parts seem to be working. I am wondering if there is something about the
ccall that needs to be updated, but don’t know enough about fortran to know what to try next.
To help narrow the problem, I bisected the fortran code inside the glmnet R package to find which changes led to this error, and found that the last working version was
2.0-13 and was broken in
2.0-16. I added the fortran files and a cleaned diff to a gist here:
Most of the changes seem to be updating the type declarations from
double precision, which I think is supposed to be a no-op (all the relevant variables were/are passed as
I would appreciate any guidance or help in getting this working!