Codee Changelog
Version 2025.4.0, released on 2025-11-12
codee format- Updated
--verboseoutput to show whether each diagnostic was fixed or not - Fixed a bug where
codee formatincorrectly modified whitespace inside Hollerith constants - Fixed a bug where
codee formatsometimes left stray continuation ampersands
- Updated
- Added a new recommendation PWR080: Conditionally initialized variables can lead to undefined behavior
- Added a new AutoFix variant for recommendation PWR072:
- The already existing "split initialization from declaration" modification is available under
--variant split - The new "add an explicit
save" modification is available under--variant explicit-save
- The already existing "split initialization from declaration" modification is available under
- Changed recommendation PWR072 to be reported once per affected variable
- Updated
--show-progress=allmessages to clarify the initial stages of the execution - Updated
codee checkssuggestions for clearer guidance - Renamed "RANKING OF QUALITY CHECKERS" to "RANKING OF SECURITY CHECKERS" in
codee screening --sastoutput - Fixed a bug that prevented the PWR008 AutoFix from being shown for variables with
kindattribute - Fixed a bug that would unnecessarily block some checks due to unsupported features of the source code
- Fixed a bug where
codeewould signal the use of some symbols as unused when investigating PWR069
Version 2025.3.9, released on 2025-10-28
codee format- Added a one-time EULA acceptance step on first execution
- Added a final summary line (on
--verbosemode) - Fixed a bug where string literals with kind prefixes were not correctly split
- Updated configuration warnings so they are only emitted once
- Restricted the fixed-form Fortran beta to users holding a valid codee license
- Updated EULA
- Fixed a bug that caused
codeeto incorrectly recognize as parallelized some Fortran loops following other parallel loops - Fixed a bug that prevented
codeefrom recognizing Fortran directives with upper-case characters - Fixed a bug where
codeefailed to display dependency progress messages until the dependency analysis was complete - Fixed some PWR079 false positives related for IO functions in Fortran
- Fixed some PWR079 false positives when short-circuiting conditional operations were involved
Version 2025.3.8, released on 2025-10-14
codee format- Updated
--verboseoutput to show syntax errors details that block safe formatting for a file
- Updated
- Added
codee checks --sastandcodee screening --sastoptions to show security checker details - Added a new
--stop-on-errorflag to stop after the first compilation error is found - Fixed a bug where
codeewould sometimes run into an infinite loop when processing code with recursivestructtypes - Fixed a bug where
codee checkswould suggest an autofix command with badly quoted and escaped characters - Updated PWR079 to reduce false positives when uninitialized variables may be written indirectly through pointers
- Updated the
screeningreport suggestions - Updated the
--show-progressoutput to better highlight each step of the analysis process - Improved the crash message to suggest the exclusion of the potentially problematic file
- Replaced the
examples/directory in favor of online guides and examples - Deprecated
--securityfilter option in favor of--sast=
Version 2025.3.7, released on 2025-09-30
codee format- Updated the
--on-errordocumentation to stress the correctness guarantees of the resulting code
- Updated the
- Added support for detecting write-only and unused arguments in PWR008
- Optimized the dependency generation algorithm for better performance, with significant performance gains when filtering by input file
Version 2025.3.6, released on 2025-09-17
codee format- Changed the default of
IndentExceptions.CommentstoIndentIfAlreadyIndentedfor fixed-form Fortran
- Changed the default of
- Added support for Intel icc, icx, ifort and ifx
-O4and-O5flags - Fixed a PWR003 regression for functions that used float to integer conversions
- Upgraded core technology to leverage Flang HLFIR
Version 2025.3.5, released on 2025-08-26
codee format- Promoted support for fixed-form Fortran to beta
- Removed insertion of free-form-compatible ampersands after the column limit of fixed-form files
- Added support for Intel preprocessor symbols when analyzing with Intel compilers
Version 2025.3.4, released on 2025-08-12
- Upgraded LLVM toolchain to version 21 (21.1.0-rc1)
- Removed
--out-dirdeprecated command line option
Version 2025.3.3, released on 2025-08-05
- Fixed a bug in the licensing system
Version 2025.3.2, released on 2025-07-30
codee format- Added a restriction to reduce formatting errors when code is found after the default initialized
ColumnLimit - Removed support for
--on-error safe, leaving onlyskip(the new default) andforceas valid options
- Added a restriction to reduce formatting errors when code is found after the default initialized
- Added a new
rewrite --alloption to apply an AutoFix across an entire file (only available on Team license) - Updated PWR007 to avoid reporting it for a procedure if its module already contains
implicit none
Version 2025.3.1, released on 2025-07-15
codee format- Added a new
FirstOccurrencecasing option, which allows to standardize identifier casing based on their first occurrence in the file - Added support for specifying a custom configuration for fixed-form format (see documentation)
- Updated default ColumnLimit style option for fixed-form Fortran to
72 - Added support for fixed-form debug lines (lines that start with a 'D' or 'X' label)
- Fixed a bug where codes with multiline strings in fixed-form were formatted incorrectly
- Improved parsing to support more Fortran codes
- Added a new
- Fixed a bug where
codee rewritewould insertimplicit none (type, external)in scenarios where code base was not using the required standard - Fixed an issue where
codeeincorrectly parallelized a variable assigned conditionally within a loop
Version 2025.3.0, released on 2025-07-02
codee format- Added experimental support to format fixed-form Fortran files
- Added a new
MacroIdentifiersstyle option, which allows to define macro identifiers that shouldn't be affected by re-casing and to improve parsing in some circumstances - Added a new
--free-formflag tocodee formatto format files with default fixed-form extensions - Improved parsing to support more Fortran codes
- Added a new
--no-ellipsisflag to disable shortening of long names with an ellipsis - Fixed a bug where
codeewould sometimes run into an infinite loop when processing code with recursivestructtypes - Added SEI CERT-C and ISO/IEC 24772-8 security information to checks in
--list-available-checkers
Version 2025.2.5, released on 2025-06-18
- Added alignment of
use, onlyitems tocodee formatunder theAlignUseItemsstyle option - Added alignment of continuation ampersands under the
AlignAmpersandToColumnLimitstyle option - Added alignment of operators within assignments to
codee formatunder theAlignAssignmentOperatorsstyle option - Added alignment of operators in multiple lines with the
BreakBeforeBinaryOperatorsstyle option - Added a new
--securityflag to enablecodeechecks relevant to security catalogs (CWE for now) - Fixed a bug where
codee formatwould hang under certain scenarios - Fixed a bug where
codee formatwould incorrectly indent continuation lines - Fixed a bug where
codee formatwould incorrectly indentendstatements preceded by labels - Fixed a bug where
codee formatwould incorrectly indent broken lines whenIndentSizeoptionPreserve - Fixed a bug where
--analyze-included-fileswould filter included files - Fixed a bug where
codeewould signal the use of some symbols as unused when investigating PWR069 - Improved
codee format'sColumnLimitalgorithm - Improved
codee format's performance - Improved Fortran support by analyzing functions containing I/O calls like
printorwrite - Improved Fortran support by analyzing functions containing calls to functions with assumed-shape array arguments
- Improved
codee formatreturn code to signal if all the formatted files failed - Removed
FixedIndentSizestyle option that was present only for testing purposes and will now be automatically selected when fixed-form is supported
Version 2025.2.4, released on 2025-06-03
- Fixed a bug where
codee formatwould hang under certain scenarios - Fixed a bug where
codee formatwould not indent multi-line strings
Version 2025.2.3, released on 2025-05-21
- Added the list of Checks to the HTML report
- Fixed a bug in understanding and rewriting Intel and GNU Fortran compiler directives
- Fixed a bug where
EndStatementFormatinsertions exceededColumnLimit - Fixed a bug that prevented several
gfortranoptions from being recognized - Fixed a bug where other compilation languages were treated like errors
- Updated the screening report to show the number of files written in languages other than C, C++, or Fortran
- Updated PWR075 to flag Fortran extensions from different compilers
- Updated the
--htmlflag to now require a folder as an argument to write the HTML report- The
--out-dirflag was deprecated accordingly
- The
- Improved
codee format'sColumnLimitalgorithm
Version 2025.2.2, released on 2025-05-07
- Added
--htmloption tocodee screeningas an alias tocodee report - Added
DoubleIndentSizetoContinuationIndentSizeincodee formatconfiguration - Fixed
screeningso that some checks show up in the correct table according to their category - Fixed a bug in
codee formatthat prevented file formatting on Windows systems - Fixed a bug that prevented
codeefrom applying AutoFix for the PWR069 checker - Fixed a bug in PWR069 where
codeeincorrectly suggested removing declarations that were actually in use - Fixed a bug where
EndStatementFormatinsertions withColumnLimitresulted in non compilable code - Updated PWR079 to reduce false positives caused by conditional initialization
- Updated PWR072's title for more clarity
- Updated
EndStatementFormatto insert followingEndStatementSeparation: Separatedwhen it isPreserve - Updated Open Catalog links to the new website for better visualization
- The source for the Open Catalog remains on GitHub
- Improved support for line breaking in
codee formatwithFixedIndentSize: 6 - Improved Fortran support by handling additional source constructs
Version 2025.2.1, released on 2025-04-22
- Added support in
codee formatfor fixed form statement labels and a new style option to align them - Added
--no-check-idoption tocodee, allowing to disable specific checks - Added support to recognize AMD Optimizing C/C++ and Fortran Compilers, and their flags
- Improved support for analyzing Fortran codes dependant on Intel Fortran extensions
- Improved the indentation support in
codee formatto keep continuation symbol '&' at column 6 whenFixedIndentSize: 6 - Fixed
.codee-formatconfiguration being read from the current working directory instead of the input file's - Fixed a bug that would recommend an invalid vectorization AutoFix in Fortran using
clangdirectives - Updated the vectorization
rewriteoptions fromgcc,icc,clang, tognu,intel,llvmrespectively - Updated bundled Bear to avoid errors due to network proxy settings
Version 2025.2.0, released on 2025-04-08
- Added
--show-progress=allto enable all options at the same time - Improved
codee formatcommand:- Added support for breaking and removing semicolons in the code
- Added support for
.codee-format-ignore, similarly toclang-format - Added end of line normalization
- Improved the column limit algorithm to break by tokens instead of by characters
- Improved whitespace handling, including adjusting the number of empty lines between procedures
- Improved indentation support, including adjusting the continuation indent size
- Updated parsing to support more Fortran codes
- Improved PWR007 to support module declarations
- Improved support for analyzing Fortran codes dependant on Intel Fortran extensions
- Updated bundled Bear with support for LLVM Flang compiler
- Updated PWR007 to be reported even if a parent scope (e.g. a module) has
implicit none - Updated some checker titles, descriptions and severities
Version 2025.1.3, released on 2025-03-13
- Improved support for analyzing Fortran codes dependant on Intel Fortran extensions
- Fixed a crash with some Fortran codes that use Cray pointers
- Fixed a bug when parsing Intel
ifortandifxcompiler flag-extend-sourcewithout an argument - Fixed another bug with some Fortran projects that use modules and have repeated invocations in their
compile_commands.json - Updated
technical-debtto only report code quality checkers (those belonging tocorrectness,modernization,portabilityorsecurity) - Updated PWR079's remediation cost from high to low
- Removed confusing filtering options from
technical-debtreport
Version 2025.1.2, released on 2025-02-28
- Added support for
-x f77[-cpp-input]and-x f95[-cpp-input]gfortran input language options - Added support for
codee formatstyle configuration inheritance - Added a new
portabilitychecker category - Added an analysis coverage table to the HTML report
- Added
--show-progress=module-parsing: display files parsed to build the Fortran module dependency graph - Updated checker categories; now checkers may belong to several categories
- Updated bundled Bear with experimental support for the HPE Cray Compiling Environment (CCE)
- Removed deprecated option
--only-modern: use--only-qualityinstead - Removed deprecated option
--multi omp-for: use instead--check-id pwr050 --variant omp-for - Removed deprecated option
--vector omp: use instead--check-id pwr053 --variant omp - Removed deprecated option
--offload omp: use instead--check-id pwr055 --variant omp - Removed deprecated option
--memory loop-interchange: use instead--check-id pwr039 - Removed deprecated option
--modernization uses: use instead--check-id pwr069 - Fixed a bug in PWR008 AutoFix due to a miscalculated position in some Fortran codes
- Fixed a bug in
codee formatwhile formating legacy Hollerith Constants - Fixed a crash when compiler flags have an unexpected number of arguments
- Fixed a bug with some Fortran projects that use modules and have repeated invocations in their
compile_commands.json
Version 2025.1.1, released on 2025-02-17
- Added a new
securitychecker category - Added a
codee reportcommand that presents results in HTML - Added
--offset,--lengthand--linesoptions to limit regions modified bycodee format, as well as support forcodee format offandcodee format oncomments:- Indentation and column limit support is in preview, they are disabled when the above flags or comments are used
- Updated AutoFix invocation with a new format,
codee rewrite --check-id <id>; for example:--check-id pwr050instead of--multi--check-id pwr053instead of--vector--check-id pwr055instead of--offload--check-id pwr039instead of--memory
- Updated
technical-debt --verbosetable order to descending technical debt score - Fixed a bug preventing
--{c|cxx|fortran}-flagsfrom working in Codee - Improved support for analyzing codes using the Cray Programming Environment and Cray Compiler Environment
- Added support to recognize
craycc,crayCC, and their flags - Added support to find Cray libs
- Added support to analyze some UPC Cray code
- Added support to recognize
Version 2025.1.0, released on 2025-02-06
- Added
formatsubcommand as a preview of a new Fortran code formatter - Added a new recommendation PWR079: Avoid undefined behavior due to uninitialized variables
- Removed remote metrics collection. Codee now exclusively stores metrics data locally. To opt out, use the
CODEE_METRICS_OPTOUTenvironment variable
Version 2024.4.5, released on 2025-01-24
- Fixed a crash while computing PWR003 in some Fortran procedures
- Removed the deprecated
--configoption - Upgrade Bear with support for the Intel® compiler suite
Version 2024.4.4, released on 2025-01-21
- Upgraded LLVM toolchain with the latest changes
- Updated RMK007, RMK008, RMK010, RMK012, RMK013, and RMK014 titles for more clarity
- Improved support for analyzing Fortran codes dependant on an Intel Fortran extension that allows to shadow imported and host associated entities
- Improved the report in case of an unrecoverable fatal error in the codee application
- Improved compatibility with Fortran extensions by relaxing standard requirements
- Improved reporting of Fortran module dependency resolution
- Fixed a bug in response file parsing on Windows that prevented Codee from analyzing files with absolute paths
- Fixed a bug handling
-real-size 64Intel Fortran compiler argument - Fixed a bug that would trigger incompatible OpenMP/OpenACC AutoFixes in Fortran
pureprocedures - Fixed a bug that would trigger PWR003 in Fortran procedures containing incompatible OpenMP/OpenACC directives
Version 2024.4.3, released on 2025-01-08
- Improved PWR007's AutoFix to rewrite codes with statement functions
- Improved support for analyzing Fortran codes dependant on libxsmm, SIRIUS and libint by bundling their modules into Codee
- Improved support for analyzing unstructured Fortran loops (e.g., loops with GOTOs in the loop body)
- Improved support for analyzing codes that declared variables explicitly or implicitly in preprocessor definitions
- Improved compatibility with Fortran extensions by relaxing standard requirements
- Fixed a bug that prevented further analysis when a variable from a common block was used
- Fixed a bug that counted checkers wrongly
- Fixed PWR003 being reported for functions with static lifetime variables
- Fixed a crash in Codee when analyzing somes codes containing macros
- Fixed a crash in Codee when analyzing some Fortran codes with procedure pointer arguments
- Fixed a crash in the split-variable-initialization rewrite for procedures with
included files - Fixed a bug with conditional return statment in fortran codes
- Fixed a bug in the split-variable-initialization rewrite for procedures with parameter statements
Version 2024.4.2, released on 2024-12-11
- Added support for GNU Fortran intrinsics available as both functions and subroutines
- Added a new
correctnesscategory - Added
--analyze-included-filescommon flag that allows analyzing included files in C, C++ and Fortran - Added
--only-qualityflag to include the "correctness" and "modern" checkers, deprecating the former--only-modernflag - Updated
--show-progressto default to the new "dependencies" report - Updated HTML report to show the tables of the ranking of quality and optimization checkers
- Updated the attributes and priorities of some checkers
- Improved analysis time for large Fortran files
- Improved missing Fortran module suggestions
- Improved support for analyzing Fortran codes with constant array accesses
- Improved Fortran dependency resolution
- Improved support for analyzing non-standard GNU Fortran extensions
- Improved PWR007's AutoFix to rewrite codes with implicit functions
- Improved PWR007's AutoFix to insert
implicit none (type, external)where appropiate - Improved PWR007's suggestion message
- Improved Codee's target compiler detection capabilities
- Improved PWR072 AutoFix coverage
- Improved analysis time for codes with a lot of nested scopes
- Improved support for analyzing Fortran codes dependant on ETSF_IO by bundling its modules into Codee
- Fixed a bug while analyzing loops with different struct field uses
- Fixed an issue where Codee misinterpreted paths from response files on Windows
- Fixed a crash that could happen with some unsupported codes
- Fixed bug that duplicated an AutoFix if the same input was in multiple invocations
- Minor cosmetic changes
Version 2024.4.1, released on 2024-11-21
- Added flags
--only-modern, equivalent to--only-categories modern, and--only-optim, equivalent to--only-categories scalar,control,memory,other - Updated PWR068 to trigger the check on calls made through implicit interfaces, instead of all procedure declarations outside modules
- Improved support for analyzing Fortran codes dependant on PETSc, Libxc and flook by bundling its modules into Codee
- Improved support for analyzing Fortran codes dependant on a GNU Fortran extension that allows forward references to some host-associated symbols
- Improved support in PWR075 to detect the use of real array indices coming from intrinsic functions
- Fixed a bug that would cause Codee to not compile some Fortran codes that used GNU Fortran intrinsics
- Fixed a bug that caused Codee to exhaust system memory when analyzing C++ code with deeply nested templates
Version 2024.4.0, released on 2024-11-14
- Upgraded LLVM toolchain with the latest changes
- Added AutoFix for PWR072 to automatically split variable declaration initialization
- Added the total number of check occurrences to the screening report 'Ranking' table
- Updated the screening report to show the number of available AutoFixes for each check
- Updated the screening report suggestions when analyzing multiple files
- Updated the list check IDs so they are sorted by their priority
- Improved support for analyzing Fortran codes dependant on GNU Fortran intrinsics
- Fixed a bugs related to C and C++ structs containing other empty structs
- Fixed a bug in PWR069's AutoFix that could cause Codee to crash
- Fixed a bug that could cause Codee to crash opening an invalid Fortran module file
- Fixed a bug in PWR008 due to Fortran alternate returns
- Fixed a bug where response files were not supported on windows targets
- Fixed an issue where Codee in Windows would require ZLIB to be installed when it was not needed
- Added
--show-progress=dependenciesto show when Fortran files are compiled to meet module dependencies
Version 2024.3.5, released on 2024-10-29
- Added Bear binary alongside Codee to allow users to create
compile_commands.jsonout of the box - Added
--{c|cxx|fortran}-flagscodee flags to append compiler options to all compile commands entries and updated the corresponding environment variables - Added
--show-compiler-outputflag to print messages that compiler emitted during analysis - Added autodetection of
compile_commands.jsonrelative to the command-line file filters - Updated PWR072 to clearly state the undesired implicit 'save' behavior
- Updated the
do concurrentrewrite to work in compiler agnostic mode - Improved support on some recoverable internal errors, allowing partial analysis on some codes that were previously rejected
- Improved support for unknown compilers by assuming GCC or GFortran depending on the input files
- Fixed a bug that would report PWR075 for non-GNU compilers
- Fixed several bugs
- Minor cosmetic changes
Version 2024.3.4, released on 2024-10-15
- Added AutoFix for PWR069 to automatically adjust and remove use statements in procedures
- Added support for the
f95compiler as an alias togfortran - Added missing progress printer to
codee rewrite - Updated the screening report:
- Split the ranking of checkers between optimization and modernization
- Removed the main screening report table from the default output to emphasize the 'Ranking' table
- Updated the
codee screening --verbosereport to show a list of checkers per file
- Updated ROI report based on
--verboseand--briefmodifiers - Improved PWR007 autofix to handle GNU Fortran intrinsic procedures
- Improved PWR069 with a reduction of false positives and more accurate suggestions
- Improved PWR075 to detect usages of real values in array indices
- Improved support for unknown compilers by assuming GCC-like flags
- Improved handling of input filters by rejecting invalid ones
- Fixed reporting of unreachable dependencies for compilation entries with relative paths
- Fixed compilation errors when
-mcpuwas used in X86 targets - Adjusted checkers attributes
- Minor cosmetic changes
Version 2024.3.3, released on 2024-10-01
- Upgraded LLVM toolchain to version 20 (20.0.0)
- Added support for Fortran programs that use OpenMP conditionally compiled lines
- Improved support for analyzing Fortran codes dependant on OpenACC, by bundling those modules into Codee
- Improved support on some recoverable internal errors, allowing partial analysis on some codes that were previously rejected
- Improved reporting of missing Fortran modules
- Improved the report of compiled but unreachable Fortran dependencies
- Fixed a crash that would happen when a missing Fortran module was
used - Fixed Fortran compilation error due to unsupported global procedure pointers
- Fixed a bug in PWR069 causing invalid suggestions for transitive dependencies and symbol renames
- Fixed a bug in PWR007 autofix for function return values
- Fixed a bug in PWR008 autofix due to a miscalculated position in Fortran preprocessed files
- Fixed an issue where Codee would report invalid errors after a missing
used Fortran module - Fixed an issue with Fortran modules that would compile but couldn't be
used afterwards - Minor cosmetic changes
Version 2024.3.2, released on 2024-09-13
- Added a new Fortran Modernization checker "PWR075: Avoid using GNU Fortran extensions"
- Added support for Intel
ifxcompiler flags on Linux and Windows - Added a "native" option for
--multiand--offloadrewrites that usesdo concurrentin Fortran loops; this option is enabled with--compiler-driven-modeforifx,ftn, andnvfortran - Fixed an issue with computing dependencies that affected "compile_commands.json" with several languages on it
- Fixed a crash when using input filters for files that have host-associated functions from another
included file - Fixed undesired warnings being printed along with Fortran compilation errors
- Fixed an issue detecting a particular case of an array reduction compute pattern
Version 2024.3.1, released on 2024-09-04
- Updated screening report "RANKING OF CHECKERS" table by adding an AutoFix column and merging Level and Priority ones
- Fixed an issue with bash autocompletion
- Fixed hiding unrelated analysis errors if
--show-failuresis disabled - Fixed an issue with
codee rewriteif--compiler-driven-modeis enabled - Fixed
nvfortrancompiler version detection - Removed deprecated
--show-rankingflag for the screening report - Removed
pwreport,pwloops, andpwdirectivesshims - Minor cosmetic changes
Version 2024.3.0, released on 2024-09-03
- Upgraded LLVM toolchain to version 19 (19.1.0-rc1)
- Added AutoFix for PWR008 that declares the intent for each procedure parameter
- Added support for Intel
ifortcompiler flags on Windows - Added support for NVIDIA Fortran compiler flags on Linux
- Added support for Cray Fortran compiler flags
- Added autodetection of "compile_commands.json" when
--compile-commandsand-- <invocation>are not used - Improved analysis time for some Fortran files
- Improved memory usage during the analysis of Fortran files
- Improved support for analyzing Fortran codes dependant on MPI, NetCDF and HDF5, by bundling those modules on Codee
- Improved reporting of transitive dependencies on missing external Fortran modules
- Improved the OpenMP directives used in
codee rewritefor Cray and Nvidia compilers - Improved PWR068 detection in non-standard Fortran codes
- Fixed a bug when filtering Windows paths with backslashes
- Fixed a Codee crash for Fortran codes with loops containing statement labels
- Fixed an issue parsing OpenACC and OpenMP clauses separated by commas
- Fixed a leak of internal compiler messages into Codee output
- Fixed a bug rewriting Fortran code with
codee rewrite --multi omp-taskwait - Do not print empty tables in
codee screeningon error - The list of supported compilers with optimization report is now reported with the flag
codee --list-optimizing-compilers codee --versionnow lists the supported compilers, it no longer lists the supported compiler with optimization reports- Removed the "CHECKS PER CATEGORY AND PRIORITY LEVELS" table from the screening report
- Minor cosmetic changes
Version 2024.2.6, released on 2024-07-30
- Renamed the
--configoption to--compile-commands(-p), which now also accepts a path to a directory that contains a "compile_commands.json" file - Greatly reduced the memory usage of Codee on large Fortran projects
- Fixed several bugs
- Minor cosmetic changes
Version 2024.2.5, released on 2024-07-10
- Codee now requires a complete compiler invocation at the right of the
--separator when not using a compilation database- Codee will now use the given compiler to parse the compilation options
- New
--compiler-driven-modeto enable the Compiler Driven Mode, that will use the compiler from the invocation as the target - Removed
--target-compiler-Xflags, as Using a different target compiler is no longer supported
- Added a new Fortran Modernization checker PWR069: Use the keyword only to explicitly state what to import from a module
- Codee will now analyze the compilation database respecting the Fortran module dependencies
- Fixed an issue where the PWR073 would show "empty" COMMON uses
- Split the "quality" category of checkers into "modernization (modern)" and "other"
- Improved support for header files for some bundled common Fortran modules
- Updated the past changelog with some missing features
Version 2024.2.4, released on 2024-06-12
- Added AutoFix for PWR007: Disable implicit declaration of variables
- Include some bundled Fortran modules to improve the analysis coverage
Version 2024.2.3, released on 2024-06-05
- Added new Fortran Modernization checkers (some were part of PWR063):
- PWR068: Encapsulate external procedures within modules to avoid the risks of calling implicit interfaces
- PWR070: Declare array dummy arguments as assumed-shape arrays
- PWR071: Prefer real(kind=kind_value) for declaring consistent floating types
- PWR072: Add an explicit save attribute when initializing variables in their declaration
- PWR073: Transform common block into a module for better data encapsulation
- Added legacy Fortran "unconditional GOTO" statements to PWR063
- Created a new Codee flavor focusing on modernization tasks
- Added support for
gfortrancompilation flags - Improved support for analyzing Fortran codes dependant on MPI and NetCDF
- The PWR042 and PWR043 checkers are now enabled for Fortran
- Fixed several bugs
Version 2024.2.2, released on 2024-04-19
- Fixed the analysis order with "compile_commands.json" in the presence of a filter
- Removed support for "pw.json" configuration files
- Minor cosmetic changes
Version 2024.2.1, released on 2024-04-17
- Deprecated commands coming from the former
pwloopsbinary - Hide Codee compilation warnings behind the
--show-failuresflag - Fixed multiple minor bugs
- Updated the past changelog with some missing features
Version 2024.2.0, released on 2024-04-08
- Added
codeeas an unified binary aggregatingpwreport,pwloops, andpwdirectivesfunctionality - Added a
--verbosemode for the screening and technical-debt reports, which makes Codee to print subtotals per file - Removed the
--prefix from all Codee commands (e.g.,codee --checksis nowcodee checks) - Removed support for deprecated environment variable names
- Support for analyzing Fortran source code is now considered mature instead of experimental
- Changed
--roiand--technical-debtreports to suppress error messages when targeting multiple files; this behavior can be overriden with--show-failures
Version 2024.1.4, released on 2024-03-26
- Added Return On Investment Report (
pwreport --roi) - Added Technical Debt Report (
pwreport --technical-debt) - Simplified the
--screeningreport to omit info already available on the--roireport
Version 2024.1.3, released on 2024-03-19
- Enabled Fortran analysis on Windows an MacOS platforms
- Added Fortran support for the PWR003 checker (explicitly declare pure functions)
- Added "Scope" (File, Function, Loop) to the information of each Checker in
--list-available-checkers - Added Codee tab completion support for bash, fish, and zsh shells; run
pwreport --completions <your shell>for instructions - Added Compiler Efficiency Report (
pwloops --compiler-efficiency) - Added support for Fortran COMMON blocks
- Improved support for C++ member functions that make use of
this - Improved the support for the IAR C and C++ compiler by handling
--dlib_configand--libc++options - Improved support for Fortran compiler directives
- Improved the final summary message with the number of loops and functions that have been successfully analyzed
Version 2024.1.2, released on 2024-02-21
- Greatly improved analysis coverage, especially in Fortran codebases, by enhancing error tolerance and recovery in the core of the technology
- Improved
pwdirectivesto insert comments detailing the optimizations applied to the rewritten code; this behaviour can be disabled with the newpwdirectives --disable-commentsoption - Added support for ARM big.LITTLE compilation flags
- Improved analysis support for C++ member functions (functions that use
thisexplicitly or implicitly still unsupported) - Added analysis success/failure messages for each file in
--show-progress - Changed
--show-progress=filesto be the default progress reporting mode, use--show-progress=noneto suppress progress messages - Changed
--show-failuresto be enabled by default, use--show-failures=noneto suppress error messages - Added
--check-idflag to filter by specific check IDs - Greatly optimized the compile_commands.json parsing phase; the total analysis time for big code bases can now be slashed down to 1/6 of the original time
- Added a message to
--versionshowing the time to license expiration - Minor cosmetic changes
- Removed "optimizable lines" column from
pwreport --screening
Version 2024.1.1, released on 2024-02-01
- Replaced the bundled "check-examples" folder with the new "open-catalog"
- The open-catalog is also available at GitHub
- Improved analysis time on Fortran codes
- Changed
--show-rankingto be enabled by default, making the argument unnecessary - Improved
--list-available-checkersby allowing filtering by categories as usual - Removed already deprecated
--evaluationflag; the--screeningflag should be used instead - Improve detection on maximum and minimum pattern computations
- Improved Fortran support
Version 2023.2.6, released on 2024-01-16
- Improved PWR063 with more detailed information in
--verbosemode - Improved Codee core detection capabilities, now it supports the detection of small static array temporaries
- Updated PWR020 and PWR021 so they are no longer reported if there are any non-categorized compute pattern (n/a), preventing false positives
- Fixed a bug for Fortran files that stopped analysis due to errors in unrelated parts of the code
- Fixed a bug where PWR022 was incorrectly reported in some loops with non-invariant conditions
- Fixed bug that caused a discrepancy between the screening and checks reports regarding the RMK015 remark
- Improved warning message behavior related to the usage and parsing of the compile_commands.json
- Improved support for some Fortran constructs
Version 2023.2.5, released on 2024-01-08
- Added the number of repeated entries for each file in a compile_commands.json when
--show-progressis used - Fixed PWR063 to be reported only once per file, as intended
- Several stability improvements
- Fixed multiple minor bugs
Version 2023.2.4, released on 2023-12-05
- Added a new recommendation PWR063: Avoid using legacy Fortran constructs
- Added a new
--show-rankingoption to the screening report, which shows the number of occurrences of each checker, ordered by priority - Added
--include-categoriesand--only-categoriesto filter checkers by category - Updated
--list-available-checkersoption to show the attributes of the new check ranking system - Deprecated
--include-tagsand--only-tagsin favor of the new--include-categoriesand--only-categoriesrespectively - Removed the
--show-breakdownoption from the screening report, in favor of the new--show-ranking - Removed several legacy reports from Codee:
--functions,--racesand--parallelizationfrompwreport--resultfrompwloops --vector-support
- Removed the
--show-breakdownoption from the screening report, in favor of the new--show-ranking - Removed "mode" column from
pwloops - Improved compile_commands parsing result report
Version 2023.2.3, released on 2023-11-23
- New "Likelihood", "Remediation cost" and "Severity" checker independent attributes
- New "Priority" and "Level" checker attributes, whose values derive from those of the three above
- The checks report is now ordered by priority value
- New
--levelflag, which allows the user to filter checkers by their priority level - The screening report now shows the number of checkers by priority level in the second table
- Fixed a bug causing crashes for code that uses unsupported pointer assignments or structs
- Add support for C-like comments in Fortran fixed form
- Fixed
--target-archfiltering regression - Fixed a loop filtering bug that prevented checks to be reported for the inner loops
Version 2023.2.2, released on 2023-11-15
- Added support for the IAR
iccarmcompiler flags - Disable remarks RMK002 and RMK008
pwdirectivesnow breaks lines according to the maximum line length allowed by the language (i.e., free and fixed forms in Fortran)- Rework on the internal technology that should improve code support in some particular cases
- Updated the past changelog with some missing features
Version 2023.2.1, released on 2023-11-07
- Fixed a bug that stopped Codee from analyzing some kinds of unsupported precompiled headers
- Fixed a bug where Codee would print warnings even if
--no-warningswas set - Added support for more Fortran compiler flags
- Fix a bug where the some Fortran analysis would get stuck
Version 2023.2.0, released on 2023-10-24
- Upgraded LLVM toolchain to version 17
- Add Fortran matrix multiplication example
Version 2023.1.7, released on 2023-10-04
- Changed
pwdirectivessyntax to a comma-separated list of options (pwdirectives --vector omp,gcc) instead of repeating arguments (pwdirectives --vector omp --vector gcc) - The
pwreport --checksoutput now prints the canonical title of each check - New line in the CLI output printing the Codee version and date of the analysis
- New
pwdirectivessuggestion to complete array transfers in offloading computations - Improved reporting of ignored duplicated files in compile_commands.json
- Changed the vectorization suggestions to be specific to the target compiler
- Combined rewriting modes of
pwdirectivesare now properly suggested inpwreport --checks --verbose - Fixed a bug where some checks were repeated under some circumstances
- Fixed a bug where sometimes a check was not correctly filtered
Version 2023.1.6, released on 2023-09-19
- Fortran array access range is no longer specified in OpenMP or OpenACC data transfer clauses
- Now the files not present in a compile_commands.json will be ignored when using it alongside with input files/directories
- The
pwdirectives --vectorcommand may now apply to the whole file - Moved
pwloops --non-analyzablereport topwreport --non-analyzable --verbose - Renamed
pwloops --summarycolumn "Optimizable" to "Has autofix" and removed the "Optimized" column - New
--list-available-checkersoption that replaces--list-all - Deprecated
--list-all,--list-checks,--list-defects,--list-recommendations,--list-remarksand--list-tagged - Deprecated the option
--autofrompwdirectives - Fixed several minor bugs
Version 2023.1.5, released on 2023-08-31
- New experimental support for Fortran assumed-shape arrays
- New remark RMK015: Tune compiler optimization flags to increase the speed of the code
- New remark RMK016: Tune compiler optimization flags to avoid potential changes in floating point precision
- Several fixes and improvements in the CLI output
Version 2023.1.4, released on 2023-08-10
- Tuned PWR044 to ignore integer constant expression
- Fixed several minor bugs
Version 2023.1.3, released on 2023-07-14
- The screening report now also prints the total number of files per language
Version 2023.1.2, released on 2023-07-07
- Added check PWR060 for optimizing loops with gather memory access patterns
- Removed outdated how-to on using Codee with Canny algorithm
- Fixed several minor bugs
Version 2023.1.1, released on 2023-06-30
- Added check PWR049 for optimizing loops with iterator-dependent conditions
- New Codee
--target-archflag, which allows the user to filter Codee checkers by their target architecture of interest - The option
--check-installwas removed from Codee - The option
--configuration-wizardwas removed from Codee - The target compiler setting is no longer stored in the system
- The target compiler is no longer taken from the compile_commands.json. Now it can only be set through Codee CLI flags
- Revamp tag filter system:
- Added `--only-tags: Shows items tagged with the specified tags
- Change in behavior for
--include-tags: Shows items tagged with the specified tags or if non-excluded by default - Removed
--exclude-tags
- Reduce the occurrence of PWR016 by reporting per variable instead of per each variable use
- The error messaging related to the target compiler support was improved
- The screening report and the checks report now print suggestions to use the Compiler Driven Mode
- The main tags of many checks were updated
Version 2023.1.0, released on April 2022
- The
--actionsreport was reimplemented to deliver the new--checksreport- It is no longer limited to be used by function (as the actions report was). Therefore, it is available for any code snippet
- It reports a list of checks like most of the static code analyzers
- New
--check-installargument to validate the correct installation of Codee - New recommendations for floating point scalar optimizations PWR044, PWR045, PWR046, PWR048
pwdirectivesmodes reorganization. Now the different rewriting modes are grouped in--vector,--multiand--offloadoptions. See the--helpmenu for more details- New
pwdirective --memory loop-interchageoption that performs loop interchange whenever is recommended (PWR039) - Former OPP003 have been split into PWR052, PWR054 and PWR057 respectively
- Codee now ignores files if they were already analyzed in the same run, even if they are explicitly repeated in the input
- New input filtering syntax. Now loops and functions of the same file can be filtered with a simpler syntax: "file:loop1,loop2,loop3", instead of the former "file:loop1 file:loop2 file:loop3"
- New
--fp-precisionflag which allows filtering checks given their floating point computation strictness - The "Loop support" category was simplified in a new "Codee mode" category
- Loops are now categorized as "Guided" or "Auto" depending on the Codee capabilities
- Now
pwdirectives --autoonly applies to loops with Codee Auto mode support
- The verbosity level flag
--level <n>was simplified to--verbose - Improve compiler vectorization detection
- Make more explicit which target compiler and optimization flags are being used
- Improve detection of compiler optimization reports such as loop unrolling messages and loop replacements by library calls
pwdirectives --autonow prints the "reason" reported by the compiler when it could not vectorize the loop annotated by Codee
- Add new "Actions" column with the detected actions in
pwloops --summary - Changed variable representation to show which array dimension or type member is being used
pwdirectivescan now apply a combination of directives (in a single run) to the same loop- Add support for rewriting competing directives from different vendors in the scope of offloading computations and vectorization
- Now the user can accept EULA directly using
--accept-eulaoption or defining theCODEE_ACCEPT_EULA=yesenvironment variable - Upgraded libpw to LLVM 14, integrating Flang support from upstream
- Added basic support for Intel oneAPI compiler suite
Version 1.6.0, released on 2022-11-18
- New Codee default behavior: Compiler Driven Analysis
- A target compiler is now mandatory.
- Codee will generate its reports driven by the target compiler (limited to vectorization related actions for now)
- SIMD opportunities (OPP002) are no longer reported for a loop if the target compiler could already auto-vectorize it by itself
- New
pwdirectivesoutput: now it shows if Codee could finally vectorize the loops that the target compiler originally could not - Improved support for more compilers and verions:
- Added support Microsft Visual C/C++ compiler
- Added support for Intel C/C++ compilers
- Improved support for LLVM and GNU C/C++ compilers
- RMK011 is no longer reported, and it was removed from the catalog
- Fixed incorrect filtering of OPP002 and OPP003
Version 1.5.1, released on 2022-09-29
- Reduced the number of Screening Report levels, so 2 and 3 become 1 and 2 respectively
- Improved
--show-progressflag to allow function-level progress report - The recommendation PWR024 is now shown by default for non OpenMP-compliant loops as long as they are also opportunities
Version 1.5.0, released on 2022-09-15
- Loop difficulty levels were replaced by "Codee support categories"
- Former "Low" difficulty level loops are now of "Auto" or "Guided" categories
- Former "Medium" difficulty loops are now of the "Development" category
- Former "High" difficulty loops are now loops of the "Roadmap" category
- Improved support for detecting temporary arrays
- Added the recommendations PWR007 and PWR008 for Fortran
- Now compilation flags in Windows are interpret for MSVC by default. This behavior can be tunned with the
--driver-modeoption pwdirectives:--autonow requires the user to filter by function. It no longer rewrites entire files
Version 1.4.1, released on 2022-08-04
- Improved handling of case-insensitive identifiers on Fortran
- Improved reporting of Fortran unsupported features
- Fixed recommendation PWR043 incorrectly reported as PWR042
- Changed the loop filter to also allow inner loops. To keep the previous behaviour use the flag
--single-loop pwdirectives:- Fixed
--omp simdto be equivalent to--simd omp
- Fixed
Version 1.4.0, released on 2022-07-01
- New recommendations PWR042 and PWR043 related to loop interchange opportunities
- Added support for compilation databases (compile_commands.json) on Fortran code
- Added support for cross-architectural and cross-system analysis for GNU/Linux and Android on ARM64
- Improved analysis support for automatic, assumed-shape and adjustable array accesses on Fortran loops
- Improved support for C++ math functions
- Improved performance on analysis of large files
- Deprecated PWR033 in favor of PWR022
- Added a new how-to on using Codee with Canny algorithm
- Updated the EULA
pwreport:- Rename
--evaluationto--screening - Added
--show-breakdownto the screening report
- Rename
Version 1.3.3, released on 2022-06-16
- Added new flag
--no-warningsto remove all Codee warnings - Added a new suggestion in
pwreport --actions --level 2forpwdirectives --automode - Improved loop difficulty classification for several kinds of loops
- Fixed several minor bug fixes
Version 1.3.2, released on 2022-05-26
- Appentra Parallelware Analyzer is now Codee
- Improved analysis support for Automatic Arrays on Fortran
- Improved reporting on loop complexity for
pwreport --actionsandpwloops --summary - Improved table format so long filenames don't make the table too wide
pwreport:- Included
--evaluationwith a new--level 3report that breaks down loop complexity by function - Improved
--evaluationreport output format with new "Total" rows and a new Code Coverage table
- Included
pwloops:- Improved "codee" column on
--vector-supportto report as another compiler- Now
--show-messagesprints Codee cost model messages
- Now
- Improved "codee" column on
Version 1.3.1, released on 2022-04-25
pwreport:- Add OpenACC suggestion to run
pwdirectiveson offloading opportunities - Improve wording in
--evaluation
- Add OpenACC suggestion to run
pwdirectives:- Use "schedule(static)" clause when autoparallelizing GPU offloading opportunities with OpenMP
Version 1.3.0, released on 2022-04-19
- Included a new vectorization cost model which proposes vectorization only for eligible loops
- Prints out why ineligible loops are not vectorization friendly (new remarks RMK010, RMK011, RMK012, RMK013 and RMK014)
- Included a new memory cost model which proposes loop interchange only for eligible loops
- Included a new classification of loops by the degree of difficulty from performance optimization viewpoint
pwreport:- function or loop filter is necessary for
--actionsanalysis
- function or loop filter is necessary for
- Added experimental support for Fortran (Linux only)
Version 1.2.1, released on 2022-02-18
- New recommendations PWR039 and PWR040
pwreport:- Links to the knowledge-base are now suggested in
--actionswith--level 2
- Links to the knowledge-base are now suggested in
Version 1.2.0, released on 2022-02-03
- libpw upgraded to LLVM 13
- New recommendations PWR028, PWR030, PWR031, PWR032, PWR033 PWR037 and PWR038. Remarks RMK004, RMK005 and RMK006 were promoted to PWR034, PWR035 and PWR036 respectively
- Now using a compilation database without any input files will default to analyzing all database entries
- Changed default tag visibility: use
--include-tags allto enable all checks again pwreport:- New
--evaluationanalysis which is the new default - New
--non-analyzablereport that shows the unsupported features in the code - New
--actionsreport that superseeds--hotpot/--summary. Use--show-infoto show the analysis messages. Empty entries will be ommited unless--show-emptyis used. - The
--levelflag controlling the detail now has levels 0, 1 and 2 and it defaults to 1
- New
Version 1.0.0, released on 2021-10-07
- Fixed bug preventing
pwloops --vector-supportfrom categorizinggccmessages - Fixed bug causing result count on
pwloops --vector-supportto be incorrect - Improved OPP001 and OPP03 classification by taking into account floating point operations
pwcheck: removed since all its analyses are now part ofpwreportpwreport1.0.0: incorporated the data race analysis (--races) from the removedpwchecktool, new recommendation PWR006 and new--list-taggedoptionpwloops1.0.0: improved--vector-supportanalysispwtrainer1.7.0: new graphical user interface tool to ease training and experimentation
Version 0.19.2, released on 2021-09-29
- Fixed bug causing crashes for codes that use macros containing several loops
- Fixed bug causing
pwreport --vector-supportto miss some relevant compiler messages - Fixed bug preventing files without filters from being analyzed when passed along others with filters
- Fixed a regression causing
--configto be incorrectly compatible with compiler flags arguments pwreport0.6.2: improved--functionsanalysis by adding a new "Analyzable" column and by reporting all defined functions by default regardless of whether they are used unless--include-undefor--excluded-unusedare specified
Version 0.19.1, released on 2021-09-08
- Fixed a regression causing analysis of files including "omp.h" to fail
- Fixed a regression introducing incorrect opportunity codes and causing incorrect tag filtering
- Fixed bug preventing function filtering from working correctly for directories
- Updated quickstarts with up-to-date commands and outputs
- Added missing PWR017 check example
Version 0.19.0, released on 2021-08-19
- libpw upgraded to LLVM 12
- Fixed bug reporting standard globals (e.g. stdout, errno) on PWR001
- Fixed bug causing misplaced error messages
- Tags for checks, remarks and opportunities allow filtering through the new
--include-tagsand--exclude-tagsarguments - New input syntax allowing to specify a function name or loop location along the filename supersedes the
--loopand--functionfilters; also supported by--exclude - Added more information to
--versionregarding the supported standards, libraries and compilers pwreport0.6.0: new--functionsanalysis providing an overview of used functions; new--show-breakdownreplacing--detail-opportunitiesand--detail-checks; new set of--list-*arguments to list supported checks, remarks and opportunitiespwcheck0.6.0: new defects PWD009-011 and recommendations PWR026-027pwloops0.6.0: new--vector-supportreport to compare vectorization capabilities between different installed compilers
Version 0.18.2, released on 2021-06-18
- Added an error message to alert whenever a filter or target input does not match any code
- Fixed bug causing linked libraries to be treated as inputs
- Fixed a regression causing crashes for some codes with read-only arguments
pwreport0.5.2: parallel compute patterns are now shown for opportunities in--level 3and fixed a regression causing the loss of the suggestion to use compiler flags when failures existpwloops0.5.2: fixed bug causing incorrect filters in some suggestionspwdirectives0.5.2: fixed bug preventing--explicit-privatizationfrom working
Version 0.18.1, released on 2021-06-03
- Fixed bugs causing some interprocedural analyses to fail
- Fixed bug causing a crash when analyzing multiple files
- Fixed bug causing suggestions to omit configuration file arguments
- Fixed bug causing
pwreportto list some function declarations
Version 0.18.0, released on 2021-05-31
- Added offload opportunities differentiated from multi-threading ones
- New MATMUL quickstart example available in examples/matmul
- Option
--temporaryallows to declare temporaries to ease analysis pwreport0.5.0: new default--hotspotstructured report provides details on all actionable items including defects, recommendations, opportunities and remarks (new)pwcheck0.14.0: 8 new recommendations PWR018-025 focusing on vectorizationpwloops0.5.0: offload opportunities support and improved--non-analyzablemessagespwdirectives0.5.0: new--omp offload+simdhybrid parallelization
Version 0.17.0, released on 2021-02-22
- SIMD opportunities now have stricter requirements and can be inside OpenMP parallel regions
- Extended function, loop and variable filters to all reports
- Extended
--csvand--jsonoutput formats to all reports - Fixed bug preventing
pwloops --codefrom showing multiple opportunity types pwreport0.4.0: reduced analysis time by removing double passpwcheck0.13.0: new structured report and three levels of detail with--levelpwloops0.4.0: loops now reported as trees, new--memory-accessesreport and "dep" patternpwdirectives0.4.0: SIMD support for multiple compilers and OpenMP, new--automode to parallelize all SIMD opportunities detected, grouped opportunities support, new OpenMP hybrid (multi+simd) parallelization mode and--explicit-privatizationstrategy
Version 0.16.0, released on 2020-11-03
- libpw upgraded to LLVM 10.0
- Parallelization opportunities have now stricter requirements
pwreport0.3.0: new CSV output formatpwcheck0.12.0: new filtering options, defects PWD004-008 and recommendations PWR011-016pwloops0.3.0: new--memory-footprintanalysis,--summarycolumns and--non-analyzableoutput formatpwdirectives0.3.0: non-contiguous-memory array offloading with OpenMP enter/exit data- Fixed bug causing incorrect failed files counts in
pwcheckandpwreport
Version 0.15.1, released on 2020-08-21
- Fixed bug causing
--excludeto fail when mixing absolute and relative paths pwcheck0.11.1: fixed bug causing analysis to finish prematurely
Version 0.15.0, released on 2020-06-23
- libpw upgraded to LLVM 7.1
- EULA acceptance is now required upon first execution
- Now
--configalso accepts compile_commands.json files - Added
--langfilter to analyze only source files of specific programming language - Added
--analyze-headersto consider header files as regular source files pwcheck0.11.0: new checks PWD002, PWR009 and PWR010pwloops0.2.0: memory access patterns are now reported along computational onespwdirectives0.2.0: OpenMP offloading with or without teams
Version 0.14.2, released on 2020-05-28
- Fixed bug causing the printing of a significant number of empty lines
- Fixed bug causing missing messages with
--verbose
Version 0.14.1, released on 2020-05-20
- Fixed bug causing crash due to invalid PWA_LICENSE_PATH
Version 0.14.0, released on 2020-05-06
- Multiple file analysis via configuration (
--config <file>) - Multiple file and flag info can be seen with
--show-progress --verbose - Windows and MacOS now supported without Fortran
- Fortran support is reported in
--version - Header files are not analyzed unless included
- License check delayed to allow some informational usages
pwcheck0.10.1: data race analysis by file and data-race-free reportingpwreport0.2.1: report summary of data races and data-race-freespwloops0.1.4: improved--non-analyzablemessages
Version 0.13.1, released on 2020-03-16
pwdirectives0.1.3: fixed crash when looking for the opportunity
Version 0.13.0, released on 2020-03-04
- Moved
--summaryanalysis frompwchecktopwreport - Added
--show-failurescommon option to enable error reporting pwcheck0.10.0: data race analysis and fixed wrong messagespwreport0.2.0: new default summary analysispwloops0.1.2: converted--patternsinto--summaryand added opportunity information
Version 0.12.1, released on 2019-12-12
- libpw upgraded to LLVM 7
pwcheck0.9.4: match the waypwreportprocesses filespwreport0.1.1: fixed Fortran metrics not being computed
Version 0.12.0, released on 2019-12-12
pwreport0.1.0: new binary
Version 0.11.1, released on 2019-12-03
- Include bundled headers for LIBC and OpenMP by default
Version 0.11.0, released on 2019-11-26
pwanalyzer0.8.0: removed overview analysispwreport0.1.0: overview results as JSON (proof of concept)
Version 0.10.5, released on 2019-11-05
pwcheck0.9.3: summary report and filtering of defects or recommendationspwloops0.1.2: output non-analyzable loops
Version 0.10.4, released on 2019-10-11
- Lowered minimum required GLIBC to 2.19
Version 0.10.3, released on 2019-09-17
- A valid license file is now required to run any program
pwanalyzer0.7.1pwcheck0.9.2pwloops0.1.1: changed default analysis to datascopingpwdirectives0.1.2: fixed bug allowing to parallelize already parallel loops
Version 0.10.2, released on 2019-08-28
pwcheck0.9.1: PWD003 support for C and code examples
Version 0.10.1, released on 2019-08-02
pwdirectives0.1.1: fixed bug preventing OpenMP offloading parallelizationpwcheck0.9.0: new PWD003 check for Fortran- libpw: updated to version 0.11.0
Version 0.10.0, released on 2019-07-02
pwanalyzer0.7.0pwcheck0.8.0: new binarypwloops0.1.0: new binarypwdirectives0.1.0: new binary- libpw: updated to version 0.10.0