[root] / trunk / core / meta / inc / TInterpreter.h Repository:
ViewVC logotype

Log of /trunk/core/meta/inc/TInterpreter.h

Parent Directory Parent Directory


Links to HEAD: (view) (download) (as text) (annotate)
Sticky Revision:

Revision 49325 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Apr 24 16:28:08 2013 UTC (21 months ago) by axel
File length: 20616 byte(s)
Diff to previous 48958
Update to clang/llvm r179269 (llvm vendor branch r49215):
Parser::Scope versus Sema::DeclContext are now checked for cross-vailidity.
Emit the TU-transaction explicitly instead of relying on a first transaction.
The typename extraction now takes a stream instead of a string to write to.
The llvm::Linker has much reduced functionality; use llvm::sys::Path instead to find dynamic libraries.

Revision 48958 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Mar 27 18:07:03 2013 UTC (21 months, 4 weeks ago) by axel
File length: 20578 byte(s)
Diff to previous 48895
Merge development from branches/dev/root6-pch into the trunk: enable PCH for ROOT.

Revision 48895 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Mar 18 21:30:00 2013 UTC (22 months ago) by vvassilev
File length: 20548 byte(s)
Diff to previous 48770
*Lay the foundation of return by-value support.

  Some functions return temporary objects. Eg:

  std::string getName() {
    return "ROOT";
  }

  In that case the lifetime of the temporary variable is defined by the caller. 
  Such function called by TClingCallFunc would cause undefined behaviour, because
  there is no actual caller and the compiler cannot define any lifetime. 

  In order to provide such concept we have implemented cling::StoredValueRef, which
  is a reference counted cling::Value. As long as somebody "has" a copy of it, the
  boxed value (and the occupied memory) will live.

  However cling::Value and cling::StoredValueRef expose LLVM/clang/cling internals
  to ROOT. We want to avoid for now exposing LLVM/clang/cling internals, so we have
  TInterpreterValue, which makes cling::StoredValueRef opaque.

*New interface taking TInterpreterValue is added to the TInterpreter to allow the
users to manage the lifetime of the returned temporaries.

*Replace the occurrances of cling::Value with cling::StoredValueRef to avoid 
any lifetime management issues.

*Minor optimizations of the existing implementation

*Tweaks to the build system so that TInterpreterValue.cxx could 
#include cling/Interpreter/StoredValueRef.h

PLEASE NOTE: This is not the final implementation it needs polishing. Eg. there
is a bug that should be fixed soon, which doesn't allow to get the actual result
out of the TInterpreterValue.

Revision 48770 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Feb 28 18:56:35 2013 UTC (22 months, 3 weeks ago) by pcanal
File length: 20404 byte(s)
Diff to previous 48508
Add routines to get the desugared type for the return type of a method
and for its arguments.  Namely:
  TFunction::GetReturnTypeNormalizedName
  TMethodArg::GetTypeNormalizedName

Those routines are similar to routines that are named using the words
'TrueName' but have a clarified definition and have a different signature.

A normalized name is defined as:

The name of the type as accessible from the global scope to which 
a 'using namespace std;' has been applied to and with:
  - all typedefs desugared except for Double32_t, Float16_t, [U]Long64_t, 
    std::string and any typedef that is declared within the std namespace
    and points to an entity also declared with std (hence hiding the std library
    implementation 'details').
  - default template parameters removed for STL collections and added for any
    other class templates instances.
  - Fully qualified both itself and all of its component, except that, at least
    for moment, all 'std::' are stripped.

These routines have the signature:

   std::string GetReturnTypeNormalizedName() const;

They do not return 'const char*' to avoid having to have a static buffer
holding the information or recording the information as part of the object.

They do not return TString to avoid the tempting (and compilable) 'const char
*str = method->Get...();' which would lead to inadvertent use of 'destroyed'
memory.

They do return std::string as in C++11, thanks to the move constructor, will no
longer be expansive to return.

If those routines becomes/are very time critical in C++03, we will then either
add a similar routines returning const char* (for example GetTrueTypeName) or a
similar routines taking the output string as an argument by reference.

Revision 48508 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Feb 7 15:46:12 2013 UTC (23 months, 2 weeks ago) by pcanal
File length: 20298 byte(s)
Diff to previous 48045
48488 centralized the creation of the TClass ... but it also ended up marking the interpreted class (for example std::pair) as emulated

Revision 48045 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Dec 14 13:58:23 2012 UTC (2 years, 1 month ago) by rdm
File length: 20281 byte(s)
Diff to previous 48043
From Bertrand:
implement TInterpreter::IgnoreExtraArgs(bool) so slots with less arguments
than the signal work by ignoring the extra arguments (CINT was happiliy
doing that but cling not).

