There are increasing number of message that CINT does not catch C++ syntax
error. First, I need to clarify following.
Basically, you should not expect CINT to catch some beginner errors. CINT
is never meant to be a syntax checker. A lot of compromises had to be made
in order to use C++ as a scripting language. It is possible to add more
checking, however, it is not all good. You might lose some good part of
CINT.
>I'm, among other things, using ROOT for our students to learn some basic
>numerical analysis methods.
>Of course, these students often do stupid errors (that never happens to
>us, of course...) and this is a good benchmarking for CINT/ROOT stability.
Stability is another issue.
1) CINT is not checking strictly
2) C/C++ syntax does not provide (or allow) robust environment
3) In ROOT/CINT, script interpreter and data processing engine resides in
same process. If we split the application into Client/Server
configuration, it can be more robust. However, you will lose benefit
of OO.
Major part of the problem comes from the fact that "you have choosen C++
and OO". No matter what the tool environment will be, you will live in a
fragile world. This is a logical consequence.
>My question is : why doesn't CINT catch this obvious error :
>
>{
> float t=1.;
> float dt=0.3;
> t=t-2dt; // missing *
>}
I can add check for this error. But, there remains many other errors that
CINT will not catch.
Masaharu Goto