Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scopes + memory groundwork #273

Merged
merged 295 commits into from
Apr 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
295 commits
Select commit Hold shift + click to select a range
a8764bd
Merge remote-tracking branch 'origin/main' into gvd-scopes
dphfox Nov 28, 2023
258a3cd
Update public types
dphfox Nov 28, 2023
ce10e0e
Expose scoped() and deriveScope()
dphfox Nov 28, 2023
2d956e3
Update export unit test
dphfox Nov 28, 2023
714819a
ForKeys error handling update
dphfox Nov 28, 2023
920dee7
Fix destruction behaviour of ForKeys/Values
dphfox Nov 28, 2023
3db08ef
Remove ForKeys/Values meta
dphfox Nov 28, 2023
a5daf4f
Start working on ForValues complete unit tests
dphfox Nov 28, 2023
d35b5e5
Update ForPairs impl
dphfox Nov 28, 2023
3d47b94
Properly handle errors in ForPairs
dphfox Nov 28, 2023
25ffe42
ForValues passes more unit tests
dphfox Nov 28, 2023
1b8e4cd
Processors roam between keys without recomputation
dphfox Nov 28, 2023
ac18f9b
Improved state iteration unit tests
dphfox Nov 28, 2023
6455c97
Fix ForPairs computed scope argument
dphfox Nov 28, 2023
38adbed
More ForPairs unit tests
dphfox Nov 28, 2023
0415b76
Process pairs in single state objects
dphfox Nov 28, 2023
6356dbb
For spec roaming test
dphfox Nov 28, 2023
1eb098c
Add more computation centric tests
dphfox Nov 28, 2023
bd23d0c
Fix ForKeys multiple invocation
dphfox Nov 28, 2023
a29a49e
All For unit tests pass
dphfox Nov 28, 2023
7901e2b
learn to type properly, dan
dphfox Nov 28, 2023
b2dded6
Remove verbose globals
dphfox Nov 28, 2023
d1376d7
Replace {Task} with Scope<any>
dphfox Nov 28, 2023
037f8c5
Update New/Hydrate to use scopes
dphfox Nov 28, 2023
5c7943a
Update naming convention for scopes
dphfox Nov 28, 2023
0d7215e
Lingering use of {Task}
dphfox Nov 28, 2023
5305829
Update New/Hydrate unit tests
dphfox Nov 28, 2023
744d82b
Update SpecialKey signature + Attribute
dphfox Nov 28, 2023
2824b2b
Fix applyInstanceProps
dphfox Nov 28, 2023
4287a71
Update doCleanup spec
dphfox Nov 28, 2023
9263e1e
Update doNothing spec
dphfox Nov 28, 2023
78e56f6
Update AttributeOut
dphfox Nov 29, 2023
77f8dc0
Update OnChange
dphfox Nov 29, 2023
82cbdab
Update OnEvent/Out/Ref
dphfox Nov 29, 2023
92b295e
Fix Out unit tests
dphfox Nov 29, 2023
0303f6b
Add `childAppearsLater` for lifetime analysis
dphfox Nov 29, 2023
fbf5a6e
Unit tests for `childAppearsLater`
dphfox Nov 29, 2023
1fd380e
Rename to assertLifetime
dphfox Nov 29, 2023
123621d
Ref asserts lifetime of given value
dphfox Nov 29, 2023
4ce13e7
Out asserts lifetime of given state
dphfox Nov 29, 2023
ad2b3d8
AttributeOut asserts lifetime of given object
dphfox Nov 29, 2023
e262109
Attribute asserts lifetime of bound values
dphfox Nov 29, 2023
d4e5b40
More concise warns for outlives
dphfox Nov 29, 2023
47d50ab
applyInstanceProps asserts lifetime of bound values
dphfox Nov 29, 2023
86a633b
Observer asserts lifetime + improved message
dphfox Nov 29, 2023
8c74394
Add stack trace to warnings
dphfox Nov 29, 2023
1e2c420
Fix lifetime assertions
dphfox Nov 29, 2023
e5988f0
Fix observer spec thanks to that lifetime warning
dphfox Nov 29, 2023
2913acb
Fix assertLifetime unit tests
dphfox Nov 29, 2023
b9e8ca1
Computed asserts lifetime of used state
dphfox Nov 29, 2023
b9ee968
Refactored lifetime messages
dphfox Nov 29, 2023
30ba6fd
Fix Attribute lifetime analysis
dphfox Nov 29, 2023
6c17262
Spring and Tween now assert lifetimes
dphfox Nov 30, 2023
b82ce4e
Use after destroy detection
dphfox Nov 30, 2023
155bd55
Add destroyed twice error
dphfox Nov 30, 2023
e8513f6
Add developer-friendly scopeMissing error
dphfox Nov 30, 2023
23d277b
Fix Observer unit test
dphfox Nov 30, 2023
54d670e
Expand doCleanup spec to cover array nil-ing
dphfox Nov 30, 2023
1e2fe6a
Tweaks after testing in codebases
dphfox Dec 2, 2023
0fe44f1
Remove outdated broken benchmarking code
dphfox Dec 5, 2023
5adbd8f
Apply fixes according to Script Analysis panel
dphfox Dec 5, 2023
35b2837
Fix Attribute missing self
dphfox Dec 5, 2023
a35c359
Update updateAll spec to account for destruction
dphfox Dec 5, 2023
2e2045b
Switch order of `scope` and `use` parameters
dphfox Dec 6, 2023
b2240bb
Update messages with discussion (+ wording)
dphfox Dec 6, 2023
b61c7a8
Wording tweak for `destructorRedundant`
dphfox Dec 6, 2023
1a00b1a
Objects introduction tutorial
dphfox Dec 6, 2023
2f75e06
Values tutorial update
dphfox Dec 6, 2023
32b79ae
Trim code blocks in Value tutorial
dphfox Dec 6, 2023
36ad9fb
Observer tutorial updated skeleton
dphfox Dec 6, 2023
0150b6a
Replace "Script code" with generic "Luau code"
dphfox Dec 6, 2023
9655e2c
Finish observer tutorial
dphfox Dec 7, 2023
e25f955
Rename Instances section to Roblox
dphfox Dec 7, 2023
ac55dcd
Updated Computed tutorial
dphfox Dec 7, 2023
a36602d
Tutorial cleanup
dphfox Dec 7, 2023
384bc02
Foreword changes
dphfox Dec 7, 2023
7282078
Code clarity
dphfox Dec 7, 2023
66c726c
Computed tutorial parameter clarification in intro
dphfox Dec 7, 2023
2c6946f
Final words on Computed tutorial
dphfox Dec 7, 2023
890336c
Updated spring tutorial to use scopes
dphfox Dec 7, 2023
3cbb7fc
Clarity tweaks for COmputed tutorial
dphfox Dec 7, 2023
c885682
Update tween tutorial to use scopes
dphfox Dec 9, 2023
4200da2
Component callback tutorial updated to use scopes
dphfox Dec 9, 2023
5534798
Add stricter typing for component callback tutorial
dphfox Dec 9, 2023
901eaf5
Fix correctness issue in component callback tutorial
dphfox Dec 9, 2023
1b7c861
Clarifying text
dphfox Dec 9, 2023
63aa50e
Conciseness pass for Objects tutorial
dphfox Dec 10, 2023
6ed258e
Merge branch 'main' into gvd-scopes
dphfox Dec 26, 2023
96df21c
Rewrite tutorial introduction
dphfox Dec 26, 2023
4b7522c
Update Hydrate tutorial
dphfox Dec 26, 2023
2a3a36b
New tutorial updated for scopes
dphfox Dec 27, 2023
4b2a135
Update parenting tutorial to use scopes
dphfox Dec 27, 2023
2d1e6e1
Change Events updated to use scopes
dphfox Dec 27, 2023
cb2e05d
Remove Cleanup tutorial
dphfox Dec 27, 2023
7c009fa
Tutorial restructuring
dphfox Dec 27, 2023
eb9c15c
Update Outputs tutorial to use scopes
dphfox Dec 27, 2023
b40048e
Ref tutorial updated to use scopes
dphfox Dec 27, 2023
139aa4a
Update objects tutorial with tip admonition
dphfox Dec 27, 2023
ac5922f
Add advice on merging libraries with scopes
dphfox Dec 27, 2023
c9283f0
Swap order of admonitions
dphfox Dec 27, 2023
dbbf8e6
Update ForValues tutorial to use scopes
dphfox Dec 27, 2023
a949024
Improve wording of ForValues intro
dphfox Dec 27, 2023
8f22392
Fix outdated syntax in ForPairs tutorial
dphfox Dec 27, 2023
2f96461
Update ForKeys tutorial with scopes
dphfox Dec 27, 2023
cb60e65
Fix missing scopes in ForKeys tutorial
dphfox Dec 27, 2023
4fe1eb7
Update ForPairs tutorial to use scopes
dphfox Dec 27, 2023
93788b2
Fix links in For tutorials
dphfox Dec 27, 2023
8039ff2
Fix logo alignment when not using mike
dphfox Dec 27, 2023
daa06a1
Fix project no longer using benchmark
dphfox Dec 27, 2023
ec06ca7
This code will surely land me in therapy
dphfox Dec 27, 2023
e3f405b
Update footer attribution
dphfox Dec 27, 2023
665a79b
Update components guidance
dphfox Dec 28, 2023
f53cb79
Proliferate better strict typing
dphfox Dec 28, 2023
b3ac509
Reword 'When You'll Use This' objects section
dphfox Dec 29, 2023
5ae3a19
Update Reusing UI tutorial with latest advice
dphfox Dec 29, 2023
a05b549
Fix background scrolling on home page
dphfox Dec 29, 2023
2b5b470
Components tutorial refactoring
dphfox Dec 29, 2023
1332267
Less awkward wording in instance handling tutorial
dphfox Dec 30, 2023
50e79e4
Tutorials update
dphfox Jan 16, 2024
8f579ba
Update callbacks tutorial to use scopes
dphfox Jan 16, 2024
879495b
Update State best practices to use scopes
dphfox Jan 16, 2024
8c2be50
Rename Children type to Child for clarity
dphfox Jan 17, 2024
f16abb5
Updated Animated Computed & Button Component
dphfox Jan 17, 2024
97bc5b4
Initial work on Drag and Drop tutorial
dphfox Jan 18, 2024
93b7c6a
Begin epxlanations
dphfox Jan 21, 2024
946bf15
Drag and drop explanation
dphfox Jan 21, 2024
6fec818
Fetch Data from Server updated example
dphfox Jan 22, 2024
f594a6d
Update Loading Spinner example
dphfox Jan 22, 2024
31fadc9
Fix scope: prefix in Loading Spinner
dphfox Jan 22, 2024
6839881
Update PlayerList example to use scopes
dphfox Jan 22, 2024
0b228da
Fix missing scope: in Player List
dphfox Jan 22, 2024
71b4736
Fix malformed errors page
dphfox Jan 22, 2024
5caf16e
Enrol in error message weight loss class
dphfox Jan 22, 2024
08ac9ee
Remove 'since' pills from API reference
dphfox Jan 22, 2024
9ec60c8
Initial work on API reference
dphfox Jan 22, 2024
fdd1a77
Remove API index pages
dphfox Jan 22, 2024
b97d969
Expose and document ScopeLifetime
dphfox Jan 22, 2024
9426326
Add member descriptions for Version
dphfox Jan 22, 2024
cc21b8c
Use 16x icons on API home
dphfox Jan 22, 2024
0664d7e
Use/CanBeState API reference
dphfox Jan 25, 2024
34ff6a3
peek() API reference
dphfox Jan 25, 2024
a745e8c
Fix For constructor types
dphfox Jan 27, 2024
5d23438
Merge branch 'main' into gvd-scopes
dphfox Jan 28, 2024
3d34069
Fix whichLivesLonger inference
dphfox Jan 28, 2024
3e23bb4
Fix [Children] mis-scoped Observer objects
dphfox Jan 28, 2024
baf92bb
Contextuals tutorial
dphfox Jan 29, 2024
50c88f6
Contextual type API ref
dphfox Jan 29, 2024
69c3684
Contextual member API ref
dphfox Jan 29, 2024
323961d
Fix category of Contextual type API ref
dphfox Jan 29, 2024
ce18e50
Value member API ref
dphfox Jan 29, 2024
283d023
Value member API ref has scopes
dphfox Jan 29, 2024
ed690c6
Computed member API ref
dphfox Jan 29, 2024
12b2b9e
Add notes on scoped syntax
dphfox Jan 29, 2024
ae429c4
Add contextual constructor type
dphfox Jan 29, 2024
e9e4f2b
Share type strings in state object metatables
dphfox Jan 29, 2024
83ba8df
ForValues API reference
dphfox Feb 3, 2024
ecfdd78
Unify type links
dphfox Feb 3, 2024
81f7a37
Add parameter names to For constructors
dphfox Feb 3, 2024
3dc2596
ForKeys API reference
dphfox Feb 3, 2024
3a0e4c1
ForPairs API ref
dphfox Feb 3, 2024
df57105
Observer API ref
dphfox Feb 3, 2024
bd8e3c0
Clean up old constructor API refs
dphfox Feb 3, 2024
47946ae
Make Set<T> explicit in typedefs
dphfox Feb 3, 2024
625a46d
Merge branch 'main' into gvd-scopes
dphfox Feb 3, 2024
94c6d2e
Merge branch 'gvd-scopes' of https://github.com/Elttob/Fusion into gv…
dphfox Feb 3, 2024
9330b11
Dependency API ref
dphfox Feb 3, 2024
dcea545
Fix Scope link on Dependency API ref
dphfox Feb 3, 2024
4a5dc14
Reworded Dependency API ref
dphfox Feb 3, 2024
e909b38
Fix typedef in Dependency API ref
dphfox Feb 3, 2024
1c1b582
Fix links in Dependency page
dphfox Feb 3, 2024
cb1c0da
Dependent API ref
dphfox Feb 3, 2024
1b226f1
Add scope pooling
dphfox Feb 3, 2024
7ec7fa3
More scope pooling
dphfox Feb 3, 2024
aead500
Update API ref to mention pooling
dphfox Feb 3, 2024
e331839
Better scope pooling callout wording
dphfox Feb 3, 2024
03057d8
Update scopes tutorial to mention pooling
dphfox Feb 3, 2024
9f8f91c
Remove approximated type notice
dphfox Feb 3, 2024
361a092
StateObject type API ref
dphfox Feb 3, 2024
477ff79
Move destroy() to ScopeLifetime
dphfox Feb 3, 2024
b77f2a4
Rename ScopeLifetime to ScopedObject
dphfox Feb 3, 2024
89341fd
Add description for destroy()
dphfox Feb 3, 2024
9120ae0
Computed API ref
dphfox Feb 3, 2024
743a708
Fix ScopedObject h3 formatting
dphfox Feb 3, 2024
2230753
Update StateObject with member API
dphfox Feb 3, 2024
3f15dee
For type API ref
dphfox Feb 3, 2024
5bef97b
Value API ref
dphfox Feb 3, 2024
e751f5e
Move :destroy() admonition to the right place
dphfox Feb 3, 2024
dffdbf1
Correct Observer runtime typestrings
dphfox Feb 3, 2024
23676be
Make Observer generic over all dependencies
dphfox Feb 3, 2024
78e79f5
Update Observer API naming
dphfox Feb 3, 2024
1ce4a6b
Observer API ref
dphfox Feb 3, 2024
603a24b
Remove leftover md files
dphfox Feb 4, 2024
f8028d4
Child API ref
dphfox Feb 4, 2024
26b295c
PropertyTable API ref
dphfox Feb 4, 2024
7190483
API reference consistency pass
dphfox Feb 4, 2024
936c300
SpecialKey API ref
dphfox Feb 4, 2024
40a0f1c
Attribute API ref
dphfox Feb 5, 2024
172ec82
AttributeChange API ref
dphfox Feb 5, 2024
81cf02a
AttributeOut API ref
dphfox Feb 5, 2024
c8bd7b4
OnEvent API ref
dphfox Feb 5, 2024
c1fa9c2
OnChange API ref
dphfox Feb 5, 2024
68a5c9b
Add tutorial links to OnEvent/Change API
dphfox Feb 5, 2024
8b312ea
Out API ref
dphfox Feb 5, 2024
59b181a
Update syntax for constant values
dphfox Feb 5, 2024
0fddc96
Ref API ref
dphfox Feb 5, 2024
4396ec1
Children API ref
dphfox Feb 5, 2024
a50ad46
Clean up unused markdown
dphfox Feb 5, 2024
45c978e
Initial work on error descriptions
dphfox Feb 5, 2024
37217bd
New API ref
Feb 8, 2024
d99aeab
Hydrate API ref
Feb 8, 2024
fd84e2c
Fix typo in Hydrate docs
Feb 24, 2024
f90e27c
Fix typo in For destroy
dphfox Mar 18, 2024
d2703e5
Ignore Windows desktop files
Apr 14, 2024
6e11f16
Merge branch 'gvd-scopes' of https://github.com/Elttob/Fusion into gv…
Apr 14, 2024
dd9b704
Fix tutorial typos
Apr 14, 2024
c2d9be9
Animatable type API
Apr 14, 2024
25af100
Fix Animatable Learn more links
Apr 14, 2024
4f409e6
Clarify wording of Animatable API
Apr 14, 2024
5237b6d
API for Tween and Spring
Apr 14, 2024
20c86e1
Spring + Tween member API
Apr 14, 2024
7168f3c
callbackError documentation
Apr 14, 2024
9f08860
doCleanup error + general conciseness
Apr 14, 2024
2a1524c
destroyedTwice error
Apr 14, 2024
2e6d36f
destructorRedundant error
Apr 14, 2024
b521a1c
forKeyCollision error
Apr 14, 2024
8b459f7
invalidChangeHandler
Apr 14, 2024
88bd5aa
invalidAttributeChangeHandler error
Apr 14, 2024
c0b3154
invalidEventHandler error
Apr 14, 2024
d7b9681
invalidPropertyType error
Apr 14, 2024
bd33adc
invalidRefType
Apr 14, 2024
5851ee1
invalidOutType error
Apr 14, 2024
44bce0b
invalidAttributeOutType error
Apr 14, 2024
b9f1e18
invalidOutProperty error
Apr 14, 2024
ff95b19
invalidSpringSpeed/Damping errors
Apr 14, 2024
840c778
mistypedSpringDamping/Speed errors
Apr 14, 2024
fd807a7
mistypedTweenInfo error
Apr 14, 2024
c06a109
mergeConflict error
Apr 14, 2024
ade3658
noTaskScheduler error
Apr 14, 2024
3683e05
possiblyOutlives error
Apr 14, 2024
cc8504b
scopeMissing error
Apr 14, 2024
62d3b6a
springTypeMismatch error
Apr 14, 2024
4abb9d9
stateGetWasRemoved errors
Apr 14, 2024
a19172b
unknownMessage error
Apr 14, 2024
8db6094
unrecognisedChildType error
Apr 14, 2024
cc303d1
unrecognisedPropertyKey error
Apr 14, 2024
37190ca
unrecognisedPropertyStage error
Apr 14, 2024
45b6598
useAfterDestroy error
Apr 14, 2024
6fc2abb
Last API bits
Apr 14, 2024
de8d094
Merge remote-tracking branch 'origin/main' into gvd-scopes
Apr 14, 2024
41da7bc
Final few errors
Apr 14, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,6 @@
/site/

# Ignore selene auto-generated config
roblox.toml
roblox.toml

desktop.ini
36 changes: 0 additions & 36 deletions benchmark/Colour/Oklab.bench.lua

This file was deleted.

104 changes: 0 additions & 104 deletions benchmark/Dependencies/updateAll.bench.lua

This file was deleted.

147 changes: 0 additions & 147 deletions benchmark/Instances/New.bench.lua

This file was deleted.

Loading