Mentions légales du service

Skip to content
Snippets Groups Projects
changelog 108 KiB
Newer Older
Sergi Siso's avatar
Sergi Siso committed
	1) PR #2477 for #2463. Add support for Fortran Namelist statements.

	2) PR #2367 for #2296. Extends ModuleInfo so that it can be queried
	for the Routines contained in a Module.

	3) PR #2435 for #2422. Add PSyIR GenericInterface to capture the
Joerg Henrichs's avatar
Joerg Henrichs committed
	information about which routines implement a specific interface symbol.

	4) PR #2457 for #2455. Splitting and renaming DynDofMaps from
	dynamo0p3.py.
Sergi Siso's avatar
Sergi Siso committed
	5) PR #2506. Update test and integration test dependencies.

	6) PR #2508 for #2507. Add a symbols_to_ignore argument to some
	symbol_table operations and use it to fix inline transformation issues.

	7) PR #2505 towards #1010. Use the PSyIR Fortran backend for LFRic
	loops and anything inside them.

	8) PR #2516 for #2513. Resolve flake8 issues and make it the only CI
	linter.

	9) PR #2512 towards #11. Adds comments giving the reason for any
	CodeBlocks in the generated code.

	10) PR #2474 for #2409. Adds comments to the generated LFRic PSy
	layer describing any built-in kernels.

	11) PR #2511 for #2510. Array2Loop transformations avoid character arrays
	unless requested in the transformation options.

Sergi Siso's avatar
Sergi Siso committed
release 2.5.0 14th of February 2024

	1) PR #2199 for #2189. Fix bugs with missing maps in enter data
	2) PR #2269 for #2268. Rename DynInvokes to LFRicInvokes and move
	to own module.
	3) PR #2255 for #2237. The derived type intial values are not lost
	anymore, and the "extends" or "abstract" keywords cause a
	UnknownFortranType.
Andrew Porter's avatar
Andrew Porter committed
	4) PR #1822 towards #1338. Adds support for the OMP tasking
	directive and transformation.

	5) PR #2346 for #2345. Make the integration tests use a parameterised
	version of python, currently 3.11.4. Pin pylint to < 3.0

	6) PR #2325 for #1947. Adds support for OMP/ACC Atomics and OMP Simd
	directives.

	7) PR #2355 for #2347. Adds testing to demonstrate that the new LFRic
	metadata handling works for multi-precision kernels.

	8) PR #2342 for #2340. Fix issues with VERIFY, ISHFTC and PRECISION
	intrinsics and introduce a NEMO passthrough test.

	9) PR #2350 for #2349. Update to HEAD of fparser master to get
	fparser1 fix for parsing WHERE.

	10) PR #2285 for #2284. Split LFRicRunTimeChecks from dynamo0p3.py.

	11) PR #2313 towards #2197. LFRic PSyLayer uses array pointers instead
	of derived types accessors in the kernel/builtin arguments.

	12) PR #2321 for #2319. Refactors DynStencil into a dataclass named
	LFRicArgStencil.

Sergi Siso's avatar
Sergi Siso committed
	13) PR #2361 for #2360. Fix LFRic Loop.independent_iterations with domain
	information and allow sequential directives on loops with dependencies.

	14) PR #2365 for #2351. Fix ref2arrayrange allocated bug.
Sergi Siso's avatar
Sergi Siso committed
	15) PR #2363 for #1254. Fortran FORMAT, ENTRY and IMPLICIT statements
	produce CodeBlocks instead of losing the statements.

	16) PR #2357 for #2353. Adds the ACC-loops NEMO transformation script
	and includes its use in the integration testing.

Sergi Siso's avatar
Sergi Siso committed
	17) PR #2380 and #2378 for #2369. Add PSyIR node.sibilings property.
	18) PR #2375 for #2374. Bug fix for LFRic kernel-extraction driver
	creation for netcdf.

Sergi Siso's avatar
Sergi Siso committed
	19) PR #2385. Update tests to include python 3.12.

	20) PR #2377 for #2368. Adds optional 'depth' argument to Node.walk().

	21) PR #2362 for #2243 and #2312. Add support for Fortran save statements.

	22) PR #2379 for #2370. Adds a Node.get_sibling_lists() method.
Sergi Siso's avatar
Sergi Siso committed
	23) PR #2366 towards #342. Improve symbols and tighten-up ACCRoutineTrans
	24) PR #2383 towards #2256. Adds support for 'DO CONCURRENT' in the
	fparser2 frontend.

	25) PR #2100 for #2091. Renames DynKern to LFRicKern and moves its
	implementation to domain/lfric.

	26) PR #2391 for #2390. Fix bug in generator.py error message.

	27) PR #2364 towards #1941. Moves map of LFRic precisions to
	config. file.

	28) PR #2376 for #1525. Add lowering methods to all LFRic Built-ins.

	29) PR #2406 for #2404. Fixes bug in setop_random kernel (was only
	filling the lowest vertical level).

	30) PR #2389 toward #928. Adds support for field_bcs_kernel when
	parsing kernels using kernel_interface.py. This is required when
	validating LFRic kernel arguments.

