sync from Matrix 1.2-8 (*-9) inst/include/cholmod.h; Version++ #42
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
For Matrix 1.2-8, I had updated the definition of
SparseSuite_long
inMatrix/inst/include/cholmod.h
,see (the diffs) here:
https://r-forge.r-project.org/scm/viewvc.php/pkg/Matrix/inst/include/cholmod.h?root=matrix&r1=3040&r2=3200 to avoid problems with oldish / unusual compilers/platforms.... and to make it future proof, notably using 64 bit long on all platforms.
Now this lead to rare (and hard to trace) segmentation faults when using CRAN package
lme4
which uses bothRcppEigen
and classes fromMatrix
.... reported only in 32-bit Linux here.What I found (also thanks to Brian Ripley who also found such problems on (32-bit) SPARC Solaris) is that indeed the file
inst/include/RcppEigenCholmod.h
has originally been a copy-paste-version of the fileMatrix/inst/include/cholmod.h
(mentioned above) made almost surely by Doug Bates (@dmbates). And we all forgot that in the end, we use the "same" underlying mapping to Matrix' cholmod and hence must use compatible typedefs.... which we will have again after applying this pull request.Of course, packages using
RcppEigen
and which use this header should be recompiled after a new version ofRcppEigen
is made available on CRAN.I hope Dirk (@eddelbuettel) can agree to submit that relatively soonish, so it is more or less synchronized with the upcoming new version of the Matrix package (1.2-9) and user would typically install both (when updating).
Also, Matrix 1.2-9 is planned to be in R 3.4.0 (to appear in a bit more than a month I think).