Skip to content

Commit 90ae6ef

Browse files
aaronj0vvolkl
andauthored
[gsoc24] Xeus-Cpp project and proposals for compiler-research.org (#1509)
* Create proposal_XeusCpp-LLM.md * Create project_Xeus-Cpp.md * Add Xeus-Cpp logo * Create proposal_XeusCpp-Features.md * Create proposal_CppInterOp-AdoptionInROOT.md * Update proposal_CppInterOp-AdoptionInROOT.md * Fix typo in _gsocproposals/2024/proposal_XeusCpp-LLM.md --------- Co-authored-by: Valentin Volkl <valentin.volkl@cern.ch>
1 parent adb08fb commit 90ae6ef

File tree

5 files changed

+134
-0
lines changed

5 files changed

+134
-0
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
project: Xeus-Cpp
3+
layout: default
4+
logo: Xeus-Cpp-logo.png
5+
description: |
6+
[Xeus-Cpp](https://xeus-cpp.readthedocs.io/en/latest/index.html) xeus-cpp is a Jupyter kernel
7+
for cpp based on the native implementation of the Jupyter protocol xeus. This enables users to
8+
write and execute C++ code interactively, seeing the results immediately. This REPL (read-eval-print-loop)
9+
nature allows rapid prototyping and iterations without the overhead of compiling and running separate C++ programs.
10+
This also achieves C++ and Python integration within a single Jupyter environment.
11+
summary: |
12+
Xeus-Cpp is a Jupyter kernel for C++ based on the native implementation of the Jupyter protocol [xeus](https://github.com/jupyter-xeus/xeus).
13+
---
14+
15+
{% include gsoc_project.ext %}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
---
2+
title: Adoption of CppInterOp in ROOT
3+
layout: gsoc_proposal
4+
project: Cppyy
5+
year: 2024
6+
difficulty: medium
7+
duration: 350
8+
mentor_avail: June-October
9+
organization:
10+
- CompRes
11+
---
12+
13+
## Description
14+
15+
Incremental compilation pipelines process code chunk-by-chunk by building an ever-growing translation unit. Code is then lowered into the LLVM IR and subsequently run by the LLVM JIT. Such a pipeline allows creation of efficient interpreters. The interpreter enables interactive exploration and makes the C++ language more user friendly. The incremental compilation mode is used by the interactive C++ interpreter, Cling, initially developed to enable interactive high-energy physics analysis in a C++ environment. The CppInterOp library provides a minimalist approach for other languages to identify C++ entities (variables, classes, etc.). This enables interoperability with C++ code, bringing the speed and efficiency of C++ to simpler, more interactive languages like Python. CppInterOp provides primitives that are good for providing reflection information.
16+
17+
The ROOT is an open-source data analysis framework used by high energy physics and others to analyze petabytes of data, scientifically. The framework provides support for data storage and processing by relying on Cling, Clang, LLVM for building automatically efficient I/O representation of the necessary C++ objects. The I/O properties of each object is described in a compilable C++ file called a /dictionary/. ROOT’s I/O dictionary system relies on reflection information provided by Cling and Clang. However, the reflection information system has grown organically and now ROOT’s core/metacling system has been hard to maintain and integrate.
18+
19+
The goal of this project is to integrate CppInterOp in ROOT where possible.
20+
21+
## Project Milestones
22+
23+
* To achieve this goal we expect several infrastructure items to be completed such as Windows support, WASM support
24+
* Make reusable github actions across multiple repositories
25+
* Sync the state of the dynamic library manager with the one in ROOT
26+
* Sync the state of callfunc/jitcall with the one in ROOT
27+
* Prepare the infrastructure for upstreaming to llvm
28+
* Propose an RFC and make a presentation to the ROOT development team
29+
30+
31+
## Requirements
32+
33+
* C++ programming
34+
* Python programming
35+
* Knowledge of Clang and LLVM
36+
37+
## Mentors
38+
* **[Vassil Vassilev](mailto:vvasilev@cern.ch)**
39+
* [David Lange](mailto:david.lange@cern.ch)
40+
41+
## Links
42+
* [Repo](https://github.com/compiler-research/CppInterOp)
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
title: Implementing missing features in xeus-cpp
3+
layout: gsoc_proposal
4+
project: Xeus-Cpp
5+
year: 2024
6+
difficulty: medium
7+
duration: 350
8+
mentor_avail: June-October
9+
organization:
10+
- CompRes
11+
---
12+
13+
## Description
14+
15+
xeus-cpp is a Jupyter kernel for cpp based on the native implementation of the Jupyter protocol xeus. This enables users to write and execute C++ code interactively, seeing the results immediately. This REPL (read-eval-print-loop) nature allows rapid prototyping and iterations without the overhead of compiling and running separate C++ programs. This also achieves C++ and Python integration within a single Jupyter environment.
16+
17+
The xeus-cpp is a successor of xeus-clang-repl and xeus-cling. The project goal is to advance the project feature support to the extent of what’s supported in xeus-clang-repl and xeus-cling.
18+
19+
## Project Milestones
20+
21+
* Fix occasional bugs in clang-repl directly in llvm upstream
22+
* Implement the value printing logic
23+
* Advance the wasm infrastructure
24+
* Write tutorials and demonstrators
25+
* Complete the transition of xeus-clang-repl to xeus-cpp
26+
27+
## Requirements
28+
29+
* Python and C++ programming
30+
* Knowledge of Clang and LLVM
31+
32+
## Mentors
33+
* **[Alexander Penev](mailto:alexander.p.penev@gmail.com)**
34+
* [Vassil Vassilev](mailto:vvasilev@cern.ch)
35+
36+
## Links
37+
* [Repo](https://github.com/compiler-research/xeus-cpp)
38+
* [Docs](https://xeus-cpp.readthedocs.io/en/latest/index.html)
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
---
2+
title: Integrate a Large Language Model with the xeus-cpp Jupyter kernel
3+
layout: gsoc_proposal
4+
project: Xeus-Cpp
5+
year: 2024
6+
difficulty: medium
7+
duration: 350
8+
mentor_avail: June-October
9+
organization:
10+
- CompRes
11+
---
12+
13+
## Description
14+
15+
xeus-cpp is a Jupyter kernel for cpp based on the native implementation of the Jupyter protocol xeus. This enables users to write and execute C++ code interactively, seeing the results immediately. This REPL (read-eval-print-loop) nature allows rapid prototyping and iterations without the overhead of compiling and running separate C++ programs. This also achieves C++ and Python integration within a single Jupyter environment.
16+
17+
This project aims to integrate a large language model, such as Bard/Gemini, with the xeus-cpp Jupyter kernel. This integration will enable users to interactively generate and execute code in C++ leveraging the assistance of the language model. Upon successful integration, users will have access to features such as code autocompletion, syntax checking, semantic understanding, and even code generation based on natural language prompts.
18+
19+
## Project Milestones
20+
21+
* Design and implement mechanisms to interface the large language model with the xeus-cpp kernel. [Jupyter-AI](https://github.com/jupyterlab/jupyter-ai) might be used as a motivating example
22+
* Develop functionalities within the kernel to utilize the language model for code generation based on natural language descriptions and suggestions for autocompletion.
23+
* Comprehensive documentation and thorough testing/CI additions to ensure reliability.
24+
* [Stretch Goal] After achieving the previous milestones, the student can work on specializing the model for enhanced syntax and semantic understanding capabilities by using xeus notebooks as datasets.
25+
26+
## Requirements
27+
28+
* Python and C++ programming
29+
* Basic knowledge of Large Language Models
30+
* Familiarity with the API's of Bard/OpenAI is a plus
31+
32+
## Mentors
33+
* **[Vassil Vassilev](mailto:vvasilev@cern.ch)**
34+
* [Aaron Jomy](mailto:aaron.jomy@cern.ch)
35+
* [David Lange](mailto:david.lange@cern.ch)
36+
37+
## Links
38+
* [Repo](https://github.com/compiler-research/xeus-cpp)
39+
* [Docs](https://xeus-cpp.readthedocs.io/en/latest/index.html)

images/xeus-logo.png

10.6 KB
Loading

0 commit comments

Comments
 (0)