Skip to content

Commit d01761b

Browse files
committed
fixed some problems
1 parent f30a3a0 commit d01761b

3 files changed

Lines changed: 53 additions & 22 deletions

File tree

build.fsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ Target.create "CompileFable" (fun _ ->
191191
)
192192

193193
Target.create "WatchFable" (fun _ ->
194-
DotNet.exec (fun o -> o) "fable" "src/Demo/Fable -s --run webpack serve"
194+
DotNet.exec (fun o -> o) "fable" "watch src/Demo/Fable -s --run webpack serve"
195195
|> ignore
196196

197197
)

src/Demo/Fable/Program.fs

Lines changed: 48 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -55,45 +55,64 @@ let example() =
5555
let dependent = set |> ASet.map (fun v -> v * 2)
5656
let reader = dependent.GetReader()
5757

58-
log "%A -> %A" (Seq.toList (reader.GetChanges AdaptiveToken.Top)) (Seq.toList reader.State)
58+
let ops = Seq.toList (reader.GetChanges AdaptiveToken.Top)
59+
let state = Seq.toList reader.State
60+
log "%A -> %A" ops state
5961

6062
transact (fun () -> set.Add 4) |> ignore
61-
log "%A -> %A" (Seq.toList (reader.GetChanges AdaptiveToken.Top)) (Seq.toList reader.State)
63+
let ops = Seq.toList (reader.GetChanges AdaptiveToken.Top)
64+
let state = Seq.toList reader.State
65+
log "%A -> %A" ops state
6266

6367
transact (fun () -> set.Value <- HashSet.ofList [5]) |> ignore
64-
log "%A -> %A" (Seq.toList (reader.GetChanges AdaptiveToken.Top)) (Seq.toList reader.State)
68+
let ops = Seq.toList (reader.GetChanges AdaptiveToken.Top)
69+
let state = Seq.toList reader.State
70+
log "%A -> %A" ops state
6571

6672
logh3 "AMap"
6773
let map = cmap [1, "one"; 2, "two"]
6874
let dependent = map |> AMap.map (fun k v -> sprintf "'%s'" v)
6975
let reader = dependent.GetReader()
7076

7177
use __ = reader.AddMarkingCallback(fun () -> log "reader marked")
72-
73-
log "%A -> %A" (Seq.toList (reader.GetChanges AdaptiveToken.Top)) (Seq.toList reader.State)
78+
let ops = Seq.toList (reader.GetChanges AdaptiveToken.Top)
79+
let state = Seq.toList reader.State
80+
log "%A -> %A" ops state
7481

7582
transact (fun () -> map.[3] <- "three") |> ignore
76-
log "%A -> %A" (Seq.toList (reader.GetChanges AdaptiveToken.Top)) (Seq.toList reader.State)
83+
let ops = Seq.toList (reader.GetChanges AdaptiveToken.Top)
84+
let state = Seq.toList reader.State
85+
log "%A -> %A" ops state
7786

7887
transact (fun () -> map.[2] <- "twa") |> ignore
79-
log "%A -> %A" (Seq.toList (reader.GetChanges AdaptiveToken.Top)) (Seq.toList reader.State)
88+
let ops = Seq.toList (reader.GetChanges AdaptiveToken.Top)
89+
let state = Seq.toList reader.State
90+
log "%A -> %A" ops state
8091

8192
transact (fun () -> map.Remove 1) |> ignore
82-
log "%A -> %A" (Seq.toList (reader.GetChanges AdaptiveToken.Top)) (Seq.toList reader.State)
93+
let ops = Seq.toList (reader.GetChanges AdaptiveToken.Top)
94+
let state = Seq.toList reader.State
95+
log "%A -> %A" ops state
8396

8497
logh3 "AList"
8598
let list = clist [1;2;3]
8699
let dependent = list |> AList.map (fun v -> v * 2)
87100
let reader = dependent.GetReader()
88101

89-
log "%A -> %A" (IndexListDelta.toList (reader.GetChanges AdaptiveToken.Top)) (Seq.toList reader.State)
102+
let ops = IndexListDelta.toList (reader.GetChanges AdaptiveToken.Top)
103+
let state = Seq.toList reader.State
104+
log "%A -> %A" ops state
90105

91106
transact (fun () -> list.Add 4) |> ignore
92-
log "%A -> %A" (IndexListDelta.toList (reader.GetChanges AdaptiveToken.Top)) (Seq.toList reader.State)
107+
let ops = IndexListDelta.toList (reader.GetChanges AdaptiveToken.Top)
108+
let state = Seq.toList reader.State
109+
log "%A -> %A" ops state
93110

94111

95112
transact (fun () -> list.Clear())
96-
log "%A -> %A" (IndexListDelta.toList (reader.GetChanges AdaptiveToken.Top)) (Seq.toList reader.State)
113+
let ops = Seq.toList (reader.GetChanges AdaptiveToken.Top)
114+
let state = Seq.toList reader.State
115+
log "%A -> %A" ops state
97116

