Skip to content

M1+ R package test failures (local and Mac Builder)

3 messages · Sabanes Bove, Daniel, Brian Ripley, Simon Urbanek

#
Hi R at Mac developers,

I switched yesterday to a new M2 MacBook, coming from a 3+ year old Intel
MacBook.
The concrete problem is that my R package mmrm (including C++ and in
particular Eigen/TMB code) successfully compiles, but the tests fail, i.e.
the compiled and installed R package does not behave correctly.

First I thought that this is just my local toolchain which is not yet
appropriately configured, but I tried to read more on that and got OpenMP
and gfortran and it should be ok.
So I thought ok, maybe I will try the Mac Builder website and find out in
which commit the R package broke.

Unfortunately, the problem is that the Mac Builder does not help us
sufficiently here, because even the current CRAN release (0.2.2, where
tests based on CRAN binary pass fine locally and on CRAN) leads to test
failures on Mac Builder.

I do see a few differences between the CRAN reported setup and the mac
Builder:
- CRAN is running under macOS Big Sur 11.6.7, while Mac Builder is running
under macOS Ventura 13.3.1 (same as my local machine)
- CRAN uses C++ compiler ?Apple clang version 13.0.0 (clang-1300.0.29.30)?
(and not 14.0.0 as used for the R compilation!) for the package build,
while Mac Builder uses ?Apple clang version 14.0.3 (clang-1403.0.22.14.1)?
(this is the same as on my local machine)

At least Mac Builder and my local machine thus use a similar setup it
seems (even though M1 vs M2 difference exists)

My question is: what are your tips on how to move forward here? How can we
set up the Apple clang version and maybe other build flags locally - as
well as on Mac Builder for the whole community - to really match the CRAN
configuration sufficiently well and thus allow for successful package
builds?

Thanks all,
best regards
Daniel
#
Apple Clang 14.0.3 and its associated SDK change to MacOSX13.3.sdk broke 
about 25 CRAN packages (3 with segfaults) and 17 remain broken (and also 
with Xcode/CLT 15 beta 4 which uses a newer build of 14.0.3).  But in my 
checks mmrm 0.2.2 is not one of them.

Packages should aim to be platform-independent. So rather than expect 
all check systems to run the same toolchain, make sure your package 
works on all that are available.  I believe mac-builder uses different 
ones for 'release' and for 'development' but you write as if it uses 
just one -- and I know that there have been changes since R 4.3.0 was 
released.

It is possible to download different CLTs from 
https://developer.apple.com/download/all/ and switch between them (for 
the compiler you will need to install them in turn but you can switch 
between installed SDKs).  I have 14.2, 14.3.1 and 15 beta 4 downloaded 
and switch between them.

Given the several recent security alerts, if you are running macOS 
13.3.1 I would suggest you update to 13.5.
On 25/07/2023 14:50, Sabanes Bove, Daniel via R-SIG-Mac wrote:
You give us no idea of the problems.  Please do re-read the posting guide.

  
    
#
Daniel,

I'm not sure I understand your question. The package mmrm 0.2.2 fails its tests for me as well. If you can reproduce the problem locally (as you indicated), then that's good as you should be in the position to fix it.

Cheers,
Simon