Sergi Siso's avatar
Sergi Siso committed
	31) PR #2388 for #2323. Rename the array reduction 2code transformations
	to use the 2loop postfix and improve their implementation. 

	32) PR #2400 for #1508. Add flag/config option to disable backend checks.

	33) PR #2428 for #2427. Fixes bug in MaxVal2LoopTrans.

	34) PR #2430 towards #2421. Ensures local symbol table is merged into
	routine scope following an inline transformation. (Works around
	#2424.)

	35) PR #2412 for #2411. Remove NemoKern and add the 'routine' profiling
	option to the psyclone command.

	36) PR #2401 for #2261. Split DynLoop out of dynamo0p3 and rename.

Sergi Siso's avatar
Sergi Siso committed
	37) PR #2387 towards #1799. Add support for querying the datatype of
	operations.

	38) PR #2434 for #2433. Bug fix for process_nemo.py script to
	aggregate -I arguments.

	39) PR #2426 for #2254. Make LFRic PSyAD test harness use LFRic
	logging API.

	40) PR #2273 for #2272. Split LFRicFields into domain/lfric module.

	41) PR #2393 for #2392. Split and rename DynKernMetadata into
	into domain/lfric module (LFRicKernMetadata class).
Sergi Siso's avatar
Sergi Siso committed
	
	42) PR #2240 for #2132. Update Integration test software stack.
	43) PR #2454 for #2418. Fix OMPTaskTrans attempts to inline IntrinsicCalls.

Sergi Siso's avatar
Sergi Siso committed
	44) PR #2459 for #2458. Fix broken documentation links.

	45) PR #2472 for #2471. Update all copyright dates to include 2024 and
	add utils/update_copyright.sh script to do this task.

	46) PR #2443 for #2442. Fix bug for PSy-layer generation involving CMA
	operators in the LFRic API.

Sergi Siso's avatar
Sergi Siso committed
	47) PR #2481 for #1192. Unpin jsonschema version.

	48) PR #2470 for #2468 and towards #237. Fixes Sphinx link-check errors
	for links to anchors in User Guide and also updates the name of the
	dl_esm_inf library and updates associated links (remove references to
	puma).

	49) PR #2420 towards #1786. Add and update Built-ins to support
	mixed precision in the LFRic API: real to real, real to integer
	and integer to real field types.

	50) PR #2480 for #2479. Updates .gitignore for files generated by
	examples.

	51) PR #2486 for #2419. Renames Unknown[Fortran]Type to
	Unsupported[Fortran]Type and DeferredType to UnresolvedType.

	52) PR #2482 towards #2062. Adds a new 'origin_string()' method
	to Node to return information on the origin (line number and file
	name) of a PSyIR node.

	53) PR #2439 for #2105. Use maxval2loop and atomics to parallelise
	NEMO stpctl.f90.

Sergi Siso's avatar
Sergi Siso committed
	54) PR #2493 for #2492. Fix bug in NemoOuterArrayRange2LoopTrans

Joerg Henrichs's avatar
Joerg Henrichs committed
	55) PR #2465 towards #2004. Move same_range functionality to
	ArrayMixin and other improvements.

Sergi Siso's avatar
Sergi Siso committed
	56) PR #2372 towards #1960. Fix bugs on Fortran WHERE canonicalisation. 

Sergi Siso's avatar
Sergi Siso committed
	57) PR #2489 for #2488. Unify generic LoopFuseTrans and allow renaming
	the second loop variable for certain cases.

	58) PR #2423 for #2410. Split off and rename DynStencils to
	LFRicStencils in the LFRic API.

	59) PR #2490 towards #2447. Update PSyclone to use fparser 0.1.4 release.

	60) PR #2501 for #2447. Create PSyclone release 2.5.0.

Andrew Porter's avatar
Andrew Porter committed
release 2.4.0 29th of September 2023

	1) PR #1758 for #1741. Splits the PSyData read functionality into a
	standalone module to remove dependence on infrastructure for
	driver code.

	2) PR #1766 FOR #1764. Fixes various syntax errors in some of the
	Fortran test files.

	3) PR #1759 for #1752. Updates to GOcean examples so that F90FLAGS
	is used consistently and is also used when linking.

	4) PR #1700. Various improvements to the example NEMO processing
	scripts.

	5) PR #1762 for #1743. Ensures declaration of precision variables
	in PSyAD test harness.

	6) PR #1774 for #1773. Fixes syntax error in test Fortran file.

	7) PR #1620 for #1555. Create Algorithm Layer for a Kernel.

	8) PR #1767 for #1739. Fixes dep-analysis bug whereby CMA operator
	arguments to LFRic kernels were not given correct access value.

	9) PR #1763 for #1717. Fixes invalid adjoint names for subroutine
	and module.

	10) PR #1776 for #1775. Fixes post_region_code_gen and improves
	test fixtures.

	11) PR #1784 towards #1779. Removes the use of config-provided bounds
	from the NemoRange2Loop Transformation.

	12) PR #1765 for #1724. Remove kernel use statements from
	processed algorithm layer code.

	13) PR #1785 for #1771. Refactor algorithm-creation functionality.

	14) PR #1769 for #1721. Fixes bugs in use of sympy simplify() and
	expand().

	15) PR #1791 for #1780. Add setval_random built-in in LFRic API.

	16) PR #1778 for #1751. Add ReplaceInductionVariableTrans transformation.

	17) PR #1652 for #1645. Symbols representing LFRic BuiltIn Functors

	18) PR #1795 for #1583. Bug fix for PSyAD for expressions involving
	a unary minus.

	19) PR #1809. A few fixes for code style issues.

	20) PR #1803 for #1797. Adds support for logical variables to the
