Dear R people,
Tests of nlme on aarch64 seem to fail:
--8<---------------cut here---------------start------------->8---
Running specific tests for package ?nlme?
Running ?anova.gls.R?
Error: running the tests in ?anova.gls.R? failed
Tests failed, dumping logs.
--- ./nlme-tests/anova.gls.Rout.fail ----------------------------------------
R version 4.5.2 (2025-10-31) -- "[Not] Part in a Rumble"
Copyright (C) 2025 The R Foundation for Statistical Computing
Platform: aarch64-unknown-linux-gnu
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
## Example of scoping problem.
## Originally from a report by Markus Jantti:
## https://stat.ethz.ch/pipermail/r-help/2005-November/081382.html
library(nlme)
data(Ovary)
## stolen from example(anova.gls)
# AR(1) errors within each Mare
## tolerance increased for flang (was 6e-6)
fm1 <- gls(follicles ~ sin(2*pi*Time) + cos(2*pi*Time), Ovary,
Approximate 95% confidence intervals
Coefficients:
lower est. upper
(Intercept) 10.908531 12.2163982 13.5242656
sin(2 * pi * Time) -4.044019 -2.7747122 -1.5054050
cos(2 * pi * Time) -2.272201 -0.8996047 0.4729919
Correlation structure:
lower est. upper
Phi 0.668414 0.7532079 0.8186747
Residual standard error:
lower est. upper
3.974642 4.616172 5.361248
stopifnot({
+ length(grep(',"label"', intOut, fixed=TRUE)) == 0
+ all.equal(int1$corStruct["Phi",],
+ c(lower=0.66842829, est.=0.753207889, upper=0.81866619),
+ tol = 1e-5)# 7e-6 needed for flan
+ all.equal(as.vector(int1$sigma),
+ c(3.9747061, 4.61617157, 5.361161), tol = 1e-5)
+ })
Error: { .... is not TRUE
--8<---------------cut here---------------end--------------->8---
I got luck, I tried to compile with gcc's flag -ffp-contract=false, the
check then passed.
Question 1 : Is it known? I don't have other aarch64 boards at hand
(this one is rk3399 based).
Question 2 : If I build nlme with this flag and other packages
without it, should I expect problems? I am asking because I am trying to
upgrade the package definition in my gnu/linux distribution (Guix) in
order to support aarch64 (tests being required to pass).
Thank you!
Yarl