Binary compatibility report for the Raul library between 0.4.0 and 0.6.0 versions on x86
Test Info
Library Name | Raul |
Version #1 | 0.4.0 |
Version #2 | 0.6.0 |
CPU Architecture | x86 |
GCC Version | 4.5 |
Test Results
Total Header Files | 33 |
Total Shared Libraries | 1 |
Total Symbols / Types | 70 / 57 |
Verdict | Incompatible (66.43%) |
---|
Problem Summary
| Severity | Count |
---|
Added Symbols | - | 14 |
Removed Symbols | High | 27 |
Problems with Data Types | High | 2 |
Medium | 4 |
Low | 2 |
Problems with Symbols | High | 9 |
Medium | 0 |
Low | 0 |
Problems with Constants | Low | 0 |
Other Changes | - | 0 |
Added Symbols (14)
Path.hpp,
libraul.so.3.0.0
namespace Raul
Path::prefix [data]
[ symbol: _ZN4Raul4Path6prefixE ]
Path::prefix_len [data]
[ symbol: _ZN4Raul4Path10prefix_lenE ]
Path::replace_invalid_chars ( std::string& str, size_t start, bool replace_slash ) [static]
[ symbol: _ZN4Raul4Path21replace_invalid_charsERSsjb ]
Path::root_uri [data]
[ symbol: _ZN4Raul4Path8root_uriE ]
Path::scheme [data]
[ symbol: _ZN4Raul4Path6schemeE ]
SMFReader.hpp,
libraul.so.3.0.0
namespace Raul
SMFReader::read_var_len ( FILE* fd ) [static]
[ symbol: _ZN4Raul9SMFReader12read_var_lenEP8_IO_FILE ]
SMFReader::SMFReader [in-charge] ( std::string const filename )
[ symbol: _ZN4Raul9SMFReaderC1ESs ]
SMFReader::SMFReader [not-in-charge] ( std::string const filename )
[ symbol: _ZN4Raul9SMFReaderC2ESs ]
SMFWriter.hpp,
libraul.so.3.0.0
namespace Raul
SMFWriter::SMFWriter [in-charge] ( TimeUnit unit )
[ symbol: _ZN4Raul9SMFWriterC1ENS_8TimeUnitE ]
SMFWriter::SMFWriter [not-in-charge] ( TimeUnit unit )
[ symbol: _ZN4Raul9SMFWriterC2ENS_8TimeUnitE ]
SMFWriter::start ( std::string const& filename, TimeStamp start_time )
[ symbol: _ZN4Raul9SMFWriter5startERKSsNS_9TimeStampE ]
SMFWriter::write_event ( TimeStamp time, size_t ev_size, unsigned char const* ev )
[ symbol: _ZN4Raul9SMFWriter11write_eventENS_9TimeStampEjPKh ]
Symbol.hpp,
libraul.so.3.0.0
namespace Raul
Symbol::is_valid ( std::basic_string<char>const& path ) [static]
[ symbol: _ZN4Raul6Symbol8is_validERKSs ]
Symbol::symbolify ( std::basic_string<char>const& str ) [static]
[ symbol: _ZN4Raul6Symbol9symbolifyERKSs ]
to the top
Removed Symbols (27)
JackDriver.hpp,
libraul.so.0.0.0
namespace Raul
JackDriver::activate ( )
[ symbol: _ZN4Raul10JackDriver8activateEv ]
JackDriver::attach ( std::string const& client_name, std::string server_name )
[ symbol: _ZN4Raul10JackDriver6attachERKSsSs ]
JackDriver::buffer_size ( )
[ symbol: _ZN4Raul10JackDriver11buffer_sizeEv ]
JackDriver::deactivate ( )
[ symbol: _ZN4Raul10JackDriver10deactivateEv ]
JackDriver::detach ( )
[ symbol: _ZN4Raul10JackDriver6detachEv ]
JackDriver::JackDriver [in-charge] ( )
[ symbol: _ZN4Raul10JackDriverC1Ev ]
JackDriver::JackDriver [not-in-charge] ( )
[ symbol: _ZN4Raul10JackDriverC2Ev ]
JackDriver::on_buffer_size_changed ( jack_nframes_t p1 )
[ symbol: _ZN4Raul10JackDriver22on_buffer_size_changedEj ]
JackDriver::on_error ( )
[ symbol: _ZN4Raul10JackDriver8on_errorEv ]
JackDriver::on_graph_order_changed ( )
[ symbol: _ZN4Raul10JackDriver22on_graph_order_changedEv ]
JackDriver::on_process ( jack_nframes_t p1 )
[ symbol: _ZN4Raul10JackDriver10on_processEj ]
JackDriver::on_shutdown ( )
[ symbol: _ZN4Raul10JackDriver11on_shutdownEv ]
JackDriver::on_xrun ( )
[ symbol: _ZN4Raul10JackDriver7on_xrunEv ]
JackDriver::reset_xruns ( )
[ symbol: _ZN4Raul10JackDriver11reset_xrunsEv ]
JackDriver::set_buffer_size ( jack_nframes_t size )
[ symbol: _ZN4Raul10JackDriver15set_buffer_sizeEj ]
JackDriver::~JackDriver [in-charge-deleting] ( )
[ symbol: _ZN4Raul10JackDriverD0Ev ]
JackDriver::~JackDriver [in-charge] ( )
[ symbol: _ZN4Raul10JackDriverD1Ev ]
JackDriver::~JackDriver [not-in-charge] ( )
[ symbol: _ZN4Raul10JackDriverD2Ev ]
vtable for JackDriver [data]
[ symbol: _ZTVN4Raul10JackDriverE ]
Path.hpp,
libraul.so.0.0.0
namespace Raul
Path::replace_invalid_chars ( std::string& str, bool replace_slash ) [static]
[ symbol: _ZN4Raul4Path21replace_invalid_charsERSsb ]
SMFReader.hpp,
libraul.so.0.0.0
namespace Raul
SMFReader::read_var_len ( ) const
[ symbol: _ZNK4Raul9SMFReader12read_var_lenEv ]
SMFReader::SMFReader [in-charge] ( )
[ symbol: _ZN4Raul9SMFReaderC1Ev ]
SMFReader::SMFReader [not-in-charge] ( )
[ symbol: _ZN4Raul9SMFReaderC2Ev ]
SMFWriter.hpp,
libraul.so.0.0.0
namespace Raul
SMFWriter::SMFWriter [in-charge] ( unsigned short ppqn )
[ symbol: _ZN4Raul9SMFWriterC1Et ]
SMFWriter::SMFWriter [not-in-charge] ( unsigned short ppqn )
[ symbol: _ZN4Raul9SMFWriterC2Et ]
SMFWriter::start ( std::string const& filename, BeatTime start_time )
[ symbol: _ZN4Raul9SMFWriter5startERKSsd ]
SMFWriter::write_event ( BeatTime time, size_t ev_size, unsigned char const* ev )
[ symbol: _ZN4Raul9SMFWriter11write_eventEdjPKh ]
to the top
Problems with Data Types, High Severity (2)
SMFWriter.hpp
namespace Raul
[+] class SMFWriter (2)
| Change |
Effect |
1 | Field _ppqn has been removed from the middle position of this structural type. | 1) Previous accesses of applications to the removed field will be incorrect. 2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications. |
2 | Size of this class has been increased from 40 bytes to 60 bytes. | 1) An object of this class can be allocated by the applications and old size will be hardcoded at the compile time. Call of any exported constructor will break the memory of neighbouring objects on the stack or heap. 2) The memory layout and size of subclasses will be changed. |
[+] affected symbols (8)
SMFWriter::finish ( )This method is from 'SMFWriter' class.
SMFWriter::flush ( )This method is from 'SMFWriter' class.
SMFWriter::write_chunk ( char const* id, uint32_t length, void* data )This method is from 'SMFWriter' class.
SMFWriter::write_chunk_header ( char const* id, uint32_t length )This method is from 'SMFWriter' class.
SMFWriter::write_footer ( )This method is from 'SMFWriter' class.
SMFWriter::write_header ( )This method is from 'SMFWriter' class.
SMFWriter::write_var_len ( uint32_t val )This method is from 'SMFWriter' class.
SMFWriter::~SMFWriter [in-charge] ( )This method is from 'SMFWriter' class.
to the top
Problems with Symbols, High Severity (9)
Path.hpp,
libraul.so.0.0.0
namespace Raul
[+] Path::replace_invalid_chars ( std::string& str, bool replace_slash ) [static] (1)
changed to:Path::replace_invalid_chars ( std::string& str, size_t start, bool replace_slash ) [static]
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN4Raul4Path21replace_invalid_charsERSsb to _ZN4Raul4Path21replace_invalid_charsERSsjb. This may cause "undefined reference" linker error in old client applications. |
SMFReader.hpp,
libraul.so.0.0.0
namespace Raul
[+] SMFReader::read_var_len ( ) const (2)
changed to:SMFReader::read_var_len ( FILE* fd ) [static]
| Change | Effect |
---|
1 | Method became non-const. | The name of the appropriate symbol for this function on binary level has been changed from _ZNK4Raul9SMFReader12read_var_lenEv to _ZN4Raul9SMFReader12read_var_lenEP8_IO_FILE. This may cause "undefined reference" linker error in old client applications. |
2 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZNK4Raul9SMFReader12read_var_lenEv to _ZN4Raul9SMFReader12read_var_lenEP8_IO_FILE. This may cause "undefined reference" linker error in old client applications. |
[+] SMFReader::SMFReader [in-charge] ( ) (1)
changed to:SMFReader::SMFReader [in-charge] ( std::string const filename )
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN4Raul9SMFReaderC1Ev to _ZN4Raul9SMFReaderC1ESs. This may cause "undefined reference" linker error in old client applications. |
[+] SMFReader::SMFReader [not-in-charge] ( ) (1)
changed to:SMFReader::SMFReader [not-in-charge] ( std::string const filename )
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN4Raul9SMFReaderC2Ev to _ZN4Raul9SMFReaderC2ESs. This may cause "undefined reference" linker error in old client applications. |
SMFWriter.hpp,
libraul.so.0.0.0
namespace Raul
[+] SMFWriter::SMFWriter [not-in-charge] ( unsigned short ppqn ) (1)
changed to:SMFWriter::SMFWriter [not-in-charge] ( TimeUnit unit )
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN4Raul9SMFWriterC2Et to _ZN4Raul9SMFWriterC2ENS_8TimeUnitE. This may cause "undefined reference" linker error in old client applications. |
[+] SMFWriter::SMFWriter [in-charge] ( unsigned short ppqn ) (1)
changed to:SMFWriter::SMFWriter [in-charge] ( TimeUnit unit )
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN4Raul9SMFWriterC1Et to _ZN4Raul9SMFWriterC1ENS_8TimeUnitE. This may cause "undefined reference" linker error in old client applications. |
[+] SMFWriter::start ( std::string const& filename, BeatTime start_time ) (1)
changed to:SMFWriter::start ( std::string const& filename, TimeStamp start_time )
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN4Raul9SMFWriter5startERKSsd to _ZN4Raul9SMFWriter5startERKSsNS_9TimeStampE. This may cause "undefined reference" linker error in old client applications. |
[+] SMFWriter::write_event ( BeatTime time, size_t ev_size, unsigned char const* ev ) (1)
changed to:SMFWriter::write_event ( TimeStamp time, size_t ev_size, unsigned char const* ev )
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN4Raul9SMFWriter11write_eventEdjPKh to _ZN4Raul9SMFWriter11write_eventENS_9TimeStampEjPKh. This may cause "undefined reference" linker error in old client applications. |
to the top
Problems with Data Types, Medium Severity (4)
MIDISink.hpp
namespace Raul
[+] class MIDISink (1)
| Change |
Effect |
1 | Pure virtual method MIDISink::write_event ( TimeStamp time, size_t ev_size, uint8_t const* ev ) has been added to this class instead of MIDISink::write_event ( BeatTime time, size_t ev_size, uint8_t const* ev ). | Applications will provide an older method to the library instead of expected newely added virtual method. This may result in crash or incorrect behavior of applications. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 5 entries | Virtual Table (New) - 5 entries |
---|
0 | (int (*)(...))0 | (int (*)(...))0 |
4 | (int (*)(...))(& typeinfo) | (int (*)(...))(& typeinfo) |
8 | ~MIDISink | ~MIDISink |
12 | ~MIDISink | ~MIDISink |
16 | __cxa_pure_virtual | __cxa_pure_virtual |
[+] affected symbols (1)
MIDISink::~MIDISink [in-charge] ( )This method is from 'MIDISink' class.
SMFWriter.hpp
namespace Raul
[+] class SMFWriter (3)
| Change |
Effect |
1 | Field _unit has been added at the middle position of this structural type. | 1) Size of the inclusive type has been changed. 2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications. |
2 | Type of field _last_ev_time has been changed from BeatTime (8 bytes) to TimeStamp (16 bytes). | 1) Size of the inclusive type has changed. 2) Previous accesses of applications and library functions to this field and fields at higher positions of the structure definition may be broken. |
3 | Type of field _start_time has been changed from BeatTime (8 bytes) to TimeStamp (16 bytes). | 1) Size of the inclusive type has changed. 2) Previous accesses of applications and library functions to this field and fields at higher positions of the structure definition may be broken. |
[+] affected symbols (8)
SMFWriter::finish ( )This method is from 'SMFWriter' class.
SMFWriter::flush ( )This method is from 'SMFWriter' class.
SMFWriter::write_chunk ( char const* id, uint32_t length, void* data )This method is from 'SMFWriter' class.
SMFWriter::write_chunk_header ( char const* id, uint32_t length )This method is from 'SMFWriter' class.
SMFWriter::write_footer ( )This method is from 'SMFWriter' class.
SMFWriter::write_header ( )This method is from 'SMFWriter' class.
SMFWriter::write_var_len ( uint32_t val )This method is from 'SMFWriter' class.
SMFWriter::~SMFWriter [in-charge] ( )This method is from 'SMFWriter' class.
to the top
Problems with Data Types, Low Severity (2)
Path.hpp
namespace Raul
[+] class Path (2)
| Change |
Effect |
1 | Base class URI has been added. | Possible incorrect access of applications to the memory occupied by the base classes. |
2 | Base class std::basic_string<char> has been removed. | Possible incorrect access of applications to the memory occupied by the base classes. |
[+] affected symbols (6)
Path::is_child_of ( Path const& parent ) constThis method is from 'Path' class.
Path::is_parent_of ( Path const& child ) constThis method is from 'Path' class.
Path::is_valid ( std::basic_string<char>const& path ) [static]This method is from 'Path' class.
Path::nameify ( std::basic_string<char>const& str ) [static]This method is from 'Path' class.
Path::pathify ( std::basic_string<char>const& str ) [static]This method is from 'Path' class.
Path::replace_invalid_chars ( std::string& str, bool replace_slash ) [static]This method is from 'Path' class.
to the top
Header Files (33)
Array.hpp
Atom.hpp
AtomicInt.hpp
AtomicPtr.hpp
AtomLiblo.hpp
Command.hpp
Deletable.hpp
DoubleBuffer.hpp
JackDriver.hpp
List.hpp
ListImpl.hpp
Maid.hpp
midi_events.h
MIDISink.hpp
Path.hpp
PathTable.hpp
Process.hpp
Quantizer.hpp
RingBuffer.hpp
Semaphore.hpp
SharedPtr.hpp
Slave.hpp
SMFReader.hpp
SMFWriter.hpp
SRMWQueue.hpp
SRSWQueue.hpp
StampedChunkRingBuffer.hpp
Table.hpp
TableImpl.hpp
Thread.hpp
TimeSlice.hpp
types.hpp
WeakPtr.hpp
to the top
Shared Libraries (1)
libraul.so.0.0.0
to the top