Sergi Siso's avatar
Sergi Siso committed
	PSyData API.
	21) PR #1804 for #637. Extends the dependence analysis to support
	LFRic built-in kernels.

	22) PR #1790 for #1787. Adds HoistLoopBoundsExprTrans transformation
	which hoists complex loop-bound expressions out of loops.

	23) PR #1811 for #1810. Separate LFRic LMA Operator infrastructure
	into its own file.

	24) PR #1808 for #1681. Extends PSyAD to reject functions.

	25) PR #1633 towards #1631. New implementation of kernel meta-data
	parser for GOcean API.

	26) PR #1821 for #1557. Extends PSyAD to support LFRic mixed-
	precision kernels.

	27) PR #1551 towards #1338. Add OpenMP Clauses and its referenced
	variables as part of the PSyIR tree.

	28) PR #1838 for #1704. Update replace_with method to take into
	account named arguments.

	29) PR #1847. Make a subSignature a Signature and allow
	Signature.to_language w/o arguments

	30) PR #1831 for #1735. Changes the directory structure in the
	test LFRic infrastructure to mimic that in the full LFRic
	infrastructure. Alter the testing infrastructure to use the
	Makefile to build the LFRic library.

	31) PR #1814 towards #924. Add new PSyIR InlineTransformation.

	32) PR #1819 for #1815. Forbid OMPTarget regions from containing
	CodeBlock nodes.
	33) PR #1830 for #1828. Fixes to enable explicit OpenACC Loop
Sergi Siso's avatar
Sergi Siso committed
	parallelism with UM.

	34) PR #1855 for #1840. Fix bug with dependency analysis when an
	expression has the same array reference with and without indices.
	35) PR #1827 for #1826. Adds support for SIR intrinsics.

	36) PR #1839 for #1782. Adds a -api option to the PSyAD script.

	37) PR #1844 towards #1823. Makes module inlining work in LFRic
	when the same kernel is used multiple times.

	38) PR #1825 for #1576. Adds the Reference2ArrayRangeTrans
	transformation.

	39) PR #1846. Fixes to various docstrings in transformations.py
	and node.py.

	40) PR #1845 for #1813. Adds a standalone PSyData extraction
	library (that uses only Fortran IO).

	41) PR #1836 for #1834. Adds support for explicit array-range
	declarations to the dotproducttrans transformation.

	42) PR #1871 for #1870. Fixes typo in link in User Guide.

Sergi Sisó's avatar
Sergi Sisó committed
	43) PR #1875 for #1874. Remove pytest-pep257 dependency from setup.py

	44) PR #1860 for #1538. Fixes search for config file when
	`python setup.py install` used instead of pip and adds yaml config
	file to tell RTD to use pip and Python 3.8 (for interop. with
	SymPy).

	45) PR #1768 for #1711. Add initial Sum2CodeTrans transformation.

Andrew Porter's avatar
Andrew Porter committed
	46) PR #1885 for #1878. Update FortCL submodule to head of master to
	fix invalid-boz compilation errors with newer versions of gfortran.

	47) PR #1890 for #1889. Fix test to avoid temporary files being
	left after pytest run.

	48) PR #1850 towards #1799. Initial PSyIR node.datatype implementation
	to query the resulting datatype of a PSyIR subtree.

	49) PR #1869 for #1868. Extend PSyAD to make use of the
Sergi Sisó's avatar
Sergi Sisó committed
	Reference2ArrayRangeTrans.
	50) PR #1880 for #1865. Improves support for function calls in the
	PSyIR by ensuring the associated RoutineSymbol has the correct
	datatype.

Sergi Sisó's avatar
Sergi Sisó committed
	51) PR #1894 for #1893. Fix bug in is_upper/lower_bound for UnknownTypes.

	52) PR #1853 for #1829. Add OMP teams distribute parallel do directive
	and refactor OMPLoopTrans.

Sergi Sisó's avatar
Sergi Sisó committed
	53) PR #1900 for #1893. Fix bug in is_upper/lower_bound for non-typed
	Symbols.

	54) PR #1782 for #1496. Adds initial support for PSyAD test
	harness generation for LFRic kernels. Some issues remain.

	55) PR #1807 towards #1806. Adds PSyIR support for LFRic kernel
	metadata.

Sergi Siso's avatar
Sergi Siso committed
	56) PR #1906 for #1896. Update HoistLocalArrayTrans to avoid hoisting
	parameter arrays and, unless explicitly requested, device parallel routines.

	57) PR #1901 towards #1892 and #1898. Add support for storing and
	querying the index of a metadata argument.

	58) PR #1884 for #1882. Extends the inlining transformation to support
	inlining of functions.

	59) PR #1912 for #1851. Fixes pycodestyle (2.9) errors/warnings for
	with Python 3.10.

	60) PR #1899 towards #1823. Refactors KernelModuleInlineTrans so that
