You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Remove any hierarchy and maps of block types and possible instantiations from the BlockRegistry, i.e. do not separate template name (gr::blocks::type::converter) and template parameters.
Blocks will be stored as flat list of possible instantiations, e.g.
These will be separate entries in the registry, without a nested structure that groups all gr::blocks::type::converter::Abs specialisations together. If such a grouping is wanted, it has to be recreated by users (e.g. opendigitizer UI) to meet their specific needs.
Further requirements:
It must be possible to override the registered name by a custom fixed_string, mainly to preserve the names from using-declarations, which would be used for convenience and set useful defaults to additional template parameters/NTTPs.
For example:
template<typename T>
using ClockSourceSystemClock = ClockSource<T, true, std::chrono::system_clock, true>;
It must be guaranteed that portable types like int64_t are used in the instead of int, long, etc.
Investigate/ensure that gr::meta::type_name() generates the same names under clang/gcc/emscripten (maybe create a simple test to detect changes between compiler versions), to ensure GRC files and GR messages are portable across architecture and compiler boundaries.
Use the fully spelled out typenames in GRC files and GR messages (adapt examples and tests)
The text was updated successfully, but these errors were encountered:
frankosterfeld
changed the title
[5SP] GR4: Flatten block type handling in BlockRegistry and serialisation
[5SP, 2.5SP] GR4: Flatten block type handling in BlockRegistry and serialisation
Feb 17, 2025
Remove any hierarchy and maps of block types and possible instantiations from the BlockRegistry, i.e. do not separate template name (gr::blocks::type::converter) and template parameters.
Blocks will be stored as flat list of possible instantiations, e.g.
These will be separate entries in the registry, without a nested structure that groups all gr::blocks::type::converter::Abs specialisations together. If such a grouping is wanted, it has to be recreated by users (e.g. opendigitizer UI) to meet their specific needs.
Further requirements:
For example:
would be registered as something like
It must be guaranteed that portable types like int64_t are used in the instead of int, long, etc.
Investigate/ensure that gr::meta::type_name() generates the same names under clang/gcc/emscripten (maybe create a simple test to detect changes between compiler versions), to ensure GRC files and GR messages are portable across architecture and compiler boundaries.
Use the fully spelled out typenames in GRC files and GR messages (adapt examples and tests)
The text was updated successfully, but these errors were encountered: