lumiera_documentation/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
library Library: now using controlled seed and replaced rand (closes #1378) 2024-11-17 19:45:41 +01:00
operation
plugin
stage Library: now using controlled seed and replaced rand (closes #1378) 2024-11-17 19:45:41 +01:00
tool
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
41asset.tests
42query.tests
43session.tests
44controller.tests
45builder.tests
46fixture.tests
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
49core-integration.tests
51-gui-model.tests
52-gui-control.tests
80-regression.tests
DIR_INFO
SConscript
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