Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

merge #8

Merged
merged 159 commits into from
Dec 31, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
159 commits
Select commit Hold shift + click to select a range
56740fc
Update stdlib_ascii.f90
arjenmarkus Sep 16, 2020
a996ec5
Update stdlib_ascii.f90
arjenmarkus Sep 16, 2020
37f1d6c
Update src/stdlib_ascii.f90
arjenmarkus Sep 24, 2020
a68430a
Update src/stdlib_ascii.f90
arjenmarkus Sep 24, 2020
9a82237
Remove superfluous parentheses and implement robust to_lower/to_upper…
arjenmarkus Sep 24, 2020
cd7e19d
Added core files for stdlib_bitsets
wclodius2 Sep 29, 2020
e35ebc7
Prepared for testing of stdlib_bitsets
wclodius2 Sep 29, 2020
e2f3d66
Eliminated unused variablese
wclodius2 Sep 30, 2020
7d778cd
Added documentation for stdlib_bitsets
wclodius2 Sep 30, 2020
acfa3ac
Update doc/specs/stdlib_bitsets.md
jvdp1 Oct 4, 2020
7c5361c
Update doc/specs/stdlib_bitsets.md
jvdp1 Oct 4, 2020
eb2e5c1
formatting
jvdp1 Oct 4, 2020
e70c909
Update src/tests/Makefile.manual
jvdp1 Oct 4, 2020
8e25812
Update doc/specs/stdlib_bitsets.md
jvdp1 Oct 4, 2020
c9e851b
Changed makefiles to accept stdlib_bitset*.fypp instead of stdlib_bit…
wclodius2 Oct 8, 2020
d80e5d9
Renamed files stdlib_bitset*.f90 to stdlib_bitset*.fypp
wclodius2 Oct 8, 2020
f2d67fc
Changed preprocessor files to generate logical assignments.
wclodius2 Oct 8, 2020
2833ffa
Removed files now generated by the preprocessor
wclodius2 Oct 8, 2020
3844561
Modified code to use error_handler.
wclodius2 Oct 9, 2020
9e9c252
Better documented status results
wclodius2 Oct 9, 2020
421c4d2
Removed trailing blanks
wclodius2 Oct 9, 2020
d2be3dc
Added missing return
wclodius2 Oct 9, 2020
b0c0f63
Changed WRiTE to WRITE
wclodius2 Oct 9, 2020
b12e398
Changed the kind of bit
wclodius2 Oct 9, 2020
983a083
Changed subtraction of bit from outside an int converson to inside
wclodius2 Oct 9, 2020
38095c0
Deleted redundant returns.
wclodius2 Oct 10, 2020
cc477b9
Deleted redundant return
wclodius2 Oct 10, 2020
beca325
Regularized code fences
wclodius2 Oct 10, 2020
d391970
Some typs and obvious changes
jvdp1 Oct 14, 2020
84d7d33
Apply suggestions from code review
jvdp1 Oct 14, 2020
d6dc6b1
Corrected stdlib_bitsets.md
wclodius2 Oct 15, 2020
daa83d2
Update doc/specs/stdlib_bitsets.md
jvdp1 Oct 15, 2020
30c2116
Apply suggestions from code review
jvdp1 Oct 15, 2020
0e3b788
Merge branch 'bitsets3' of https://github.com/wclodius2/stdlib into b…
wclodius2 Oct 15, 2020
adab166
Changed file names
wclodius2 Oct 15, 2020
d7cf384
Updated makefiles to deal with new names
wclodius2 Oct 15, 2020
aeae7dd
Changed discussion of bitset_type
wclodius2 Oct 15, 2020
8330945
Changed varibles to entities.
wclodius2 Oct 15, 2020
24881a5
Fixed typo in Makefile.manual
wclodius2 Oct 15, 2020
0554f5d
typos
jvdp1 Oct 15, 2020
ecd6c82
Typos and bits_kind fixes
wclodius2 Oct 16, 2020
47c7d6e
Fixed digit_count
wclodius2 Oct 16, 2020
80af2c5
Added dependence on stdlib_kinds.f90
wclodius2 Oct 16, 2020
0deab15
Fixed bits_kind breakage
wclodius2 Oct 16, 2020
9f0e4a9
Fixed up constants
wclodius2 Oct 16, 2020
9f690fd
some typos
jvdp1 Oct 16, 2020
f705346
Added discussion of undefined behavior
wclodius2 Oct 19, 2020
242950b
Fixed typo
wclodius2 Oct 19, 2020
032c440
Added reference to the bitsets module
wclodius2 Oct 19, 2020
e957342
Made it easier to change bits_kind
wclodius2 Oct 20, 2020
9161fc7
Replaced go to 100 with exit
wclodius2 Oct 20, 2020
3235ab4
Changed used modues
wclodius2 Oct 20, 2020
523dbc6
Changed handling of potential integer overflows on reads
wclodius2 Oct 21, 2020
20a15e5
Numerous changes suggested by Jeremie
wclodius2 Oct 21, 2020
57faccd
Replaced go tos
wclodius2 Oct 21, 2020
9c03d16
Replaced go tos
wclodius2 Oct 21, 2020
5c2779d
Documented the "named" form for the comparison operations
wclodius2 Oct 26, 2020
0f2c0a9
logger1: avoid trailing spaces when writing line 2+
jvdp1 Oct 30, 2020
cb88331
logger2: ad support for new_line(a) in stdlib_logger.f90
jvdp1 Oct 30, 2020
cee1bac
logger2: add support of new_line() when writting message
jvdp1 Oct 30, 2020
fa0e423
addition of a log msg in test logger
jvdp1 Oct 30, 2020
5856e4f
Merge pull request #242 from jvdp1/logger1
jvdp1 Oct 30, 2020
75fff34
logger2: correct issue
Nov 1, 2020
dcd6b28
logger: some formattig
Nov 1, 2020
f7deccc
logger2: corrections suggested by @wclodius2
Nov 2, 2020
d0cc617
Merge pull request #235 from fortran-lang/update_ascii
milancurcic Nov 13, 2020
99fa382
typography fixes
milancurcic Nov 13, 2020
acb7cdb
add example to the first paragraph
milancurcic Nov 13, 2020
d20faf8
Merge pull request #243 from jvdp1/logger2
jvdp1 Nov 13, 2020
1be7ca3
Merge https://github.com/fortran-lang/stdlib into bitsets3
wclodius2 Nov 14, 2020
716d2f5
Fixed minor formatting of output
wclodius2 Nov 16, 2020
1fa3a3e
Added logger to the index
wclodius2 Nov 16, 2020
d1f143e
Documented changes in the stdlib_logger.f90 API
wclodius2 Nov 16, 2020
3fdcb73
Typo fixes and thread/asynchronous IO safety.
wclodius2 Nov 16, 2020
786aaa4
Fixed indexing and unused variables
wclodius2 Nov 16, 2020
f2c7e66
Small fix to issue #245
14NGiestas Nov 16, 2020
66272b5
Merge pull request #246 from 14NGiestas/patch-1
milancurcic Nov 16, 2020
cbb80a5
Merge remote-tracking branch 'upstream/master' into logger-safe-async-io
milancurcic Nov 16, 2020
0b17754
Update src/stdlib_logger.f90
jvdp1 Nov 17, 2020
42f60df
Update doc/specs/stdlib_logger.md
jvdp1 Nov 17, 2020
92cfe4c
Apply suggestions from code review
jvdp1 Nov 17, 2020
0b95dbb
Apply suggestions from code review
jvdp1 Nov 17, 2020
5e68920
Fixed up log_error and log_io_error
wclodius2 Nov 17, 2020
37a1ed1
Merge pull request #239 from wclodius2/bitsets3
milancurcic Nov 22, 2020
ff84d70
Fixes CI failing on MacOS
14NGiestas Nov 23, 2020
74095ec
Update CI.yml
14NGiestas Nov 23, 2020
eec1c0e
Merge pull request #250 from 14NGiestas/patch-2
milancurcic Nov 23, 2020
0853039
Documented attempt to make code thread and asynchronous I/O safe
wclodius2 Nov 24, 2020
381c3fe
Revised discussion of thread safety
wclodius2 Nov 24, 2020
dd5d1ec
bitset: update specs
jvdp1 Nov 24, 2020
efbcc71
bitset_specs: addition of links
jvdp1 Nov 24, 2020
d1bf5d0
bitset_specs: correction subtitle
jvdp1 Nov 24, 2020
4615ed4
bitset_specs: subtitles
jvdp1 Nov 24, 2020
2672af9
Issue with logger s configuration subroutine
jvdp1 Nov 25, 2020
917adb9
Merge pull request #252 from jvdp1/issues
jvdp1 Nov 25, 2020
e5bc47f
Merge remote-tracking branch 'origin/master' into logger-safe-async-io
wclodius2 Nov 25, 2020
479f582
Merge pull request #245 from wclodius2/logger-safe-async-io
milancurcic Nov 26, 2020
49bb9d9
mv self%buffer and seld%len_buffer to local variables (inside subrout…
jvdp1 Nov 26, 2020
6ca6e73
Apply suggestions from code review
jvdp1 Nov 27, 2020
50dec22
moved self , intent(inout) to self intent(in) as suggested in the review
jvdp1 Nov 27, 2020
9dcb787
specs adapted: remove "buffer" and "len_buffer" and the intents of se…
jvdp1 Nov 27, 2020
1002ca7
Merge pull request #251 from jvdp1/bitset_specs
jvdp1 Nov 28, 2020
e54f92a
Merge pull request #253 from jvdp1/test_logger
jvdp1 Nov 28, 2020
7941301
debug_logger: add log_debug to logger
jvdp1 Nov 29, 2020
e190a7b
Merge branch 'debug_logger' into level_logger
jvdp1 Nov 29, 2020
bde8ce8
level_logger: addition of levels
jvdp1 Nov 29, 2020
478fe70
level_logger: addition of conditions
jvdp1 Nov 29, 2020
a220e5b
level_logger: progress
jvdp1 Nov 29, 2020
01ba21f
logger_fix
jvdp1 Nov 29, 2020
06dd2e4
Merge branch 'logger_fix' into level_logger
jvdp1 Nov 29, 2020
848c52f
logger_fix: addition of tests
jvdp1 Nov 29, 2020
ba71ac8
logger_level:addition of tests
jvdp1 Nov 29, 2020
25c1226
logger_level: modify definition of stdlib_all_level
jvdp1 Nov 29, 2020
797f59f
Merge pull request #255 from jvdp1/logger_fix
jvdp1 Nov 30, 2020
323870f
level_logger: changes following #254
jvdp1 Dec 4, 2020
8f77748
level_logger: correction
jvdp1 Dec 4, 2020
56e15d8
Improve check for F18 error stop
awvwgk Dec 5, 2020
fd60ef0
Add CI for Intel oneAPI compiler
awvwgk Nov 22, 2020
528dc73
Merge pull request #257 from awvwgk/f18-error-stop-check
milancurcic Dec 9, 2020
c23a1c6
Merge pull request #260 from awvwgk/intel-ci
milancurcic Dec 9, 2020
d0d927d
Merge pull request #256 from jvdp1/debug_logger
jvdp1 Dec 9, 2020
cd5202e
Merge remote-tracking branch 'upstream/master' into level_logger
jvdp1 Dec 9, 2020
c3d6c8b
level_logger: update specs
jvdp1 Dec 9, 2020
09b1480
level_logger: update test and specs
jvdp1 Dec 9, 2020
2823409
oneapi package name change
rscohn2 Dec 10, 2020
4bf52a4
Merge pull request #263 from rscohn2/master
certik Dec 10, 2020
6c6be5a
Use distinct file names
certik Dec 10, 2020
f2c71ca
Rename tests in test_stdlib_bitset_64
certik Dec 10, 2020
7b24642
Merge pull request #267 from certik/macos_fix
certik Dec 10, 2020
4c9723f
Update src/stdlib_logger.f90
jvdp1 Dec 12, 2020
6fb16bc
level_logger: set text_error_level at 50 (higher level than previously)
jvdp1 Dec 13, 2020
8a3f31d
level_logger: correction of a typo mentioned by @ivan-pi
jvdp1 Dec 18, 2020
7e6ab33
level_logger: changes as proposed by @ivan-pi
jvdp1 Dec 18, 2020
6609cc0
add gfortran 10 to CI
jvdp1 Dec 18, 2020
896ef37
update CI for gfortran 10
jvdp1 Dec 18, 2020
438e2cf
update doc-deployment.yml for gfortran 10
jvdp1 Dec 18, 2020
b0ab3bb
Merge pull request #270 from jvdp1/ci_gfortran10
jvdp1 Dec 20, 2020
32810ac
erge remote-tracking branch 'upstream/master' into level_logger
jvdp1 Dec 20, 2020
cff0121
Add all three MSYS2 systems to Windows CI
awvwgk Dec 21, 2020
e2d0a57
Increase numerical threshold for test_mean
awvwgk Dec 21, 2020
75a614b
add note about RAM issues
jvdp1 Dec 27, 2020
e314a28
Update README.md
jvdp1 Dec 27, 2020
9c6bbbe
Update README.md
jvdp1 Dec 28, 2020
02a0f01
Reduce compilation load by splitting stdlib_stats_moment
awvwgk Dec 28, 2020
27fe421
Split stdlib_stats_moment again to separate the masked procedures
awvwgk Dec 28, 2020
f9febba
Apply suggestions from code review as proposed by @milancurcic
jvdp1 Dec 28, 2020
ccf051c
Merge pull request #283 from awvwgk/load
milancurcic Dec 28, 2020
6d01ec9
Merge pull request #282 from jvdp1/readme
milancurcic Dec 28, 2020
3f4578f
Merge pull request #275 from awvwgk/win-ci
jvdp1 Dec 29, 2020
f84f059
Merge pull request #261 from jvdp1/level_logger
jvdp1 Dec 29, 2020
afb881e
Update Makefile.manual
Jim-215-Fisher Dec 29, 2020
8abb168
Update CMakeLists.txt
Jim-215-Fisher Dec 29, 2020
a16faec
Merge pull request #2 from fortran-lang/master
Jim-215-Fisher Dec 29, 2020
157dba8
Update CMakeLists.txt
Jim-215-Fisher Dec 29, 2020
d7643cb
Update Makefile.manual
Jim-215-Fisher Dec 29, 2020
5651f5e
Update CMakeLists.txt
Jim-215-Fisher Dec 29, 2020
5afcba5
Update CMakeLists.txt
Jim-215-Fisher Dec 29, 2020
4cb0041
Update CMakeLists.txt
Jim-215-Fisher Dec 29, 2020
91c1ad4
Update Makefile.manual
Jim-215-Fisher Dec 29, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 62 additions & 4 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
gcc_v: [7, 8, 9] # Version of GFortran we want to use.
gcc_v: [7, 8, 9, 10] # Version of GFortran we want to use.
env:
FC: gfortran-${{ matrix.gcc_v }}
GCC_V: ${{ matrix.gcc_v }}
Expand Down Expand Up @@ -54,7 +54,9 @@ jobs:

- name: Install GFortran macOS
if: contains( matrix.os, 'macos')
run: brew install gcc@${GCC_V} || brew upgrade gcc@${GCC_V} || true
run: |
brew install gcc@${GCC_V} || brew upgrade gcc@${GCC_V} || true
brew link gcc@${GCC_V}

- name: Configure with CMake
run: cmake -Wdev -DCMAKE_BUILD_TYPE=Release -DCMAKE_MAXIMUM_RANK=4 -S . -B build
Expand All @@ -71,15 +73,71 @@ jobs:
working-directory: build

- name: Test in-tree builds
if: contains( matrix.gcc_v, '9') # Only test one compiler on each platform
if: contains( matrix.gcc_v, '10') # Only test one compiler on each platform
run: |
cmake -DCMAKE_MAXIMUM_RANK=4 .
cmake --build .
cmake --build . --target test

- name: Test manual makefiles
if: contains(matrix.os, 'ubuntu') && contains(matrix.gcc_v, '9')
if: contains(matrix.os, 'ubuntu') && contains(matrix.gcc_v, '10')
run: |
make -f Makefile.manual FYPPFLAGS="-DMAXRANK=4"
make -f Makefile.manual test
make -f Makefile.manual clean

intel-build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04]
fc: [ifort]
env:
FC: ${{ matrix.fc }}