Revision 48043 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Dec 14 12:20:32 2012 UTC (2 years, 1 month ago) by rdm
File length: 20187 byte(s)
Diff to previous 47991
change gCint -> gCling (and not the generic gInterpreter as we'll stay for a
while with cling ;-) ).

Revision 47991 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Dec 12 18:40:25 2012 UTC (2 years, 1 month ago) by rdm
File length: 20186 byte(s)
Diff to previous 47837
Rename TCINTMutex to TClingMutex.

Revision 47837 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Dec 4 23:11:20 2012 UTC (2 years, 1 month ago) by pcanal
File length: 20185 byte(s)
Diff to previous 47756
TCling!

Revision 47756 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Dec 1 07:26:19 2012 UTC (2 years, 1 month ago) by pcanal
File length: 20209 byte(s)
Diff to previous 47638
Implement TInterpreter::CheckClassTemplate

Revision 47638 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 26 21:34:16 2012 UTC (2 years, 1 month ago) by pcanal
File length: 20147 byte(s)
Diff to previous 47611
Add TInterpreter::GenerateTClass taking either a 'const char*' or a ClassInfo_t*
to centralize the on-the-fly generation of a TClass object.

For STL collection for which we have clang AST information, generate the TClass
via rootcling (using some part of the automatic dictionary generator).   At a
later date this could be done all via the JIT when/if we migrate more of the 
code from rootcling to core/metautils.

Revision 47611 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Nov 24 04:24:04 2012 UTC (2 years, 1 month ago) by pcanal
File length: 19970 byte(s)
Diff to previous 47497
Make sure the TROOT object is created before attempting to use the TInterpreter (or more exactly the lack thereof).  This fixes hadd which does not create a TApplication before calling TSystem::Load (and this indirectly TInterpreter::Instance)

Revision 47497 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Nov 20 19:16:54 2012 UTC (2 years, 2 months ago) by axel
File length: 19972 byte(s)
Diff to previous 47433
Add an interface to delete a variable; roofit is using it. TCintWithCling only has a cheapo implementation for now (setting pointers and references to 0); this will get replaced by properly unloading the variable once we have proper unloading.

Revision 47433 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 19 11:40:01 2012 UTC (2 years, 2 months ago) by axel
File length: 19914 byte(s)
Diff to previous 47431
Add MethodArgInfo_TrueTypeName(), TypedefInfo_Next().
Fix TCint::MethodInfo_Factory.

Revision 47431 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 19 11:01:33 2012 UTC (2 years, 2 months ago) by axel
File length: 19733 byte(s)
Diff to previous 47245
Add missing interfaces
* MethodInfo_Factory(ClassInfo_t *clinfo) const
* MethodArgInfo_Factory(MethodInfo_t *minfo) const

Revision 47245 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Nov 13 21:58:22 2012 UTC (2 years, 2 months ago) by pcanal
File length: 19549 byte(s)
Diff to previous 47105
Improve const correctness

Revision 47105 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Nov 8 05:25:15 2012 UTC (2 years, 2 months ago) by pcanal
File length: 19543 byte(s)
Diff to previous 46089
Add 'InspectMembers' to TInterpreter so that we can call it from TClass::CallShowMembers [Thus taking the largest step toward adding support for I/O of jitted classes].  Remove the '#define private public' from the file generated by rootcling

Revision 46089 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Sep 20 17:18:56 2012 UTC (2 years, 4 months ago) by pcanal
File length: 19455 byte(s)
Diff to previous 45434
Migrate away from using CINT's RootFlag and remove the interface from TInterpreter

Revision 45434 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Aug 6 22:18:46 2012 UTC (2 years, 5 months ago) by pcanal
File length: 19536 byte(s)
Diff to previous 43515
Essentially revert r26888 since we no longer need to support 2 version of CINT
and do not want to have to unnecessarily support G__value in TCling.

Revision 43515 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Mar 27 21:15:53 2012 UTC (2 years, 9 months ago) by pcanal
File length: 19735 byte(s)
Diff to previous 42064
Fix coding convention R.RN7 (Avoid the raw C types 'long', 'unsigned long', 'long double', 'bool', 'long long' and 'unsigned long long'.)

Revision 42064 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Nov 16 18:02:55 2011 UTC (3 years, 2 months ago) by pcanal
File length: 19735 byte(s)
Diff to previous 42031
Revert patch 42031 because ClassInfo__Factory(G__value*) __is__ used (by the manual CINT dictionary)

Revision 42031 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Nov 15 22:28:29 2011 UTC (3 years, 2 months ago) by pcanal
File length: 19650 byte(s)
Diff to previous 39402
remove unused ClassInfo_Factory(G__value *)

