Skip to content

Commit 7d29924

Browse files
committed
Prepare for release v2.2
1 parent a5f8d06 commit 7d29924

File tree

2 files changed

+70
-11
lines changed

2 files changed

+70
-11
lines changed

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.2.0~dev
1+
2.2.0

docs/ReleaseNotes.md

Lines changed: 69 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,42 +21,93 @@ described first.
2121
External Dependencies
2222
---------------------
2323

24-
* Clad now works with clang-10 to clang-20
24+
* Clad now works with clang-11 to clang-21
25+
* Removed unused coverage libraries for faster CI builds.
26+
* Fixed Python 3.12 linking issue in LLVM 16 installs on macOS.
27+
* macOS ARM CI updated to macOS 26.
2528

2629

2730
Forward Mode & Reverse Mode
2831
---------------------------
29-
*
32+
33+
* Major internal cleanup and generalization of differentiation pipelines.
34+
* Unified initialization logic for adjoints and original variables.
35+
* Improved compatibility across pointer, tensor, and reference types.
36+
* Added support for conversion operators and `std::reference_wrapper`.
37+
* Enhanced handling of initialization lists, pseudo-destructors, and complex
38+
expressions.
39+
3040

3141
Forward Mode
3242
------------
33-
*
43+
44+
* OpenMP Support (Experimental): Introduced basic OpenMP support for forward
45+
mode differentiation.
46+
* Simplified adjoint and initializer handling for forward-pass variables.
3447

3548
Reverse Mode
3649
------------
37-
*
50+
51+
* Added reverse mode checkpointing for loops, improving memory efficiency in
52+
long iterations.
53+
* Elidable Reverse Passes: Introduced `elidable_reverse_forw` attribute to skip
54+
redundant reverse passes for trivially invertible functions.
55+
* `constructor_reverse_forw` now supports static scheduling and
56+
`elidable_reverse_forw`.
57+
* Added support for `CompoundLiteralExpr` and improved differentiation through
58+
compound expressions.
59+
* Simplified handling of deallocations and memory operations via attributes.
60+
* Improved function differentiation sequence by resolving pullbacks before
61+
argument differentiation.
62+
* Unified differentiation order for pointer and reference types.
63+
* Optimized unary operator simplification (removed redundant &*_d_x patterns).
64+
3865

3966
CUDA
4067
----
41-
*
4268

43-
Error Estimation
44-
----------------
45-
*
69+
* Extended Thrust differentiation support:
70+
- `thrust::reduce_by_key`
71+
- `thrust::sort_by_key`
72+
- `thrust::adjacent_difference`
73+
- segmented scans and prefix-sum operations
74+
* Added thrust::device_vector support.
75+
* Introduced BoW (Bag-of-Words) logistic regression demo using Thrust.
76+
* Replaced iterator-based std::move with CUDA-safe clad::move.
77+
* Added generic functor support for Thrust transform.
78+
4679

4780
Misc
4881
----
49-
*
82+
83+
* Added thread-safe tape access functions:
84+
- Zero overhead in single-threaded mode.
85+
- Controlled locking for multithreaded differentiation.
86+
* Improved handling of ill-formed code by skipping Clad runs when Clang
87+
compilation fails.
88+
* Refined diagnostic messages and simplified deallocation functions through
89+
attribute-based design.
90+
* Updated testing and build infrastructure:
91+
- Added STL test coverage (starting with <cmath>).
92+
- Cleaned up coverage configuration.
93+
- Enhanced CI stability and performance.
5094

5195
Fixed Bugs
5296
----------
5397

54-
[XXX](https://github.com/vgvassilev/clad/issues/XXX)
98+
[679](https://github.com/vgvassilev/clad/issues/679)
99+
[1413](https://github.com/vgvassilev/clad/issues/1413)
100+
[1482](https://github.com/vgvassilev/clad/issues/1482)
101+
[1496](https://github.com/vgvassilev/clad/issues/1496)
102+
[1521](https://github.com/vgvassilev/clad/issues/1521)
103+
[1522](https://github.com/vgvassilev/clad/issues/1522)
55104

56105
<!---Get release bugs. Check for close, fix, resolve
57106
git log v2.1..master | grep -i "close" | grep '#' | sed -E 's,.*\#([0-9]*).*,\[\1\]\(https://github.com/vgvassilev/clad/issues/\1\),g' | sort -t'[' -k2,2n
58107
--->
59108

109+
<!--- https://github.com/vgvassilev/clad/issues?q=is%3Aissue%20state%3Aclosed%20closed%3A%3E2025-10-01 --->
110+
60111
Special Kudos
61112
=============
62113

@@ -67,6 +118,14 @@ FirstName LastName (#commits)
67118

68119
A B (N)
69120

121+
Petro Zarytskyi (33; reverse mode, loop checkpointing, elidable reverse passes)
122+
Abdelrhman Elrawy (9; CUDA/Thrust derivatives, demos, logistic regression)
123+
Vassil Vassilev (9; compiler integration, CI, and build infrastructure)
124+
Matthew Barton (2; macOS and Python 3.12 CI fixes)
125+
Aditi Joshi (1; thread-safe tape access implementation)
126+
Max Andriychuk (1; analyses)
127+
Errant (1; OpenMP differentiation support)
128+
70129
<!---Find contributor list for this release
71130
git log --pretty=format:"%an" v2.1...master | sort | uniq -c | sort -rn | sed -E 's,^ *([0-9]+) (.*)$,\2 \(\1\),'
72131
--->

0 commit comments

Comments
 (0)