steps:
- name: Checkout code
uses: actions/checkout@v1

- name: Set up Python 3.x
uses: actions/setup-python@v1
with:
python-version: 3.x

- name: Install CMake Linux
if: contains(matrix.os, 'ubuntu')
run: ci/install_cmake.sh

- name: Add Intel repository
if: contains(matrix.os, 'ubuntu')
run: |
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
rm GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
sudo apt-get update

- name: Install Intel oneAPI compiler
if: contains(matrix.os, 'ubuntu')
run: |
sudo apt-get install intel-oneapi-compiler-fortran
source /opt/intel/oneapi/setvars.sh
printenv >> $GITHUB_ENV

- name: Install fypp
run: pip install --upgrade fypp

- name: Configure with CMake
run: cmake -Wdev -DCMAKE_BUILD_TYPE=Release -DCMAKE_MAXIMUM_RANK=4 -S . -B build

- name: Build and compile
run: cmake --build build

- name: catch build fail
run: cmake --build build --verbose --parallel 1
if: failure()

- name: test
run: ctest --parallel --output-on-failure
working-directory: build
79 changes: 79 additions & 0 deletions .github/workflows/ci_windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,82 @@ jobs:
with:
name: WindowsCMakeTestlog
path: build/Testing/Temporary/LastTest.log

