@@ -21,42 +21,93 @@ described first.
2121External 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
2730Forward 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
3141Forward 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
3548Reverse 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
3966CUDA
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
4780Misc
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
5195Fixed 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+
60111Special Kudos
61112=============
62113
@@ -67,6 +118,14 @@ FirstName LastName (#commits)
67118
68119A 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