Skip to content

Commit

Permalink
Merge branch 'string-list-new' of https://github.com/arjenmarkus/stdlib
Browse files Browse the repository at this point in the history
… into linked-list-new
  • Loading branch information
arjenmarkus committed Dec 28, 2023
2 parents e23b1ea + ca684ae commit b5e41c1
Show file tree
Hide file tree
Showing 76 changed files with 3,868 additions and 711 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
gcc_v: [9, 10, 11] # Version of GFortran we want to use.
gcc_v: [10, 11, 12, 13] # Version of GFortran we want to use.
build: [cmake]
include:
- os: ubuntu-latest
Expand Down
36 changes: 15 additions & 21 deletions .github/workflows/doc-deployment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,6 @@ on: [push, pull_request]
env:
LANG: "en_US.UTF-8"
LC_ALL: "en_US.UTF-8"
HOMEBREW_DISPLAY_INSTALL_TIMES: "ON"
HOMEBREW_NO_ANALYTICS: "ON"
HOMEBREW_NO_AUTO_UPDATE: "ON"
HOMEBREW_NO_BOTTLE_SOURCE_FALLBACK: "ON"
HOMEBREW_NO_GITHUB_API: "ON"
HOMEBREW_NO_INSTALL_CLEANUP: "ON"
PIP_DISABLE_PIP_VERSION_CHECK: "ON"
PIP_NO_CLEAN: "ON"
PIP_PREFER_BINARY: "ON"
Expand All @@ -19,45 +13,45 @@ env:

jobs:
Build-API-Docs:
runs-on: macos-latest
env:
GCC_V: 10
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v1
with:
fetch-depth: 0 # Full history to get tag and commit info
- name: Install GFortran macOS
run: |
brew install gcc@${GCC_V} || brew upgrade gcc@${GCC_V} || true
brew link gcc@${GCC_V}
gfortran-${GCC_V} --version
- name: Install Dependencies
python-version: '3.x'

- 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
pip install -v ford==6.1.10
pip install fypp
python --version
ford --version
gfortran-${GCC_V} --version
fypp --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}"
sed -i 's/^[[:blank:]]*graph: *[Tt]rue/graph: false/' "${FORD_FILE}"
echo "MAYBE_SKIP_SEARCH=--no-search" >> $GITHUB_ENV
- name: Build Docs
run: |
git fetch --all --tags
ford -r $(git describe --always) --debug ${MAYBE_SKIP_SEARCH} "${FORD_FILE}"
- name: Upload Documentation
uses: actions/upload-artifact@v2
with:
name: FORD-API-docs
path: ./API-doc/

- name: Broken Link Check
uses: technote-space/broken-link-checker-action@v1
with:
TARGET: file://${{ github.workspace }}/API-doc/index.html
RECURSIVE: true
ASSIGNEES: ${{ github.actor }}

- name: Deploy API Docs
uses: peaceiris/actions-gh-pages@v3
if: github.event_name == 'push' && github.repository == 'fortran-lang/stdlib' && ( startsWith( github.ref, 'refs/tags/' ) || github.ref == 'refs/heads/master' )
Expand Down
80 changes: 80 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,83 @@
# Version 0.3.0

Full release notes available at [v0.3.0] tag.

[v0.3.0]: https://github.com/fortran-lang/stdlib/releases/tag/v0.3.0

