Binary compatibility report for the Tcl library  between 8.4.20 and 8.5.0 versions on x86

Test Info


Library NameTcl
Version #18.4.20
Version #28.5.0
CPU Typex86
GCC Version4.6.1

Test Results


Total Header Files3
Total Shared Libraries1
Total Symbols / Types508 / 579
VerdictIncompatible
(0.2%)

Problem Summary


SeverityCount
Added Symbols-136
Removed SymbolsHigh0
Problems with
Data Types
High0
Medium1
Low157
Problems with
Symbols
High0
Medium1
Low21
Problems with
Constants
Low6
Other Changes
in Constants
-18

Added Symbols (136)


tcl.h, libtcl8.5.so
Tcl_PkgInitStubsCheck ( Tcl_Interp* interp, char const* version, int exact )
TclTomMathInitializeStubs ( Tcl_Interp* interp, char const* version, int epoch, int revision )

tclDecls.h, libtcl8.5.so
Tcl_AppendFormatToObj ( Tcl_Interp* interp, Tcl_Obj* objPtr, char const* format, int objc, Tcl_Obj*const* objv )
Tcl_AppendLimitedToObj Tcl_Obj* objPtr, char const* bytes, int length, int limit, char const* ellipsis )
Tcl_AppendObjToErrorInfo ( Tcl_Interp* interp, Tcl_Obj* objPtr )
Tcl_AppendPrintfToObj Tcl_Obj* objPtr, char const* format, ... )
Tcl_ChannelTruncateProc Tcl_ChannelType const* chanTypePtr )
Tcl_CreateEnsemble ( Tcl_Interp* interp, char const* name, Tcl_Namespace* namespacePtr, int flags )
Tcl_DbNewBignumObj mp_int* value, char const* file, int line )
Tcl_DbNewDictObj ( char const* file, int line )
Tcl_DictObjDone struct Tcl_DictSearch* searchPtr )
Tcl_DictObjFirst ( Tcl_Interp* interp, Tcl_Obj* dictPtr, struct Tcl_DictSearch* searchPtr, Tcl_Obj** keyPtrPtr, Tcl_Obj** valuePtrPtr, int* donePtr )
Tcl_DictObjGet ( Tcl_Interp* interp, Tcl_Obj* dictPtr, Tcl_Obj* keyPtr, Tcl_Obj** valuePtrPtr )
Tcl_DictObjNext ( struct Tcl_DictSearch* searchPtr, Tcl_Obj** keyPtrPtr, Tcl_Obj** valuePtrPtr, int* donePtr )
Tcl_DictObjPut ( Tcl_Interp* interp, Tcl_Obj* dictPtr, Tcl_Obj* keyPtr, Tcl_Obj* valuePtr )
Tcl_DictObjPutKeyList ( Tcl_Interp* interp, Tcl_Obj* dictPtr, int keyc, Tcl_Obj*const* keyv, Tcl_Obj* valuePtr )
Tcl_DictObjRemove ( Tcl_Interp* interp, Tcl_Obj* dictPtr, Tcl_Obj* keyPtr )
Tcl_DictObjRemoveKeyList ( Tcl_Interp* interp, Tcl_Obj* dictPtr, int keyc, Tcl_Obj*const* keyv )
Tcl_DictObjSize ( Tcl_Interp* interp, Tcl_Obj* dictPtr, int* sizePtr )
Tcl_DiscardInterpState Tcl_InterpState state )
Tcl_FindEnsemble ( Tcl_Interp* interp, Tcl_Obj* cmdNameObj, int flags )
Tcl_Format ( Tcl_Interp* interp, char const* format, int objc, Tcl_Obj*const* objv )
Tcl_FSEvalFileEx ( Tcl_Interp* interp, Tcl_Obj* fileName, char const* encodingName )
Tcl_GetBignumFromObj ( Tcl_Interp* interp, Tcl_Obj* obj, mp_int* value )
Tcl_GetChannelError ( Tcl_Channel chan, Tcl_Obj** msg )
Tcl_GetChannelErrorInterp ( Tcl_Interp* interp, Tcl_Obj** msg )
Tcl_GetEncodingFromObj ( Tcl_Interp* interp, Tcl_Obj* objPtr, Tcl_Encoding* encodingPtr )
Tcl_GetEncodingNameFromEnvironment Tcl_DString* bufPtr )
Tcl_GetEncodingSearchPath ( )
Tcl_GetEnsembleFlags ( Tcl_Interp* interp, Tcl_Command token, int* flagsPtr )
Tcl_GetEnsembleMappingDict ( Tcl_Interp* interp, Tcl_Command token, Tcl_Obj** mapDictPtr )
Tcl_GetEnsembleNamespace ( Tcl_Interp* interp, Tcl_Command token, Tcl_Namespace** namespacePtrPtr )
Tcl_GetEnsembleSubcommandList ( Tcl_Interp* interp, Tcl_Command token, Tcl_Obj** subcmdListPtr )
Tcl_GetEnsembleUnknownHandler ( Tcl_Interp* interp, Tcl_Command token, Tcl_Obj** unknownListPtr )
Tcl_GetNamespaceUnknownHandler ( Tcl_Interp* interp, Tcl_Namespace* nsPtr )
Tcl_GetReturnOptions ( Tcl_Interp* interp, int result )
Tcl_InitBignumFromDouble ( Tcl_Interp* interp, double initval, mp_int* toInit )
Tcl_IsEnsemble Tcl_Command token )
Tcl_LimitAddHandler ( Tcl_Interp* interp, int type, void(*handlerProc)(ClientData, Tcl_Interp*), ClientData clientData, void(*deleteProc)(ClientData) )
Tcl_LimitCheck Tcl_Interp* interp )
Tcl_LimitExceeded Tcl_Interp* interp )
Tcl_LimitGetCommands Tcl_Interp* interp )
Tcl_LimitGetGranularity ( Tcl_Interp* interp, int type )
Tcl_LimitGetTime ( Tcl_Interp* interp, Tcl_Time* timeLimitPtr )
Tcl_LimitReady Tcl_Interp* interp )
Tcl_LimitRemoveHandler ( Tcl_Interp* interp, int type, void(*handlerProc)(ClientData, Tcl_Interp*), ClientData clientData )
Tcl_LimitSetCommands ( Tcl_Interp* interp, int commandLimit )
Tcl_LimitSetGranularity ( Tcl_Interp* interp, int type, int granularity )
Tcl_LimitSetTime ( Tcl_Interp* interp, Tcl_Time* timeLimitPtr )
Tcl_LimitTypeEnabled ( Tcl_Interp* interp, int type )
Tcl_LimitTypeExceeded ( Tcl_Interp* interp, int type )
Tcl_LimitTypeReset ( Tcl_Interp* interp, int type )
Tcl_LimitTypeSet ( Tcl_Interp* interp, int type )
Tcl_NewBignumObj mp_int* value )
Tcl_NewDictObj ( )
Tcl_ObjPrintf ( char const* format, ... )
Tcl_QueryTimeProc ( void(**getProc)(Tcl_Time*, ClientData), void(**scaleProc)(Tcl_Time*, ClientData), ClientData* clientData )
Tcl_RegisterConfig ( Tcl_Interp* interp, char const* pkgName, Tcl_Config* configuration, char const* valEncoding )
Tcl_RestoreInterpState ( Tcl_Interp* interp, Tcl_InterpState state )
Tcl_SaveInterpState ( Tcl_Interp* interp, int status )
Tcl_SetBignumObj Tcl_Obj* obj, mp_int* value )
Tcl_SetChannelError ( Tcl_Channel chan, Tcl_Obj* msg )
Tcl_SetChannelErrorInterp ( Tcl_Interp* interp, Tcl_Obj* msg )
Tcl_SetEncodingSearchPath Tcl_Obj* searchPath )
Tcl_SetEnsembleFlags ( Tcl_Interp* interp, Tcl_Command token, int flags )
Tcl_SetEnsembleMappingDict ( Tcl_Interp* interp, Tcl_Command token, Tcl_Obj* mapDict )
Tcl_SetEnsembleSubcommandList ( Tcl_Interp* interp, Tcl_Command token, Tcl_Obj* subcmdList )
Tcl_SetEnsembleUnknownHandler ( Tcl_Interp* interp, Tcl_Command token, Tcl_Obj* unknownList )
Tcl_SetExitProc void(*proc)(ClientData) )
Tcl_SetNamespaceUnknownHandler ( Tcl_Interp* interp, Tcl_Namespace* nsPtr, Tcl_Obj* handlerPtr )
Tcl_SetReturnOptions ( Tcl_Interp* interp, Tcl_Obj* options )
Tcl_SetTimeProc ( void(*getProc)(Tcl_Time*, ClientData), void(*scaleProc)(Tcl_Time*, ClientData), ClientData clientData )
Tcl_TakeBignumFromObj ( Tcl_Interp* interp, Tcl_Obj* obj, mp_int* value )
Tcl_TruncateChannel ( Tcl_Channel chan, Tcl_WideInt length )