98117

99118
logh3 "ASet unionMany"
@@ -105,20 +124,28 @@ let example() =
105124
let reader = dependent.GetReader()
106125

107126
logh4 "initial"
108-
log "%A -> %A" (List.sort <| Seq.toList (reader.GetChanges AdaptiveToken.Top)) (List.sort <| Seq.toList reader.State)
127+
let ops = List.sort <| Seq.toList (reader.GetChanges AdaptiveToken.Top)
128+
let state = List.sort <| Seq.toList reader.State
129+
log "%A -> %A" ops state
109130

110131
logh4 "Add 5"
111132
transact (fun () -> b.Add 5) |> ignore
112-
log "%A -> %A" (List.sort <| Seq.toList (reader.GetChanges AdaptiveToken.Top)) (List.sort <| Seq.toList reader.State)
133+
let ops = List.sort <| Seq.toList (reader.GetChanges AdaptiveToken.Top)
134+
let state = List.sort <| Seq.toList reader.State
135+
log "%A -> %A" ops state
113136

114137
let c = cset [8;9]
115138
logh4 "Add [8;9]"
116139
transact (fun () -> set.Add (c :> aset<_>)) |> ignore
117-
log "%A -> %A" (List.sort <| Seq.toList (reader.GetChanges AdaptiveToken.Top)) (List.sort <| Seq.toList reader.State)
140+
let ops = List.sort <| Seq.toList (reader.GetChanges AdaptiveToken.Top)
141+
let state = List.sort <| Seq.toList reader.State
142+
log "%A -> %A" ops state
118143

119144
logh4 "Rem [8;9]"
120145
transact (fun () -> set.Remove (c :> aset<_>) |> ignore; c.Add 10 |> ignore)
121-
log "%A -> %A" (List.sort <| Seq.toList (reader.GetChanges AdaptiveToken.Top)) (List.sort <| Seq.toList reader.State)
146+
let ops = List.sort <| Seq.toList (reader.GetChanges AdaptiveToken.Top)
147+
let state = List.sort <| Seq.toList reader.State
148+
log "%A -> %A" ops state
122149

123150
let f = AVal.init 1
124151

@@ -127,12 +154,16 @@ let example() =
127154
let reader = overkill.GetReader()
128155

129156
logh4 "initial"
130-
log "%A -> %A" (List.sort <| Seq.toList (reader.GetChanges AdaptiveToken.Top)) (List.sort <| Seq.toList reader.State)
157+
let ops = List.sort <| Seq.toList (reader.GetChanges AdaptiveToken.Top)
158+
let state = List.sort <| Seq.toList reader.State
159+
log "%A -> %A" ops state
131160

132161
transact (fun () -> f.Value <- 2)
133162

134163
logh4 "f = 2"
135-
log "%A -> %A" (List.sort <| Seq.toList (reader.GetChanges AdaptiveToken.Top)) (List.sort <| Seq.toList reader.State)
164+
let ops = List.sort <| Seq.toList (reader.GetChanges AdaptiveToken.Top)
165+
let state = List.sort <| Seq.toList reader.State
166+
log "%A -> %A" ops state
136167

137168

138169

src/FSharp.Data.Adaptive/Datastructures/IndexListDelta.fs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ and IndexListDeltaEnumerator<'T> =
114114
if isNull inner.Left then
115115
if isNull inner.Right then
116116
if x.Tail.IsEmpty then
117-
x.Head <- Unchecked.defaultof<_>
117+
x.Head <- struct(Unchecked.defaultof<_>, false)
118118
x.Tail <- []
119119
else
120120
x.Head <- x.Tail.Head
@@ -134,7 +134,7 @@ and IndexListDeltaEnumerator<'T> =
134134
else
135135
x.CurrentNode <- n
136136
if x.Tail.IsEmpty then
137-
x.Head <- Unchecked.defaultof<_>
137+
x.Head <- struct(Unchecked.defaultof<_>, false)
138138
x.Tail <- []
139139
else
140140
x.Head <- x.Tail.Head
@@ -146,7 +146,7 @@ and IndexListDeltaEnumerator<'T> =
146146

147147

148148
member x.Reset() =
149-
x.Head <- if isNull x.Root then Unchecked.defaultof<_> else struct(x.Root, true)
149+
x.Head <- if isNull x.Root then struct(Unchecked.defaultof<_>, false) else struct(x.Root, true)
150150
x.Tail <- []
151151
x.CurrentNode <- null
152152

@@ -171,7 +171,7 @@ and IndexListDeltaEnumerator<'T> =
171171
internal new(root : MapExtImplementation.Node<Index, ElementOperation<'T>>) =
172172
{
173173
Root = root
174-
Head = if isNull root then Unchecked.defaultof<_> else struct(root, true)
174+
Head = if isNull root then struct(Unchecked.defaultof<_>, false) else struct(root, true)
175175
Tail = []
176176
CurrentNode = null
177177
}

0 commit comments

Comments
 (0)