lumiera_documentation/tests
Ichthyostega 0760525ea5 Library: deep dive into type reconciliation and tuple handling
This commit is the aggregated result of extended research
that is only loosely related to current development topics.

One theme was the construction of nested data structures using tuples,
which faces some difficulties due to tuple manipulations being limited
almost entirely to compile-time processing. However, the barrier between
compile-time and runtime can be overcome with the help of a dispatcher
table -- which leads to the secondary problem to handle the diverse
tuple elements with a common, generic functor. Such a functor can be
constructed, if and only if those element types are ''reconcilable''

The STDLIB provides two metafunctions, `std::common_type` and
`std::common_refernce`, which however pose some challenges for the
task at hand, since they include additional processing. In the end,
a custom version of the ''basic type reconciliation'' was implemented
and tested, and then used as foundation to build a dispatcher table
for runtime-indexed access and iteration over tuples.

As an aside, several deeply hidden bugs in our library code were resolved,
and the tuple-helpers, tuple string rendering and associated utilities
were regrouped and modernised.

As result of this research work, the following components are provided:
- meta/common-result
- meta/fun-trampoline
- meta/tuple-index-adaptor
2026-04-07 06:32:23 +02:00
..
basics Tests: build an link a test-support library 2026-03-06 23:16:32 +01:00
lib Library: deep dive into type reconciliation and tuple handling 2026-04-07 06:32:23 +02:00
operation Tests: build an link a test-support library 2026-03-06 23:16:32 +01:00
plugin Tests: reorganise test folders 2026-03-07 00:56:19 +01:00
stage Library: investigate further ramifications and clean-up Itertools 2026-04-01 01:49:36 +02:00
steam Library: investigate further ramifications and clean-up Itertools 2026-04-01 01:49:36 +02:00
test BufferProvider: now able to relocate OutputSlot into Vault Layer 2026-03-10 23:12:30 +01:00
tool
vault BufferProvider: obvious convenience function 2026-03-24 23:48:13 +01:00
vessel Tests: reorganise test folders 2026-03-07 00:56:19 +01:00
00helloworld.tests
00support.tests BufferProvider: relocate TestFrame and dummy-hash computations 2026-03-07 23:02:35 +01:00
00test.tests Upgrade: fix test-failures (1) 2025-04-24 23:39:58 +02:00
10errorhandling.tests
10exception.tests
11concurrency.tests
11list.tests
11locking.tests
11luid.tests
11safeclib.tests
12metaprogramming.tests Library: deep dive into type reconciliation and tuple handling 2026-04-07 06:32:23 +02:00
15library.tests Tests: build an link a test-support library 2026-03-06 23:16:32 +01:00
16calculation.tests Tests: build an link a test-support library 2026-03-06 23:16:32 +01:00
20config_lowlevel.tests
20threads.tests
22config_highlevel.tests
25fundamental.tests clean-up: relocate NTSC drop-frame conversion functions 2025-05-27 23:39:36 +02:00
30backend-file.tests
30interfaces.tests
31plugin.tests
31vault-memory.tests OutputSlot: consider how to integrate the proxy provider 2026-03-17 00:48:08 +01:00
32scheduler.tests
40core.tests clean-up: some further bits never actually used 2025-06-01 00:53:35 +02:00
41asset.tests
42query.tests clean-up: some further bits never actually used 2025-06-01 00:53:35 +02:00
43session.tests Tests: build an link a test-support library 2026-03-06 23:16:32 +01:00
44controller.tests
45builder.tests
46fixture.tests
46node.tests Invocation: ++ Milestone ++ invoke complex render graph 2025-02-19 23:27:52 +01:00
47engine.tests OutputSlot: consider how to integrate the proxy provider 2026-03-17 00:48:08 +01:00
48playout.tests
49core-integration.tests
51-gui-model.tests
52-gui-control.tests
80-regression.tests
DIR_INFO
SConscript BufferProvider: relocate TestFrame and dummy-hash computations 2026-03-07 23:02:35 +01:00
test-runner.cpp BufferProvider: relocate TestFrame and dummy-hash computations 2026-03-07 23:02:35 +01:00
test.conf
test.sh