cmake/modules | ||
demo | ||
docs | ||
include/cling | ||
lib | ||
patches | ||
test | ||
tools | ||
www | ||
.travis.yml | ||
appveyor.yml | ||
CMakeLists.txt | ||
CREDITS.txt | ||
LastKnownGoodLLVMSVNRevision.txt | ||
LICENSE.TXT | ||
Module.mk | ||
README.md | ||
VERSION |
______ __ ____ _ __ ______
/ ____/ / / / _/ / | / / / ____/
/ / / / / / / |/ / / / __
/ /___ / /___ _/ / / /| / / /_/ /
\____/ /_____/ /___/ /_/ |_/ \____/
##DESCRIPTION Cling is an interactive C++ interpreter, built on top of Clang and LLVM compiler infrastructure. Cling realizes the read-eval-print loop (REPL) concept, in order to leverage rapid application development. Implemented as a small extension to LLVM and Clang, the interpreter reuses their strengths such as the praised concise and expressive compiler diagnostics.
See also the cling web page
Further information & demos
Please note that some of the resources are rather old and most of the stated limitations are outdated.
- talks
- http://blog.coldflake.com/posts/2012-08-09-On-the-fly-C++.html
- http://solarianprogrammer.com/2012/08/14/cling-cpp-11-interpreter/
- https://www.youtube.com/watch?v=f9Xfh8pv3Fs
- https://www.youtube.com/watch?v=BrjV1ZgYbbA
- https://www.youtube.com/watch?v=wZZdDhf2wDw
- https://www.youtube.com/watch?v=eoIuqLNvzFs
##INSTALLATION ###Release Notes See our release notes to find what's new. ###Binaries We offer binary snapshots for download at https://root.cern.ch/download/cling/
###Source CLING source depends on the LLVM and CLANG headers and libraries. You will also need CMake >= 2.6.1 or GNU Make to build all of those packages and subversion and git to get the source code.
####Building Building LLVM and CLANG you must:
- Check out the sources:
git clone http://root.cern.ch/git/llvm.git src
cd src
git checkout cling-patches
cd tools
git clone http://root.cern.ch/git/cling.git
git clone http://root.cern.ch/git/clang.git
cd clang
git checkout cling-patches
- Configure, build and install them, either using CMake:
cd ../../../
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/some/install/dir \
-DLLVM_TARGETS_TO_BUILD=host \
-DCMAKE_BUILD_TYPE=Debug \
../src
make
make install
- or GNU Make (see ../src/configure --help for all options):
cd ../../../
mkdir build
cd build
../src/configure --prefix=/some/install/dir
make
make install
#####Cling Packaging Tool Cling's tree has a user-friendly, command-line utility written in Python called Cling Packaging Tool (CPT) which can build Cling from source and generate installer bundles for a wide range of platforms.
If you have Cling's source cloned locally, you can find the tool in
tools/packaging
directory. Alternatively, you can download the script
manually, or by using wget
:
wget https://raw.githubusercontent.com/root-mirror/cling/master/tools/packaging/cpt.py
chmod +x cpt.py
Full documentation of CPT can be found in tools/packaging.
##USAGE
/some/install/dir/bin/cling '#include <stdio.h>' 'printf("Hello World!\n")'`
To get started run:
/some/install/dir/bin/cling --help`
or type
/some/install/dir/bin/cling
[cling]$ .help`
Jupyter
cling comes with a Jupyter kernel. After building cling, install Jupyter and run jupyter kernelspec install cling
. It requires a fairly new Jupyter. Make sure cling is in your PATH when you start jupyter!
See also the tools/Jupyter subdirectory.
##DEVELOPERS' CORNER We have doxygen documentation of cling's code at: http://cling.web.cern.ch/cling/doxygen/
###CONTRIBUTIONS Every contribution is very welcome. It is considered as a donation and its copyright and any other related rights become exclusive ownership of the person who merged the code or in any other case the main developers. In order for a contribution to be accepted it has to obey the previously established rules for contribution acceptance in cling's work flow and rules.