RE:Change in dicrtionary with new version o

From: Masaharu Goto (MXJ02154@nifty.ne.jp)
Date: Mon Feb 21 2000 - 11:51:06 MET


Hello Fons,

I forgot to mention this big change in cint5.14.31. 

There was a request that shared library should automatically load
all the standard header files loaded in the precompiled header file.

All the files started by '<' are standard header files to be loaded
with the shared library.  This is intentional. For example,

  // myheader.h
  #include <string>     // this will trigger implicit loading
  class myclass { .. };

  $ makecint -mk makefile -dl myheader.dll -H myheader.h
  $ make -f makefile
  $ cint myheader.dll
  cint> .file
     myheader.dll      // explicitly loaded
     string            // loaded implicitly by shared library
     string.dll        //      "
     bool.h            //      "

I belive this is a good feature. So far, I have not found any side-effect,
but potential risk is there.  Please report me any problems. If you find
one, define  G__OLDIMPLEMENTATION1271  in G__ci.h  to deactivate the feature.

Thank you
Masaharu Goto


>Hi Masa,
>
> I noticed an important change in the dictionary with the new version
>of CINT. There are now all kind of G__add_compiledheader() calls of
>headers that were not explicitly mentioned on the rootcint command line.
>For example in the old dictionary we had:
>
>extern "C" void G__set_cpp_environmentG__Meta() {
>  G__add_compiledheader("TROOT.h");
>  G__add_compiledheader("TMemberInspector.h");
>  G__add_compiledheader("TBaseClass.h");
>  G__add_compiledheader("TClass.h");
>  G__add_compiledheader("TDataMember.h");
>  G__add_compiledheader("TDataType.h");
>  G__add_compiledheader("TFunction.h");
>  G__add_compiledheader("TGlobal.h");
>  G__add_compiledheader("TMethod.h");
>  G__add_compiledheader("TMethodArg.h");
>  G__add_compiledheader("TMethodCall.h");
>  G__add_compiledheader("TCint.h");
>  G__add_compiledheader("TInterpreter.h");
>  G__add_compiledheader("TToggle.h");
>  G__add_compiledheader("TToggleGroup.h");
>  G__cpp_reset_tagtableG__Meta();
>}
>
>while now we have:
>
>extern "C" void G__set_cpp_environmentG__Meta() {
>  G__add_compiledheader("TROOT.h");
>  G__add_compiledheader("<stdio.h");
>  G__add_compiledheader("<bool.h");
>  G__add_compiledheader("<stdarg.h");
>  G__add_compiledheader("<string.h");
>  G__add_compiledheader("TMemberInspector.h");
>  G__add_compiledheader("TBaseClass.h");
>  G__add_compiledheader("TClass.h");
>  G__add_compiledheader("TDataMember.h");
>  G__add_compiledheader("TDataType.h");
>  G__add_compiledheader("TFunction.h");
>  G__add_compiledheader("TGlobal.h");
>  G__add_compiledheader("TMethod.h");
>  G__add_compiledheader("TMethodArg.h");
>  G__add_compiledheader("TMethodCall.h");
>  G__add_compiledheader("TCint.h");
>  G__add_compiledheader("<time.h");                 //<-- these come from
>G__ci.h
>  G__add_compiledheader("<math.h");
>  G__add_compiledheader("<stddef.h");
>  G__add_compiledheader("<stdlib.h");
>  G__add_compiledheader("<signal.h");
>  G__add_compiledheader("<assert.h");
>  G__add_compiledheader("<limits.h");
>  G__add_compiledheader("<setjmp.h");
>  G__add_compiledheader("<ctype.h");
>  G__add_compiledheader("<fcntl.h");
>  G__add_compiledheader("<systypes.h");
>  G__add_compiledheader("<unistd.h");
>  G__add_compiledheader("TInterpreter.h");
>  G__add_compiledheader("TToggle.h");
>  G__add_compiledheader("TToggleGroup.h");
>  G__cpp_reset_tagtableG__Meta();
>}
>
>Is there a quick fix for this?
>
>Cheers, Fons.
>
>



This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:19 MET