Adaptify.PureView.Tool
0.1.6
dotnet tool install --global Adaptify.PureView.Tool --version 0.1.6
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
dotnet tool install --local Adaptify.PureView.Tool --version 0.1.6
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Adaptify.PureView.Tool&version=0.1.6
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
nuke :add-package Adaptify.PureView.Tool --version 0.1.6
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
puresg
Prototype for deriving adaptivity from a pure Model -> view, as the view-side of
Adaptify. Full design + plan: ~/claude/adaptify-view-plan.md.
Step 1 (this) — the runtime architecture + oracle
No analysis, no codegen, no rendering. Just:
DummyApi.fs— a stand-in for aardvark.dom. EachNodeconstructor declares the adaptive shape it accepts (the callee contract):Texttakesaval<string>,Styledtakesaval<Style>(deliberately not a per-prop alist),Childrentakesalist<Node>(fine),ItemListtakesaval<Item list>(deliberately coarse).Example.fs—EagerCells(the design we keep: one cell per path, eager minimal-mark push-down) andSingleRoot(the anti-pattern, kept to show fan-out).Instrument.fs— counts how often each projection body re-runs.tests/— a console runner that changes one field and asserts which projections re-ran. This is the oracle Step 2's generated wiring must match.
What the tests prove:
- eager cells → a one-field change re-runs exactly one projection (no fan-out)
- single
cval<Model>root → a one-field change re-runs everything (the fan-out) - setting a cell to the same value doesn't re-run
alist→ append re-maps only the new elementaval<list>→ any change reprocesses the whole list (the coarse-shape cost)aval<list> -> alistcoercion → correct, and reports how many elements re-map (the keyed-reconciliation "hard part")
Run
dotnet run --project tests/Adaptify.PureView.Tests
Step 2 (next) — the analysis
Clone/extend Adaptify: expose its Adaptor shape algebra, add an FCS read-effect
analysis that generates the EagerCells+projections wiring from a pure
view : Model -> Node. The Step-1 oracle is the differential test target.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.