20240326 #10
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: macos with gfortran | |
on: [push, pull_request] | |
jobs: | |
Build: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ macos-latest ] | |
include: | |
- os: macos-latest | |
gcc_v: 12 | |
env: | |
FC: gfortran | |
GCC_V: ${{ matrix.gcc_v }} | |
TZ: UTC+04:00 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v1 | |
- name: Install GFortran macOS | |
run: | | |
ls /usr/local/bin/gfortran-* | |
ln -f -s /usr/local/bin/gfortran-${GCC_V} /usr/local/bin/gfortran | |
which gfortran-${GCC_V} | |
which gfortran | |
## Alternative: | |
#conda create -n gf gfortran | |
#conda activate gf | |
- name: Install fpm | |
run: | | |
echo $PATH | |
pwd | |
uname -a | |
wget https://raw.githubusercontent.com/urbanjost/index/main/bootstrap/fpm.F90 | |
mkdir -p /Users/runner/bin tmp | |
ulimit -c unlimited -d unlimited -f unlimited -m unlimited -t unlimited -v unlimited | |
gfortran fpm.F90 -Jtmp -Itmp -o /Users/runner/bin/fpm | |
rm -f tmp/*.mod | |
ls -l | |
- name: Display environment | |
run: | | |
echo $PATH | |
pwd | |
uname -a | |
ulimit -a | |
echo "end" > foo.f90 | |
gfortran -cpp -E -dM foo.f90 | |
gfortran --version | |
fpm --version | |
ulimit -a | |
- name: tests MacOS (release) | |
run: | | |
ulimit -c unlimited -d unlimited -f unlimited -m unlimited -t unlimited -v unlimited | |
exec 2>&1 | |
set -x | |
#fpm test --profile release --verbose --flag -fno-automatic # looks like bug where formats go on stack anyway | |
#fpm test --profile debug --verbose --flag -fmax-stack-var-size=0 # Apparently infinite loop | |
#fpm test --profile debug --verbose --flag -fmax-stack-var-size=2024 # loop | |
#fpm test --profile debug --verbose --flag -frecursive | |
#fpm test --profile debug --verbose --flag -static | |
#timeout 0.5h fpm test --profile debug --verbose | |
ulimit -S -t 1800 | |
fpm test --profile debug --verbose | |
- name: tests MacOS (debug) | |
run: | | |
ulimit -c unlimited -d unlimited -f unlimited -m unlimited -t unlimited -v unlimited | |
exec 2>&1 | |
set -x | |
ulimit -S -t 1800 | |
fpm test --profile debug --verbose | |
- name: cleanup MacOS | |
run: ls -ltras | |
# -fno-automatic | |
# Treat each program unit (except those marked as RECURSIVE) as if | |
# the "SAVE" statement were specified for every local variable and | |
# array referenced in it. Does not affect common blocks. (Some | |
# Fortran compilers provide this option under the name -static or | |
# -save.) The default, which is -fautomatic, uses the stack for | |
# local variables smaller than the value given by | |
# -fmax-stack-var-size. Use the option -frecursive to use no static | |
# memory. | |
# | |
# Local variables or arrays having an explicit "SAVE" attribute are | |
# silently ignored unless the -pedantic option is added. | |
# -fmax-stack-var-size=n | |
# This option specifies the size in bytes of the largest array that | |
# will be put on the stack; if the size is exceeded static memory is | |
# used (except in procedures marked as RECURSIVE). Use the option | |
# -frecursive to allow for recursive procedures which do not have a | |
# RECURSIVE attribute or for parallel programs. Use -fno-automatic to | |
# never use the stack. | |
# | |
# This option currently only affects local arrays declared with | |
# constant bounds, and may not apply to all character variables. | |
# Future versions of GNU Fortran may improve this behavior. | |
# | |
# The default value for n is 32768. | |
# -frecursive | |
# Allow indirect recursion by forcing all local arrays to be | |
# allocated on the stack. This flag cannot be used together with | |
# -fmax-stack-var-size= or -fno-automatic. |