Revision 39402 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu May 26 12:56:31 2011 UTC (3 years, 8 months ago) by axel
File length: 19735 byte(s)
Diff to previous 38517
Replace legacy clib/getline and editline by a new library, textinput,
located at core/textinput/src/textinput. That new library is written
in C++, standalone (no external dependencies), cross platform
including Windows, and contains only what we need - unlike
e.g. editline. It implements almost all bash-like editing commands,
color highlighting, history etc. It allows for multiple input objects
and multiple display objects, e.g. GUI and terminal in parallel. It
can be used as a stand-alone library, too, and will become part of
cling - which explains the different license and file names (.cpp).

core/textinputs/src/Getline* contains the adapters to ROOT; the
previous core/editline/enhance.cxx is transformed to
Getline_color.cxx. This new adapter interfaces with TTabCom directly,
without going via an extern "C" function pointer, to allow for an
ostream being passed that will contain all completion options, one per
line. TApplication now defines a virtual function to be called for tab
completion; TRint implements it using TTabCom.

One major change is that the user input string is accessible as const
char* instead of being a char* - the buffer length is unknown
anyway. This caused changes in callers of Getline(); the history and
the getline function types needed to change for CINT.

--enable-editline has been deprecated and is inoperable.

Revision 38517 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Mar 18 20:20:16 2011 UTC (3 years, 10 months ago) by pcanal
File length: 19723 byte(s)
Diff to previous 34701
Using G__deleteglobal/TCint::DeleteGlobal is to aggressive to implement 38514
which needs to get CINT to forget only about Object and not about pointers
(otherwise it break user code including roottest/root/io/xml/runfilexml.C).

Introduce and use G__resetglobalvar/TCint::ResetGlobalVar that makes CINT
'forget' about any object located at the given address and set to zero
the value of pointers pointing to the givent address.

Revision 34701 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Aug 2 20:10:24 2010 UTC (4 years, 5 months ago) by pcanal
File length: 19672 byte(s)
Diff to previous 31931
Add a new function GenerateDictionary to TInterpreter which allows for the quick and easy creation of a dictionary
given a class name and the name of its headers names.

Revision 31931 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Dec 17 14:52:55 2009 UTC (5 years, 1 month ago) by rdm
File length: 19555 byte(s)
Diff to previous 30567
From Axel:
Remove support for stubless CINT from ROOT's build system; we cannot
maintain it and it is out of date.

Revision 30567 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Oct 5 21:39:26 2009 UTC (5 years, 3 months ago) by pcanal
File length: 19607 byte(s)
Diff to previous 30549
From Axel: Fix coding convention.

Revision 30549 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Oct 4 01:40:54 2009 UTC (5 years, 3 months ago) by rdm
File length: 19586 byte(s)
Diff to previous 30100
From Axel:
Call user provided getline function in CINT's getline.
Forward to ROOT's Getline; this allows to now store in the history
file even the code in the CINT 'continuation' lines (eg for loops 
entered on multiple lines).


Revision 30100 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 9 18:30:50 2009 UTC (5 years, 4 months ago) by pcanal
File length: 19466 byte(s)
Diff to previous 26888
From Axel:
Allow to check for a valid ClassInfo without triggering autoload.

Revision 26888 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Dec 12 21:43:12 2008 UTC (6 years, 1 month ago) by pcanal
File length: 19441 byte(s)
Diff to previous 26606
Make the 2 manual dictionary independent of the Cint version

Revision 26606 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Dec 2 20:36:09 2008 UTC (6 years, 1 month ago) by pcanal
File length: 19083 byte(s)
Diff to previous 25283
Following Igor Smirnov analysis fix several memory leaks, add checks for null pointer dereference, fix or add copy constructor and assignment operator when applicable, make the copy constructor and assignment operator private when the objects are not intended to be copiable.

Revision 25283 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Aug 27 16:56:42 2008 UTC (6 years, 4 months ago) by pcanal
File length: 18753 byte(s)
Diff to previous 24704
Insure that the TClass list of method is refreshed when new functions are added to the dictionary

Revision 24704 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jul 8 12:18:09 2008 UTC (6 years, 6 months ago) by brun
File length: 18696 byte(s)
Diff to previous 24423
From Axel:
allow G__DataMemberInfo to be created given a G__ClassInfo using the TInterpreter interface; fixes a crash when TClass is browsing data members.
Initialize TContextMenu::fCalledObject.