msys2-build:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
include: [
{ msystem: MSYS, arch: x86_64 },
{ msystem: MINGW64, arch: x86_64 },
{ msystem: MINGW32, arch: i686 }
]
defaults:
run:
shell: msys2 {0}
steps:
- uses: actions/checkout@v2

- name: Setup MinGW native environment
uses: msys2/setup-msys2@v2
if: contains(matrix.msystem, 'MINGW')
with:
msystem: ${{ matrix.msystem }}
update: false
install: >-
git
mingw-w64-${{ matrix.arch }}-gcc
mingw-w64-${{ matrix.arch }}-gcc-fortran
mingw-w64-${{ matrix.arch }}-python
mingw-w64-${{ matrix.arch }}-python-pip
mingw-w64-${{ matrix.arch }}-cmake
mingw-w64-${{ matrix.arch }}-ninja

- name: Setup msys POSIX environment
uses: msys2/setup-msys2@v2
if: contains(matrix.msystem, 'MSYS')
with:
msystem: MSYS
update: false
install: >-
git
gcc
gcc-fortran
python
python-pip
cmake
ninja

- name: Install fypp
run: pip install fypp

- run: >-
cmake -G Ninja
-DCMAKE_SH="CMAKE_SH-NOTFOUND"
-Wdev
-B build
-DCMAKE_BUILD_TYPE=Debug
-DCMAKE_Fortran_FLAGS_DEBUG="-Wall -Wextra -Wimplicit-interface -fPIC -g -fcheck=all -fbacktrace"
-DCMAKE_MAXIMUM_RANK=4
env:
FC: gfortran
CC: gcc
CXX: g++

