Skip to content

Commit af993e5

Browse files
authored
Merge branch 'master' into 3471_get_option_fix
2 parents 2fb2e2d + 320a000 commit af993e5

80 files changed

Lines changed: 1073 additions & 761 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/lfric_test.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,8 +149,13 @@ jobs:
149149
rm -rf working-gh-ompoffload
150150
export BUILD_START="${SECONDS}"
151151
LFRIC_OFFLOAD_DIRECTIVES=omp ./build/local_build.py -v -j ${NUM_PARALLEL} -p psyclone-test \
152-
-w working-gh-ompoffload gungho_model
152+
-w working-gh-ompoffload gungho_model |& tee output.txt
153+
# Piping to tee ignores the errcode of the first command, make sure we account for it
154+
if [[ ${PIPESTATUS[0]} -ne 0 ]]; then
155+
exit ${PIPESTATUS[0]}
156+
fi
153157
export BUILD_ELAPSED=$((${SECONDS}-${BUILD_START}))
158+
${PSYCLONE_LFRIC_DIR}/aggregate_gpu_stats.sh output.txt
154159
cd applications/gungho_model/example
155160
rm -f timer.txt gungho_model-checksums.txt # In case there were from a previous run
156161
export OMP_NUM_THREADS=12

.github/workflows/python-package.yml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -83,12 +83,11 @@ jobs:
8383
# Uncomment the below to use the submodule version of fparser rather
8484
# than the latest release from pypi.
8585
# pip install external/fparser
86-
pip install .[doc]
86+
pip install -e .[test,doc]
8787
# Now we can check for warnings and broken links
88+
- run: cd doc; make doctest
8889
- run: cd doc; make html SPHINXOPTS="-W --keep-going"
8990
- run: cd doc; make linkcheck
90-
# TODO #2936: There are many doctest issues, so commenting out for now
91-
# - run: cd doc; make doctest
9291
build:
9392
if: ${{ github.repository != 'stfc/PSyclone-mirror' }}
9493
runs-on: ubuntu-latest
@@ -142,12 +141,12 @@ jobs:
142141
if: ${{ !(matrix.python-version == '3.9') }}
143142
run: |
144143
locale
145-
pytest -n auto --cov=psyclone --cov-report=xml src/psyclone/tests
144+
pytest -n auto --doctest-modules --cov=psyclone --cov-report=xml src/psyclone
146145
- name: Test with pytest and C Locale
147146
if: ${{ matrix.python-version == '3.9' }}
148147
run: |
149148
locale
150-
pytest -n auto --cov=psyclone --cov-report=xml src/psyclone/tests
149+
pytest -n auto --doctest-modules --cov=psyclone --cov-report=xml src/psyclone
151150
env:
152151
LC_ALL: C
153152
LANG: C

changelog

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,31 @@
1-
34) PR #3440. Update to use release 0.2.4 of fparser.
1+
5) PR #3431. Adds the force_private option to the OMPParallelTrans.
2+
3+
4) PR #3441 for #2936, #1220 and #2088. Fixes the doctests and adds
4+
them to the GHA CI.
25

6+
3) PR #3456 for #3446. Fix issues with CodeBlocks and routine names
7+
in the presence of comments.
8+
9+
2) PR #3450 for #3262. Updates the LFRic GPU scripts and aggregates
10+
the transformation statistics.
11+
12+
1) PR #3469. Extends the Module manager to have an extensible list
13+
of file extensions and includes x95 and x03 suffixes by default.
14+
15+
Release 3.3.0 29th June 2026
16+
17+
35) PR #3476 for #3475. Fixes OMPParallelLoopTrans to support the
18+
force_private keyword argument.
19+
20+
34) PR #3440. Update to use release 0.2.4 of fparser.
21+
322
33) PR #3467. Update CI compilers.
423

524
32) PR #3458 for #2721. Adds ArrayConstructor support into the PSyIR.
625

726
31) PR #3442. Extends Call.get_callee() to permit implicit reshaping
827
of arguments.
9-
28+
1029
30) PR #3451 towards #3449. Adds support for keeping 'ACC routine' and
1130
'OMP declare target' directives in existing code.
1231

@@ -48,9 +67,9 @@
4867

4968
16) PR #3422 for #440. Updates tests to use the Fortran backend to generate
5069
GOLoops in test suite.
51-
70+
5271
15) PR #3066 towards #2971. Moves ACCLoopTrans and OMPParallelLoopTrans
53-
into psyir.transformations.
72+
into psyir.transformations.
5473

5574
14) PR #3419 for #3418. Adds elseif output to the Fortran backend.
5675

doc/developer_guide/dependency.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -461,7 +461,7 @@ thread-private. Note that this code does not handle the usage of
461461
# the access information as well as from the symbol table
462462
# into account.
463463
access_sequence = var_accesses[signature]
464-
if symbol.is_array_access(access_info=access_info):
464+
if symbol.is_array_access(access_info=access_sequence):
465465
# It's not a scalar variable, so it will not be private
466466
continue
467467