Sergi Sisó's avatar
Sergi Sisó committed
	the in-lining happens at transformation time rather than code-
	generation time.

	61) PR #1852 for #1750. Adds an option to VariablesAccessInfo to
	report/not report array arguments as first parameter to
	lbound/ubound/size as read access. This fixes several issues with the
	dependency tools.

	62) PR #1867 for #1861. Significantly improves test coverage,
	especially of the compilation-testing utilities.

Sergi Sisó's avatar
Sergi Sisó committed
	63) PR #1924 for #1923. Fix issues building Developer and Reference
	guides.

	64) PR #1913 for #1848. Fix issues with case-sensitivity in the
	SymbolTables.resolve_imports method.

	65) PR #1917 for #1916. Extends InlineTrans to support calls to
	routines in different Containers.

	66) PR #1940. Replace Python 3.10 with 3.11 in GHA test suite.

Andrew Porter's avatar
Andrew Porter committed
	67) PR #1943 for #1942. Fixes incorrect path in tutorial
	Makefile setup.

	68) PR #1905 for #1903. OpenMP schedule can be set to "none", which skips
	the schedule clause in the OpenMP directive. This is the new default in
	generic PSyIR (GOcean and LFRic still default to "static").

Sergi Siso's avatar
Sergi Siso committed
	69) PR #1892 towards #1824. get_kernel_schedule supports resolving
Sergi Siso's avatar
Sergi Siso committed
	interfaces (e.g. for the LFRic mixed precision kernels).

	70) PR #1911 for #1909. Update fparser dependency.
	71) PR #1908 for #1879. Completes the new meta-data parsing
	functionality for the LFRic API.

	72) PR #1918 for #1883. Updates kern_call_arg_list() (for LFRic) to
	use PSyIR. (Step towards using PSyIR in LFRic PSy-layer generation
	and required for PSyKE driver generation.)

	73) PR #1898 towards #1708. Extends PSyAD LFRic harness support to
	kernels with field arguments that contain geometry information.

	74) PR #1982 for #1981. Updates the GHA configuration to use
	Python 3.7 instead of 3.6.

Andrew Porter's avatar
Andrew Porter committed
	75) PR #1956 for #1955. Updates the tests/.pylintrc file to remove
	unsupported options.

	76) PR #1888 for #1783. Adds NEMO OpenMP transformation scripts
	to the examples.

	77) PR #1933 for #1902. Adds run-time checks when hoisting
	local work arrays.

	78) PR #1963 towards #1883. More work to improving the use of PSyIR
	in LFRic (as needed for PSyKE driver creation).

	79) PR #1964 for #1961. Adds lower_to_language_level to DynLoop to
	ensure loop variable names preserved in PSyKE driver creation.

	80) PR #1952 for #310. Adds support for ACCEnterData and ACCUpdate
	directives in the NEMO API.

Sergi Siso's avatar
Sergi Siso committed
	81) PR #1925 for #1832. Add a 'force' option to the ParallelLoopTrans.

	82) PR #1988 for #1507. Drop 'six' dependency and fix many pylint issues.
	83) PR #1968 towards #1823. Fixes additional issues with module-
	inlining in LFRic. (Interfaces, imported global variables and some
	validation problems.)

Andrew Porter's avatar
Andrew Porter committed
	84) PR #1996. Addendum to #1952 to cover missed lines.

	85) PR #1994 for #1986. Fix issues with LFRic OMP support by skipping
	dependence analysis for coloured loops.

	86) PR #1997 for #888. Updates the handling of the '-v'
	command-line flag for requesting version information. The
	psyclone script will now quit after outputting the version
	information.

Sergi Sisó's avatar
Sergi Sisó committed
	87) PR #1970 for #1966. Add an overwrite_datatype option to
	StructureReferences for when an API knows what type a DeferedType is.

	88) PR #2003. Pins the Sphinx version to < 6.1 to avoid a bug in
	the link-checking functionality. Also corrects various links to
	the VirtualBox site.

	89) PR #1972 for #1967. Ensures that proper Signatures are created
	for structure accesses that appear in LFRic kernel arguments.

	90) PR #1907 for #1366. Introduces the IntrinsicCall node and the
	IntrinsicSymbol symbol. Adds ALLOCATE, DEALLOCATE and RANDOM_NUMBER
	intrinsics.
Andrew Porter's avatar
Andrew Porter committed
	91) PR #2007 for #2000. Removes pinning of Sphinx version in setup.py
	now that the linkcheck bug has been fixed in a new release.

	92) PR #1976 for #1974. Fixes issues with literal constants and
	array accesses in VariableAccessInfo for the LFRic API.

Andrew Porter's avatar
Andrew Porter committed
	93) PR #2015 for #2012. Fixes crash in access-information
	collection when there is an LFRic 'domain' loop.