Revision 24423 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jun 20 14:47:08 2008 UTC (6 years, 7 months ago) by rdm
File length: 18666 byte(s)
Diff to previous 24171
From Axel:
Allow --enable-cint7 to build CINT7 in parallel to CINT5.
This builds root7.exe, rootcint7, cint7 which will pick up libCint7.
CINT includes are now in include/cint and include/cint7. Many #include
statements changed because of that. We still provide backward compatible
wrapper headers in include/ pointing to the include/cint ones.
Dictionaries for CINT5 and CINT7 are now (mostly) compatible.
When --enabled-cint7, TCint for CINT5 is in libMetaTCint and TCint for CINT7
is in libMetaTCint_7. The classes' source is identical for now (except for the
cases marked with #ifdef R__BUILDING_CINT7); they pick up different CINT
implementations, though.
Without --enable-cint7, TCint.o is linked into libCore, just like it used to
be. With --enable-cint7, TROOT() dlopens libMetaTCint / libMetaTCint_7,
depending on which libCint the binary is linked against (determined via
G__cint_version). TCint contains and sets a global factory pointer that
creates the appropriate TCint object for TROOT.

The cintdlls are built for CINT5 and CINT7 separately, cintdlls.mk is
included twice, with different contexts set by cint/Module.mk and cint7/Module.mk.

