Reworking threads & storage in general for 0.16. Memory requires too much work on our end, is the source of most of our bugs, and also makes it extremely difficult for others to contribute to Thyseus. Also makes it difficult to get to figure out how to access any Thyseus internals should the need arise, much less do it safely. No more!
Resolves #5
Resolves #13
Left to do
Threads
parameter descriptor
Thread<T> worker abstraction
Transformer emit
New struct serialize/deserialize emit
Must include store offset move for padding as well
Misc. objects in stores
Table delete entity removes misc objects
Transformer inline query iteration emit
Allow third-party commands
Open questions
Do we just remove run() now and execute in order?
Yep!
How does Thread<T> work with systems?
It doesn't, yet.
Thread<T> accept a class instance? Or a module?
Module, encourages a better mental model + ideal code splitting
Mutable default? Parallelism is a lot more explicit so may as well I think, and lowers barrier to entry
Yep! Query<A> actually yielding exactly A is 👨🍳 💋
0.16 Reworks
Reworking threads & storage in general for 0.16.
Memory
requires too much work on our end, is the source of most of our bugs, and also makes it extremely difficult for others to contribute to Thyseus. Also makes it difficult to get to figure out how to access any Thyseus internals should the need arise, much less do it safely. No more!Resolves #5 Resolves #13
Left to do
Thread<T>
worker abstractionTransformer emitNew struct serialize/deserialize emitMisc. objects in storesAllow third-party commandsOpen questions
run()
now and execute in order?Thread<T>
work with systems?Thread<T>
accept a class instance? Or a module?Query<A>
actually yielding exactlyA
is 👨🍳 💋