Andrew Porter's avatar
Andrew Porter committed
	94) PR #2014. Extends psyir_from_source() so that the caller
	can specify if the Fortran is in fixed format.

	95) PR #1993 towards #1953. Extends the LFRicKernelMetadata
	class to support stencil specifications.

	96) PR #2020 for #2019. Fix inconsistencies in handling of precision
	97) PR #2023 for #1975. Extends DynReferenceElement to ensure that
	it adds related kernel arguments to KernCallArgList as PSyIR.

	98) PR #2030 for #1529. Update eg19 Makefile so that compilation
	works.

	99) PR #2029 for #1567. Fix visibility issues with imported symbols.

	100) PR #2024 for #1984. Fixes the dependence analysis for the case
	where a single element of an array of fields is passed as an
	argument to an LFRic built-in.

	101) PR #1980 for #1978. Updated LFRic Infrastructure files in
	PSyclone repository and PSyData libraries to support 32- and
	64-bit mixed precision.

	102) PR #2034 for #1864: Add support for adjoint test-harness
	generation for kernels with operator arguments.

	103) PR #2038 for #1998. Adds support for r_tran_operator_type to
	LFRic (dynamo0.3).

	104) PR #2036 for #2033. Splits core/access_info into its constiutent
	classes and moves utility functions out of the DependencyTools
	module.

	105) PR #2056 for #2055. Extends the Reference2ArrayRange
	transformation such that it rejects any References that are args to
	the DEALLOCATE intrinsic.

	106) PR #2047 for #2046. Adds a 'return' statement to the
	lower_to_language_level() methods.

	107) PR #2032 for #92. Forbid include statements (which should have been
	processed by the preprocessor or fparser before PSyclone).

Sergi Siso's avatar
Sergi Siso committed
	108) PR #1973 for #1904. Fix inlining issues with complex access
	expressions (e.g. array offsets and partial derived types accesses).

	109) PR #2044 for #1295. Changes LFRic psyir to avoid use of exec
	and ensures that LFRicConstants is not created *before* the config.
	file has been read.

	110) PR #2066 for #1587. Introduces new DebugWriter visitor for
	fast generation of Fortran-like content in error messages.

	111) PR #1914 for #1891. Improves error handling when there are
	undeclared arguments.

	112) PR #2067 towards #1618. Fixes bugs relating to gh_sum for
Sergi Siso's avatar
Sergi Siso committed
	scalars and use of any_space_* spaces in the new metadata
	handling. Also corrects a (tested) docstring so that it sets
	up a Config object first.

	113) PR #2063. Improve search for optimisation script and handling
	of any errors when it is imported.

	114) PR #2071 for #2042. Adds support for the Fortran 'parameter'
	statement to the fparser2 frontend.

	115) PR #2068 for #352 and #1422. Adds a 'DoWhile' node to represent
	Fortran DO WHILE and unbounded DO loops.

	116) PR #2072 tidying of IfBlock following #2068.

	117) PR #2061 towards #598. Improves the use of dependence analysis
	in the OMP transformations to infer which variables are firstprivate
	in some cases.

	118) PR #2059 for #2057. Adds kernel-extraction support for the
	NEMO API.

	119) PR #2073. Fixes typos across the repo.

	120) PR #2025 for #1483. Adds driver generation for LFRic kernel
	extraction (PSyKE).

	121) PR #2048 towards #1772. Implements a new MetadataToArgumentsRules
	class using the new LFRic metadata functionality.

Sergi Siso's avatar
Sergi Siso committed
	122) PR #2085 for #840. Add support for minval, maxval and sum Fortran
	intrinsics.

	123) PR #2077 for #2075. Specify LFRic built-in metadata descriptions
	within LFRic built-in classes.

	124) PR #2104 towards #1618. Fix invalid use of subroutine instead of
	function in an LFRic example algorithm.

	125) PR #2098 towards #2091. Split off and rename DynKernCallFactory
	to LFRicKernCallFactory.

	126) PR #2103 towards #1618. Support Fortran interfaces whose symbols
Sergi Siso's avatar
Sergi Siso committed
	are already declared.

	127) PR #2099. Update of tutorials.

	128) PR #1937 for #1935. Adds all LFRic TL and adjoint kernels under
	examples.

	129) PR #2112 towards #1618. Splits LFRic eg11 source file into
	driver and algorithm.

	130) PR #2118 for #2117. Ensure build flags passed to LFRic
	infrastructure

	131) PR #2026 for #1991. Improves the support for building a
	standalone driver for an extracted kernel. All required modules are
	now inlined into the driver source file.

	132) PR #2086 for #2013. Adds support for logical scalar arguments
	in PSyAD test harness generation.

	133) PR #2060 towards #1618. Adds an optional code path for LFRic
	Algorithm-layer handling using the new metadata processing
	functionality.

	134) PR #2123. Updates GOcean project link in UG.

	135) PR #2121 for #2109. Updates PSyclone to fparser 0.1.1 release.

	136) PR #2128 towards #1618. Bug fix in LFRicAlgInvoke2PSyCallTrans
	for kernels requiring more than 1 quadrature object.

	137) PR #967 towards #2132. Add GH workflows for self-hosted runner.

Sergi Siso's avatar
Sergi Siso committed
	138) PR #2084 for #1801. Improve handling of assume-shape arrays with
	specified bounds.

	139) PR #2129 towards #1618. Bug fix for -ve Literal args to kernels
	in PSyIR handling of LFRic Alg Layer.

	140) PR #2133 for #2126. Add RTD YAML config files to allow the
	documentation (user guide, developer guide etc) to be managed
	separately and to allow software environments other than the
	default to be specified.

	141) PR #2092 for #2008. Refactors Symbol interfaces and adds support
	for Static/SAVE variables.