@@ -504,7 +504,7 @@ until we find accesses that would prevent parallelisation:
504504
for next_statement in statements:
505505
# Add the variable accesses of the next statement to
506506
# the existing accesses:
507-
next_statement.reference_accesses(accesses)
507+
accesses = next_statement.reference_accesses()
508508
# Stop when the next statement can not be parallelised
509509
# together with the previous accesses:
510510
if not can_be_parallelised(accesses):
@@ -581,7 +581,7 @@ can be parallelised:
581581
.. testoutput::
582582
:hide:
583583

584-
Error: The write access to 'a(i,i)' and the read access to 'a(i + 1,i + 1)' are dependent and cannot be parallelised. Variable: 'a'.
584+
Error: The write access to 'a(i,i)' in 'a(i,i) = j + k' and the read access to 'a(i + 1,i + 1)' in 'a(i,i) = a(i + 1,i + 1)' are dependent and cannot be parallelised. Variable: 'a'.
585585

586586
.. _defusechain:
587587

doc/developer_guide/interface_example.py

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,4 @@ def some_function(filename, kernel_path, node=None):
3535
it can be raised by different errors.
3636
:raises GenerationError: same exception, raised by a different error.
3737
38-
For example:
39-
40-
>>> from psyclone.generator import generate
41-
>>> API="gocean"
42-
>>> alg, psy = generate(SOURCE_FILE, api=API)
43-
>>> alg, psy = generate(SOURCE_FILE, api=API, kernel_paths=[KERNEL_PATH])
44-
4538
'''

doc/developer_guide/module_manager.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,8 @@ which prints the filenames of all modules used in ``tl_testkern_mod``:
121121
.. testcode ::
122122
123123
mod_manager = ModuleManager.get()
124-
# Add the path to the PSyclone LFRic example codes:
124+
# Add the path to the LFRic module directories:
125+
mod_manager.add_search_path("../external/lfric_infrastructure/")
125126
mod_manager.add_search_path("../src/psyclone/tests/test_files/"
126127
"lfric")
127128
@@ -134,15 +135,14 @@ which prints the filenames of all modules used in ``tl_testkern_mod``:
134135
mod_info = mod_manager.get_module_info(module_name)
135136
print("Module:", module_name, os.path.basename(mod_info.filename))
136137
138+
137139
.. testoutput::
138140

139141
Module: argument_mod argument_mod.f90
140142
Module: constants_mod constants_mod.f90
141143
Module: fs_continuity_mod fs_continuity_mod.f90
142144
Module: kernel_mod kernel_mod.f90
143145

144-
145-
146146
FileInfo
147147
========
148148

doc/developer_guide/psyir_symbols.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ specialisations are possible:
337337
>>> # The following statement would fail because the initial_value doesn't
338338
>>> # match the datatype of the symbol:
339339
>>> # sym2.specialise(DataSymbol, datatype=ScalarType.integer_type(),
340-
... initial_value=3.14)
340+
>>> # initial_value=3.14)
341341
>>> # The following statement is valid and initial_value is set to 3
342342
>>> # (and is_constant will default to False):
343343
>>> sym2.specialise(DataSymbol, datatype=ScalarType.integer_type(), initial_value=3)

doc/developer_guide/transformations.rst

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,6 @@
3333
.. -----------------------------------------------------------------------------
3434
.. Written by R. W. Ford, A. R. Porter, S. Siso and N. Nobre, STFC Daresbury Lab
3535
36-
.. testsetup::
37-
38-
# Define GOCEAN_SOURCE_FILE to point to an existing gocean 1.0 file.
39-
GOCEAN_SOURCE_FILE = ("../src/psyclone/tests/test_files/"
40-
"gocean1p0/test11_different_iterates_over_one_invoke.f90")
41-
# Define NEMO_SOURCE_FILE to point to an existing nemo file.
42-
NEMO_SOURCE_FILE = ("../examples/nemo/code/tra_adv.F90")
43-
4436
4537
Transformations
4638
###############

doc/reference_guide/doxygen.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ PROJECT_NAME = "Reference Guide"
4848
# could be handy for archiving the generated documentation or if some version
4949
# control system is used.
5050

51-
PROJECT_NUMBER = 3.3.1-dev
51+
PROJECT_NUMBER = 3.3.0
5252

5353
# Using the PROJECT_BRIEF tag one can provide an optional one line description
5454
# for a project that appears at the top of each page and should give viewers a

doc/user_guide/gocean1p0.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -196,8 +196,8 @@ Example
196196
+++++++
197197

198198
PSyclone is distributed with a full example of the use of the
199-
GOcean Library. See ``<PSYCLONEHOME>/examples/gocean/shallow_alg.f90``. In what
200-
follows we will walk through a slightly cut-down example for a
199+
GOcean Library. See ``<PSYCLONEHOME>/examples/gocean/eg1/shallow_alg.f90``.
200+
In what follows we will walk through a slightly cut-down example for a
201201
different program.
202202

203203
The following code illustrates the use of dl_esm_inf for constructing an

0 commit comments

Comments
 (0)