RELNOTE.txt cint 5.16.29/6.1.29 release note - CINT mailing list Cint mailing list 'root-cint@cern.ch' is started. Send request to 'Majordomo@pcroot.cern.ch' containing following line for subscription. subscribe cint [preferred mail address] * Cint installation ******************************************************** See http://root.cern.ch/twiki/bin/view/ROOT/CINT 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 function *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 * * 5.17.00 Dec 21, 2008 * 6.2.00 Dec 21, 2008 * - CINT stand-alone can be checked out as svn co http://root.cern.ch/svn/root/trunk/cint (current development snapshot) or http://root.cern.ch/svn/root/tags/cint/cint-5.17.00 (release). * - libcint is now called libCint. * - CINT's files have been renamed (the "v6_" prefix is removed), its dictionary files are now moved to a new subdirectory of src called "dict". * - Support for new platforms (MacOSX 10.5, MIPS, HPPA, MSVC2008, FreeBSD 7.0). * - Makefile targets for RMP and debian packages, thanks to Daniel Barna. * - Don't automatically use /tmp directory for temporary files but rely on CINTTMPDIR, TMP, or TEMP environment variables. * - Remove loadfile of bool.h * - Simplify and fix parsing of cast to basic type. * - Fix parsing of templated operators and constness determination of conversion operators' (return) type. * - Better error message for dangling parentheses. * - Fixes concerning CINT's representation of size_t, char* vs. const char* in CINT's C API. * - Fix function overload resolution involving enums. * - Remove unused long.dll. * - Fix treatment of break in loops. * - Introduce cintdictversion.h holding a version number for the CINT dictionary API. This file is useful to determine when dictionaries need to be regenerated. * - Improved initialization of class static variable that are objects. * - Dictionaries for templated functions are now accessible both as func(int) and func(int). * - Fixes for template parameters being arrays, functions returning templated classes, allowing CINT to parse T*const&. * - Support qt cintdll for Qt4. * - Corrected the handling of function parameter of type 'reference to bool'. * - Avoid incorrectly matching a non-static class member function when called without an object (i.e. typically TString::Form(...));). Previously this was allowed and lead to a segfault. * - Extended "#pragma link C++ defined_in filename;" to look for the file name in the same include paths as G__loadfile (i.e. previously defined_in was restrict to full path names and relative path names). Allow quote around the file name. * - CINT now also keeps track (see .files) of the libraries that have been loaded indirectly (i.e. via a hard link as opposed to via G__loadfile for example) and that contain a CINT dictionary. * === THIS WILL BE THE LAST CINT5 RELEASE, THE NEXT WILL BE A CINT7 RELEASE! === * Starting from the next version, the new CINT core version will be the default: you will have to explicitly specify "./configure --coreversion=old" to get CINT5; we are only planning to support CINT7. * 7.3.00 Dec 21, 2008 * First release of CINT7 using Reflex as reflection database. * 5.18.00 July 2, 2010 * 6.03.00 July 2, 2010 * - CINT7 has been discontinued, see and * - Replace fixed-size buffers by a very fast dynamic buffer pool (G__FastAllocString), fixing many possible buffer overflows and removing most buffer size limitations * - Commands ".Lk" load (or execute ".xk") files _keeping_ already loaded files, i.e. not unloading them. * - Implement prompt interface ".preproc" for toggling the external preprocessing of scripts * - Many fixes to issues reported by Coverity * - Many bytecode improvements * - Add G__x86_64__ and G__amd64 macros if available * - Port up to GCC <= 4.5, MSVC <=10, ICC <= 11, OpenSolaris CC with -library=stlport4; add support for building with clang >= 2 * - KCC not supported anymore * - Improve integer operators' behavior wrt overflows * - Fix parsing of templated operators * - Improvements in the handling of static and const variables, especially regarding initialization * - Accelerate the dictionary initialization, most notably for large dictionaries (from n^2 to nlogn) and reduce the load (registration) time of libraries * - New link pragma to simply the generation of the dictionary for 'operators' in a rootcint dictionary: * #pragma link [C++|off] operators classname; * - Implement new pragma link syntax for contained classes: #pragma link C++ class A::*; will create dictionaries for all classes defined within A. ROOT I/O flags (trailing "+" etc) are supported, too. * - Fix functions taking vararg and returning objects on AMD64 * - Improvements regarding (unsigned) long long, e.g. as template arguments * - Clean up more temp files on Windows * - Fix dictionary for vector * - Accelerate G__store_dictposition * - Remove support for stubless dictionaries * - New Reflex CMake user macros (thanks to Hady Zalek, Murex) * - Introduce ScopedType to factor out the common code from Class, Enum, Union. * - Reimplement UpdateMembers() and PathToBase() in a backward compatible way. Add selection enum for inherited / non-inherited member getters. * - Modify the behavior of Reflex dictionary (namely ClassBuilder). Rather than unconditionally erasing existing information, a 2nd ClassBuilder will either add new information or check that it is compatible with the existing information (and throwing an exception in case of problems). To be able to over-ride an existing definition, unload the class before calling ClassBuilder. * - Improve shutdown handling of the Reflex database * - Implement delayed, on-demand initialization of data and function members in Reflex dictionaries * - The dictionary now tells Reflex that a const char* does not need to be copied onto the heap, but is a string literal that can be stored as is. This reduces the amount of allocated strings for the Reflex dictionary of Reflex by 80% (!) without any backward incompatibilities. The names stay valid on library unload; to not force all literals to be allocated on the heap on dlclose, Reflex::Instance::Shutdown() needs to be called at the end of the process.