Sergi Siso's avatar
Sergi Siso committed
	142) PR #2089 for #2005. Add a SymbolTable merge method and improve symbol
	renaming capabilities.

	143) PR #2141 towards #1618. Add support for Symbols imported from
	Containers with renaming.

	144) PR #2136 for #2134. Fix compilation tests bug with assumed shape arrays.

	145) PR #2115 for #2114. Fortran allocate with type-spec becomes a CodeBlock.
	146) PR #2130 towards #1161. Adds support for HUGE and TINY intrinsics.

	147) PR #2095 towards #2091. Split off and rename DynInvoke to LFRicInvoke.

	148) PR #2146 for #2145. Skip CI link checks for mybinder as they
	occasionally fail.

	149) PR #2135 towards #1618. Adds (limited) PSyIR support for Fortran
	interfaces without a name.

	150) PR #2152 for #2149. Adds checks in Literal constructor that
	supplied string is a valid format.

	151) PR #2143 for #2043. Adds basic PSyIR support for Fortran COMMON
	blocks.

	152) PR #2150 towards #2132. Improve self-hosted CI workflow.

	153) PR #2090 for #1545. Split off and rename DynCollection to
	LFRicCollection.

	154) PR #2140 for #2139. Encapsulates the result of the dependency-
	analysis' get_in_out_parameters() in a single class.

	155) PR #2160 for #2159. Adds support for LFRic kernel arguments with two
	new precision names (r_bl and r_phys).

Andrew Porter's avatar
Andrew Porter committed
	156) PR #2170 for #2169. Correct import of fparser2
	Declaration_Construct.

	157) PR #2131 towards #1618. Improves the error handling when we find
	a Routine with the same name as an LFRic Builtin.

Sergi Siso's avatar
Sergi Siso committed
	158) PR #2147 for #2119. Add elemental and pure routine attributes.

	159) PR #2181 for #2175. Bug fixes for processing of Fortran
	declarations and integer literals.

	160) PR #2107 for #2106. Improvements to NEMO processing scripts and
	inclusion in Integration Testing.

	161) PR #2198 for #2194. Fixes handling of a function where the
	precision of the result is only defined within the function.

	162) PR #2187 towards #1618. Remove builtin use statements when
	lowering.

Andrew Porter's avatar
Andrew Porter committed
	163) PR #2191 for #2185. Fix element order used in PSyAD test
	harness.

	164) PR #2208 towards #2205. Ensures that functions or subroutines
	that CONTAIN other functions/subroutines are put into a CodeBlock.

Andrew Porter's avatar
Andrew Porter committed
	165) PR #2124 fir #2101. Refactors OpenMP inference of private/first-
	private variables and those requiring synchronisation.

Andrew Porter's avatar
Andrew Porter committed
	166) PR #2210 for #2206. Ensure symbol renaming included when deep-
	copying a symbol table.

	167) PR #2209 for #2204. Add support for EQV and NEQV and fix select
	case bug with logical comparisons.

	168) PR #2211 for #2183. Change PSyAD test-harness generation to use
	the same variable names as the TL kernel being tested.

	169) PR #2212 for #2203. Fix bug in PSyIR fparser2 frontend when
	DO WHILE contains normal DO loops.

	170) PR #2220 for #2219. Adds 'shared_with' argument to the
	node.ancestor() method.

Sergi Siso's avatar
Sergi Siso committed
	171) PR #2174 for #2171. Add support for obtaining the partial datatype
	of an UnknownFortranType.

	172) PR #2163 for #1537. Support array-slicing notation in SymPy
	comparisons.

	173) PR #2221 for #2214. Fix names of invokes containing a single
	kernel in the PSyIR of the LFRic Alg layer.

	174) PR #2225 for #2224. Fix erroneous CI link check error by
	omitting test for the particular link.

	175) PR #2172 for #1833. Fixes the LFRic tutorials so that they
	build correctly.

	176) PR #2227 for #2226. Adds new Node.path_from(ancestor) method.

	177) PR #2158 for #81. Ensures all example/test Fortran code for
	LFRic follows the LFRic naming convention.

	178) PR #2218 towards #2132. Adds LFRic integration tests and
	new, associated optimisation scripts. Includes bug fixes for
	matmul inlining transformation.

Sergi Siso's avatar
Sergi Siso committed
	179) PR #2230 for #2228. Improve reporting of errors due to kernel
	functors not explicitly included in algorithm use statements.

	180) PR #2207 for #1419. Split the DataSymbol constant_value attribute
	into is_constant (bool) and initial_value (PSyIR Node). This allows
	parsing Fortran declarations with initial_value that are not constant.

	181) PR #2231 for #2213. The Fortran frontend and backend now also
	consider that UnresolvedInterface symbols can come from the body of
	a Fortran Interface.

Sergi Siso's avatar
Sergi Siso committed
	182) PR #2240 for #2234. Fix WhileLoop issue in the NEMO OpenACC kernels
	script.

	183) PR #2182 for #2179. Fix LFRic eg14 nvfortran compilation and add
	nvfortran examples and tutorials steps in the Integration tests. 

	184) PR #2250 for #2248 and #1575. Fixes bug in line-length limiter
	to prevent it breaking a line before the first non-whitepsace
	character.

