Re: [ROOT] Executing a loaded method

From: Valeriy Onuchin (Valeri.Onoutchine@cern.ch)
Date: Wed Nov 26 2003 - 05:00:53 MET


 Hi,  it's a silly request ... but
recently I was suprised (how to express in russian?)  when ..
citation is below :

Dear Rene,
I've made comparison of two versions of root( v3.10.01 and v3.05.07).
The case  i've reported is a specific feature of the v3.10.
Look at the following:

[compass] >uname -a
Linux lxplus033 2.4.20-18.7.cernsmp #1 SMP Thu Jun 12 12:27:49 CEST 2003 i686 unknown
[compass] >gcc -v
Reading specs from /usr/local/gcc-alt-2.95.2/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/specs
gcc version 2.95.2 19991024 (release)
[compass] >echo $ROOTSYS
/afs/cern.ch/sw/root/v3.10.01/rh73_gcc2952/root
[compass] >echo $PATH
/afs/cern.ch/compass/detector/monitor/mysql/bin:/afs/cern.ch/sw/root/v3.10.01/rh73_gcc2952/root/bin:
/afs/cern.ch/sw/root/v3.10.01/rh73_gcc2952/root/bin:/usr/local/gcc-alt-2.95.2/bin:/afs/cern.ch/user/
d/dorofeev/bin:/afs/cern.ch/user/d/dorofeev/scripts:/usr/sue/bin:/usr/bin:/bin:/usr/bin/X11:/usr/loc
al/bin:/usr/local/bin/X11:/cern/pro/bin:.:/usr/local/lsf/bin
[compass] >echo $LD_LIBRARY_PATH
/afs/cern.ch/user/d/dorofeev/w0/coral/i386_linux24:/afs/cern.ch/user/d/dorofeev/w0/coral/lib/Linux:/
afs/cern.ch/compass/online/daq/dateV371/monitoring/Linux:/afs/cern.ch/compass/detector/monitor/mysql
/lib:/afs/cern.ch/sw/root/v3.10.01/rh73_gcc2952/root/lib:/afs/cern.ch/sw/lhcxx/specific/redhat73/gcc
-2.95.2/CLHEP/1.8.0.0/lib:/afs/cern.ch/sw/root/v3.10.01/rh73_gcc2952/root/lib:/usr/local/gcc-alt-2.9
5.2/lib:/afs/cern.ch/project/oracle/linux/920/lib
[compass] >root
  *******************************************
  *                                         *
  *        W E L C O M E  to  R O O T       *
  *                                         *
  *   Version   3.10/01    8 October 2003   *
  *                                         *
  *  You are welcome to visit our Web site  *
  *          http://root.cern.ch            *
  *                                         *
  *******************************************

FreeType Engine v2.1.3 used to render TrueType fonts.
Compiled for linux with thread support.

CINT/ROOT C/C++ Interpreter version 5.15.105, Sep 28 2003
Type ? for help. Commands must be C++ statements.
Enclose multiple statements between { }.
root [0] gEnv->Print();
 ...........
Gui.IconPath:
/afs/cern.ch/user/d/dorofeev/icons:/afs/cern.ch/sw/root/v3.10.01/rh73_gcc2952/root/icons:. [Global]
............
root [1] TBrowser b;
Error in <TGComboBox::TGComboBox>: arrow_down.xpm not found
Error in <TGVScrollBar::TGHScrollBar>: arrow_*.xpm not found
Error in <TGTreeLBEntry::TGTreeLBEntry>: icon not found for entry Current dir

 *** Break *** segmentation violation

.. done:
2.95.2 is REALLY diffferent from any else (it's silly, but true!)
Please, be silent  about win32gdk which I'm triyng to touch everyday :-)


Regards. Valeriy


> Hi Martijn,
> please, always specify platform and ROOT version.
>
> Thanks. Regards. Valeriy
>
> > Hi Martijn,
> >
> > This is strange.
> >
> > > The problem is that gROOT->ProcessLine() does not work:
> > It should work (especially in your case).  It should not mention TFile in
> > case of failure.  Can you be more explicit about:
> > - the actual argument to ProcessLine
> > - the actual error message.
> >
> > > Yet this can only work as long as my program remains interpreted.
> > More accurately, it will require your symbol to be exposed to CINT
> > (they could be either compiled or interpreted).
> >
> > > I could execute it directly with arguments, in
> > > both interpreted mode and compiled mode.
> > As long as your properly exposed the symbols (generate the dictionary)
> > gROOT->ProcessLine is your easiest and most flexible way of handling
> > this (but there is several other possibilities).
> >
> > Cheers,
> > Philippe
> >
> > -----Original Message-----
> > From: owner-roottalk@pcroot.cern.ch
> > [mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Martijn Schellekens
> > Sent: Tuesday, November 25, 2003 3:47 AM
> > To: roottalk@pcroot.cern.ch
> > Subject: [ROOT] Executing a loaded method
> >
> >
> > Hi rooters,
> >
> > I am developing some user interface in which users can apply some simple
> > macro (either compiled or interpreted) to several events. I first load this
> > Macro with gROOT->LoadMacro() so it is not loaded several times (with
> > related warnings). Then I would like to execute the main method (with the
> > same name) with some arguments comming from my user interface program. The
> > problem is that gROOT->ProcessLine() does not work: it seems to open some
> > new temporary TFile in which my arguments (although my program is mainly in
> > interpreted mode) are not recognized. The only solution that I see
> > currently is making a new macro file on the fly in which resides only the
> > call to my function with corresponding arguments. Yet this can only work as
> > long as my program remains interpreted. What I would like to do is get back
> > my method (which is not a class method) from some TCollection (yet I didn't
> > find which one) where from I could execute it directly with arguments, in
> > both interpreted mode and compiled mode.
> >
> > Could someone help me on this,
> >
> > Best regards,
> >
> > Martijn Schellekens
> >
> >
>
>



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:17 MET