lumiera_/tests
Ichthyostega e618493829 Library: switch to 64bit implementation for hash-chaining (see #722)
⚠ __This is a problematic decision__
It temporarily **breaks compatibility with 32bit** until this issue is resolved.

== Explanation ==
Lumiera relies on a mix of the Standard library and Lib-Boost for calculation of hash values.
Before C++11, the Standard did not support and hashtable implementation; meanwhile, we
got several hash based containers in the STL and a framework for hashes,
which unfortunately is incomplete and cumbersome to use.

The C++ Committee has spend endless discussions and was not able to settle
on a convincing solution without major drawbacks regarding one aspect or the other.

This situation is problematic, since Lumiera relies heavily on the technique
of building stable systematic identifiers based on chained hash values.
It is thus essential to use a strong, reliable and portable hash function.

But unfortunately...
 * the standard-fallback solution is known to be weak.
 * Lib-Boost automatically uses stronger implementations for 64bit systems
 * this implies that Hash-Values **are non-portable**

As the Lumiera project currently has no developer time to expend on such a
difficult and deep topic of fundamental research, today I decided to go down
the path of least resistance and **effectively abandon any system
that can not compile and use the 64bit `hash_combine` implementation.

This changeset extracts code from Lib-Boost 1.67 and adds a static assertion
to **break compilation** on non-64bit-platforms (whatever this means)
2024-11-17 23:05:39 +01:00
..
basics Library: now using controlled seed and replaced rand (closes #1378) 2024-11-17 19:45:41 +01:00
core Library: switch to 64bit implementation for hash-chaining (see #722) 2024-11-17 23:05:39 +01:00
include MERGE Doxygen clean-up done during the last months 2017-04-01 23:59:00 +02:00
library Library: now using controlled seed and replaced rand (closes #1378) 2024-11-17 19:45:41 +01:00
operation
plugin Fix notorious warning 2017-04-01 23:59:37 +02:00
stage Library: now using controlled seed and replaced rand (closes #1378) 2024-11-17 19:45:41 +01:00
tool Commands: some unit test coverage for unbinding arguments 2017-04-16 19:38:56 +02:00
vault Library: now using controlled seed and replaced rand (closes #1378) 2024-11-17 19:45:41 +01:00
00helloworld.tests
00support.tests Library: option to provide an explicit random seed for tests 2024-11-12 15:49:15 +01:00
00test.tests
10errorhandling.tests
10exception.tests Library: discontinue setting error flag from Exceptions (see #1341) 2023-10-01 20:11:45 +02:00
11concurrency.tests LibraryApplication: tie DispatcherLoop to thread lifecycle 2023-10-12 20:23:59 +02:00
11list.tests
11locking.tests Library/Application: complete technology switch (closes #1279) 2023-10-16 01:44:04 +02:00
11luid.tests
11safeclib.tests
11time.tests
11vault-memory.tests Block-Flow: completed implementation of low-level cyclic extent storage 2023-07-12 21:55:50 +02:00
12metaprogramming.tests Library: clarify name of index-based iterator 2024-11-09 22:43:05 +01:00
15library.tests Library: rework detection of ''same object'' 2024-11-15 00:11:14 +01:00
16calculation.tests Library: now using controlled seed and replaced rand (closes #1378) 2024-11-17 19:45:41 +01:00
20config_lowlevel.tests
20threads.tests
22config_highlevel.tests
25fundamental.tests Library: prepare switch of Thread-wrapper to C++17 2023-09-21 23:23:55 +02:00
30backend-file.tests
30interfaces.tests
31plugin.tests
32scheduler.tests Library: Testsuite maintenance 2024-11-16 00:38:57 +01:00
40core.tests Global-Layer-Renaming: adapt lots of documentation 2018-11-15 21:13:52 +01:00
41asset.tests Assets: investigating the unclear distinction between asset::Struct and asset::Meta (#1156) 2018-09-14 21:06:12 +02:00
42query.tests Global-Layer-Renaming: adapt lots of documentation 2018-11-15 21:13:52 +01:00
43session.tests Dispatcher-Pipeline: prepare test for the new NodeGraphAttachment 2023-06-07 04:03:00 +02:00
44controller.tests Dispatcher-Pipeline: prepare test for the new NodeGraphAttachment 2023-06-07 04:03:00 +02:00
45builder.tests Dispatcher-Pipeline: prepare test for the new NodeGraphAttachment 2023-06-07 04:03:00 +02:00
46fixture.tests Dispatcher-Pipeline: create hook for self-validation 2023-06-12 01:18:59 +02:00
46node.tests Invocation: forge a path for integration 2024-04-23 01:13:40 +02:00
47engine.tests Invocation: start with some rename-refactorings 2024-05-11 16:39:58 +02:00
48playout.tests Dispatcher-Pipeline: prepare test for the new NodeGraphAttachment 2023-06-07 04:03:00 +02:00
49core-integration.tests Dispatcher-Pipeline: prepare test for the new NodeGraphAttachment 2023-06-07 04:03:00 +02:00
51-gui-model.tests Segmentation: structure analysis for splitSplice operation 2023-05-02 04:29:34 +02:00
52-gui-control.tests Global-Layer-Renaming: fix remaining textual usages and IDs in the code 2018-12-10 00:09:56 +01:00
80-regression.tests
DIR_INFO
SConscript Global-Layer-Renaming: fix remaining textual usages and IDs in the code 2018-12-10 00:09:56 +01:00
test.conf Testsuite: increase virtual memory limit 2023-10-04 22:42:37 +02:00
test.sh Library: Testsuite maintenance 2024-11-16 00:38:57 +01:00
testrunner.cpp Library: option to provide an explicit random seed for tests 2024-11-12 15:49:15 +01:00