Sergi Siso's avatar
Sergi Siso committed
	185) PR #2262 towards #446. Implement reference_access for Call nodes.

	186) PR #2184 for #2166. Adds Sympy support for user-defined types.

	187) PR #2270 for #1575. Fixes the line-length limiter for code that
	has an indent greater than the max. line length.

	188) PR #2259 for #1932. Adds support for the 'gang' and 'vector'
	clauses on OpenACC Loop directives.

	189) PR #2276 for #2274. Small fixes for various complaints
	produced by latest version of pycodestyle.

	190) PR #2291 for #2290. Bug fix to KernelModuleInlineTrans -
	ensures that the new RoutineSymbol added to the Container is given
	a DefaultModuleInterface.

	191) PR #2238 for #2234. Adds support for a generic interface to
	perform variable comparison when the datatype is unknown. (Required
	for canonicalising SELECT CASE constructs.)

	192) PR #2292 for #2288. Workaround for Sphinx-doctest bug by
	building html dev guide before running the doctests.

	193) PR #2260 for #2245. Splits LFRicLoopBounds class from
	dynamo0.3.py.

	194 PR #2241 for #2215. Adds support for Fortran names being the
	same as Python keywords when using sympy within PSyclone, e.g. in
	comparisons between expressions.

	195) PR #2295 for #2294. Extends the PSyData extraction library
	to support character variables

	196) PR #2157 for #1396. Add tree-update mechanism and new ACCClause
	nodes for data movement.
	197) PR #2281 for #2258. Adds a PSyData wrapper for the TAU profiler.

	198) PR #2283 for #2282 and #2286. Adds a get_ubound_expression
	method to ArrayMixin (analagous to get_lbound_expression).

	199) PR #2293 for #2301. Add 'is_independent' property/query to Loop.

Sergi Siso's avatar
Sergi Siso committed
	200) PR #2309 for #1558. Add support for out-of-order parameter statements.

	201) PR #2148 towards #2105. Adds {Min,Max}Val2Code transformations.

Sergi Siso's avatar
Sergi Siso committed
	202) PR #2298 for #1987. Change all intrinsic Operations to IntrinsicCalls.

	203) PR #2320 for #2242. Pin Sphinx dependency to <7 to fix RTD building step.
	204) PR #2264 for #2263. Split LFRicScalarArgs from src/psyclone/dynamo0p3.py.

	205) PR #2328 for #2316. Update PSyclone to use 0.1.3 of fparser.

	206) PR #2329 towards #2204 and closes #2315. Bug fix to fparser2
	frontend to ensure that a PROGRAM with a CONTAINS is captured as
	a CodeBlock.

	207) PR #2327 towards #2132. Updates the LFRic integration tests
	to use a Spack environment and the latest HEAD of trunk of LFRic.
	Also extends the integration tests to upload performance numbers
	to a GitHub gist.

	208) PR #2154 for #95 and #994. Enforce valid Fortran names for
	invoke names in the LFRic API.

	209) PR #2332 for #2318. Small bug fix to the LFRic extraction
	driver creation. eg17/full_example_extract now builds and runs OK.

	210) PR #2287 for #2253. Allow for GH_WRITE access to continuous
	field arguments to inter-grid kernels in the LFRic API.

	211) PR #2299 for #2297. Add option to get original symbol name
	(for an imported symbol) in VariablesAccessInfo.

	212) PR #2233 for #1772. Correct kernel metadata for LFRic adjoint code.

	213) PR #2334. Fix missing backtick in docstrings.

	214) PR #2306 for #2305. Rename DynHaloExchange to LFRicHaloExchange.

	1) PR #1747 for #1720. Adds support for If blocks to PSyAD.
	2) PR #1669 for #450. Remove set_dirty/clean from ACC regions
	3) PR #1745 towards #1731. Split PSyLoop class from Loop node.

	4) PR #1761 for #1760. Create release 2.3.1

Andrew Porter's avatar
Andrew Porter committed
release 2.3.0 9th June 2022

Andrew Porter's avatar
Andrew Porter committed
	1) PR #1672. Fixes BOZ literal standard incompatibility in the
	nvidia profiling wrapper code.

	2) PR #1670 for #1650. Fixes various inconsistencies in the symbol
	table implementation.

	3) PR #1674 for #1644. Fixes bug in matmul transformation.

	4) PR #1673 for #1671. Fixes an error in the Makefile for the
	'time evolution' LFRic tutorial.

	5) PR #1628 for #1491. Extends PSyAD pre-processing phase to
	expand any expressions involving active variables.

	6) PR #1666 towards #1618. Modified prototype PSyIR-based
	algorithm generation to use a transformation to convert from
	invoke's to processed algorithm code, rather than it being done as
	part of lowering in the backend. This allows algorithm code with
	invoke's to be output by the backend.

	7) PR #1613 for #1238 and #1528. Improves the view() method so that
	it returns a str rather than printing to stdout. Also allows colour
	to be disabled.

	8) PR #1656 for #1649 and #1645. Add equality operator to all core
	PSyIR nodes in order to compare nodes by value.

	9) PR #1680. Refactors some of the code in various ACC directives to
	minimise duplication and switch to f-strings.

	10) PR #1639 for #1630. Add support for named arguments in Call and
	Operation PSyIR nodes, including Fortran front-end and backend support.
	11) PR #1682 for #1632. Extend the LFRic API to support transport
	field type. Required for mixed-precision support.

	12) PR #1678 for #1667. Work towards getting the LFRic OpenACC
	example (eg14) to compile.

	13) PR #1676 for #1644 Extend matmul2code transformation to
	support matrix matrix multiplication. Previously it was limited to
	matrix vector.

	14) PR #1697 for #1695. Small update to LFRic stub infrastructure to
	fix compilation failure when building tutorial code.

