Cling - The Interactive C++ Interpreter
Go to file
2014-08-04 09:57:07 +02:00
demo Changes related to the use of gendered or binary language in the code. 2014-05-17 15:04:59 +02:00
docs Help message has been fixed. No need for a wrapping tool anymore. 2014-06-18 15:17:03 +02:00
include Rename SetAutoloadCallback to EnableAutoloading 2014-07-22 14:52:04 +02:00
lib Fix doxygen. 2014-07-23 15:57:01 +02:00
patches Use markdown 2014-02-27 12:49:09 +01:00
test Fix failing test. 2014-07-25 13:18:01 +02:00
tools Adopt the naming convention used in EC 2014-08-04 09:57:07 +02:00
www dos2unix 2013-05-03 14:14:17 +02:00
CMakeLists.txt Building LLVM and CLING as CMake sub-directories instead of as ExternalProjects. Ninja is now supported. 2014-07-16 20:57:04 +02:00
CREDITS.txt Add credits. 2014-01-07 11:43:53 +01:00
LastKnownGoodLLVMSVNRevision.txt Also note the llvm/clang update here! 2014-03-03 19:52:00 +01:00
LICENSE.TXT Add LICENSE.TXT file, to be referenced by all files in cling. 2014-01-07 11:13:55 +01:00
Makefile Fix wrong path of VERSION in Makefile 2014-05-15 13:51:55 +02:00
Module.mk Improve implementation of ctags. 2014-06-04 09:20:15 +02:00
README.md Update README.md 2014-06-04 10:37:56 +02:00
VERSION Use debian style version naming. 2014-05-11 18:27:58 +02:00

                         ______  __      ____  _   __  ______
                        / ____/ / /     /  _/ / | / / / ____/
                       / /     / /      / /  /  |/ / / / __  
                      / /___  / /___  _/ /  / /|  / / /_/ /  
                      \____/ /_____/ /___/ /_/ |_/  \____/   
                                                         

##DESCRIPTION
Cling is an interactive C++ interpreter, built on top of Clang and LLVM compiler infrastructure. Cling realizes the read-print-evaluate-loop 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.

Further information & demos

Please note that some of the resources are rather old and most of the stated limitations are outdated.

##INSTALLATION
###Binaries
We offer binary snapshots for download at https://ecsft.cern.ch/dist/cling

###Source
CLING source depends on the LLVM[1] and CLANG[2] headers and libraries. You will also need CMake[3] >= 2.6.1 or GNU Make to build all of those packages and subversion[4] and git[5] to get the source code.

[1] http://llvm.org
[2] http://clang.llvm.org
[3] http://cmake.org
[4] http://subversion.tigris.org
[5] http://git-scm.com

####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=CBackend\;CppBackend\;X86 \
          -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

##USAGE
To get started run: /some/install/dir/bin/cling --help or type /some/install/dir/bin/cling [cling]$ .help

##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 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.