Daniel P H Fox
Daniel P H Fox
Not finished yet. Will eventually implement the following: - [x] Removal of `SemiWeakRef`, `onDestroy`, `isAccessible` - [x] Changed `SpecialKey:apply` and `applyInstanceProps` to use `Instance` instead of `SemiWeakRef` - [x] The...
Partially implements #269. This PR introduces some groundwork for future memory management changes, and introduces basic support for the 'scoped' memory management pattern (https://fluff.blog/2023/08/30/the-next-ten-years-beyond-maids.html, https://github.com/dphfox/scoped). - [x] Move all memory...
Right now it can be awkward to work with nested state objects, especially if you don't know how deeply nested they will be, because in order to correctly access the...
Right now, `Attribute`, `AttributeChange` and `AttributeOut` are only documented in the API reference. For learners following the official tutorial path, these are not introduced. These should at least be referenced...
Right now, state objects unconditionally memoise their contents, which can build up memory usage when dealing with a large sea of small state objects dealing with lightweight primitive values. For...
In #312 (later implemented by #273) a scope pool was implemented, to facilitate reuse of empty allocations across objects and reduce the load on the memory allocator when processing many...
Right now, we encourage users to create `Computed` objects whenever they're dealing with *possible* state objects, e.g. ```Lua local function sum( a: Fusion.CanBeState, b: Fusion.CanBeState ): Fusion.StateObject return Computed(function(use) return...
Right now a sizable chunk of memory is taken by Observer connections in applyInstanceProps. Ideally, we should be using a specialised connector that can cut down on the memory inefficiencies,...
Fusion 0.2 introduced 'destructors' to Fusion (see #184), which are used to specify destruction behaviour when dealing with values that are no longer in use in a program. However, Fusion...
I've made a variety of tools that depend on invasive modification of Fusion's internals to hijack certain calls and expose certain tracked variables. These mods allow for uniquely powerful insights...