RELNOTE.txt cint 5.16.29/6.1.29 release note - CINT mailing list Cint mailing list 'cint@root.cern.ch' is started. Send request to 'Majordomo@pcroot.cern.ch' containing following line for subscription. subscribe cint [preferred mail address] * Notice ******************************************************************* - From Mar/2004, I start working on re-engineering of bytecode compiler which has been a major source of bugs. Hence this is a major change of the system, I'll have to slowdown user support and bug fix. I'd appreciate your understanding. High priority problems will still get fixed. * New features ************************************************************* - Major re-engineering on bytecode compiler Cint5.15.x : legacy Cint, Cint6.0.x : preliminarily reengineering version, - Visual C++ .NET support Visual C++ .NET is supported from cint5.15.120. Go to platform/VisualCpp7 directory and run setup script. After that, you need to run setup script in lib/longlong, lib/win32api, lib/posix and lib/dll_stl directories. You can use full functionality of Cint. There is a problem Windows batch command that child processes do not run properly. That is why you need to run setup.bat script in each lib/* directory. - Qt library Qt-Cint is experimentally supported from 5.15.108. Refer to lib/qt/README.txt and demo/qt/README.txt. Currently, Qt-Cint is supported only on Windows with VC++6.0 compiler. Qt-Cint implementation is quite premature. Your feedback will be greatly appreciated. - DLL loading without makecint/rootcint for Intel CPU From 5.15.102, you can load global functions in DLL without makecint/rootcint if you use Intel 32bit CPU with gcc3.2, VC++ or BC++. You need to specify DLL filename and function interface by extern "[dllname]" { ... } Refer to doc/ref.txt for detail. - Cygwin5.1 support From 5.15.101, Cygwin5.1 is supported with full Cint functionality including dynamic loading. Read platform/README.txt and try platform/cygwin51_gcc3_so. - VC++7.1 support Try platform/visualCpp7/setup[XXX].bat for setup. This version uses new templated iostream library. - Command prompt input mode A new command prompt input mode is added from version 5.15.74. The new mode can be activated by setting 'INPUTMODE = C++' in $CINTSYSDIR/MAKEINFO. See doc/ref.txt - INPUTMODE for more detail. - Test suite Cint test suite goes with source code package. The test suite is a collection of test programs reported with bug reports. Read test/README.txt for more detail. - Borland C++ compiler 5.5 support Free version of Borland BCC32.exe comiler is available from http://www.borland.com. BCC32.exe version 5.5 is supported from cint5.15.53. Refer to c:\cint\platform\borlandcc5\README.txt. - New iostream redirection scheme is implemented in lib/*stream/iostrm.h. The code is implementation dependent which needs to be tested on each compiler and computer platform. If you fail to compile src/*strm.cxx, please look into corresponding lib/*stream/iostrm.h, fix the problem and send me appropriate fix. - DLL binary compatibility is discountinued between 5.14.X to 5.15.X. Please re-compile all the CINT DLLs. After 5.15.02, DLL binary compatibility became more robust. - gcc-3.00 support gcc-3.00 is supported from 5.15.14. Use platform/linux_RH6.2_gcc3 to compile Cint with gcc-3.00 on RedHat6.2 Linux. This configuration has many problems still. The author is working to solve them. - Power operator '**' delete option Cint have had power operator '**' as an original extension. However, this causes problem if we look C/C++ syntax strictly. 'a**b' is 'a power b' for Cint and 'a*(*b)' for compiled code. G__NOPOWEROPR compile flag is added to turn off '**' operator. Add -DG__NOPOWEROPR to OTHMACRO in platform dependency file. From 5.15.25, power operator is deleted by default. - WildC++ with Tcl/Tk8.3 WildC++ interpreter, a mixture of Cint and Tcl/Tk, used to require older Tcl/Tk. Now, it supports newer Tcl/Tk8.3. Please find it in lib/wintcldl83. - New API Following API functions are added. Please refer to doc/ref.txt. char* G__load_text(char* namedmacro); loading on memory C++ source code. void G__set_emergencycallback(void (*p2f)()) set behavior of '.save' command for emergency object save - Exception handling example Exception handling has been implemented long time ago. However, it has not been informed enough to the users. A new example is added in demo/exception directory. Refer to demo/exception/README.txt for the details. - Experimental multi-threading libcintX.so Multi-threading libcintX.so capability is provided experimentally. This is a very clude implementation and NOT RECOMMENDEDN FOR ORDINARY USERS. For Linux RedHat6.2, platform dependency file platform/linux_RH6.2_mtso is prepared. Install Cint with 'sh ./setup platform/linux_RH6.2_mtso' and try example in demo/multilibcint directory. For Windows VC++6.0, add G__MULTITHREADLIBCINT macro at the beginning of G__ci.h. This has to be done before Cint compilation. Install Cint and try example in demo/multilibcint directory. - Xlib and openGL support X11R6 and openGL APIs are supported from 5.14.86. include/X11/xlib.dll and include/GL/gl.dll can be built under lib/xlib and lib/gl directory. Simple example for X11 program can be found in demo/xlib directory. OpenGL example is missing right now. Your contribution to add an openGL programming example will be greatly appreciated. Those libraries are verified only on Linux RedHat6.2 at this moment. - Error message callback Error message can be redirected through an user defined callback function. The callback can be set by G__set_errmsgcallback(void (*p2f)(char*)) API. This feature is convenient when a user wants to embed cint into a GUI based host program. See doc/ref.txt for G__set_errmsgcallback. A special care is needed to compile src/disp.c. Some compiler may report an error in variable argument declaration around line 1972-1978. If you find a compile error, please modify the source appropriately. Your report about such change , regarding specific platform , is highly appreciated. This feature is normally turned off. You need to define 'OTHMACRO = -DG__ERRORCALLBACK' in platform dependency file for activation. An example is added in demo/errpipe directory. - Variable argument Variable argument is supported from Cint 5.14.69 for Intel architecture. must be included to use variable argument. Cint accepts both form of declaration. void foo1(char *fmt, ...); void foo2(char *fmt ...); Argument values for Variable arguments are put into function call stack. For each computer platform, specific byte layout must be emulated by Cint. Because byte layout is not publicly informed, this capability may not be portable to all platforms. At this moment, only Linux and Win32 with Intel architecture are verified. It is known that this scheme can not be extended to HP-PA and Sparc architecture. Need more investigation for other platforms. - "ifdef" utility is added to the package. Read doc/ifdef.txt for the detail. "ifdef" selectively resolves #ifdef,#ifndef,#if,#elif, #else and #endif in C/C++ source code. Macros that are explicitly defined/undefined by -D/-U option are resolved and eliminated from the source code. Other #ifdefs remain unchanged. #if statements with multiple conditions and &&,|| operators will be resolved by a symbolic resolver. "ifdef" can be also used as a #ifdef nesting hierarchy analyzer. Although included in CINT package, ifdef is an independent software productivity tool. - New memory allocation method is fully activated in cint5.14.64. This scheme is tested under most of the platforms. + If you find compiling src/Apiif.cxx or other dictionary code due to 'void operator delete(void*,[DLLID]_tag*)', undefine G__EH_DUMMY_DELETE macro in G__ci.h around line 195. + Uncomment '#define G__OLDIMPLEMENTATION1423' in G__ci.h to disable the new scheme. + Alternatively, you can give '-cint -M0x0', '-cint -M0x10' or '-cint -M0x1c' option to makecint in order to use the old memory allocation scheme. + A version of IBM AIX-xlC compiler has a problem compiling explicit destructor calls for implicitly created destructor. This is supposed to be a compiler bug. + MicroSoft Visual C++97 (or VC++5.0) can not compile dictionary with new memory allocation system. With VC++5.0 or older version, cint will use the old method. (Do not include vcstrmold.cxx and Apiifold.cxx to ROOT source tree.) - -Y[0|1] option, controls if std namespace is ignored or not. -Y1 (ignore std namespace) is a default. If you specify -Y0 option, you must explicitly use std:: namespace. For example, $ cint -Y0 string cint> { std::string a="abcdefg"; } Note that CINT header file is reorganized for this purpose. In order to use this feature, you must use new header files. (Under $CINTSYSDIR/include and $CINTSYSDIR/stl directories.) - -Z[0|1] option, loading std header files implicitly with DLL With -Z1, std header files included in making cint dictionary are implicitly loaded with DLL. Consider following example, // myapp.h #include void f(const string& x) { ... } When you make cint dictionary, std header file is implicitly loaded with myapp.dll if -Z1 option is given both to makecint and cint. $ makecint -mk makefile -dl myapp.dll -H myapp.h -cint -Z1 $ make -f makefile $ cint -Z1 myapp.dll -Z1 is a default for pure CINT and -Z0 is a default for ROOT. - True virtual function resolution in mixed interpreted/precompiled-class environment is supported by STUB. Base class and interface of derived class have to be precompiled and derived class member function can be interpreted. Please find example in demo/makecint/Stub2 directory. - Protected member access for compiled class '#pragma link C++ class+protected [classname];' is added to allow protected member access of compiled base class from interpreted derived class. - !!! Special notes about past changes !!! Following changes were deactivated because of bad side-effects. 1289 : Tried to support true pointer to static member function. But because side effect was found, this feature is turned off. * Cint installation ******************************************************** 1) make a new directory for cint 2) Get source code package cint.tar.gz and put it under the new directory 3) Unpack the package $ gunzip -c cint.tar.gz | tar xvf - OR $ gzip -vd cint.tgz $ tar xvf cint.tar OR winzip twice 4) Read README.txt and platform/README.txt for further instruction. Recent changes ************************************************************ (See src/HISTORY for older changes) * 5.15.126, Mar 4 2004 * 2012, display DLL name for .class, .func * 2013, findposition() insure filenum>=0 && linenum>=0 * 2014, classname autoloading , t1218.cxx *-2015, classname autoloading 2, t1220.cxx * * 5.15.127, Mar 10 2004 * 2016, typedef double* X; f(*(X*)a); casting problem, t1221.cxx * 2017, (enum xxx)1, ' xxx' => 'xxx', t1222.cxx * 2018, operator[](char*) t1223.h/cxx * 2019, G__CallFunc::SetFunc(... MatchMode), t1228.cxx * 2020, G__CallFunc::SetFunc(), reftype handling bug, t1228.cxx * - , stl/pair.dll, lib/dll_stl/pr.h experimental version * * 5.15.128, Mar 16 2004 * 2021, G__ANSI defined for gcc3.x, Solaris * 2022, newlink.c, ptr to static member function, ns::f -> &ns::f * 2023, cintdll for Solaris * 2024, 2014 side-effect found with valgrind, * - , G__MAXBASE -> 50 * 2025, 2011, more to fix, by Philippe Canal * - , str.h, operator==, != to char* are added * 2026, 2014 bug fix, * * 5.15.129, Mar 21 2004 * 2027, dtor always registered at the beginning (as part of reeng) * 2028, 2024, one more fix * 2029, long arguments in CallFunc * 2030, G__calldtor() is added in struct.c, not used yet (as part of reeng) * 2031, $ command -> sh -I -c [com] * - , fix to 2030, * * 5.15.130, Mar 30 2004 * 2032, lib/prec_stl/memory * 2033, typedef list listintxx;, 1967 * * 5.15.131, Apr 6 2004 * 2034, #define ZEXTERN extern, t1239.cxx * CAUTION: This implementation has limitation. Using map, macro table can * only be reset in G__scratch_all. * 2035, 2012 left-over * 2036, operator=() more check * 2037, memberfunc initialization in G__define_struct * 2038, add G__var_array::enclosing_scope, inner_scope member * G__free_bytecode() deletes inner_scope * G__searchvariable() searchs enclosing_scope * 2039, 2027, dtor location left-over * 2040, dictionary for implicit assignment operator turned on for ROOT * 2041, G__defined_macro searchs for function macro and symbol macros * * 5.15.132, Apr 12 2004 *r2042, ENTERSCOPE, EXITSCOPE instructions, temporary disabled in pcode.c * 2043, G__ClassInfo::Delete , Destroy added * * 5.15.133, Apr 18 2004 *-2044, detecting private ctor/dtor/opr= in precompiled class, t980.cxx problem * 2045, generate dictionary for private ctor/dtor/opr= * - , regeneration of *strm.cxx due to 2045 * 2046, 1993 side-effect, #pragma link MACRO for static member function * - , IBM xlc,xLC flags are added * - , G__define_var temp1 length of buffer increased *-2047, G__MBoolref(), t1250.cxx, not completely done yet. * * 5.15.134, Apr 27 2004 * 2048, autoloading patch * 2049, G__TypeInfo::Init("int**&"); * * 5.15.135, May 07 2004 * 2050, G__struct.memfunc->busy[0] initizlization * * --------------------------------------------------------------------- * * 5.15.136, May 09 2004 * 6.0,0, May 09 2004 * 2051, activate cint dictionary for new bytecode compiler library * 2052, namespace compiled member deallocation problem, t1258.cxx/.h * 2053, missing initialization * * 5.15.137, May 17 2004 * 6.0,1, May 17 2004 * 2054, CTOR_SETGVP, store_globalvarpointer * - , 1073 activated * 2055, ifunc.c compile error fixed by Philippe Canal *r2056, G__callfunc0(), G__asm_exec restoration *r2057, G__calldtor(), free memory for interpreted class *r2058, G__exec_bytecode(), allocate autoobjectstack for return value *r2059, G__ClassInfo::GetCtor/Dtor/Assign added * 2060, G__ST_LVAR optimization * 2061, addtional fix to template, by Philippe Canal * * 5.15.138, May 23 2004 * 6.0,2, May 23 2004 *r2062, CL -> G__autoobjectstack::Autodelete() * * 5.15.139, June 1 2004 * 6.0,3, June 1 2004 *r2066, LD_IFUNC -> always call new bytecode compiler *r2067, G__interpret_func -> always call new bytecode compiler * 2068, uninitialized G__value::isconst * * 5.15.140, June 6 2004 * 6.0,4, June 6 2004 * 2069, abs -> labs in G__setiparseobject *rw2070, operator=, (on going change) * 2071, TMath::pow wrong call * 2072, f(arg) {const double x=arg;} *r2073, G__struct.vtable, G__ifunc_table.vtblindex added *r2074, virtual function * * 5.15.141, June 14 2004 * 6.0,5, June 14 2004 *r2075, vtbl and implicit operator= generation in struct.c *r2076, G__ClassInfo::AddMethod(name,arg) *r2077, BASECONV, ref==0?ref=obj.i; *r2078, PUSHCPY, does not clear ref. * One of 2077 or 2078 solves operator=(const A&) problem *r2079, GetMethod() + withInheritance parameter *r2080, G__MethodInfo::IsVirtual(); * * 5.15.142, June 20 2004 * 6.0,6, June 20 2004 *r2081, pBase=pDerived; * 2082, G__MethodInfo::GetBytecode() always compile bytecode. * 2083, printf("%2$*1$d", width, num); printf("%*d", width, num); *r2084, vtbl, add basetagnum for multiple inheritance resolution * 2085, operator<< bug fix * 2086, FOO::operator> bug fix *r2087, new -> new implementation * * 5.15.143, July 6 2004 * 6.0,7, July 6 2004 * 2088, G__exec_asm() presult=NULL; *r2089, G__CAST generation in G__asm_gen_stvar() * 2090, Philippe's operator>> fix in func.c and ifunc.c cint_35.diffs * 2091, tmplt.c fix by Philippe * 2092, tmpfile()==NULL -> G__tmpnam() * * 5.15.144, July 12 2004 * 6.0,8, July 12 2004 * 2093, array dimention error detection * 2094, fix to 'typedef void ** const * const_iterator;' by Philippe, (919) * 2095, MacOS X problem with GNUC macros, by Fons * 2096, G__calc("TPara::f()"), by Philippe * 2097, autoloading patch, by Philippe * 2098, static private array initialization * * 5.15.145, July 19 2004 * 6.0,9, July 19 2004 *r2099, G__SETGVP <- G__store_struct_offset * 2100, typedef.c, patch by Philippe, *r2101, new x[n], * * 5.15.146, July 25 2004 * 6.0,10, July 25 2004 *r2102, delete -> new implementation * 2103, map forward declaration, by Philippe * 2104, namespace fix, by Philippe *r2105, G__genericerror() display message if cintv6 * * 5.15.147, Aug 3 2004 * 6.0,11, Aug 3 2004 * 2106, friend template, by Philippe * 2107, ICC v8.1 fix, by Fons * - , Type.cxx valgrind error fix, by Philippe, 2105 -> 2106 * 2108, missin protection in G__what_type, by Philippe * * 5.15.148, Aug 17 2004 * 6.0,12, Aug 17 2004 *r2109, exception handling, G__THROW instruction *r2110, RTN_FUNC 2, G__exec_asm returns from try { } *r2111, explicit conversion for exception, don't put into legacy tempobj buf * * 5.15.149, Aug 23 2004 * 6.0,13, Aug 23 2004 *r2112, G__exec_bytecode -> C++ * 2113, G__asm_optimize, i<5 optimization potential bug fix * *-2114, G__asm_optimize3() returns max stack usage *-2115, re-sizable stack buffer * 2114 and 2115 failed. Those changes are deleted. That state is archived * as backup/cint6.0.13C.tar.gz. * *r2116, resizable G__asm_inst buffer *r2117, throw G__bc_compile_error + error handling * 2118, G__ClassInfo::Funcflag() returns G__struct.funs[] * - , Error handling * * 5.15.150, Aug 30 2004 * 6.0,14, Aug 30 2004 * 2119, G__delete_ipath(char* path); * 2120, class A { operator()(int i);} a; a(i)(i) bug fix * TODO, class A { operator[](int i);} a; a[i](i) reserved 2121 *r2122, assignment error check *r2123, A > x; avoid recursive G__bc_struct call *r2124, G__asm_noverflow reset after template instantiation, * * 5.15.151, Sep 5 2004 * 6.0,15, Sep 5 2004 * 2125, initary[]={f(),g()}; * 2126, intassignbyref, if(!ref) *r2127, local stitic/const handling *r2128, G__letvalue, 'c' memcpy *r2129, G__OP2 '#', add arbitrary value to pointer * 2130, implicit ctor -> allow array initiazliation *r2131, incsetup_memvar in G__initmemvar() *r2132, G__CL line+filenum * * 5.15.152, Sep 12 2004 * 6.0,16, Sep 12 2004 *r2133, G__CL, 's','S','c', + 2 lines G__pr() call *r2134, G__CL position, end of statement -> beginning of statement *r2135, turn off source code trace in step mode *r2136, implement new stack trace mechanism *r2137, use new stack trace mechanism for V command *r2138, break/continue * 2139, eof check in G__input * * 5.15.153, Sep 20 2004 * 6.0,17, Sep 20 2004 *r2140, MEMCPY instruction *r2141, copy ctor dictionary -> array copying *r2142, G__PAUSE() instruction *r2143, argument name difference in header and definition, * 2144, argument difference in reference, header vs definition * - , int *a, b , &c=b; bug fix * 2145, class A *p=new A[5]; p[i].disp(); *r2146, virtual base class G__abortbytecode() * 2146, array of pointer to function * * 5.15.154, Sep 29 2004 * 6.0,18, Sep 29 2004 *r2147, MEMSETINT instruction *r2148, G__BaseClassInfo::Property() G__BIT_ISVIRTUAL -> G__BIT_ISVIRTUALBASE * 2149, template specialization bug fix by Philippe Canal *r2150, virtual base initialization in bc_* * * 5.15.155, Oct 11 2004 * 6.0,19, Oct 11 2004 *r2151, virtual base class, G__ISINDIRECTVIRTUALBASE flag, may be unnecessary *r2152, virtual base function resolution VIRTUALADDSTROS *r2153, virtual base function resolution in bytecode, bc_exec_virtualbase_ *r2154, base class cast to array element, rewind stack before cast *r2155, SETMEMFUNCENV, RECMEMFUNCENV for x.y when G__cintv6 * * 5.15.156, Oct 20 2004 * 6.0,20, Oct 20 2004 *r2156, G__STATICCONST flag is set for constant literals * 2157, bug fix A A::x=0; * 2158, timeout at main() * * 5.15.157, Oct 24 2004 * 6.0,21, Oct 24 2004 *- , r2156 fixed *r2159, local variable monitor *r2160, G__CAST instruction added *r2161, B bug fix for v6 *r2162, virtual table debugging, disp() *r2163, G__exec_asm moved in bc_exec.cxx * 2164, bug fix -> reserved dtor does not trigger template instantiation *- , bit field assignment in bytecode, bug fix * 2165, vector::iterator::operator= added for gcc3.x * 2166, (*vecvec[0])[0] bug fix * 2167, multiple occurannce of using namespace, by Philippe * 2168, HP aCC fix by Fons *r2169, new int*; bug fix in SET_NEWALLOC * * 5.15.158, Nov 2 2004 * 6.0,22, Nov 2 2004 *r2170, A** p=new A*[3]; p[0]=new A[2]; p[0][0]; *r2171, G__ExceptionWrapper() returns value from running funciton *r2172, virtual dtor free operation offset calculation in G__exec_asm * 2173, template function and member name conflict * 2174, loadfile.c fix by Philippe * 2175, printf fix by Philippe *r2176, improvement on type conversion at assignment *r2177, GetMethod() add doconvert flag * 2178, Philippe's fix on tmplt.c * 2179, Philippe's fix on scope operator '::' at the beginning *-2180, Philippe's fix on template bool * 2181, Addition to Philippe's fix. No error for G__fgetname_template() * - , std::string getline added * * 5.15.159, Nov 14 2004 * 6.0,23, Nov 14 2004 *r2182, improvement on type conversion at assignment * 2183, return (*this)[1]; bug fix *r2184, *expr1=expr2; bug fix * 2185, this erase isconst flag * 2186, Fons' fix on MacOS X bool *r2187, delete 0; skip dtor call and deletefree * 2188, bool fix, * * 5.15.160, Nov 24 2004 * 6.0,24, Nov 24 2004 * 2189, native long long support with G__NATIVELONGLONG * n, m, q M:macro, Q:p2f * 2190, delete all dictpos->ptype * 2191, 'm' macro -> 'j' * * 5.15.161, Dec 12 2004 * 6.0,25, Dec 12 2004 * 2189, + long long(x) and unsigned long long(y) fixed * 2192, long long bug fix by Philippe, * 2193, 1<<31, bug fix *-2194, Philippe's namespace fix * * 5.15.162, Jan 4 2005 * 6.0,26, Jan 4 2005 * 2195, bug fix, G__convert_param G__BASECONV * 2196, bug fix, namespace variable array initialization * * 5.15.163, Jan 10 2005 * 6.0,27, Jan 10 2005 * 2197, newlink.c fix by Philippe * 2198, tmplt.c fix by Philippe * 2199, VC7 optimizer bug workaround by Philippe, * 2200, Philippe's valgrind fix * * 5.15.164, Jan 23 2005 * 6.0,28, Jan 23 2005 * 2201, 0x0E + 12 bug fix * 2202, warning for 64bit to 32bit integer conversion in G__int, G__uint * 2203, G__DLL_direct_globalfunc supported for bytecode * 2204, G__DLL_direct_globalfunc with argument type conversion * 2205, G__DLL_direct_globalfunc for G__CallFunc, test2/t1353.cxx/h * 2206, unexpectedEOF improvement for error reporting, * * 5.15.165, Feb 18 2005 * 6.0,29, Feb 18 2005 * 2207, bool(0.1) -> 1 * 2208, assert test G__int() -> G__bool() * 2209, template vec2 f(); bug fix * 2210, G__fgetname_template, bug fix * 2211, template ostream& operator<<(); bug fix in G__keyword_anytime_8 * 2212, cint_10 Philippe's change on template member * 2213, cint_13 Constructor execution bug fix, by Philippe * 2214, cint_15 template member function fix by Philippe * * 5.15.166, Feb 22 2005 * 6.0,30, Feb 22 2005 * 2215, long long casting in dictionary * 2216, G__fdumpstream(), '<' + G__defined_templateclass() '>' * 2217, char (*fName)[5]; * 2218, Philippe's fix in vector DLL * 2219, abstract class instantiation error for new * 2220, stub function flag setting bug fix, * * 5.15.167, Mar 2 2005 * 6.0,31, Mar 2 2005 * 2221, display pure virtual function * 2222, buffer overrun bug fix by Philippe, * 2223, avoid segv from typo, TMath::Max)TMath::MaxElement(n, * 2224, #pragma link C++ macro fix? by Philippe * * 5.15.168, Mar 10 2005 * 6.0,32, Mar 10 2005 * 2225, template void f(const T& x); T=char* fix * 2226, G__setmemtestbreak(n,m); * 2227, errordictpos memory leak * 2228, VPersonTest.cxx bug fix for VObject** p=a; * * 5.15.169, Mar 14 2005 * 6.0,33, Mar 14 2005 * 2229, comment out 64bit->32bit conversion * 2230, operator with invalid argument, Philippe * 2231, Philippe's patch * 2232, Fons's patch * * 5.15.170, Mar 23 2005 * 6.0,34, Mar 23 2005 * 2233, Axel's patch for windows fclose * * 5.15.171, Apr 12 2005 * 6.0,35, Apr 12 2005 * 2234, return""; * 2235, va_arg, float -> passing as double for gcc * 2236, var.c G__var_type store/restore, by Philippe, * 2237, template MyTmplt > operator*(..) fix by Philippe * 2238, Windows patch by Philippe, * 2239, G__SourceFileInfo::Next() fix * 2240, G__srcreader::fgetstream_core() bug fix * * 5.15.172, May 3 2005 * 6.0.36, May 3 2005 * - , Philippe's change on G__ci.h * * 5.15.173, May 4 2005 * 6.0.37, May 4 2005 * * 5.15.174, May 5 2005 * 6.0.38, May 5 2005 * - , removed 90% of G__OLDIMPLEMENTATION* from source * * 5.16.2, July 14 2005 * 6.1.2, July 14 2005 * - , Convert most of the C source file from K&R C to Ansi C++ * - The files *.c were renamed v6_*.cxx. The interfaces are * - kept backward compatible (extern "C") * * 5.16.3, November 11, 2005 * 6.1.3, November 11, 2005 * - , Port to windows visual C++ version 8 * - , Many bugs fixes (see CVS change log for details) * * 5.16.4 November 30, 2005 * 6.1.4 November 30, 2005 * - Add support for generating dictionary using the reflex API (makecint -c3) * - See CVS Change log for other updates. * * 5.16.5 November 30, 2005 * 6.1.5 November 30, 2005 * - Improve support for generating dictionary using the reflex API (makecint -c3) * - Extend ClassInfo to better support array allocation and deallocation * - See CVS Change log for other updates. * * 5.16.6 January 9, 2006 * 6.1.6 January 9, 2006 * - Import and use the shadow class mechanism from ROOT. This allows the * calculation of the data member offset even if they are protected/private. * - See CVS Change log for other updates (http://root.cern.ch/root/ChangeLog-cint.phtml) * * 5.16.7 January 19, 2006 * 6.1.7 January 19, 2006 * - Many improvement to the shadow class generation. * - See CVS Change log for other updates (http://root.cern.ch/root/ChangeLog-cint.phtml) * * 5.16.8 February 9, 2006 * 6.1.8 February 9, 2006 * - Update and streamline the handling operator new and delete * - See CVS Change log for other updates (http://root.cern.ch/root/ChangeLog-cint.phtml) * * 5.16.9 March 3, 2006 * 6.1.9 March 3, 2006 * - Upgrade the support for operator new and delete in the dictionaries (improve usage of user provided operator new). * - Add a new command line option (-E) to insure exit on error. * - Improve error message in case of missing symbols. * - See CVS Change log for other updates (http://root.cern.ch/root/ChangeLog-cint.phtml) * * 5.16.10 March 30, 2006 * 6.1.10 March 30, 2006 * - Refresh of the port to icc and alpha cxx * - Fix for comment parsing in the CPP parser. * - See CVS Change log for other updates (http://root.cern.ch/root/ChangeLog-cint.phtml) * * 5.16.11 April 14, 2006 * 6.1.10 April 14, 2006 * - Improve template support * - Port to MacOS on Intel * - See CVS Change log for other updates (http://root.cern.ch/root/ChangeLog-cint.phtml) * * 5.16.12 May 16, 2006 * 6.1.12 May 16, 2006 * - Add support for variadic functions on AMD64 and EM64T. * - See CVS Change log for other updates (http://root.cern.ch/root/ChangeLog-cint.phtml) * * 5.16.13 June 8, 2006 * 6.1.13 June 8, 2006 * - New build system based on the configure/make model. MAKEINFO is not longer used. * - A few more function has been officially exported and/or added to the appropriate * header files * - See CVS Change log for other updates (http://root.cern.ch/root/ChangeLog-cint.phtml) * * 5.16.14 August 18, 2006 * 6.1.14 August 18, 2006 * - Clarification of the license (Now MIT License) * - See CVS Change log for other updates (http://root.cern.ch/root/ChangeLog-cint.phtml) * * 5.16.15 September 21, 2006 * 6.1.15 September 21, 2006 * - Various bug fixes (include a couple of cint dlls cleanups) * - See CVS Change log for other updates (http://root.cern.ch/root/ChangeLog-cint.phtml) * * 5.16.16 November 24, 2006 * 6.1.16 November 24, 2006 * - Some minor bug fixes: remove G__CINTVERSION from strm dict files, AMD64 vararg passing, long comments, extern "C" multiline issue * - G__sizeof, G__getfunction now part of the API * - respect system macros when generating dictionaries * - Move public header files into inc/ * - Changes to achieve binary compatibility with cint7; some of these are temporary * - Move C++ API into namespace Cint * - added build support for linux x86_64 * - See CVS Change log for other updates (http://root.cern.ch/root/ChangeLog-cint.phtml) * * 5.16.17 December 12, 2006 * 6.1.17 December 12, 2006 * - Some previously publicly visibly types are now private. Please let us know if this * causes problems for you! * - G__MethodInfo::Get/SetUserParam() added * - extend G__ClassInfo::AddMethod * - the relevant platform macros are now known to CINT, except when interpreting where the * compiler macros (e.g. __GNUC__) are hidden * - Fix prec_stl for solarisgcc, cygwin (posix) * * 5.16.18 February 9, 2007 * 6.1.18 February 9, 2007 * - Fix a few bugs (fix arithmetics involving long double, "!", * LL suffix for operators' long long args, quoting of default * params, * - Implement G__pop_tempobject_nodel() to "steal" temp object from CINT * - modify algo.h's random_shuffle to use new Cint::G__long_random in new v6_random.cxx * - make G__free_ifunc_table non-recursive * - for ROOT, use R__HAVE_CONFIG, not HAVE_CONFIG * * 5.16.19 March 16, 2007 * 6.1.19 March 16, 2007 * - handle 1dim arrays properly (!= scalar) * - more memory effient G__param and G__inherit * - implement forward decl in dictionaries (e.g. if dict for "A* f()" is * setup, lib containing A will not be loaded) * - add a reference layer between API ifunc* and internal ifunc*, so * reloading (scrupto of scripts) doesn't invalidate the external * ptrs for dependent libs * - update tagnums below scrupto limit if they are autoload entries * - allow multiple shared lib init routines * - bug fixes: fix decl locations in .so-s, distinguish "class*", * "decl if unknown" in G__search_tagname * - split Shadow.h off Api.h * - remove temporary files on windows once they are unused (fixes problem * with tmp file flooding) * * 5.16.20 June 1, 2007 * 6.1.20 June 1, 2007 * - from Diego Marcos: use base classes' function call stubs / wrappers for virtual functions * - implement '#pragma link option=...' syntax (for ROOT dictionary flags) * - several minor bug fixes: buffer overflow checks, uninitialized vars, * template class memfunc improvements, default values for function arguments, etc * * 5.16.21 June 22, 2007 * 6.1.21 June 22, 2007 * - fix value cast functions * - distinguish char, short, int, long, and unsigned ones. * - fix type determination of integer literals * - improve memory and speed performance of dict setup collection * - fix library un/reloading issues with member setup functions * - fix an issue with parameter default values and wrappers for virtual * functions * - fix a problem with by-reference parameters, where the reference was * built to the wrong parameter * - fix partial template specialization for non-type template arguments * - don't alloc space for static members during dictionary generation * - support "#if defined MACRO", the alternative form of "#if defined(MACRO)" * - remove configure and Makefile routines for internal readline, now that * it's not part of the CINT distribution anymore. * - test suite now uses external diff * * 5.16.22 July 17, 2007 * 6.1.22 July 17, 2007 * - Revert changes to val2a.cxx that got lost in previous release * - Fix issue of "ifunc_table overflow" caused by auto-loading while * reading function parameters in a macro. * !!! Requires (an unchanged) MAX_IFUNC==1 !!! * - When autoloading a lib work on a copy of the libname * - Fix #if defined (FOO) (space in front of opening paranthesis). * - Don't call the d'tor on a static member if we didn't allocate it * (e.g. when parsing only) * - Remove several warnings (comparison signed/unsigned, unused var) * - Allow resetting of G__UserSpecificGetSpecialObject * - Surround command line macro definitions for external preprocessor by "". * * 5.16.23 July 25, 2007 * 6.1.23 July 25, 2007 * - remove loadfile of bool.h * - fix parsing of templated operators * - fix constness determination of conversion operators * - simplify and fix parsing of cast to basic type * - better error message for dangling parentheses * * 5.16.24 July 26, 2007 * 6.1.24 July 26, 2007 * - scrupto: don't free const vars * - MSVC: embed manifest * * 5.16.25 Sept 10, 2007 * 6.1.25 Sept 10, 2007 * - add gcc4 iostream dictionary. * - fix support for multi line command line entries * - fix handling of storage duration for unspecified length arrays * - fix bytecode generation for switch * - fix parsing/execution of a break or continue nested inside * multiple levels of braces * - disable bytecode generation for any function or loop * which uses G__va_arg * - conversion "operator A*()": keep the '*' (and references etc) * - tighten up the semantics of statictype (namespace * members were getting declared static, even when they were not) * - scratch_upto now returns a counter that gets bumped * every time the dictionary is rewound, allows detection of changed dict. * * 5.16.26 Oct 11, 2007 * 6.1.26 Oct 11, 2007 * - move to subversion * - fix gcc4strm * - update CINT API dictionary * - update ReadF tutorial * - fix bytecode generation (was disabled in some loops) * - minor bug fixes * * 5.16.27 Oct 25, 2007 * 6.1.27 Oct 25, 2007 * - a few fixes for parsing conversion operators: * template args, type in namespace, local vs. global type * - fix bytecode generation for switch statement * - fix spelling of G__SetCriticalSectionEnv() * * 5.16.28 Nov 22, 2007 * 6.1.28 Nov 25, 2007 * - support MacOSX 10.5 + macos64, rename macgcc to macos. * - from Christian Holm Christensen: * new MIPS and HPPA linux architectures supported * - support MSVC2008 * - fix several problems discovered in CINT's test suite and with valgrind * - fix autoloading of templated classes with typedefs as template argument * - Add dictionary for std::string::(const_)reverse_iterator and * std::string::iterator's operator ==, != also for GCC > 3. * * 5.16.29 Jan 08, 2008 * 6.1.29 Jan 08, 2008 * - Fix 'int n((0));' and related syntax. * - Fixes problem with re-using artificial source files. * - Add G__get_class_autoloading_table() returning the library name for a class name; used by TCint to determine whether the enclosing class's auto-load entry should be set. * - Fix and "operator std::string()" by skipping "std::" and setting G__vartype for conversion functions. * - Add better support for indirect self reference * - Correct the constness in the case: Object * const &front() const; (i.e Object*const vs Object const*). * - Fix handling of case(1): [The issue was the missing space between case and (] * - Fix for passing the result of post increment directly to a function taking a parameter by reference (for example cout << c++; * - Add interface to set a G__ifile context: G__setfilecontext(filename, ifile). Sets G__ifile to filename (can be an artificial tag) and stores the previous one in ifile * - Support const T& operator()(const Key& key) const; * - Support obj*&operator()(int) * - Properly handle pragma link of operator in namespace * - Prevent the autoloader from destroying entries for templated classes that are defining in a namespace and/or class