Cling - The Interactive C++ Interpreter
Go to file
Axel Naumann 621c0173c2 Cache MangleContext as a private member of the interpreter, so we don't have to re-create it all the time.
Implement JITed version of ExecutionContext::getAddressOfGlobal(), which now also needs a Module.


git-svn-id: http://root.cern.ch/svn/root/trunk@46139 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-24 12:11:46 +00:00
demo Move cling from cint/ to interpreter/ (Will add a "we have moved" readme to cint/cling.) 2012-09-05 09:37:39 +00:00
docs Move cling from cint/ to interpreter/ (Will add a "we have moved" readme to cint/cling.) 2012-09-05 09:37:39 +00:00
include Cache MangleContext as a private member of the interpreter, so we don't have to re-create it all the time. 2012-09-24 12:11:46 +00:00
lib Cache MangleContext as a private member of the interpreter, so we don't have to re-create it all the time. 2012-09-24 12:11:46 +00:00
patches After our r164028 in clang we can access all we need; this patch is thus not needed anymore. 2012-09-17 13:18:39 +00:00
test Remove old lookup functions from the Interpreter. Now we have dedicated object 2012-09-18 15:05:53 +00:00
tools Re-apply r45839; got lost during move of cling 2012-09-05 15:35:00 +00:00
www Move cling from cint/ to interpreter/ (Will add a "we have moved" readme to cint/cling.) 2012-09-05 09:37:39 +00:00
CMakeLists.txt Move cling from cint/ to interpreter/ (Will add a "we have moved" readme to cint/cling.) 2012-09-05 09:37:39 +00:00
LastKnownGoodLLVMSVNRevision.txt Get rid of interpreter pointer in one of the transformers. 2012-09-18 13:13:22 +00:00
Makefile Do not update LastKnownGoodLLVMSVNRevision.txt automatically; this will be done as part of the ROOT vendor branch import / update. 2012-09-18 15:28:45 +00:00
Module.mk Fix initialization order for "new" binutils that use ctors-in-init-array, by passing -Wl,--no-ctors-in-init-array. 2012-09-19 14:12:07 +00:00
README Move cling from cint/ to interpreter/ (Will add a "we have moved" readme to cint/cling.) 2012-09-05 09:37:39 +00:00

          _  _  _      _         _  _  _   _           _      _  _  _
       _ (_)(_)(_) _  (_)       (_)(_)(_) (_) _       (_)  _ (_)(_)(_) _
      (_)         (_) (_)          (_)    (_)(_)_     (_) (_)         (_)
      (_)             (_)          (_)    (_)  (_)_   (_) (_)    _  _  _
      (_)             (_)          (_)    (_)    (_)_ (_) (_)   (_)(_)(_)
      (_)          _  (_)          (_)    (_)      (_)(_) (_)         (_)
      (_) _  _  _ (_) (_) _  _   _ (_) _  (_)         (_) (_) _  _  _ (_)
         (_)(_)(_)    (_)(_)(_) (_)(_)(_) (_)         (_)    (_)(_)(_)(_)

--------------------------------------------------------------------------------

1. I N S T A L L A T I O N   I N S T R U C T I O N S

1.1 Dependencies

   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] to get the source code.

   [1] http://llvm.org
   [2] http://clang.llvm.org
   [3] http://cmake.org
   [4] http://subversion.tigris.org/

1.2 Building

   To build LLVM and CLANG you must:

   * Check out the sources:

     mkdir src
     cd src
     svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
     cd llvm/tools
     svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
     svn co http://root.cern.ch/svn/root/trunk/interpreter/cling cling
     cd ..

   * Apply some patches

     cat tools/cling/patches/* | patch -p0

   * 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 \
           -DCMAKE_CXX_COMPILER=`which c++` \
           -DCMAKE_C_COMPILER=`which gcc` \
           ../llvm
     make
     make install

     or GNU Make (see ../src/configure --help for all options):

     cd ..
     mkdir build
     cd build
     ../llvm/configure --prefix=/some/install/dir
     make
     make install

2. U S A G E

   To interpret a C file type: "./cling test.c". To invoke cling in the
interactive mode type "cling" without file name.  Use ".L filename" to 
load libraries or C++ files.  Type C++ code at the prompt to interpret it.