|
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