CINT

What is CINT?

CINT is an interpreter for C and C++ code. It is useful e.g. for situations where rapid development is more important than execution time. Using an interpreter the compile and link cycle is dramatically reduced facilitating rapid development. CINT makes C/C++ programming enjoyable even for part-time programmers.

CINT is written in C++ itself, with slightly less than 400,000 lines of code. It is used in production by several companies in the banking, integrated devices, and even gaming environment, and of course by ROOT, making it the default interpreter for a large number of high energy physicists all over the world.

Features

CINT covers most of ANSI C (mostly before C99) and ISO C++ 2003. A CINT script can call compiled classes/functions and compiled code can make callbacks to CINT interpreted functions. Utilities like makecint and rootcint automate the process of embedding compiled C/C++ library code as shared objects (as Dynamic Link Library, DLL, or shared library, .so). Source files and shared objects can be dynamically loaded/unloaded without stopping the CINT process. CINT offers a gdb like debugging environment for interpreted programs.

Download

CINT is free software in terms of charge and freedom of utilization: it is licensed under the X11/MIT license. See the included COPYING for details.

The source of CINT 5.18.00 from 2010-07-02 is available here (tar.gz, 2MB).

CINT 5.16.19 from 2007-03-19 is available via anonymous ftp:

To build the source package do:

$ tar xfz cint-5.16.19-source.tar.gz
$ cd cint-5.16.19
$ ./configure
$ gmake 

The current sources of CINT can be downloaded via subversion. From a bash shell (the $ is meant to denote the shell prompt), run

$ svn co http://root.cern.ch/svn/root/branches/v5-34-00-patches/cint cint
$ cd cint

Once you have the sources you can simply update them by running svn up.

You can also download a certain version of CINT using subversion:

$ svn co http://root.cern.ch/svn/cint/tags/v5-16-19 cint-v5.16.19
$ cd cint-v5.16.19

You can build CINT from these sources by running

$ ./configure
$ make -j2

For windows you will need to install the cygwin package to build CINT from sources.

Before downloading check the release notes of the latest version.

Portability

CINT works on number of operating systems. Linux, HP-UX, SunOS, Solaris, AIX, Alpha-OSF, IRIX, FreeBSD, NetBSD, NEC EWS4800, NewsOS, BeBox, HI-UX, Windows-NT/95/98/Me, MS-DOS, MacOS, VMS, NextStep, Convex have all been reported as working at some point in time; Linux, Windows, MacOS and Solaris are actively developed. A number of compilers is supported, i.e. GCC, Microsoft Visual C++, Intel's ICC, HP-CC/aCC, Sun-CC/CC5, IBM-xlC, Compac-cxx, SGI-CC, Borland-C++, Symantec-C++, DJGPP, cygwin-GCC.

The ROOT System

The ROOT system embeds CINT to be able to execute C++ scripts and C++ command line input. CINT also provides extensive RTTI capabilities to ROOT. See the following chapters on how CINT is used in ROOT:

The Authors

CINT is developed by Masaharu Goto, who works for Agilent Technologies, Philippe Canal and Paul Russo at Fermilab, and Leandro Franco, Diego Marcos, and Axel Naumann from CERN.

Limitations

CINT implements a very large subset of C++, but has also some differences and limitations.

CINT Mailing List

root-cint@cern.ch is the CINT mailing list. To join the mailing list do the following:

  • If you don't have a CERN account, create a light weight CERN account.
  • Add yourself to the root-cint mailing list, by clicking on the "Members" tab and then on the "Add me" button.
  • To remove yourself from the mailing list click on the "Remove me" button on the same above "Members" page.
The archive of the mailing list is also available; you can also find it on Nabble.com.

For more detailed CINT information see below:

image005.gif

External References

A few random pointers concerning CINT:

AttachmentSize
cint-5.18.00.tgz2.04 MB