- name: CMake build
run: cmake --build build --parallel

- name: catch build fail
run: cmake --build build --verbose --parallel 1
if: failure()

- name: CTest
run: ctest --output-on-failure --parallel -V -LE quadruple_precision
working-directory: build

- uses: actions/upload-artifact@v1
if: failure()
with:
name: WindowsCMakeTestlog
path: build/Testing/Temporary/LastTest.log
11 changes: 8 additions & 3 deletions .github/workflows/doc-deployment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,24 +20,29 @@ env:
jobs:
Build-API-Docs:
runs-on: macos-latest
env:
GCC_V: 10
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0 # Full history to get tag and commit info
- name: Install GFortran macOS
run: brew install gcc || brew upgrade gcc || true
run: |
brew install gcc@${GCC_V} || brew upgrade gcc@${GCC_V} || true
brew link gcc@${GCC_V}
gfortran-${GCC_V} --version
- name: Install Dependencies
run: |
pip3 install --prefer-binary --no-clean --disable-pip-version-check --progress-bar off lxml fypp
brew install -f --force-bottle --keep-tmp ford
type -a ford
ford --version
gfortran --version
gfortran-${GCC_V} --version
- name: Skip graph and search unless deploying
if: github.ref != 'refs/heads/master' && ! startsWith( github.ref, 'refs/tags/' )
run: |
sed -i .bak 's/^[[:blank:]]*graph: *[Tt]rue/graph: false/' "${FORD_FILE}"
echo "::set-env name=MAYBE_SKIP_SEARCH::--no-search"
echo "MAYBE_SKIP_SEARCH=--no-search" >> $GITHUB_ENV
- name: Build Docs
run: |
git fetch --all --tags
Expand Down
19 changes: 19 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,25 @@ Alternatively, you can build using provided Makefiles:
make -f Makefile.manual
```

## Limiting the maximum rank of generated procedures

Stdlib's preprocessor (fypp) by default generates specific procedures for arrays of all ranks, up to rank 15.
This can result in long compilation times and, on some computers, exceeding available memory.
If you know that you won't need all 15 ranks, you can specify the maximum rank for which the specific procedures will be generated.
For example, with CMake:

```sh
cmake -B build -DCMAKE_MAXIMUM_RANK=4
cmake --build build
cmake --build build --target test
```
or as follows with `make`:

```sh
make -f Makefile.manual FYPPFLAGS=-DMAXRANK=4
```
Note that currently the minimum value for maximum rank is 4.

## Documentation

Documentation is a work in progress (see issue #4) but is currently available at https://stdlib.fortran-lang.org.
Expand Down
2 changes: 2 additions & 0 deletions doc/specs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,11 @@ This is and index/directory of the specifications (specs) for each new module/fe

## Experimental Features & Modules

- [bitsets](./stdlib_bitsets.html) - Bitset data types and procedures
- [error](./stdlib_error.html) - Catching and handling errors
- [IO](./stdlib_io.html) - Input/output helper & convenience
- [linalg](./stdlib_linalg.html) - Linear Algebra
- [logger](./stdlib_logger.html) - Runtime logging system
- [optval](./stdlib_optval.html) - Fallback value for optional arguments
- [quadrature](./stdlib_quadrature.html) - Numerical integration
- [stats](./stdlib_stats.html) - Descriptive Statistics
Expand Down
Loading