gdl icon indicating copy to clipboard operation
gdl copied to clipboard

add Apple Silicon builds to CI (using macos-14 images); add WITH_OPENMP option to build_gdl.sh

Open slayoo opened this issue 1 year ago • 6 comments

slayoo avatar Mar 20 '24 22:03 slayoo

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 43.72%. Comparing base (e1d7f28) to head (5e94f11). Report is 17 commits behind head on master.

:exclamation: Current head 5e94f11 differs from pull request most recent head a93ce86. Consider uploading reports for the commit a93ce86 to get more accurate results

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1788      +/-   ##
==========================================
- Coverage   43.89%   43.72%   -0.17%     
==========================================
  Files         376      376              
  Lines       97442    97401      -41     
  Branches    19888    19918      +30     
==========================================
- Hits        42769    42589     -180     
- Misses      54673    54812     +139     

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

codecov[bot] avatar Mar 20 '24 23:03 codecov[bot]

@slayoo seems that macos-14 has a problem with MPI? Not sure if it is indeed that, since compiling on Apple Silicon with OpenMP using our cmake/build_gdl.sh inevitably make gdl crash on a sigtrap. Only by removing OPENMP do the executable work.

GillesDuvert avatar Apr 08 '24 11:04 GillesDuvert

@GillesDuvert, indeed disabling OpenMP for Apple Silicon helps! Thanks!

Now, we have only two tests failing there:

The following tests FAILED:
	 66 - test_byte_conversion.pro (Failed)
Errors while running CTest
	 67 - test_bytscl.pro (Failed)

the first fails with:

% Compiled module: TEST_BYTE_CONVERSION.
% Compiled module: BANNER_FOR_TESTSUITE.
% Compiled module: GDL_IDL_FL.
% TEST_BYTE_BUG_586:   NO errors encountered during TEST_BYTE_BUG_586 tests  
% Compiled module: ERRORS_CUMUL.
% TEST_BYTE_BASIC_32768: 
  NO errors encountered during TEST_BYTE_BASIC_32768 tests  
% Compiled module: ERRORS_ADD.
% TEST_BYTE_BASIC_32768: Error on operation : input as Long for :       -32765
% TEST_BYTE_BASIC_32768: Error on operation : input as Long for :       -32766
% TEST_BYTE_BASIC_32768: Error on operation : input as Long for :       -32767
% TEST_BYTE_BASIC_32768: Error on operation : input as Long for :       -32769
% TEST_BYTE_BASIC_32768: Error on operation : input as Long for :       -32770
% TEST_BYTE_BASIC_32768: 
=============================================================
% TEST_BYTE_BASIC_32768: 
=                                                           =
% TEST_BYTE_BASIC_32768: 
=  5 errors encountered during TEST_BYTE_BASIC_32768 tests  =
% TEST_BYTE_BASIC_32768: 
=                                                           =
% TEST_BYTE_BASIC_32768: 
=============================================================
% TEST_BYTE_BASIC_32768: ==============================================
% TEST_BYTE_BASIC_32768: =                                            =
% TEST_BYTE_BASIC_32768: =  For details, run it again with /DEBUG !!  =
% TEST_BYTE_BASIC_32768: =                                            =
% TEST_BYTE_BASIC_32768: ==============================================
% TEST_BYTE_STRING2BYTE: 
  NO errors encountered during TEST_BYTE_STRING2BYTE tests  
2017-03-11 : First run should be OK in GDL
% TEST_BYTE_WITH_LOOP: 
  NO errors encountered during TEST_BYTE_WITH_LOOP tests  
2017-03-11 : Second run should be BAD in GDL
% TEST_BYTE_WITH_LOOP: 
  NO errors encountered during TEST_BYTE_WITH_LOOP tests  
% TEST_BYTE_CONVERSION: 
============================================================
% TEST_BYTE_CONVERSION: 
=                                                          =
% TEST_BYTE_CONVERSION: 
=  5 errors encountered during TEST_BYTE_CONVERSION tests  =
% TEST_BYTE_CONVERSION: 
=                                                          =
% TEST_BYTE_CONVERSION: 
============================================================

the second with:

% Compiled module: TEST_BYTSCL.
PLEASE contribute to add tests on MIN, MAX, TOP keywords
% Compiled module: DIST.
% Compiled module: ERRORS_ADD.
% TEST_BYTSCL_TOP: Error on operation : Pb with top=     -128, min/max :        0,        0
% Compiled module: BANNER_FOR_TESTSUITE.
% Compiled module: GDL_IDL_FL.
% TEST_BYTSCL_RAMPS: =========================================================
% TEST_BYTSCL_RAMPS: =                                                       =
% TEST_BYTSCL_RAMPS: =  1 errors encountered during TEST_BYTSCL_RAMPS tests  =
% TEST_BYTSCL_RAMPS: =                                                       =
% TEST_BYTSCL_RAMPS: =========================================================
% Compiled module: ERRORS_CUMUL.
% TEST_BYTSCL_RAMPS:   NO errors encountered during TEST_BYTSCL_RAMPS tests  
% TEST_BYTSCL_RAMPS_NAN: 
  NO errors encountered during TEST_BYTSCL_RAMPS_NAN tests  
% TEST_BYTSCL_IDL_PROBLEM: 
  NO errors encountered during TEST_BYTSCL_IDL_PROBLEM tests  
% TEST_BYTSCL: ===================================================
% TEST_BYTSCL: =                                                 =
% TEST_BYTSCL: =  1 errors encountered during TEST_BYTSCL tests  =
% TEST_BYTSCL: =                                                 =
% TEST_BYTSCL: ===================================================

slayoo avatar Apr 09 '24 07:04 slayoo

ah this will be easier to solve than the openMP parallel computing that Apple spent a lot of efforts to make crash on its products.

GillesDuvert avatar Apr 09 '24 13:04 GillesDuvert

@slayoo strange I have access to an M1, and these 2 test pass OK. However test_fix does not pass. The machine says:

GDL> !version
{
    "ARCH": "arm64",
    "OS": "darwin",
    "OS_FAMILY": "unix",
    "OS_NAME": "Mac OS X",
    "RELEASE": "8.2",
    "BUILD_DATE": "Apr 11 2024",
    "MEMORY_BITS": 64,
    "FILE_OFFSET_BITS": 64
}

GillesDuvert avatar Apr 11 '24 09:04 GillesDuvert

@alaingdl could you please check if test_byte_conversion.pro and test_bytscl.pro work OK on Apple Silicon for you? (here, these are the only two tests that fail on CI on Apple Silicon, but they seem to work OK for Gilles on M1 CPU) Thanks

slayoo avatar Apr 17 '24 15:04 slayoo