--enable-/--disable-cint7 (i.e. (TCint.o in libCore vs libMetaTCint)
triggers a re-build of TROOT.o

Remove dependency from TGWin32ProxyDefs to bare CINT
Add implementation of G__alloc_tempobject_val to cint5
Add a rule how to build C-dictionaries, needed for G__c_stdfunc.c.

No rootmap entries for TCint - CINT should never ever try to autoload it.
It's either linked anyway or we dlopen it by hand.

Revision 24171 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jun 6 17:00:23 2008 UTC (6 years, 7 months ago) by brun
File length: 18602 byte(s)
Diff to previous 24170
All functions called via gCint must have a dummy implementation in TInterpreter.

Revision 24170 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jun 6 16:27:51 2008 UTC (6 years, 7 months ago) by brun
File length: 18585 byte(s)
Diff to previous 24096
From Axel:
Add TCint::GetTopLevelMacroName(), TCint::GetCurrentMacroName() as pv function to TInterpreter; make nonstatic.

Revision 24096 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jun 2 14:30:12 2008 UTC (6 years, 7 months ago) by brun
File length: 18472 byte(s)
Diff to previous 24088
Add two functions IsValid and Size to the TypeInfo interface.
These functions are required by the new version of TGenCollectionProxy

Revision 24088 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jun 2 06:27:11 2008 UTC (6 years, 7 months ago) by brun
File length: 18317 byte(s)
Diff to previous 24082
Remove unused function and fix coding conventions.

Revision 24082 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jun 1 05:37:33 2008 UTC (6 years, 7 months ago) by brun
File length: 18377 byte(s)
Diff to previous 24080
Change the return type of all functions Property , Offset and Tagnum from int to Long_t

Revision 24080 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat May 31 20:39:16 2008 UTC (6 years, 7 months ago) by brun
File length: 18287 byte(s)
Diff to previous 24078
Fix a warning on Windows.

Revision 24078 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat May 31 20:19:31 2008 UTC (6 years, 7 months ago) by brun
File length: 18286 byte(s)
Diff to previous 24077
Fix compiler warnings about unused argument names

Revision 24077 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat May 31 19:39:09 2008 UTC (6 years, 7 months ago) by brun
File length: 17145 byte(s)
Diff to previous 23039
Extend the TInterpreter class to support the CINT API used so far by ROOT.
The concrete implementation of the class is in TCint.
The new functions are essentially interfaces to the existing CINT C++ classes
like G__ClassInfo, G__CallFunc, G__DataMemberInfo, G__MethodInfo, G__TypeInfo
and G__TypedefInfo. Most of these functions will call the Reflex interface
once the CINT/Reflex interface will be available later this year.
All direct calls to CINT are replaced by calls like gCint->ClassInfo_xxx where gCint
points to the TCint implementation.
The existing calls to TCint via gInterpreter are kept because on Windows
gInterpreter does not call directly TCint, but instead call TWin32InterpreterProxy
that in turns call TCint.
On Linux and Mac, gInterpreter and gCint are equivalent.

Once the transformation using gCint will be completed, it will be possible
to specify at startup time which version of CINT (CINT or CINT7) by loading
dynamically TCint or TCint7.--This line, and those below, will be ignored--

M    core/meta/src/TStreamerElement.cxx
M    core/meta/src/TCint.cxx
M    core/meta/src/TGlobal.cxx
M    core/meta/src/TBaseClass.cxx
M    core/meta/src/TDataMember.cxx
M    core/meta/src/TInterpreter.cxx
M    core/meta/src/TClass.cxx
M    core/meta/src/TMethodArg.cxx
M    core/meta/src/TDataType.cxx
M    core/meta/src/TMethodCall.cxx
M    core/meta/src/TIsAProxy.cxx
M    core/meta/src/TMethod.cxx
M    core/meta/src/TFunction.cxx
M    core/meta/inc/TClass.h
M    core/meta/inc/TDictionary.h
M    core/meta/inc/TMethodArg.h
M    core/meta/inc/TDataType.h
M    core/meta/inc/TMethodCall.h
M    core/meta/inc/TMethod.h
M    core/meta/inc/TFunction.h
M    core/meta/inc/TCint.h
M    core/meta/inc/TGlobal.h
M    core/meta/inc/TBaseClass.h
M    core/meta/inc/TDataMember.h
M    core/meta/inc/TInterpreter.h
M    core/thread/src/TThread.cxx
M    core/base/src/TVirtualFitter.cxx
M    core/base/src/TStorage.cxx
M    core/base/src/TQConnection.cxx
M    core/base/src/TROOT.cxx
M    core/base/src/TSystem.cxx
M    core/base/src/TQObject.cxx
M    core/rint/src/TRint.cxx
M    core/rint/src/TTabCom.cxx
M    math/foam/src/TFoam.cxx
M    math/minuit2/src/TFitterMinuit.cxx
M    math/mathcore/src/FunctorCint.cxx
M    math/minuit/src/TMinuit.cxx
M    tree/tree/src/TTree.cxx
M    tree/tree/src/TSelectorCint.cxx
M    tree/tree/src/TSelector.cxx
M    tree/tree/inc/TSelectorCint.h
M    roofit/roofitcore/src/RooGenCategory.cxx
M    roofit/roofitcore/src/RooWorkspace.cxx
M    hist/hist/src/TF1.cxx
M    gui/guibuilder/src/TGuiBldDragManager.cxx
M    net/alien/inc/TAlienSystem.h

Revision 23039 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Apr 8 10:40:44 2008 UTC (6 years, 9 months ago) by rdm
File length: 5677 byte(s)
Diff to previous 22961
From Eddy:
Three new methods have been implemented:

   Int_t   RescanLibraryMap();

Force a scan along the dynamic path again and load the *.rootmap files
in case the (DY)LD_LIBRARY_PATH has changed.

   Int_t   ReloadAllSharedLibraryMaps();

Reload for the loaded shared libraries their rootmap files.
This assumes that the library foo.[dll,a,so] has a rootmap named foo.rootmap.

   Int_t   UnloadAllSharedLibraryMaps();

Unload the rootmap entries for the loaded shared libraries.

I did not add anything to TSystem::SetDynamicPath() but in principle
the user should invoke after that operation RescanLibraryMap().

Revision 22961 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Apr 3 13:32:57 2008 UTC (6 years, 9 months ago) by rdm
File length: 5525 byte(s)
Diff to previous 22729
move the directories:
  base clib cont meta metautils newdelete pcre rint thread unix utils
  winnt zip
under the new core meta directory.

Revision 22729 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Mar 19 10:20:10 2008 UTC (6 years, 10 months ago) by pcanal
Original Path: trunk/meta/inc/TInterpreter.h
File length: 5525 byte(s)
Diff to previous 20882
From Leo, Diego, Axel, Paul and Philippe:

Merge with branches/dev/stubs up to r22699:
* Optional stubless calls for GCC 3.[234] on Linux 32 bit (see release notes for details)
* update CINT7 - replaces the branch in the CINT repository
* new directory layout: reflex, cint, and cint7 moved under cint/
* CINT stand-alone now part of ROOT's CINT; CINT's svn repository is not used anymore.
* Remove v6_ prefix from the CINT source filenames.
In addition:
* Remove CINT's special parsing hook for R__EXTERN; just #define it to extern

Revision 20882 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 19 11:31:26 2007 UTC (7 years, 2 months ago) by rdm
Original Path: trunk/meta/inc/TInterpreter.h
File length: 5473 byte(s)
Diff to previous 19826
Set property svn:eol-style LF on all source and Makefiles. This should avoid
problems with Win32 line endings ending up in the repository. All MS tools
support LF eols fine.

Revision 19826 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 19 19:56:11 2007 UTC (7 years, 4 months ago) by rdm
Original Path: trunk/meta/inc/TInterpreter.h
File length: 5473 byte(s)
Diff to previous 19825
imported svn:keywords Id property

Revision 19825 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 19 19:49:10 2007 UTC (7 years, 4 months ago) by rdm
Original Path: trunk/meta/inc/TInterpreter.h
File length: 5525 byte(s)
Diff to previous 19487
remove :$ from tag line

Revision 19487 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jul 30 15:31:23 2007 UTC (7 years, 5 months ago) by pcanal
Original Path: trunk/meta/inc/TInterpreter.h
File length: 5535 byte(s)
Diff to previous 19171
From Axel:
Add access to the interpreter's MapFile

Revision 19171 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jun 25 15:39:36 2007 UTC (7 years, 7 months ago) by rdm
Original Path: trunk/meta/inc/TInterpreter.h
File length: 5470 byte(s)
Diff to previous 18199
made LoadLibraryMap() public and changed signature to:
   Int_t   LoadLibraryMap(const char *rootmapfile = 0);
a specific mapfile can be loaded using the rootmapfile argument.
This method is now silently ignoring duplicates when scanning LD_LIBRARY_PATH
for .rootmap files. The entries from the first occurance are maintained, as
the dynamic loader is doing.
New method
   Int_t   UnloadLibraryMap(const char *library);
remove all entries coming from the specified library.
To be used by ACLiC.

Revision 18199 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Mar 8 15:52:17 2007 UTC (7 years, 10 months ago) by rdm
Original Path: trunk/meta/inc/TInterpreter.h
File length: 5338 byte(s)
Diff to previous 17018
new method GetRootMapFiles() which returns an array of non-default rootmap
files which have been loaded. This list is needed by ACliC to generate
a rootmap file considering all loaded user classes and libraries.
Also support <file>.rootmap files in addition to rootmap<file> names.

Revision 17018 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Dec 1 15:05:58 2006 UTC (8 years, 1 month ago) by rdm
Original Path: trunk/meta/inc/TInterpreter.h
File length: 5286 byte(s)
Diff to previous 16954
From Bertrand:
cleanup obsolete WinNT files and remove some not needed anymore WinNT specifics
from the TCint class.

Revision 16954 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 27 13:04:42 2006 UTC (8 years, 1 month ago) by rdm
Original Path: trunk/meta/inc/TInterpreter.h
File length: 5382 byte(s)
Diff to previous 13356
From Matevz:
added capability to avoid locking ProcessLine() using SetProcessLineLock() and
IsProcessLineLocked(). Needed in some case when the lock is already active
(gled).

Revision 13356 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Nov 24 23:30:06 2005 UTC (9 years, 2 months ago) by rdm
Original Path: trunk/meta/inc/TInterpreter.h
File length: 5261 byte(s)
Diff to previous 13255
Remove code of obsolete win32old version. Cleanup source from the many
GDK_WIN32 ifdef's. Fixes also Gordon's problem of TInterpreter which
depended on GDK_WIN32.

Revision 13255 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Nov 16 20:10:00 2005 UTC (9 years, 2 months ago) by pcanal
Original Path: trunk/meta/inc/TInterpreter.h
File length: 5345 byte(s)
Diff to previous 10947
Coding convention, white spaces and comments update

Revision 10947 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jan 18 21:04:17 2005 UTC (10 years ago) by brun
Original Path: trunk/meta/inc/TInterpreter.h
File length: 5360 byte(s)
Diff to previous 9756
From Philippe:
This patch resolve a few issues when loading a library implementing an STL
container after opening a file containing an instance of this STL container.
Depending of the circunstances this lead to either an infinite recursion or
an incorrect collecton proxy.

This patch also resolves completely the issue related to using namespace
statement. Aka you can now properly do:
       using namespace MySpace;
       gROOT->GetClass("ClassWithingMySpace");

Revision 9756 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Aug 13 17:00:29 2004 UTC (10 years, 5 months ago) by rdm
Original Path: trunk/meta/inc/TInterpreter.h
File length: 5334 byte(s)
Diff to previous 9536
new method GetSharedLibDeps(const char *lib) which returns a string
containing the libraries on which lib depends.

Revision 9536 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jul 16 23:06:23 2004 UTC (10 years, 6 months ago) by rdm
Original Path: trunk/meta/inc/TInterpreter.h
File length: 5272 byte(s)
Diff to previous 9046
From Philippe:
The autoloading induced by gROOT->GetClass("TLorentzVector")
was happening too late.

In order to properly implement it I needed to add to CINT
a new function G__set_class_autoloading() to enable and disable
the autoloading.

I also update TROOT.cxx and TCint.cxx to do the load at
the proper time.

Revision 9046 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri May 28 18:13:12 2004 UTC (10 years, 7 months ago) by rdm
Original Path: trunk/meta/inc/TInterpreter.h
File length: 5215 byte(s)
Diff to previous 8945
new method GetClassSharedLibs() returning the shared library containing
the code of a class and the libraries it depends on.

Revision 8945 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon May 17 12:15:17 2004 UTC (10 years, 8 months ago) by rdm
Original Path: trunk/meta/inc/TInterpreter.h
File length: 5152 byte(s)
Diff to previous 8056
enable auto loading of shared libraries only after TROOT has been fully
created and all linked libraries have been initialized.

Revision 8056 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jan 27 19:52:48 2004 UTC (10 years, 11 months ago) by brun
Original Path: trunk/meta/inc/TInterpreter.h
File length: 5107 byte(s)
Diff to previous 7967
From Philippe:

This patches improves the consistency of the naming convention for the TClass
of STL containers.  Previous, std::vector<float>, vector<float>, etc. could be
considered as 2 different entities by part of the ROOT code.  This rationalizes these
cases.  It should fix all reported related bugs.

Revision 7967 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jan 21 23:15:52 2004 UTC (11 years ago) by brun
Original Path: trunk/meta/inc/TInterpreter.h
File length: 5043 byte(s)
Diff to previous 7964
From Philippe:
This patchs add ExecuteMacro to the list of function returning the value of the command.

Revision 7964 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jan 21 22:22:36 2004 UTC (11 years ago) by brun
Original Path: trunk/meta/inc/TInterpreter.h
File length: 5043 byte(s)
Diff to previous 7637
From Philippe:

This patch implements having -q terminating the processs using the return value of the command.

Revision 7637 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 24 10:51:55 2003 UTC (11 years, 2 months ago) by brun
Original Path: trunk/meta/inc/TInterpreter.h
File length: 5043 byte(s)
Diff to previous 6711
From valeriy Onuchin:

I updated several base and win32gdk classes.
The goals of these changes are:
 - providing thread safety for CINT and canvas graphics
 - improve perforamnce

The list of the changes.

  win32gdk:
    - new TGWin32Interpreter class introduced. Along with
      redefinition of gInterpreter global that allows to have thread-safe
      interface to CINT functions and methods.
    - TGWin32Proxy class renamed to TGWin32VirtualXProxy and
       modified in "not-radical way".
    - TGWin32ProxyBase.cxx contains "howto create proxy class".

 canvas thread-safety:
   - locking methods added to TCanvasImp, TRootCanvas and TCanvas
     classes. That prevents from simultanious canvas updating from
     different threads.

The results:
   - overall improvement of thread safety and stability of win32gdk version
   - improved performance. benchmarks.C 15-20%, some cases (3D graphics)
     more than 30%.

Revision 6711 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jun 13 06:17:52 2003 UTC (11 years, 7 months ago) by brun
Original Path: trunk/meta/inc/TInterpreter.h
File length: 4893 byte(s)
Diff to previous 6374
From Philippe;
TInterpreter::GetMangledName and TInterpreter::GetMangledNameWithPrototype were added to be able to distinguish
interpreted function (used in TROOT).

Revision 6374 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Apr 4 00:39:12 2003 UTC (11 years, 9 months ago) by rdm
Original Path: trunk/meta/inc/TInterpreter.h
File length: 4698 byte(s)
Diff to previous 5511
make char* arguments in GetInterfaceMethod() and
GetInterfaceMethodWithPrototype() const char*.

In other classes remove now unneeded casts to char*.

Revision 5511 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Oct 29 13:30:00 2002 UTC (12 years, 2 months ago) by brun
Original Path: trunk/meta/inc/TInterpreter.h
File length: 4673 byte(s)
Diff to previous 4258
From Philippe:

I understood (and fixed) the problems on Window 98, XP, 2000 where ROOT
was mysteriously, randomly crashing or giving error messages like 'this
"text file name" is a binary file' or other weird behaviors.

This problem was only appearing at startup time and only on Windows.
In the constructor of TRint::TRint we had:

   ProcessLine("#include <RtypesCint.h>");

   gROOT->LoadClass("TGeometry",   "Graf3d");
   gROOT->LoadClass("TTree",       "Tree");
   ....
   ProcessLine(Form(".L %s",logon),kTRUE);

The problem comes from the fact that on Windows ProcessLine has the
execution of its CINT part delayed (1st problem) while gROOT->LoadClass
has the execution of its CINT part done immediately (and not protected
for multi-thread).

Both the calls are asking CINT to load a file and in this case,
__sometimes__ the loading of RtypesCint.h is happening __while__ loading
the libraries thus over-writing (randomly) part of one of the loading.

The problem did indeed worsen since ROOT 3.03/07 with the introduction
of the first ProcessLine.

Revision 4258 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Mar 28 01:47:04 2002 UTC (12 years, 10 months ago) by rdm
Original Path: trunk/meta/inc/TInterpreter.h
File length: 4597 byte(s)
Diff to previous 4136
handle CINT exit code on all platforms (merge of patches by Phil and me).

Revision 4136 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Mar 5 10:47:48 2002 UTC (12 years, 10 months ago) by rdm
Original Path: trunk/meta/inc/TInterpreter.h
File length: 4621 byte(s)
Diff to previous 4077
new method GetExitCode() in TInterpreter and TCint which returns argument
passed to exit() in interpreter. Used in TApplication::ProcessLine().

Revision 4077 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Feb 23 16:04:54 2002 UTC (12 years, 11 months ago) by rdm
Original Path: trunk/meta/inc/TInterpreter.h
File length: 4576 byte(s)
Diff to previous 3519
exit() called from CINT scripts now also exits ROOT sessions, like an exit()
called from compiled code. The exit argument is not yet passed via Terminate()
to calling shell since CINT does not yet provide this info. As soon as it
does we'll pass it along.

Revision 3519 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Dec 21 09:37:25 2001 UTC (13 years, 1 month ago) by rdm
Original Path: trunk/meta/inc/TInterpreter.h
File length: 4553 byte(s)
Diff to previous 3498
small formatting changes for consistency with original code,
plus put some default but unused error arguments between /* */
to satisfy pedantic compilers.

Revision 3498 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Dec 19 07:15:19 2001 UTC (13 years, 1 month ago) by brun
Original Path: trunk/meta/inc/TInterpreter.h
File length: 4577 byte(s)
Diff to previous 3359
This patch from Philippe gives the user access to the cint error code after an
attempt to 'interpret'.


In particular the following methods have one more optional
parameter:

TApplication::ProcessLine
TApplication::ProcessFile
TObject::Execute
TROOT::ProcessLine
TROOT::ProcessLineFast
TROOT::ProcessLineSync
TROOT::LoadMacro
TROOT::Macro
and
TInterpreter::Execute
TInterpreter::LoadMacro
TInterpreter::ProcessLine
TInterpreter::ProcessLineAsync
TInterpreter::ProcessLineSync
TInterpreter::ExecuteMacro
TInterpreter::Calc
and the corresponding method in TCint.

The extra parameter is a pointer to an int (or a TInterpreter::EErrorCode
when available).  If this pointer is not zero, it will be used to pass
back information on the CINT error status.  The result are defined
in the enum TInterpreter::EErrorCode.

This is the best method of passing the information, because some
of the methods are already returning a result and using a global
variable (i.e. TInterpreter::GetLastErrorStatus) would lead to
indescriptible confusion (remember that there can be several
nested call to ProcessLine including one 'implied' call resulting
from the command line interpretation).

In the asynchronous case, the error status is set to kProcessing until
completion.  The windows part, which consist of reseting the error status
to the proper value upon completion will be implemented in a future patch.

Also LoadMacro and Macro were updated to be able to use ACLiC and
to be able to run named macro.

Revision 3359 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Dec 2 16:50:08 2001 UTC (13 years, 1 month ago) by brun
Original Path: trunk/meta/inc/TInterpreter.h
File length: 4226 byte(s)
Diff to previous 3103
From Philippe:
  Update the handling of unloading a library so that
the left over TClass objects are properly marked and
recognized as describing a class for which we do not
have the C++ code (the state is similar but different
from being a 'fake TClass'.

Revision 3103 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Oct 25 06:20:29 2001 UTC (13 years, 3 months ago) by brun
Original Path: trunk/meta/inc/TInterpreter.h
File length: 4202 byte(s)
Diff to previous 2285
From Philippe:
The following patches make sure that temporary created by
method calls from a TTreeFormula are properly deleted after
the processing of each event without a performance penalty

Revision 2285 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri May 25 06:25:03 2001 UTC (13 years, 8 months ago) by brun
Original Path: trunk/meta/inc/TInterpreter.h
File length: 4127 byte(s)
Diff to previous 1938
The following mods from Philippe:
In TInterpreter and TCint, add a couple of methods to disable/enable
(some) of the error messages coming from CINT.

Revision 1938 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Apr 9 14:20:55 2001 UTC (13 years, 9 months ago) by rdm
Original Path: trunk/meta/inc/TInterpreter.h
File length: 4016 byte(s)
Diff to previous 3
new method CheckClassInfo(). Returns kTRUE if class with specified name
is known to CINT.

Revision 3 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue May 16 17:00:58 2000 UTC (14 years, 8 months ago) by rdm
Original Path: trunk/meta/inc/TInterpreter.h
File length: 3900 byte(s)
Copied from: branches/rdm/meta/inc/TInterpreter.h revision 2
Diff to previous 2
This commit was generated by cvs2svn to compensate for changes in r2,
which included commits to RCS files with non-trunk default branches.

Revision 2 - (view) (download) (as text) (annotate) - [select for diffs]
Added Tue May 16 17:00:58 2000 UTC (14 years, 8 months ago) by rdm
Original Path: branches/rdm/meta/inc/TInterpreter.h
File length: 3900 byte(s)
Initial import of ROOT into CVS

This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.

  Diffs between and
  Type of Diff should be a

Sort log by:

Subversion Admin
ViewVC Help
Powered by ViewVC 1.0.9