Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
7a158a1
Add treesitter Fortran frontend
sergisiso Sep 9, 2025
46f2819
Merge remote-tracking branch 'origin/master' into treesitter
sergisiso Nov 14, 2025
42e77b9
Encapsulate fparser2 codeblocks in its own CodeBlock subclass
sergisiso Nov 14, 2025
28aa8ad
Add frontend config and flag options to psyclone cli
sergisiso Nov 15, 2025
beedd2a
Start encapsulating fparser2 so it is not imported when not needed
sergisiso Nov 27, 2025
eaf572d
Bring to master
sergisiso Dec 27, 2025
426f6fe
Fix tests
sergisiso Jan 7, 2026
e4be692
Fix tests and flake8
sergisiso Jan 7, 2026
4c2e6b7
Reformat FortranReader docstring
sergisiso Jan 7, 2026
1faaf6b
Add treesitter dependencies to setup.py and fix typing issues
sergisiso Jan 8, 2026
a19d443
Bring to master
sergisiso Feb 25, 2026
6a56166
Improve Fortran frontend comments and method names
sergisiso Feb 25, 2026
b74e813
Temporary comment out assert
sergisiso Feb 25, 2026
4e68bf9
Recover fparser2 functionallity of providing the source name by using…
sergisiso Feb 25, 2026
4cfe7b2
#3351 Add initial treesitter frontend tests
sergisiso Feb 26, 2026
5e09282
Bring to master
sergisiso Mar 2, 2026
8e911f8
#3083 Add tests
sergisiso Mar 2, 2026
843c3a6
#3083 Add tests for missing coverage
sergisiso Mar 17, 2026
baf9d51
#3083 Add treesitter module handler
sergisiso Mar 17, 2026
03fa677
#3083 Bring to master
sergisiso Mar 17, 2026
f16f8aa
#3083 Remove filename argument from generate_psyir
sergisiso Mar 17, 2026
e5ada54
#3083 Fix typehint
sergisiso Mar 17, 2026
3a324a6
Merge remote-tracking branch 'origin/master' into treesitter
sergisiso Mar 17, 2026
0204700
Bring to master
sergisiso Mar 18, 2026
25c15ca
#3083 Improve support for modules
sergisiso Mar 19, 2026
ed4ab9c
#3083 Simplify and test treesitter codeblock generation
sergisiso Mar 19, 2026
a570885
#3083 Improve treesitter codeblock and its tests
sergisiso Mar 19, 2026
aba4bb6
#3083 Improve treesitter test code coverage
sergisiso Mar 19, 2026
ad2752d
Merge remote-tracking branch 'origin/master' into treesitter
sergisiso Mar 19, 2026
983b205
Merge remote-tracking branch 'origin/master' into treesitter
sergisiso Mar 23, 2026
2c437dd
#3083 Let Codeblock accept one or more nodes as argument
sergisiso Mar 24, 2026
ef504ff
#3083 Split generate_parse_tree method into two methods: one for sour…
sergisiso Mar 24, 2026
69c0039
#3351 Update copyright, docstrings and setup.py
sergisiso Mar 25, 2026
6efffc3
#3351 Handle none-utf-8 characters in the treesitter frontend and oth…
sergisiso Mar 25, 2026
883f40d
#3351 Rename get_ast_nodes to parse_tree_nodes
sergisiso Mar 26, 2026
f5bfd73
#3083 Add Codeblock create method that works as a factory of the code…
sergisiso Mar 27, 2026
fa0eab2
#3083 Replace uses of codeblock subclasses by a generic codeblock.create
sergisiso Mar 27, 2026
7729525
#3083 Replace use of CodeBlock parse_tree_nodes with get_fortran_line…
sergisiso Mar 27, 2026
ce82005
#3083 Improve test coverage
sergisiso Mar 27, 2026
d77ae63
#3083 Improve test coverage
sergisiso Mar 27, 2026
e6b21e4
#2543 Improve developers guide PSyIR frontends and backends section
sergisiso Mar 27, 2026
320d433
Merge branch 'master' into treesitter
sergisiso Apr 8, 2026
233ab09
Merge branch 'master' into treesitter
sergisiso Apr 9, 2026
4d9f501
#3083 Improve PSyIR developer guide documentation
sergisiso Apr 10, 2026
7ba21b6
#3083 Fix comments and docstring in CodeBlock and the frontends
sergisiso Apr 10, 2026
9919809
Merge remote-tracking branch 'origin/master' into treesitter
sergisiso Apr 10, 2026
ccd2d3c
Add support for sentinel_infix_content in UnknownDirectives
sergisiso Apr 14, 2026
746bac6
Bring to master
sergisiso Apr 15, 2026
0ea1059
Improve UnknownDirective error messages and docstrings
sergisiso Apr 15, 2026
389a3bf
#3351 update changelog
arporter Apr 15, 2026
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
7 changes: 4 additions & 3 deletions .github/workflows/compilation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ jobs:
# Uncomment the below to use the submodule version of fparser rather
# than the latest release from pypi.
pip install external/fparser
pip install .[test,psydata,doc]
pip install .[test,psydata,doc,treesitter]
- name: Unit tests with compilation - gfortran
run: |
. .runner_venv/bin/activate
Expand Down Expand Up @@ -177,5 +177,6 @@ jobs:
- name: Test reasonable psycloning times for complex files
run: |
. .runner_venv/bin/activate
# Fail if it takes more than 15s
timeout -s INT 15s psyclone /archive/psyclone-tests/latest-run/slow_files/ukca_aero_ctl.F90
# Fail if it takes more time than expected
timeout -s INT 12s psyclone /archive/psyclone-tests/latest-run/slow_files/ukca_aero_ctl.F90
timeout -s INT 0.5s psyclone --frontend treesitter /archive/psyclone-tests/latest-run/slow_files/ukca_aero_ctl.F90
2 changes: 1 addition & 1 deletion .github/workflows/lfric_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ on:
push

env:
LFRIC_APPS_HASH: 948b9ec1a7ae6ef110b97ed45ced8d4b71079f34
LFRIC_APPS_HASH: d8cab8417d873eb686e7fe74707da03742eaa9d9
PYTHON_VERSION: "3.14"
GNU_TOOLCHAIN: gnu14_openmpi
NVHPC_TOOLCHAIN: nvhpc26_3_openmpi
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/python-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ jobs:
# than the latest release from pypi.
# pip install external/fparser
pip install .[doc]
pip install .[test]
pip install .[test,treesitter]
- name: Lint with flake8
run: |
# Stop the build if there are Python syntax errors or undefined names.
Expand Down
3 changes: 3 additions & 0 deletions changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
3) PR #3351 towards #3083. Adds scaffolding for new Treesitter-based
frontend.

2) PR #3401 for #3400. Fixes a frontend issue causing issues with NEMO
master branch.

Expand Down
2 changes: 1 addition & 1 deletion doc/developer_guide/APIs.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1025,7 +1025,7 @@ coarse mesh.
Lowering
--------

As described in :ref:`psy_layer_backends`, the use of a PSyIR backend to
As described in :ref:`uplifting-lowering`, the use of a PSyIR backend to
generate code for the LFRic PSy layer requires that each LFRic-specific
node be lowered to 'language-level' PSyIR. This requires that each node
have the ``lower_to_language_level()`` method implemented.
Expand Down
2 changes: 1 addition & 1 deletion doc/developer_guide/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Developer Guide

psyir
psyir_symbols
psyir_backends
psyir_frontends_backends
psykal
module_manager
APIs
Expand Down
Loading
Loading