new cint version

=?ISO-2022-JP?B?GyRCOGVGIyEhQDU8IxsoQg==?= (MXJ02154@niftyserve.or.jp)
Sat, 18 Oct 1997 12:02:00 +0900


Dear ROOT and CINT users,
INET:rootdev@hpsalo.cern.ch
INET:roottalk@hpsalo.cern.ch
INET:rdm@hpsalo.cern.ch
INET:aoki@cc.kurume-it.ac.jp *
INET:alext@win.tue.nl
INET:snyder@d0sgif.fnal.gov
INET:nick@fys.ruu.nl
KYR02740@niftyserve.or.jp

The latest CINT version 5.13.29 is copied to CERN today. Fons, please
expose this version to public.

Thanks to contribution from Scott Snyder, Alex Telea, Valery Fine,
Nick van Eijndhoven, Masao Aoki, Osamu Fukuda and others, there
are many improvements. However, because I'm still on my way of catching
up requests and demands, not everything is implemented yet. Please refer
to src/HISTORY for detail. This version is very experimental.

A few comments,

STL:
It looks like Scott Snyder is trying to implement STL on CINT. This
is a very good idea. I thought about STL implementation also, and
hoping that there is a SMART way of doing it. Handling STL just as
template library is not efficient on interpreter. It would be nice if
we can precompile core objects, maybe iterator or some kind of
universally polymorphic object which derives from G__value. This can
be interesting. Some of Scott's contributions are still not merged.

Conversion operator and increment/decrement operator:
Conversion operator and inc/dec operators are loaded on to the
dictionary, however, calling process is missing right now. This will
be implemented near future.

Educational applications:
Educational users are emerging. There are requests to prohibit illegal
C/C++ statements in order not to confuse students. CINT accepts some
illegal statements such as dynamic array allocation without new/malloc.
Right now, eliminating such extra capability is not getting high priority.
May be room for some discussion.

Pointer to compiled function:
Dealing with pointer to compiled function is a tough work, especially
with platform indepencency. There are many complications of doing this.
Nick van Eijndhoven reported problem giving pointer to precompiled
function to a precompiled member function. I didn't have time to look
into the detail, but please notice following.
1. G__P2FDECL or G__P2FCAST must be declared when compiling CINT in
order to use "pointer to precompiled global funcion". Otherwise,
you will always get "pointer to interface method of the precompiled
functions".
2. There is no way to get "pointer to precompiled member function"
from the interpreter. "pointer to precompiled member function" is
in fact , not a pointer , but a struct which is platform dependent.
3. As discussed many times, way of handling "pointer to interpreted
function" , "pointer to interpreted bytecode function" , "pointer
to interface method of precompiled function" and "pointer to
precompiled global function" is not simple but possible with some
programming.

Masaharu Goto