Introduction
This document contains the release notes for the language interoperability library CppInterOp, release 1.4.0. CppInterOp is built on top of Clang and LLVM compiler infrastructure. Here we describe the status of CppInterOp in some detail, including major improvements from the previous release and new feature work. Note that if you are reading this file from a git checkout, this document applies to the next release, not the current one.
CppInterOp exposes API from Clang and LLVM in a backward compatibe way. The API support downstream tools that utilize interactive C++ by using the compiler as a service. That is, embed Clang and LLVM as a libraries in their codebases. The API are designed to be minimalistic and aid non-trivial tasks such as language interoperability on the fly. In such scenarios CppInterOp can be used to provide the necessary introspection information to the other side helping the language cross talk.
What's New in CppInterOp 1.4.0?
Some of the major new features and improvements to CppInterOp are listed here. Generic improvements to CppInterOp as a whole or to its underlying infrastructure are described first.
External Dependencies
- CppInterOp now works with:
- llvm19
Introspection
- Add GetBinaryOperator interface
- Add GetIncludePaths interface
- Improve template instantiation logic
Incremental C++
- Improve the wasm infrastructure
Fixed Bugs
Special Kudos
This release wouldn't have happened without the efforts of our contributors,
listed in the form of Firstname Lastname (#contributions):
FirstName LastName (#commits)
A B (N)
mcbarton (16)
Vipul Cariappa (8)
Aaron Jomy (8)
maximusron (4)
Vassil Vassilev (2)
Gnimuc (2)
What's Changed
- Run wasm build unconditionally in the ci by @mcbarton in #276
- Fix number of processors environment variable Windows by @mcbarton in #277
- Speed up running of Ubuntu jobs ci by @mcbarton in #271
- [ci] No longer do true for cppyy valgrind by @aaronj0 in #278
- Fix warning micromamba envirnoment setup ci by @mcbarton in #282
- Mark new valgrind xfail in unittests by @aaronj0 in #289
- [ci] Add token to upload codecov reports by @aaronj0 in #285
- Fix bug due to swiftlint osx jobs ci by @mcbarton in #291
- Remove hardcoding of CMAKE_PREFIX_PATH wasm build by @mcbarton in #292
- [tests] Conditionally skip valgrind xfails using llvm::sys by @aaronj0 in #281
- Treat all warnings as errors by @mcbarton in #288
- Fix unit test failure by @aaronj0 in #297
- Add Conda badges by @mcbarton in #293
- Fix wasm build ci by @mcbarton in #296
- Remove unneeded installation of dependencies for Ubuntu wasm jobs by @mcbarton in #300
- Add minor fixes for cross-platform support by @Gnimuc in #301
- Fix clang tidy review workflow by @mcbarton in #303
- Fix wasm jobs in ci due to changes in xeus-cpp requirements by @mcbarton in #307
- Update template function selection to use min required args by @aaronj0 in #309
- Add llvm 19 by @mcbarton in #312
- Implement
GetIncludePaths
by @Vipul-Cariappa in #311 - Remove Windows wasm llvm by @mcbarton in #316
- [docs] Update LLVM version by @aaronj0 in #317
- Support recent cling. by @vgvassilev in #318
- Add
GetBinaryOperator
by @Vipul-Cariappa in #319 - GetBinaryOperator returns vector of functions by @Vipul-Cariappa in #320
- Fix: resolve nested attributes of anonymous records in GetDatamembers by @Vipul-Cariappa in #321
- Resolve static attributes of records by @Vipul-Cariappa in #322
- Update
GetDataMember
to use an out param by @aaronj0 in #325 - Fix README typos by @aaronj0 in #327
- Add cppyy build isolation command in README by @aaronj0 in #328
- Improve template instantiation for
GetMethodTemplate
by @aaronj0 in #326 - using
getFirstDecl
forTranslationUnitDecl
for consistent pointers by @Vipul-Cariappa in #329 - Update README.md build instructions to be closer to ci build instructions by @mcbarton in #332
New Contributors
- @Gnimuc made their first contribution in #301
- @Vipul-Cariappa made their first contribution in #311
Full Changelog: v1.3.0...v1.4.0