tclTomMathDecls.h, libtcl8.5.so
TclBN_epoch ( )
TclBN_fast_s_mp_mul_digs mp_int* a, mp_int* b, mp_int* c, int digs )
TclBN_fast_s_mp_sqr mp_int* a, mp_int* b )
TclBN_mp_add mp_int* a, mp_int* b, mp_int* c )
TclBN_mp_add_d mp_int* a, mp_digit b, mp_int* c )
TclBN_mp_and mp_int* a, mp_int* b, mp_int* c )
TclBN_mp_clamp mp_int* a )
TclBN_mp_clear mp_int* a )
TclBN_mp_clear_multi mp_int* a, ... )
TclBN_mp_cmp mp_int* a, mp_int* b )
TclBN_mp_cmp_d mp_int* a, mp_digit b )
TclBN_mp_cmp_mag mp_int* a, mp_int* b )
TclBN_mp_copy mp_int* a, mp_int* b )
TclBN_mp_count_bits mp_int* a )
TclBN_mp_div mp_int* a, mp_int* b, mp_int* q, mp_int* r )
TclBN_mp_div_2 mp_int* a, mp_int* q )
TclBN_mp_div_2d mp_int* a, int b, mp_int* q, mp_int* r )
TclBN_mp_div_3 mp_int* a, mp_int* q, mp_digit* r )
TclBN_mp_div_d mp_int* a, mp_digit b, mp_int* q, mp_digit* r )
TclBN_mp_exch mp_int* a, mp_int* b )
TclBN_mp_expt_d mp_int* a, mp_digit b, mp_int* c )
TclBN_mp_grow mp_int* a, int size )
TclBN_mp_init mp_int* a )
TclBN_mp_init_copy mp_int* a, mp_int* b )
TclBN_mp_init_multi mp_int* a, ... )
TclBN_mp_init_set mp_int* a, mp_digit b )
TclBN_mp_init_size mp_int* a, int size )
TclBN_mp_karatsuba_mul mp_int* a, mp_int* b, mp_int* c )
TclBN_mp_karatsuba_sqr mp_int* a, mp_int* b )
TclBN_mp_lshd mp_int* a, int shift )
TclBN_mp_mod mp_int* a, mp_int* b, mp_int* r )
TclBN_mp_mod_2d mp_int* a, int b, mp_int* r )
TclBN_mp_mul mp_int* a, mp_int* b, mp_int* p )
TclBN_mp_mul_2 mp_int* a, mp_int* p )
TclBN_mp_mul_2d mp_int* a, int d, mp_int* p )
TclBN_mp_mul_d mp_int* a, mp_digit b, mp_int* p )
TclBN_mp_neg mp_int* a, mp_int* b )
TclBN_mp_or mp_int* a, mp_int* b, mp_int* c )
TclBN_mp_radix_size mp_int* a, int radix, int* size )
TclBN_mp_read_radix mp_int* a, char const* str, int radix )
TclBN_mp_rshd mp_int* a, int shift )
TclBN_mp_set mp_int* a, mp_digit b )
TclBN_mp_shrink mp_int* a )
TclBN_mp_sqr mp_int* a, mp_int* b )
TclBN_mp_sqrt mp_int* a, mp_int* b )
TclBN_mp_sub mp_int* a, mp_int* b, mp_int* c )
TclBN_mp_sub_d mp_int* a, mp_digit b, mp_int* c )
TclBN_mp_to_unsigned_bin mp_int* a, unsigned char* b )
TclBN_mp_to_unsigned_bin_n mp_int* a, unsigned char* b, unsigned long* outlen )
TclBN_mp_toom_mul mp_int* a, mp_int* b, mp_int* c )
TclBN_mp_toom_sqr mp_int* a, mp_int* b )
TclBN_mp_toradix_n mp_int* a, char* str, int radix, int maxlen )
TclBN_mp_unsigned_bin_size mp_int* a )
TclBN_mp_xor mp_int* a, mp_int* b, mp_int* c )
TclBN_mp_zero mp_int* a )
TclBN_reverse ( unsigned char* s, int len )
TclBN_revision ( )
TclBN_s_mp_add mp_int* a, mp_int* b, mp_int* c )
TclBN_s_mp_mul_digs mp_int* a, mp_int* b, mp_int* c, int digs )
TclBN_s_mp_sqr mp_int* a, mp_int* b )
TclBN_s_mp_sub mp_int* a, mp_int* b, mp_int* c )
tclTomMathStubsPtr [data]

