|
641 | 641 | * Implement template instantiation error recovery support
|
642 | 642 | * Implement argument-dependent lookup (ADL) recovery support
|
643 | 643 |
|
644 |
| -- name: "Improve Cling's Development Lifecycle" |
645 |
| - description: | |
646 |
| - Cling is an interactive C++ interpreter, built on top of Clang and LLVM |
647 |
| - compiler infrastructure. Cling realizes the read-eval-print loop (REPL) |
648 |
| - concept, in order to leverage rapid application development. Implemented as |
649 |
| - a small extension to LLVM and Clang, the interpreter reuses their strengths |
650 |
| - such as the praised concise and expressive compiler diagnostics. |
651 |
| - tasks: | |
652 |
| - The project foresees to enhance the Github Actions infrastructure by adding |
653 |
| - development process automation tools: |
654 |
| - * Code Coverage information (`codecov`) |
655 |
| - * Static code analysis (`clang-tidy`) |
656 |
| - * Coding conventions checks (`clang-format`) |
657 |
| - * Release binary upload automation |
658 |
| -
|
659 |
| -- name: "Allow redefinition of CUDA functions in Cling" |
660 |
| - description: | |
661 |
| - Cling is an interactive C++ interpreter, built on top of Clang and LLVM |
662 |
| - compiler infrastructure. Cling realizes the read-eval-print loop (REPL) |
663 |
| - concept, in order to leverage rapid application development. Implemented as |
664 |
| - a small extension to LLVM and Clang, the interpreter reuses their strengths |
665 |
| - such as the praised concise and expressive compiler diagnostics. |
666 |
| -
|
667 |
| - Since the development of Cling started, it got some new features to enable |
668 |
| - new workflows. One of the features is CUDA mode, which allows you to |
669 |
| - interactively develop and run CUDA code on Nvidia GPUs. Another feature is |
670 |
| - the redefinition of functions, variable classes and more, bypassing the |
671 |
| - one-definition rule of C++. This feature enables comfortable rapid |
672 |
| - prototyping in C++. Currently, the two features cannot be used together |
673 |
| - because parsing and executing CUDA code behaves differently compared to |
674 |
| - pure C++. |
675 |
| - tasks: | |
676 |
| - The task is to adapt the redefinitions feature of the pure C++ mode for the |
677 |
| - CUDA mode. To do this, the student must develop solutions to known and |
678 |
| - unknown problems that parsing and executing CUDA code causes. |
679 |
| -
|
680 |
| -- name: "Developing C++ modules support in CMSSW and Boost" |
681 |
| - description: | |
682 |
| - The LHC smashes groups of protons together at close to the speed of light: |
683 |
| - 40 million times per second and with seven times the energy of the most |
684 |
| - powerful accelerators built up to now. Many of these will just be glancing |
685 |
| - blows but some will be head on collisions and very energetic. When this |
686 |
| - happens some of the energy of the collision is turned into mass and |
687 |
| - previously unobserved, short-lived particles – which could give clues about |
688 |
| - how Nature behaves at a fundamental level - fly out and into the detector. |
689 |
| - Our work includes the experimental discovery of the Higgs boson, which leads |
690 |
| - to the award of a Nobel prize for the underlying theory that predicted the |
691 |
| - Higgs boson as an important piece of the standard model theory of particle |
692 |
| - physics. |
693 |
| -
|
694 |
| - CMS is a particle detector that is designed to see a wide range of particles |
695 |
| - and phenomena produced in high-energy collisions in the LHC. Like a |
696 |
| - cylindrical onion, different layers of detectors measure the different |
697 |
| - particles, and use this key data to build up a picture of events at the |
698 |
| - heart of the collision. |
699 |
| -
|
700 |
| - Last year, thanks to [Lucas Calmolezi and GSoC](https://summerofcode.withgoogle.com/archive/2020/projects/5397144158076928/), |
701 |
| - the usage of boost in CMSSW was modernized. It improved the C++ modules |
702 |
| - support of local boost fork. |
703 |
| - tasks: | |
704 |
| - Many of the accumulated local patches add missing includes to the relevant |
705 |
| - boost header files. The candidate should start by proposing the existing |
706 |
| - patches to the boost community. Try to compile more boost-specific modules |
707 |
| - which is mostly a mechanical task. The student should be ready to work |
708 |
| - towards making the C++ module files more efficient containing less |
709 |
| - duplications. The student should be prepared to write a progress report and |
710 |
| - present the results. |
711 |
| -
|
712 |
| -- name: 'Modernize the LLVM "Building A JIT" tutorial series' |
713 |
| - description: | |
714 |
| - The LLVM BuildingAJIT tutorial series teaches readers to build their own JIT |
715 |
| - class from scratch using LLVM’s ORC APIs, however the tutorial chapters have |
716 |
| - not kept pace with recent API improvements. Bring the existing tutorial |
717 |
| - chapters up to speed, write up a new chapter on lazy compilation (chapter |
718 |
| - code already available) or write a new chapter from scratch. |
719 |
| - tasks: | |
720 |
| - * Update chapter text for Chapters 1-3 -- Easy, but offers a chance to get |
721 |
| - up-to-speed on the APIs. |
722 |
| - * Write chapter text for Chapter 4 -- Chapter code is already available, but |
723 |
| - no chapter text exists yet. |
724 |
| - * Write a new chapter from scratch -- E.g. How to write an out-of-process |
725 |
| - JIT, or how to directly manipulate the JIT'd instruction stream using the |
726 |
| - ObjectLinkingLayer::Plugin API. |
727 |
| -
|
728 | 644 |
|
729 | 645 | ################################################################################
|
730 | 646 | # 2024 #
|
|
0 commit comments