|
1 |
| -- name: "C++ Language Interoperability Layer" |
| 1 | +- name: "Xeus-CPP - a Jupyter Kernel for C++" |
2 | 2 | description: |
|
3 |
| - In the CppInterOp (previously LibInterOp) project, we explore the key aspects |
4 |
| - of language interoperability with C++ using an automated binding approach, |
5 |
| - focusing on automatic binding to and from Python, but also applicable to other |
6 |
| - languages like D and Julia. |
| 3 | + Xeus-CPP is a product of OAC-1931408 in collaboration with the QuantStack |
| 4 | + company. It is a Jupyter kernel for C++ based on the native implementation |
| 5 | + of the Jupyter protocol xeus. It is supports the Wasm version of Jupyter |
| 6 | + (JupyterLite). It is a generalization of the Xeus-Clang-Repl (a Jupyter |
| 7 | + plugin supporting C++ development based on ClangRepl). |
7 | 8 |
|
8 |
| - category: "Language Interoperability" |
| 9 | + With Xeus-CPP, you can write and execute C++ code interactively, seeing |
| 10 | + the results immediately. This REPL nature allows you to iterate quickly |
| 11 | + without the overhead of compiling and running separate C++ programs. |
9 | 12 | link: |
|
10 |
| - https://compiler-research.org/libinterop/ |
| 13 | + https://github.com/compiler-research/xeus-cpp |
11 | 14 |
|
12 |
| -- name: "Clad - Clang Plugin" |
| 15 | +- name: "Clang-REPL - an Interactive C++ Interpreter" |
13 | 16 | description: |
|
14 |
| - Clad is a plugin for the Clang compiler that enables automatic differentiation |
15 |
| - capabilities for C/C++ codebases. It is a valuable tool for developers seeking |
16 |
| - to streamline complex mathematical computations and optimize their codebase |
17 |
| - efficiently. |
| 17 | + Clang-Repl is an interactive C++ interpreter that allows for incremental |
| 18 | + compilation. It supports interactive programming for C++ in a |
| 19 | + read-evaluate-print-loop (REPL) style. |
18 | 20 |
|
19 |
| - Clad facilitates the generation of derivatives, gradients, Hessians, and |
20 |
| - Jacobians (in forward and/or reverse mode), enhancing the efficiency and |
21 |
| - versatility of numerical computations. |
| 21 | + Clang-Repl is suitable for exploratory programming and in places where |
| 22 | + time to insight is important. Clang-Repl is a project inspired by the work |
| 23 | + in Cling, a LLVM-based C/C++ interpreter developed by the field of high |
| 24 | + energy physics and used by the scientific data analysis framework ROOT. |
| 25 | + Clang-Repl allows to move parts of Cling upstream, making them useful and |
| 26 | + available to a broader audience. |
| 27 | + link: | |
| 28 | + https://clang.llvm.org/docs/ClangRepl.html |
22 | 29 |
|
23 |
| - Clad not only supports partial and higher-order derivatives but also |
24 |
| - integrates seamlessly with frameworks like ROOT, providing a comprehensive |
25 |
| - solution for automatic differentiation needs in C++ applications. |
26 |
| - category: "Automatic Differentiation" |
| 30 | +- name: "CppInterOp - a C++ Language Interoperability Layer" |
| 31 | + description: | |
| 32 | + CppInterOp (previously LibInterOp) is a product of OAC-1931408 and exposes |
| 33 | + APIs from Clang and LLVM in a mostly backward compatibe way. The APIs |
| 34 | + support downstream tools that utilize interactive C++ by using the |
| 35 | + compiler as a service. That is, embed Clang and LLVM as a libraries in |
| 36 | + their codebases. |
| 37 | + |
| 38 | + The APIs are designed to be minimalistic and aid non-trivial tasks such as |
| 39 | + language interoperability on the fly. In such scenarios CppInterOp can be |
| 40 | + used to provide the necessary introspection information to the other side |
| 41 | + helping the language cross talk. The package makes it easy to deploy as it |
| 42 | + ships Clang as a service without any dependencies. |
27 | 43 | link: |
|
28 |
| - https://compiler-research.org/clad/ |
| 44 | + https://github.com/compiler-research/CppInterOp |
29 | 45 |
|
30 |
| -- name: "Cling - C++ Interpreter" |
| 46 | +- name: "Cling - an Interactive C++ Interpreter" |
31 | 47 | description: |
|
32 | 48 | Cling is an interactive C++ interpreter that operates on top of the Clang and
|
33 | 49 | LLVM libraries, utilizing LLVM's Just-In-Time (JIT) compiler for fast and
|
|
41 | 57 | By providing support for advanced C++ features like templates, lambdas, and
|
42 | 58 | virtual inheritance, Cling empowers developers in exploratory programming with
|
43 | 59 | interactive, dynamic language interoperability and rapid prototyping.
|
44 |
| - category: "Interactive C++" |
45 | 60 | link: |
|
46 |
| - https://rawgit.com/root-project/cling/master/www/index.html |
| 61 | + https://github.com/root-project/cling |
47 | 62 |
|
48 |
| -- name: "Interactive C++ (Cling Use Case)" |
| 63 | +- name: "Clad - an Automatic Differentiation Tool" |
49 | 64 | description: |
|
50 |
| - Researchers heavily rely on tools that minimize the "time to insight" to |
51 |
| - enhance productivity. However, the escalating data volumes and computational |
52 |
| - demands necessitate a constant emphasis on optimizing code performance. This |
53 |
| - is where interactive capabilities of tools like Cling are useful, enabling |
54 |
| - navigation through a diverse set of programming languages, development tools, |
55 |
| - and hardware. |
56 |
| - category: "Interactive C++" |
57 |
| - link: | |
58 |
| - https://compiler-research.org/interactive_cpp |
| 65 | + Clad is a plugin for the Clang compiler that enables automatic differentiation |
| 66 | + capabilities for C/C++ codebases. It is a valuable tool for developers seeking |
| 67 | + to streamline complex mathematical computations and optimize their codebase |
| 68 | + efficiently. |
59 | 69 |
|
60 |
| -- name: "Incremental Compilation Support in Clang (CaaS) Project" |
61 |
| - description: | |
62 |
| - Incremental compilation aims to support clients that need to keep a single |
63 |
| - compiler instance active across multiple compile requests. |
64 |
| - category: "Compiler-As-A-Service" |
| 70 | + Clad facilitates the generation of derivatives, gradients, Hessians, and |
| 71 | + Jacobians (in forward and/or reverse mode), enhancing the efficiency and |
| 72 | + versatility of numerical computations. |
| 73 | +
|
| 74 | + Clad not only supports partial and higher-order derivatives but also |
| 75 | + integrates seamlessly with frameworks like ROOT, providing a comprehensive |
| 76 | + solution for automatic differentiation needs in C++ applications. |
65 | 77 | link: |
|
66 |
| - https://compiler-research.org/caas/ |
| 78 | + https://github.com/vgvassilev/clad |
| 79 | +
|
| 80 | +
|
| 81 | +
|
| 82 | +
|
| 83 | +
|
| 84 | +
|
0 commit comments