Cling - The Interactive C++ Interpreter
Go to file
Anirudha Bose b88a6a83c8 Prettify result of the meta command ".help"
Wraps the help text to standard 80 characters wide.
We use this output in cling.pod to generate man page, making this a
requirement.
2014-06-18 09:23:00 +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 Fix typos in cling.pod 2014-06-10 21:56:01 +02:00
include Fix const array of char*. (ROOT-5607). 2014-06-14 09:53:03 +02:00
lib Prettify result of the meta command ".help" 2014-06-18 09:23:00 +02:00
patches Use markdown 2014-02-27 12:49:09 +01:00
test Adapt tests for the newly produced diagnostics. 2014-06-10 15:24:01 +02:00
tools Delay fetching of tags for --last-stable 2014-06-10 21:56:01 +02:00
www dos2unix 2013-05-03 14:14:17 +02:00
CMakeLists.txt Pass the CLING_VERSION as compiler flag and remove it from cling_compiledata.h file 2014-05-13 16:47:56 +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.