summaryrefslogtreecommitdiff
path: root/libs/pbd
AgeCommit message (Collapse)Author
2016-12-07Fix another crash at exit.Robin Gareus
2016-12-07fix parsing "-inf" in config variablesRobin Gareus
The default for export-silence-threshold is -INFINITY, written as "-inf" (by cfgtool) into system_config. Yet parsing the config using a std::stringstream results in "0" (due to bugs in various libc++).
2016-12-04Make libpbd and evoral capable of standalone buildDavid Robillard
Just an update to slightly rotten wscripts, shouldn't be any changes during an ardour build. Motivation being a short development cycle for working on evoral and/or its test suite.
2016-11-24Fix mysterious crashes such as #7049Robin Gareus
Fixes an issue with corrupted std::lists<> due to concurrent writes to the invalidation list which eventually resulted in EventLoop::invalidate_request() not invalidating requests. Concurrency sucks rocks hard.
2016-11-18Remove the MSVC 'poll()' emulation now that Ardour's stopped using poll()John Emmas
2016-11-17fix mingw64 debug buildRobin Gareus
2016-11-10Fix for conflicting definition of _xgetbv with mingw-w64 >= 5Tim Mayberry
Simplify the #ifdef logic so it is easier to follow and add exceptions in the future if necessary.
2016-10-29Allow to construct a XML tree from a text bufferRobin Gareus
2016-10-17fix potentially crash-inducing race condition by removing event loops' ↵Paul Davis
x-thread channel from an event loop when it is destroyed
2016-10-10Use std::vector::reserve to improve performance of adding propertiesTim Mayberry
The number of properties per node roughly corresponds to the number of members of the class the node is representing and should be fairly low. Use std::vector::reserve to prevent reallocation on insert for most node types, there are exceptions like Region(~40 properties). This seems worth it as part(maybe 1/10th of the total time) of saving a Session is a combination of what occurs in "Create" and "Write" in this test. Perf results before changes: XMLTest::testPerfMediumXMLDocumentTiming Create : Count: 10 Min: 30610 Max: 42656 Total: 376672 Avg: 37667 (37 msecs) Write : Count: 10 Min: 42804 Max: 54277 Total: 460455 Avg: 46045 (46 msecs) Read : Count: 10 Min: 70364 Max: 85484 Total: 750909 Avg: 75090 (75 msecs) XMLTest::testPerfLargeXMLDocumentTiming Create : Count: 10 Min: 164360 Max: 356995 Total: 3064482 Avg: 306448 (306 msecs) Write : Count: 10 Min: 308655 Max: 372953 Total: 3226707 Avg: 322670 (322 msecs) Read : Count: 10 Min: 517243 Max: 541839 Total: 5289950 Avg: 528995 (528 msecs) Perf results after changes: XMLTest::testPerfMediumXMLDocumentTiming Create : Count: 10 Min: 30375 Max: 48253 Total: 431727 Avg: 43172 (43 msecs) Write : Count: 10 Min: 42553 Max: 49163 Total: 453353 Avg: 45335 (45 msecs) Read : Count: 10 Min: 70307 Max: 75987 Total: 734923 Avg: 73492 (73 msecs) XMLTest::testPerfLargeXMLDocumentTiming Create : Count: 10 Min: 154486 Max: 307856 Total: 2678989 Avg: 267898 (267 msecs) Write : Count: 10 Min: 304273 Max: 343274 Total: 3169158 Avg: 316915 (316 msecs) Read : Count: 10 Min: 496920 Max: 541394 Total: 5260410 Avg: 526041 (526 msecs)
2016-10-10Remove PropertyMap from XMLNode classTim Mayberry
It appears that there is no performance benefit from storing properties in a map for faster lookup or it is counteracted by the penalty of storing and maintaining the additional data structure. Timing results before changes with an optimized build: XMLTest::testPerfMediumXMLDocumentTiming Create : Count: 10 Min: 41293 Max: 63746 Total: 564448 Avg: 56444 (56 msecs) Write : Count: 10 Min: 42932 Max: 49221 Total: 453955 Avg: 45395 (45 msecs) Read : Count: 10 Min: 80160 Max: 84678 Total: 824506 Avg: 82450 (82 msecs) XMLTest::testPerfLargeXMLDocumentTiming Create : Count: 10 Min: 228759 Max: 420236 Total: 3587597 Avg: 358759 (358 msecs) Write : Count: 10 Min: 307095 Max: 348767 Total: 3205704 Avg: 320570 (320 msecs) Read : Count: 10 Min: 572400 Max: 657219 Total: 5959630 Avg: 595963 (595 msecs) Perf results after changes: XMLTest::testPerfMediumXMLDocumentTiming Create : Count: 10 Min: 30610 Max: 42656 Total: 376672 Avg: 37667 (37 msecs) Write : Count: 10 Min: 42804 Max: 54277 Total: 460455 Avg: 46045 (46 msecs) Read : Count: 10 Min: 70364 Max: 85484 Total: 750909 Avg: 75090 (75 msecs) XMLTest::testPerfLargeXMLDocumentTiming Create : Count: 10 Min: 164360 Max: 356995 Total: 3064482 Avg: 306448 (306 msecs) Write : Count: 10 Min: 308655 Max: 372953 Total: 3226707 Avg: 322670 (322 msecs) Read : Count: 10 Min: 517243 Max: 541839 Total: 5289950 Avg: 528995 (528 msecs)
2016-10-10Use references rather than copying containers in libpbd xml codeTim Mayberry
It is slightly surprising but there seems to be little difference to performance with these changes. Possibly a slight improvement in "Create" test with a large xml document(~5%). Timing results before these changes with an optimized build using new XML perf tests: XMLTest::testPerfMediumXMLDocumentTiming Create : Count: 10 Min: 38656 Max: 63827 Total: 571228 Avg: 57122 (57 msecs) Write : Count: 10 Min: 43594 Max: 49279 Total: 459907 Avg: 45990 (45 msecs) Read : Count: 10 Min: 80247 Max: 84912 Total: 827207 Avg: 82720 (82 msecs) XMLTest::testPerfLargeXMLDocumentTiming Create : Count: 10 Min: 230706 Max: 456054 Total: 3850998 Avg: 385099 (385 msecs) Write : Count: 10 Min: 312322 Max: 353789 Total: 3264211 Avg: 326421 (326 msecs) Read : Count: 10 Min: 573556 Max: 610865 Total: 5951908 Avg: 595190 (595 msecs) Timing results after these changes: XMLTest::testPerfMediumXMLDocumentTiming Create : Count: 10 Min: 41293 Max: 63746 Total: 564448 Avg: 56444 (56 msecs) Write : Count: 10 Min: 42932 Max: 49221 Total: 453955 Avg: 45395 (45 msecs) Read : Count: 10 Min: 80160 Max: 84678 Total: 824506 Avg: 82450 (82 msecs) XMLTest::testPerfLargeXMLDocumentTiming Create : Count: 10 Min: 228759 Max: 420236 Total: 3587597 Avg: 358759 (358 msecs) Write : Count: 10 Min: 307095 Max: 348767 Total: 3205704 Avg: 320570 (320 msecs) Read : Count: 10 Min: 572400 Max: 657219 Total: 5959630 Avg: 595963 (595 msecs)
2016-10-10Add test of pbd/xml++.h API performance with three file sizesTim Mayberry
Generate, write and then read three Session like XML files to test the performance of changes made to pbd/xml++.h API
2016-10-10Add XMLNode::operator==/!=() for comparing XMLNode instancesTim Mayberry
Implemented to be able to test that when writing an XML document via XMLTree and then reading back into another XMLTree the structure is equivalent as a general API test of pbd/xml++.h to check for breakage when changing implementation.
2016-10-10Change position of average in PBD::timing_summary and add msecsTim Mayberry
2016-10-10Add PBD::Timing::elapsed_msecs() as convenience APITim Mayberry
2016-10-04NetBSD ships with backtrace(3) in libexecinfoKamil Rytarowski
2016-10-04NetBSD uses statvfs for the functionality of statfs on LinuxKamil Rytarowski
2016-09-19add API to create [tar.xz] archivesRobin Gareus
2016-09-19PBD::canonical_path will no longer throw so change testTim Mayberry
2016-09-19Move PBD::canonical_path to pbd/file_utils.h/cc and reimplement for WindowsTim Mayberry
This fixes the libpbd testCanonicalPathUTF8 and libardour open_session_utf8_path unit tests You can now have Sessions with localized names containing characters that aren't in the system codepage on Windows. It also fixes the issue where a Session would not open when it was moved into a path with characters that aren't in the system codepage. The only use case for calling canonical_path/realpath on the session path AFAICT is for resolving relative paths that are passed via the command line/terminal. I'm doubtful that works correctly on Windows because of character encoding issues with the current API we use for that(not glib), so it is slightly ironic that this issue was caused by an incorrect implementation of a function that is not really necessary on Windows at this point in time.
2016-09-19Add test for PBD::canonical_path on Windows using utf8 stringsTim Mayberry
This currently fails because the windows only realpath implementation in pbd/pathexpand.cc, which is called from PBD::canonical_path to resolve the path uses Glib::locale_from/to_utf8. As I demonstrated in the testOpenFileUTF8Filename test case Glib::locale_from/to_utf8 are not the correct functions to use for this use case as it converts to/from utf-8 to the locale's current character encoding. On Windows this is most often a single byte encoding such as Windows-1252 and conversion will fail if the path contains any characters that are not in system codepage.
2016-09-19Give the Windows MMTimer test a better chance of passingTim Mayberry
The default scheduling on windows seems fairly erratic or is at least in the VM that I'm running these tests on, so increase the timing slack a bit so the test has a better chance of passing. It is still quite easy for it to fail though, especially if you for instance manipulate the terminal window somehow while running the tests but it does not really matter in any case as this test serves its purpose in testing the PBD::MMTimers API.
2016-09-15Modify our MSVC project to use the newly introduced 'libarchive' library ↵John Emmas
(libpbd)
2016-09-14implement file-[un]archive progress reportRobin Gareus
2016-09-13Add support for built-in file/url unzip/untarRobin Gareus
This introduces new build-dependency: libarchive (http://www.libarchive.org/)
2016-08-30Update our MSVC project files to generate the most recent Ardour session ↵John Emmas
file format (ver 5) rather than the older v3 format
2016-08-19Move 'round()' / 'trunc()' etc so that they won't conflict with any versions ↵John Emmas
already available in MSVC
2016-08-19'roundf()' wasn't introduced in MSVC until VS2013 - so for the time being, ↵John Emmas
let's emulate it using 'floorf()'
2016-08-14change PBD::Transmitter code to use PBD::Signal<> not sigc::signal<>, since ↵Paul Davis
the latter is not thread safe
2016-07-25the endless quest to plug memory leaks -- episode 378Robin Gareus
2016-07-19add missing header includeRobin Gareus
2016-07-19tweak realloc-pool realloc behavior.Robin Gareus
* ignore provided old-size from lua, use internal segment size. * fix behavior on OOM (leave memory untouched)
2016-07-19re-add TLSFRobin Gareus
2016-07-18add exception handling in LocaleGuard, to try to cover more OS X ↵Paul Davis
wierd/corner cases
2016-07-18Add a newly introduced source file to our MSVC project (libpbd)John Emmas
2016-07-14prevent duplicate symbols (fix OSX compilation)Robin Gareus
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
2016-07-14redesign PBD::LocaleGuard to work correctly (i.e. not break translations)Paul Davis
2016-07-14add a natural sort algorithmRobin Gareus
2016-07-12fix simple but fatal mistake in defining PBD::Controllable::Flags enums.Paul Davis
This error caused the flags to be saved as an empty string, thus losing all state when the session is reloaded
2016-07-10add a single-element ring-buffer write functionRobin Gareus
2016-07-01add the potential for a bit more debugging of signal connectsPaul Davis
2016-07-01add the potential for a bit more debugging of signal connectsPaul Davis
2016-06-26Enable build for FreeBSD (part 1/2)Robin Gareus
Adopted from Michael Beer -- GH pull-request #232 with minor changes: * rebased on master, * removed trailing whitespace, * don't explicitly change saved configuration defaults (wscript) * moved sys/wait (WNOHANG) to header include * separate changes in GUI and lib
2016-06-01Accommodate recently removed source(s) in our MSVC project (libpbd)John Emmas
2016-05-31move ControllableDescriptor from libpbd to libardour; add support for ↵Paul Davis
describing VCAs
2016-05-31a slew of as-yet incomplete work to get VCA solo+mute closer to workingPaul Davis
2016-05-31add new enumsPaul Davis
2016-05-31add a new Controllable::NotAutomable flagPaul Davis