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
While I think it is a good decision for the core of the engine and the renderer implementations to use the linear IO monad to track resources, I don't think it was a good decision to have that in ghengin, the package bringing it all together with batteries included, for the user.
Instead, the Ghengin monad should wrap the renderer/core monad with UrT (thereby making it an unrestricted monad).
We'd ensure
The Core implementation and management of linear resources is correct by use of linear types, and brings sanity to the developers and engine developers relying directly on core
The batteries included ghengin does not enforce linearity everywhere on the users
Some functions might still require linear types, that's a good thing: even though not every single thing must be tracked linearly in the monadic binding, certain things might still require linearity
We can drop linear-apecs and all those hacks which are just plain wrong really.
We'll more clearly manage renderer resources whithin the renderer (and no longer in the apecs store, which was also not a great design decision)
I'm still unsure of how exactly to do this split between unrestricted/linear while keeping safety of resources. I think it will come down to exposing just the right amount of linear functions for the things that do need linearity, but I don't think it'll be easy
The text was updated successfully, but these errors were encountered:
While I think it is a good decision for the
core
of the engine and therenderer
implementations to use the linear IO monad to track resources, I don't think it was a good decision to have that inghengin
, the package bringing it all together with batteries included, for the user.Instead, the
Ghengin
monad should wrap the renderer/core monad withUrT
(thereby making it an unrestricted monad).We'd ensure
linear-apecs
and all those hacks which are just plain wrong really.The text was updated successfully, but these errors were encountered: