Skip to content

nlme aarch64 float inequality : check fails

1 message · Yarl

#
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.
+            correlation = corAR1(form = ~ 1 | Mare))
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
+     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