CppInterOp version 1.2.0
Introduction
This document contains the release notes for the language interoperability library CppInterOp, release 1.2.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.2.0?
Some of the major new features and improvements to Clad are listed here. Generic improvements to Clad as a whole or to its underlying infrastructure are described first.
External Dependencies
- CppInterOp now works with:
- cling (based on patched clang13)
- clang-repl
- based on patched clang16
- clang17
Misc
- Add support for Windows
- Add support for Wasm
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)
fsfod (30)
mcbarton (10)
Vassil Vassilev (6)
Shreyas Atre (4)
Alexander Penev (2)
Saqib (1)
Aaron Jomy (1)
What's Changed
- Add missing dependencies for LLVM_LINK_LLVM_DYLIB by @vgvassilev in #166
- Move cmake config files by @alexander-penev in #167
- Fix Cmake package return info by @alexander-penev in #168
- Added fixes which caused issues building on Apple Silicon by @mcbarton in #170
- Update CppInterOpConfig.cmake.in to get correct library location by @mcbarton in #171
- Update macos and ubuntu ci to be more extensive by @mcbarton in #173
- Added Dpcumentation of cppyy Enhancements and how they relate to LibInterOp by @QuillPusher in #160
- [Tests] CppInterOp: Enable GetFunctionAddress test for macOS by @SAtacker in #176
- Update README.md build instructions by @mcbarton in #179
- [Symbol Names] Workaround: Mangle names for macOS by @SAtacker in #177
- [CI] Update CI to include a Windows build of CppInterOp + other general CI improvements by @mcbarton in #180
- Various windows fixes by @fsfod in #181
- Update README.md build instructions to fix typos and mistakes by @mcbarton in #185
- Specify the build configuration when building on Windows by @vgvassilev in #186
- [ci] Allow rerunning gh actions with debug logging. by @vgvassilev in #187
- Add xeus-clang-repl build to ci by @mcbarton in #189
- add CI job that runs full test suite by @maximusron in #190
- Increase Code Coverage by @SAtacker in #192
- Add ability to compile CppInterOp and tests on Windows with different compiler by @mcbarton in #195
- Windows test fixes by @fsfod in #196
- Remove redundant ci jobs by @mcbarton in #197
- [CI] Add wasm support to CI for osx and Linux by @mcbarton in #198
New Contributors
- @mcbarton made their first contribution in #170
- @SAtacker made their first contribution in #176
- @fsfod made their first contribution in #181
- @maximusron made their first contribution in #190
Full Changelog: v1.1.0...v1.2.0