- new modules `stdlib_hashmap_wrappers` and `stdlib_hashmap`
[#611](https://github.com/fortran-lang/stdlib/pull/611)
- new procedures in `stdlib_hashmap_wrappers`: `copy_key`, `copy_other`,
`fibonacci_hash`, `fnv_1_hasher`, `fnv_1a_hasher`, `free_key`,
`free_other`, `get`, `hasher_fun`, `operator(==)`, `seeded_nmhash32_hasher`,
`seeded_nmhash32x_hasher`, `seeded_water_hasher`, `set`, `key_type`,
`other_type`
- new procedures in `stdlib_hashmaps`: `chaining_hashmap_type`,
`hashmap_type`, `open_hashmap_type


Changes to existing scripts and modules

- change in script `doc-deployment.yml`
- update of the script
[#681](https://github.com/fortran-lang/stdlib/pull/681)
- change in script `fpm-deployment.sh`
- fixed a problem with `dat` and `npy` files in example dir not being deployed
[#713](https://github.com/fortran-lang/stdlib/pull/713)
- change in module `stdlib_bitsets`
- remove define assignment for `bitset_64` and `bitset_large`
[#727](https://github.com/fortran-lang/stdlib/pull/727)
- change in module `stdlib_hashmap_open`
- fix access violation in a type-bound procedure of `open_hashmap_type`
[#707](https://github.com/fortran-lang/stdlib/pull/707)
- change in module `stdlib_io_npy_load`
- fix various bugs
[#708](https://github.com/fortran-lang/stdlib/pull/708)
[#711](https://github.com/fortran-lang/stdlib/pull/711)
- change in module `stdlib_linalg`
- addition of `kronecker_product`
[#700](https://github.com/fortran-lang/stdlib/pull/700)
- change in module `stdlib_quadrature_gauss`
- fix erroneous gaussian quadrature points in `gauss_legendre`
[#660](https://github.com/fortran-lang/stdlib/pull/660)
- change in module `stdlib_sorting`
- addition of radix sort
[#712](https://github.com/fortran-lang/stdlib/pull/712)
- support for sorting arrays of `bitset_64` and of `bitset_large`
[#723](https://github.com/fortran-lang/stdlib/pull/723)
- change in module `stdlib_stats_distribution_exponential`
- convert `pdf_exp` and `cdf_exp` to `pure` functions
[#717](https://github.com/fortran-lang/stdlib/pull/717)
- change in module `stdlib_stats_distribution_normal`
- convert `rvs_norm` to an `impure elemental` function
[#665](https://github.com/fortran-lang/stdlib/pull/665)
- remove unused module `stdlib_error` from module `stdlib_stats_distribution_normal`
[#716](https://github.com/fortran-lang/stdlib/pull/716)
- remove support for manual make builds
[#657](https://github.com/fortran-lang/stdlib/pull/657)


Changes to the existing documentation

- change in README.md
[#656](https://github.com/fortran-lang/stdlib/pull/656)
[#659](https://github.com/fortran-lang/stdlib/pull/659)
[#715](https://github.com/fortran-lang/stdlib/pull/715)
[#725](https://github.com/fortran-lang/stdlib/pull/725)
- change in `stdlib_stats_distribution_normal.md`
- Improvement of the documentation
[#718](https://github.com/fortran-lang/stdlib/pull/718)
[#721](https://github.com/fortran-lang/stdlib/pull/721)
- change in `stdlib_stats_distribution_exponential.md`
- Improvement of the documentation
[#721](https://github.com/fortran-lang/stdlib/pull/721)
- change in the structure of the project `stdlib`
- extraction of the demo programs from the specs in the directory example
[#662](https://github.com/fortran-lang/stdlib/pull/662)
- move the directory `src/tests` to `test`
[#669](https://github.com/fortran-lang/stdlib/pull/669)
- fix various docs
[#663](https://github.com/fortran-lang/stdlib/pull/663)

# Version 0.2.1

Full release notes available at [v0.2.1] tag.
Expand Down
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ endif()

list(
APPEND fyppFlags
"-DWITH_CBOOL=$<BOOL:${WITH_CBOOL}>"
"-DWITH_QP=$<BOOL:${WITH_QP}>"
"-DWITH_XDP=$<BOOL:${WITH_XDP}>"
"-DPROJECT_VERSION_MAJOR=${PROJECT_VERSION_MAJOR}"
Expand Down
20 changes: 14 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,12 +87,12 @@ The following combinations are tested on the default branch of stdlib:

Name | Version | Platform | Architecture
--- | --- | --- | ---
GCC Fortran | 9, 10, 11 | Ubuntu 20.04 | x86_64
GCC Fortran | 9, 10, 11 | MacOS Catalina 10.15 | x86_64
GCC Fortran (MSYS) | 10 | Windows Server 2019 | x86_64
GCC Fortran (MinGW) | 10 | Windows Server 2019 | x86_64, i686
Intel oneAPI classic | 2021.1 | Ubuntu 20.04 | x86_64
Intel oneAPI classic | 2021.1 | MacOS Catalina 10.15 | x86_64
GCC Fortran | 10, 11, 12, 13 | Ubuntu 22.04.2 LTS | x86_64
GCC Fortran | 10, 11, 12, 13 | macOS 12.6.3 (21G419) | x86_64
GCC Fortran (MSYS) | 10 | Windows Server 2022 (10.0.20348 Build 1547) | x86_64
GCC Fortran (MinGW) | 10 | Windows Server 2022 (10.0.20348 Build 1547) | x86_64, i686
Intel oneAPI classic | 2021.1 | Ubuntu 22.04.2 LTS | x86_64
Intel oneAPI classic | 2021.1 | macOS 12.6.3 (21G419) | x86_64

The following combinations are known to work, but they are not tested in the CI:

Expand Down Expand Up @@ -199,6 +199,14 @@ To use `stdlib` within your `fpm` project, add the following lines to your `fpm.
stdlib = { git="https://github.com/fortran-lang/stdlib", branch="stdlib-fpm" }
```

> **Warning**
>
> Fpm 0.9.0 and later implements stdlib as a *metapackage*.
> To include the standard library metapackage, change the dependency to:
> `stdlib = "*"`.
>
> [see also](https://fpm.fortran-lang.org/spec/metapackages.html)
## Using stdlib in your project

The stdlib project exports CMake package files and pkg-config files to make stdlib usable for other projects.
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.2.1
0.3.0
3 changes: 2 additions & 1 deletion ci/fpm-deployment.sh
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,8 @@ find src -maxdepth 1 -iname "*.f90" -exec cp {} "$destdir/src/" \;
find test -name "test_*.f90" -exec cp {} "$destdir/test/" \;
find test -name "*.dat" -exec cp {} "$destdir/" \;
find example -name "example_*.f90" -exec cp {} "$destdir/example/" \;
find example -name "*.inc" -exec cp {} "$destdir/example/" \;
find example -name "*.dat" -exec cp {} "$destdir/" \;
find example -name "*.npy" -exec cp {} "$destdir/" \;

# Include additional files
cp "${include[@]}" "$destdir/"
Expand Down
9 changes: 9 additions & 0 deletions config/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,15 @@ set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" PARENT_SCOPE)
# Check for available features
# Note: users can overwrite the automatic check by setting the value at configure time
include(CheckFortranSourceRuns)
if (NOT DEFINED WITH_CBOOL)
check_fortran_source_runs(
"use, intrinsic :: iso_c_binding, only: c_bool; integer, parameter :: lk = kind(.true.)
if (c_bool == lk) stop 1
end"
WITH_CBOOL
)
set(WITH_CBOOL ${WITH_CBOOL} PARENT_SCOPE)
endif()
if (NOT DEFINED WITH_QP)
check_fortran_source_runs(
"if (selected_real_kind(33) == -1) stop 1; end"
Expand Down
1 change: 1 addition & 0 deletions config/template.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
@PACKAGE_INIT@

set("@PROJECT_NAME@_WITH_CBOOL" @WITH_CBOOL@)
set("@PROJECT_NAME@_WITH_QP" @WITH_QP@)
set("@PROJECT_NAME@_WITH_XDP" @WITH_XDP@)

Expand Down
1 change: 1 addition & 0 deletions doc/specs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ This is an index/directory of the specifications (specs) for each new module/fea

## Experimental Features & Modules

- [ansi](./stdlib_ansi.html) - Terminal color and style escape sequences
- [array](./stdlib_array.html) - Procedures for index manipulation and array handling
- [ascii](./stdlib_ascii.html) - Procedures for handling ASCII characters
- [bitsets](./stdlib_bitsets.html) - Bitset data types and procedures
Expand Down
Loading

0 comments on commit b5e41c1

Please sign in to comment.