LUMIERA.clone/src/steam
Ichthyostega 634df743f0 Invocation: investigate Problems with allocation-growing
This investigation was set off by a warning regarding an
unused argument in `SeveralBuilder`, using `AllocationPolicy::moveElem()`
This warning is correct and easy to fix, but (luckily) it brought my
attention to the fact that a `SeveralBuilder<Port>` can not grow dynamically,
which is somewhat mitigated by the default policy to pre-allocate several
elements, which would work to some degree but waste a lot of memory.

This points to a deeper problem with the implementation pattern used for
all those Builders: they create their product by-value, which must then
be moved into the intended target location.
And doing so is **extremely dangerous**, given that our very goal is to
build a complex data structure internally connected by direct references
and ideally also allocated with a high degree of memory locality.

Unfortunately I do not see any favourable alternative yet;
Ideally all products should be `NonCopyable` — but then, the builder
implementation scheme would become even more complicated and less intuitive
and additionally the client code would need to pre-declare the number of
expected Leads and Ports (not clear if this is even feasible)
2024-10-14 18:29:29 +02:00
..
asset Library: uniform definition scheme for error-IDs 2024-03-21 19:57:34 +01:00
cmd Clip-Drag: consider translation of command ctxID into a InteractionState implementation 2021-03-28 18:03:40 +02:00
control Library: uniform definition scheme for error-IDs 2024-03-21 19:57:34 +01:00
engine Invocation: investigate Problems with allocation-growing 2024-10-14 18:29:29 +02:00
external Global-Layer-Renaming: rename namespaces 2018-11-15 23:55:13 +01:00
fixture Activity-Lang: draft patterns of execution 2023-07-28 02:21:59 +02:00
mobject Invocation: establish a concept for the rework 2024-06-21 16:22:58 +02:00
play Library: uniform definition scheme for error-IDs 2024-03-21 19:57:34 +01:00
asset.cpp Library: reorder some pervasively used includes 2024-03-21 19:57:34 +01:00
asset.hpp Global-Layer-Renaming: adjust namespace qualification 2018-11-15 23:59:23 +01:00
assetmanager.cpp Library: uniform definition scheme for error-IDs 2024-03-21 19:57:34 +01:00
assetmanager.hpp Library: uniform definition scheme for error-IDs 2024-03-21 19:57:34 +01:00
cmd.hpp Code Review with Benny 2022-09-08 14:24:36 +02:00
common.hpp Scheduler: devise the arrangement of basic components 2023-06-24 03:14:17 +02:00
config-resolver.cpp Global-Layer-Renaming: adjust namespace qualification 2018-11-15 23:59:23 +01:00
config-resolver.hpp some whitespace clean-up 2021-08-20 14:33:21 +02:00
DIR_INFO Global-Layer-Renaming: rearrange directories 2018-11-15 23:28:03 +01:00
facade.cpp Dispatcher: rename in accordance to the layer 2018-12-10 00:12:52 +01:00
facade.hpp Global-Layer-Renaming: rename namespaces 2018-11-15 23:55:13 +01:00
streamtype.cpp Global-Layer-Renaming: rename namespaces 2018-11-15 23:55:13 +01:00
streamtype.hpp Invocation: painstaking analysis of calculation requirements 2024-07-03 04:34:04 +02:00