Skip to content

Commit 5f14136

Browse files
committed
Prepare for release v1.0
1 parent 41e52c5 commit 5f14136

File tree

2 files changed

+114
-1
lines changed

2 files changed

+114
-1
lines changed

docs/ReleaseNotes.md

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
Introduction
2+
============
3+
4+
This document contains the release notes for the language interoperability
5+
library CppInterOp, release 1.0. CppInterOp is built on top of
6+
[Clang](http://clang.llvm.org) and [LLVM](http://llvm.org>) compiler
7+
infrastructure. Here we describe the status of CppInterOp in some detail,
8+
including major improvements from the previous release and new feature work.
9+
Note that if you are reading this file from a git checkout, this document
10+
applies to the *next* release, not the current one.
11+
12+
CppInterOp exposes API from Clang and LLVM in a backward compatibe way. The API
13+
support downstream tools that utilize interactive C++ by using the compiler as
14+
a service. That is, embed Clang and LLVM as a libraries in their codebases. The
15+
API are designed to be minimalistic and aid non-trivial tasks such as language
16+
interoperability on the fly. In such scenarios CppInterOp can be used to provide
17+
the necessary introspection information to the other side helping the language
18+
cross talk.
19+
20+
21+
What's New in CppInterOp 1.0?
22+
=============================
23+
24+
Some of the major new features and improvements to Clad are listed here. Generic
25+
improvements to Clad as a whole or to its underlying infrastructure are
26+
described first.
27+
28+
External Dependencies
29+
---------------------
30+
31+
* CppInterOp now works with cling (based on patched clang13) and clang-repl
32+
(based on patched clang16)
33+
34+
35+
Introspection
36+
-------------
37+
38+
* Facilities enabling the is-a operation such as `IsAggregate`, `IsNamespace`,
39+
`IsClass`, `IsComplete`, `IsBuiltin`, `IsTemplate`,
40+
`IsTemplateSpecialization`, `IsTypedefed`, `IsAbstract`, `IsEnumScope`,
41+
`IsEnumConstant`, `IsEnumType`, `IsSmartPtrType`, `IsVariable`,
42+
`IsFunctionDeleted`, `IsTemplatedFunction`, `IsMethod`, `IsPublicMethod`,
43+
`IsProtectedMethod`, `IsPrivateMethod`, `IsConstructor`, `IsDestructor`,
44+
`IsStaticMethod`, `IsVirtualMethod`, `IsPublicVariable`,
45+
`IsProtectedVariable`, `IsPrivateVariable`, `IsStaticVariable`,
46+
`IsConstVariable`, `IsRecordType`, `IsPODType`, `IsTypeDerivedFrom`,
47+
`IsConstMethod`, and `HasDefaultConstructor`.
48+
49+
* Facilities for obtaining the introspection representations of entities such as
50+
`GetIntegerTypeFromEnumScope`, `GetIntegerTypeFromEnumType`,
51+
`GetEnumConstants`, `GetEnumConstantType`, `GetEnumConstantValue`,
52+
`GetSizeOfType`, `SizeOf`, `GetUsingNamespaces`, `GetGlobalScope`,
53+
`GetUnderlyingScope`, `GetScope`, `GetScopeFromCompleteName`, `GetNamed`,
54+
`GetParentScope`, `GetScopeFromType`, `GetBaseClassOffset`, `GetClassMethods`,
55+
`GetDefaultConstructor`, `GetDestructor`, `GetFunctionsUsingName`,
56+
`GetFunctionReturnType`, `GetFunctionNumArgs`, `GetFunctionRequiredArgs`,
57+
`GetFunctionArgType`, `GetDatamembers`, `LookupDatamember`, `GetVariableType`,
58+
`GetVariableOffset`, `GetUnderlyingType`, `GetCanonicalType`, `GetType`,
59+
`GetComplexType`, `GetTypeFromScope`, `InstantiateClassTemplate`, and
60+
`InstantiateTemplateFunctionFromString`.
61+
62+
63+
Just-in-Time Compilation
64+
------------------------
65+
66+
* Facilities getting the compiled representation of the entities such as
67+
`MakeFunctionCallable`, `InsertOrReplaceJitSymbol`, `Allocate`, `Deallocate`,
68+
`Construct`, and `Destruct`.
69+
70+
71+
Incremental C++
72+
---------------
73+
74+
* Facilities for setting up the intrastructure such as `CreateInterpreter`,
75+
`GetInterpreter`, `AddSearchPath`, and `AddIncludePath`.
76+
77+
* Facilities for consuming incremental input such as `Declare`, `Process` and
78+
`Evaluate`.
79+
80+
81+
Debugging
82+
---------
83+
84+
* Facilities for debugging such as `EnableDebugOutput`, `IsDebugOutputEnabled`,
85+
and `DumpScope`.
86+
87+
88+
Misc
89+
----
90+
91+
* Facilities for getting entities' string representation such as `GetName`,
92+
`GetCompleteName`, `GetQualifiedName`, `GetQualifiedCompleteName`,
93+
`GetFunctionSignature`, `GetTypeAsString`, `ObjToString`, and
94+
`GetAllCppNames`.
95+
96+
97+
Special Kudos
98+
=============
99+
100+
This release wouldn't have happened without the efforts of our contributors,
101+
listed in the form of Firstname Lastname (#contributions):
102+
103+
FirstName LastName (#commits)
104+
105+
A B (N)
106+
107+
Baidyanath Kundu (141)
108+
Vassil Vassilev (68)
109+
Alexander Penev (16)
110+
Smit1603 (8)
111+
Krishna-13-cyber (4)
112+
Vaibhav Thakkar (2)
113+
QuillPusher (2)

lib/Interpreter/CppInterOp.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ namespace Cpp {
116116
#undef DEBUG_TYPE
117117

118118
std::string GetVersion() {
119-
const char* const VERSION = "1.0~dev";
119+
const char* const VERSION = "1.0";
120120
std::string fullVersion = "CppInterOp version";
121121
fullVersion += VERSION;
122122
fullVersion += "\n (based on "

0 commit comments

Comments
 (0)