to the top

Problems with Data Types, Medium Severity (1)


tclDecls.h
[+] struct TclStubs (1)

to the top

Problems with Symbols, Medium Severity (1)


tclDecls.h, libtcl8.4.so
[+] Tcl_HashStats Tcl_HashTable* tablePtr ) (1)

to the top

Problems with Data Types, Low Severity (157)


tcl.h
[+] struct Tcl_ChannelType (2)
[+] union anon-union-tcl.h-796 (1)

tclDecls.h
[+] struct TclStubs (154)

to the top

Problems with Symbols, Low Severity (21)


tclDecls.h, libtcl8.4.so
[+] Tcl_ChannelBlockModeProc Tcl_ChannelType* chanTypePtr ) (1)
[+] Tcl_ChannelClose2Proc Tcl_ChannelType* chanTypePtr ) (1)
[+] Tcl_ChannelCloseProc Tcl_ChannelType* chanTypePtr ) (1)
[+] Tcl_ChannelFlushProc Tcl_ChannelType* chanTypePtr ) (1)
[+] Tcl_ChannelGetHandleProc Tcl_ChannelType* chanTypePtr ) (1)
[+] Tcl_ChannelGetOptionProc Tcl_ChannelType* chanTypePtr ) (1)
[+] Tcl_ChannelHandlerProc Tcl_ChannelType* chanTypePtr ) (1)
[+] Tcl_ChannelInputProc Tcl_ChannelType* chanTypePtr ) (1)
[+] Tcl_ChannelName Tcl_ChannelType* chanTypePtr ) (1)
[+] Tcl_ChannelOutputProc Tcl_ChannelType* chanTypePtr ) (1)
[+] Tcl_ChannelSeekProc Tcl_ChannelType* chanTypePtr ) (1)
[+] Tcl_ChannelSetOptionProc Tcl_ChannelType* chanTypePtr ) (1)
[+] Tcl_ChannelThreadActionProc Tcl_ChannelType* chanTypePtr ) (1)
[+] Tcl_ChannelVersion Tcl_ChannelType* chanTypePtr ) (1)
[+] Tcl_ChannelWatchProc Tcl_ChannelType* chanTypePtr ) (1)
[+] Tcl_ChannelWideSeekProc Tcl_ChannelType* chanTypePtr ) (1)
[+] Tcl_CreateEncoding Tcl_EncodingType* typePtr ) (1)
[+] Tcl_DbCkfree char* ptr, char const* file, int line ) (1)
[+] Tcl_HashStats Tcl_HashTable* tablePtr ) (1)
[+] Tcl_ScanCountedElement char const* src, int length, int* flagPtr ) (1)
[+] Tcl_ScanElement char const* src, int* flagPtr ) (1)

