GPL-3.0-or-later WITH GCC-exception-3.1Version:
The motivation for these containers was use in ColdFrame, an open-source code generator backend for use with UML tools in a restricted environment (a BBC micro:bit).
In such an environment, it’s normal to strip out unused code and data at link time (
-gc-sections with GNU
-dead_strip with Apple
Unfortunately, it turns out that no primitive subprograms of tagged types can be stripped (they are all referenced by the dispatch table).
These containers are still tagged, because (without compiler extensions) ColdFrame expects to use prefixed notation (object.primitive subprogram (…), as would users). However, the number of subprograms has been much reduced.