Daniel P H Fox

Results 86 issues of 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...

kind: enhancement
area: state
area: roblox
area: internal

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...

enhancement
ready to work on

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...

targeting: docs
not ready - evaluating

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...

enhancement
not ready - blocked

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...

enhancement
not ready - investigating

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...

enhancement
not ready - blocked

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,...

enhancement
not ready - blocked

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...

kind: enhancement
status: approved

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...

enhancement
ready - closing soon