CINT improvement news

Masaharu Goto (gotom@hpyiddq.jpn.hp.com)
Mon, 30 Jun 1997 9:43:33 JST


Rooters,

I made a major improvement on CINT C++ interpreter.

Operator precedence:
CINT used to have different operator precedence to ANSI standard. This
part was one of the oldest code which was rather messy. This time, I
completely re-write this part with a better implementation. Operator
precedence should be compliant to the standard now.
The new version will be copied to CERN soon.

And next is a question to Rooters about another enhancement.

Operator new:
I'd like to make an improvement on 'operator new' handling. Before I
make a change, I'd like to ask ROOT users about my idea. Now, you can
only use default operator new provided by OS and ROOT/CINT. You could
overload operator new, but it is not a simple job. I have following
alternatives of future enhancement.

1) ANSI/ISO standard says there is not default operator new with arena
argument. Gussing that this is the most popular way of using overloaded
new, CINT provides embedded operator new with arena argument. With
this enhancement, a user can write following macro without having his
own operator new().

class Txxx;
char buf[10000];
Txxx *p1 = new Txxx;
Txxx *p2 = new((void*)buf) Txxx;
Txxx *p3 = new((void*)buf) Txxx[10];

2) Allow user to overload operator new at his one risk. Overloading
operator new in interpreter environment is simple. But doing so in
compiled code is not. One has to go throught painful thinking. I
do not explain in detail , but there is an inevitable reason.

I prefer to implement 1). Give me your opinion.

Masaharu Goto