Joerg Henrichs's avatar
Joerg Henrichs committed
	15) PR #1699. Fix failing dynamopsy test by specifying dm=true
	explicitly

	16) PR #1684 for #1683. Adds support for MIN and MAX LFRic Built-ins.

	17) PR #1702 for #1695. Correction to LFRic infrastructure ('emdi') to
Sergi Sisó's avatar
Sergi Sisó committed
	bring up-to-date with current LFRic usage.

	18) PR #1705. Corrections for the NEMO tutorial. 
	19) PR #1692 for #1688. Prevents scoping regions from sharing symbol
	tables. Adds attach() and detach() methods to SymbolTable for
	managing this connection.

	20) PR #1703 for #1689. Fix stencil depth bug in LFRic halo exchange
	when a discontinuous writer follows a discontinuous stencil reader.

	21) PR #1608 towards #1542. Allow GH_WRITE access for fields on
	continuous function spaces in LFRic API.

	22) PR #1722. Changes all PSyIR code over to using f-strings.

Sergi Sisó's avatar
Sergi Sisó committed
	23) PR #1725. Allows parsing an empty Fortran file.

Sergi Sisó's avatar
Sergi Sisó committed
	24) PR #1716 for #1713. Fix bug in matmul transformation. 

Sergi Sisó's avatar
Sergi Sisó committed
	25) PR #1693 for #1661. Improve dependency analysis tools.

Sergi Sisó's avatar
Sergi Sisó committed
	26) PR #1347 for #1730. The Fortran backend now generates declarations with
	dependencies in the appropriate order.

	27) PR #1729. Minor fixes for MarkDown link checker and path to
	test file.

	28) PR #1733 for #1707. Update PSyclone master to the latest version of
	fparser to enable running of PSyclone tests.

	29) PR #1679. Add a limit parameter to the PSyIR node ancestor method.

Andrew Porter's avatar
Andrew Porter committed
	30) PR #1749 for #1748. Updates version of fparser specified in setup.py
	to 0.0.15.

	31) PR #1740 for #1738. Update the operator implementation in the 
	cut-down LFRic infrastructure and change the USE statements generated
	for CMA operators.
 
release 2.2.0 17th March 2022
	1) PR #1439 for #1074. Adds a GOcean example for the use of the NaN-
	checking functionality (in PSyData).

	2) PR #1463 for #1461. VALID_LOOP_TYPES constant made consistent
	across APIs to permit check on loop type in dependency tools.

	3) PR #1473 for #1423. Adds the ChunkLoopTrans PSyIR transformation.

	4) PR #1475 for #595. Remove memento and transformation return values.

	5) PR #1470 for #1459. Refactor OMPLoopTrans to support OMPLoop
	directive and add OMPTargetTrans.

	6) PR #1452 for #1451. Add doctest for the Dev Guide to GitHub Actions
	and tidy the examples so that they work.

	7) PR #1503 for #1502. Fix incorrect path in tutorial README.

	8) PR #1489 for #1488. Configure MD link checker to skip links to MO wiki.

	9) PR #1501 for #1484. Remove Python2 validation, update
	documentation, start removing Python2-specific code and start
	using any pylint-suggested Python3-specific code constructs.

	10) PR #1476 for #1456. Fix precision problems in the PSyAD harness
	code generation and add harness documentation.

	11) PR #1482 for #1481. Renames symbol_from_tag->find_or_create_tag
	and tidies its use.

	12) PR #1521 for #1193. Update Python 3.5 to 3.6 in the GitHubActions CI.

	13) PR #1512 for #1511 and #1516. Fix silent compilation test failures,
	and make sure all files are compiled in tmpdir.
	14) PR #1531. Fixes incorrect imports of OMPTaskwaitTrans in examples
	in class docstrings.

	15) PR #1498 for #533. Adds the use of SymPy for comparing expressions
	for equality. Removes math_equal() and
	ArrayRange2LoopTrans.string_compare() methods.

	16) PR #1492 for #1457. Adds support for the transformation of Loops
	when taking the adjoint of a code.

Sergi Sisó's avatar
Sergi Sisó committed
	17) PR #1520 towards #1504. The Fortran frontend marks class type
	definitions as UnknownFortranType in the PSyIR.

	18) PR #1522 for #1519. Make the LoopSwapTransformation generic and
	move it to the psyir.transformations module.

Sergi Sisó's avatar
Sergi Sisó committed
	19) PR #1539 for #1524. Re-enable a previously deleted compilation test
	due to a compilation error now fixed.

	20) PR #1535 for #1534. Adds testing of Python 3.10 in GHA and
	updates PSyclone to work with 3.10. Also makes GHA build examples
	with 2 threads (as 2 cores are available) and runs tests with as
	many threads as there are cores available (again 2 at this time).

	21) PR #1510 for #1499. Add SymbolTable method to resolve the properties