Skip to content

Commit eba11b0

Browse files
committed
Prepare for release v1.8.0
1 parent 98cb86e commit eba11b0

2 files changed

Lines changed: 66 additions & 17 deletions

File tree

VERSION

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

docs/ReleaseNotes.md

Lines changed: 65 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -22,34 +22,75 @@ Some of the major new features and improvements to CppInterOp are listed here.
2222
Generic improvements to CppInterOp as a whole or to its underlying
2323
infrastructure are described first.
2424

25+
This release focuses on improving runtime introspection, extending the JIT and
26+
incremental compilation capabilities, introducing a new API dispatch mechanism,
27+
and delivering numerous robustness and correctness fixes across the interpreter
28+
and code generation layers.
29+
2530
## External Dependencies
2631

2732
- CppInterOp now works with:
2833
- llvm21
2934

35+
3036
## Introspection
3137

32-
-
38+
- Adds `GetDoxygenComment()` to extract Doxygen documentation comments from
39+
C++ declarations.
40+
- Adds `GetSpellingFromOperator` and `GetOperatorFromSpelling` helpers.
41+
- Adds `GetPointerType` and improved `GetReferencedType` with rvalue support.
42+
- Adds `GetReferenceValueKind`, replacing `IsLValueReferenceType` and
43+
`IsRValueReferenceType`.
44+
- Adds type qualifier utilities: `HasTypeQualifier`, `RemoveTypeQualifier`, and
45+
`AddTypeQualifier`.
46+
- Improved type printing and reflection:
47+
- `GetCompleteName` now includes template parameters.
48+
- Fixed handling of default arguments and return types in templated functions.
49+
- Adds `IsLambdaClass` and multiple fixes for templated and forward-declared
50+
entities.
51+
- Improves correctness of variable offsets, base class introspection, and method
52+
lookup.
3353

34-
## Just-in-Time Compilation
3554

36-
-
55+
## Just-in-Time Compilation
3756

38-
## Incremental C++
57+
- Adds full support for --Out-of-Process JIT--, including documentation and test
58+
infrastructure.
59+
- Improves clang-repl integration and symbol handling across LLVM 18–21.
60+
- Adds `DefineAbsoluteSymbol` to define injected symbols in the JIT.
61+
- Major improvements to `JitCall` and runtime code generation:
62+
- Constructor call support and improved handling of arrays in
63+
construct/destruct APIs.
64+
- Support for move semantics (e.g. `std::unique_ptr`).
65+
- Fixes for lambdas as return types, duplicate symbols, enums vs. functions,
66+
and namespace conflicts.
67+
- Improves diagnostics in `JitCall::AreArgumentsValid`.
3968

40-
-
4169

42-
## Misc
70+
## Incremental C++
4371

44-
-
72+
- Adds Cling transaction guards to prevent crashes in `GetNamed` and
73+
`GetAllCppNames`.
74+
- Improves interpreter lifetime management and ownership semantics.
75+
- Stabilizes successive `Declare` calls and template instantiation workflows.
76+
- Improves integration with LLJIT and incremental execution.
4577

46-
## Fixed Bugs
4778

48-
[XXX](https://github.com/compiler-research/CppInterOp/issues/XXX)
79+
## Misc
4980

50-
<!---Get release bugs
51-
git log v1.7.0..main | grep 'Fixes|Closes'
52-
--->
81+
- Introduces a new __API Dispatch mechanism__:
82+
- Allows using CppInterOp without direct linking via runtime symbol dispatch
83+
(`CppGetProcAddress`).
84+
- Prevents LLVM/Clang symbol leakage into client applications.
85+
- Enables safe dynamic loading of CppInterOp alongside other LLVM-based
86+
libraries.
87+
- Current limitations:
88+
- Overloaded public APIs are not supported.
89+
- API must be initialized via `LoadDispatchAPI` before use.
90+
- Default arguments are not available in dispatched calls.
91+
- Improves Emscripten support, CI pipelines, and deployment examples.
92+
- Reorganizes public headers (`CppInterOp.h`) into a dedicated include path.
93+
- Numerous improvements to CMake configuration, CI workflows, and documentation.
5394

5495
## Special Kudos
5596

@@ -60,7 +101,15 @@ FirstName LastName (#commits)
60101

61102
A B (N)
62103

63-
<!---Find contributor list for this release
64-
git log --pretty=format:"%an" v1.7.0...main | sort | uniq -c | sort -rn |\
65-
sed -E 's,^ *([0-9]+) (.*)$,\2 \(\1\),'
66-
--->
104+
Matthew Barton (61; CI, Emscripten & deployment work, build and workflow maintenance)
105+
Aaron Jomy (36; API dispatch, JIT / JitCall improvements, extensive tests and docs)
106+
Vipul Cariappa (34; template & codegen fixes, type-reflection and interpreter robustness)
107+
Vassil Vassilev (12; interpreter lifecycle, test coverage, refactorings and cleanup)
108+
Abhinav Kumar (2; out-of-process JIT implementation and related integration)
109+
Aditya Pandey (2; GetDoxygenComment API and README/build corrections)
110+
Vincenzo Eduardo Padulano (1; target-existence checks and robustness fixes)
111+
Stephan Hageboeck (1; test/build adjustments and gtest compatibility)
112+
Mattias Ellert (1; platform-correctness tests for struct sizing)
113+
Jonas Hahnfeld (1; conditional LLVM option handling / build integration)
114+
Anutosh Bhat (1; compatibility fix for CLANG_VERSION_MAJOR > 21)
115+

0 commit comments

Comments
 (0)