Cling version 1.0
Introduction
This document contains the release notes for the interactive C++ interpreter Cling, release 1.0. Cling is built on top of Clang and LLVM compiler infrastructure. Here we describe the status of Cling in some detail, including major improvements from the previous release and new feature work.
Note that if you are reading this file from a git checkout or the main Cling web page, this document applies to the next release, not the current one.
What's New in Cling 1.0?
Some of the major new features and improvements to Cling are listed here. Generic improvements to Cling as a whole or to its underlying infrastructure are described first.
External Dependencies
- Upgrade to LLVM 13 and reduce the accumulated technical debt in our local fork
- Require C++14
Major New Features
- Improve C++ modules support for C++20 and Windows
- Improve performance by allowing most of cling::Value to inline
- Support profiling/debugging interpreted/JITted via
CLING_DEBUG
andCLING_PROFILE
- Partially support Apple M1
- Improve transaction unloader for templates
- Always emit weak symbols on Windows
- Support RPATH in dyld
Misc
- Improve user experience on terminal:
- Move between words with Ctrl+{Left,Right}
- Clear the terminal screen on Ctrl+L
- Bind Ctrl+Del to kill next word
- Do not assign ESC a special meaning on history search mode
- Implement
.help edit
to show line editor keybindings - .x does not crash if no argument is given
- Support setting cmd history file by
${CLING_HISTFILE}
and its size with${CLING_HISTSIZE}
- Improve
.help
and.class
commands - Improve CUDA support on Visual Studio
- Improve symbol location diagnostics using the dyld infrastructure
- Better support of ppc
Fixed Bugs
ROOT-10962 ROOT-10484 ROOT-9687 ROOT-9202 ROOT-7775 ROOT-7016 ROOT-6095 ROOT-5971 ROOT-5219
GH-13815 GH-12779 GH-12457 GH-12455 GH-13429 GH-12409 GH-12294 GH-12151 GH-11937 GH-11933 GH-11329 GH-11927 GH-10209 GH-10182 GH-10180 GH-10137 GH-10136 GH-10135 GH-10133 GH-10057 GH-9850 GH-9697 GH-9664 GH-9449 GH-8499 GH-8389 GH-8304 GH-8292 GH-8157 GH-8141 GH-7541 GH-7483 GH-7366
Special Kudos
This release wouldn't have happened without the efforts of our contributors, listed in the form of Firstname Lastname (#contributions):
FirstName LastName (#commits)
Vassil Vassilev (131)
Jonas Hahnfeld (71)
Axel Naumann (66)
Javier Lopez-Gomez (48)
saisoma123 (29)
ferdymercury (12)
Jiang Yi (11)
Bertrand Bellenot (10)
Sergey Linev (9)
Stephan Lachnit (4)
Guilherme Amadio (4)
Surya Somayyajula (3)
Simeon Ehrig (3)
Stefan Gränitz (2)
Maksymilian Graczyk (2)
Garima Singh (2)
Duncan Ogilvie (2)
Baidyanath Kundu (2)
Sara Bellei (1)
Oksana Shadura (1)
Mikolaj Krzewicki (1)
Mattias Ellert (1)
Karel Balej (1)
Jonas Rembser (1)
Enrico Guiraud (1)
Danilo Piparo (1)