to the top

Problems with Constants, Low Severity (6)


tcl.h
[+] TCL_LL_MODIFIER
[+] TCL_LL_MODIFIER_SIZE
[+] TCL_PRESERVE_BINARY_COMPATABILITY
[+] TCL_REG_BOSONLY
[+] TCL_TRACE_ENTER_EXEC
[+] TCL_TRACE_LEAVE_EXEC

to the top

Other Changes in Constants (18)


tcl.h
[+] TCL_DONT_QUOTE_HASH
[+] TCL_HASH_KEY_SYSTEM_HASH
[+] TCL_LIMIT_COMMANDS
[+] TCL_LIMIT_TIME
[+] TCL_LINK_CHAR
[+] TCL_LINK_FLOAT
[+] TCL_LINK_LONG
[+] TCL_LINK_SHORT
[+] TCL_LINK_UCHAR
[+] TCL_LINK_UINT
[+] TCL_LINK_ULONG
[+] TCL_LINK_USHORT
[+] TCL_LINK_WIDE_UINT
[+] TCL_MATCH_NOCASE
[+] TCL_TOKEN_EXPAND_WORD
[+] TCL_UNLOAD_DETACH_FROM_INTERPRETER
[+] TCL_UNLOAD_DETACH_FROM_PROCESS

tclTomMathDecls.h
[+] TCLTOMMATH_EPOCH

to the top

Header Files (3)


tcl.h
tclDecls.h
tclPlatDecls.h

to the top

Shared Libraries (1)


libtcl8.4.so

to the top




Generated on Wed Jun 5 09:19:04 2013 for Tcl by ABI Compliance Checker 1.99  
A tool for checking backward compatibility of a C/C++ library API