...
1// complex dependencies
2
3-- in.cue --
4// Each task depends on the previous one in a different manner.
5
6root: [string]: $id: "valToOut"
7
8indirectValue: root.taskRootReference.x
9
10// This is not just a reference, but a copy of a new task.
11indirectTaskRoot: root.indirectTaskValueReference
12
13root: {
14 a: {
15 b: 3
16 }
17
18 concreteValueInGeneratedSubfield: {
19 x: {
20 // reference in value of comprehension.
21 // Even though the referenced value is concrete, we still consider
22 // this to be a dependency.
23 for x in [1] {foo: a.b}
24 }
25 index: int
26 }
27
28 indexReference: {
29 // This inline struct currently causes a memory leak. This is fine
30 // for now.
31 // TODO(leak): fix this.
32 x: [0, 1][concreteValueInGeneratedSubfield.index]
33 }
34
35 taskRootReference: {
36 $after: indexReference
37 x: 3
38 }
39
40 indirectTaskValueReference: {
41 x: indirectValue
42 }
43
44 indirectTaskRootReference: {
45 x: indirectTaskRoot
46
47 incomplete: _
48 }
49
50 incompleteComprehensionSource: {
51 x: {for x in indirectTaskRootReference.incomplete {}}
52 }
53
54 incompleteList: {
55 x: [for x in [1] {incompleteComprehensionSource.x}]
56 }
57
58 incompleteGeneratedStruct: {
59 x: {for x in [1] {foo: incompleteList.x}}
60 }
61}
62-- out/run/errors --
63-- out/run/t0 --
64graph TD
65 t0("root.a [Ready]")
66 t1("root.concreteValueInGeneratedSubfield [Waiting]")
67 t1-->t0
68 t2("root.indexReference [Waiting]")
69 t2-->t1
70 t3("root.taskRootReference [Waiting]")
71 t3-->t2
72 t4("root.indirectTaskValueReference [Waiting]")
73 t4-->t3
74 t5("root.indirectTaskRootReference [Waiting]")
75 t5-->t4
76 t6("root.incompleteComprehensionSource [Waiting]")
77 t6-->t5
78 t7("root.incompleteList [Waiting]")
79 t7-->t6
80 t8("root.incompleteGeneratedStruct [Waiting]")
81 t8-->t7
82
83-- out/run/t1 --
84graph TD
85 t0("root.a [Terminated]")
86 t1("root.concreteValueInGeneratedSubfield [Ready]")
87 t1-->t0
88 t2("root.indexReference [Waiting]")
89 t2-->t1
90 t3("root.taskRootReference [Waiting]")
91 t3-->t2
92 t4("root.indirectTaskValueReference [Waiting]")
93 t4-->t3
94 t5("root.indirectTaskRootReference [Waiting]")
95 t5-->t4
96 t6("root.incompleteComprehensionSource [Waiting]")
97 t6-->t5
98 t7("root.incompleteList [Waiting]")
99 t7-->t6
100 t8("root.incompleteGeneratedStruct [Waiting]")
101 t8-->t7
102
103-- out/run/t1/value --
104{
105 b: 3
106 $id: "valToOut"
107}
108-- out/run/t2 --
109graph TD
110 t0("root.a [Terminated]")
111 t1("root.concreteValueInGeneratedSubfield [Terminated]")
112 t1-->t0
113 t2("root.indexReference [Ready]")
114 t2-->t1
115 t3("root.taskRootReference [Waiting]")
116 t3-->t2
117 t4("root.indirectTaskValueReference [Waiting]")
118 t4-->t3
119 t5("root.indirectTaskRootReference [Waiting]")
120 t5-->t4
121 t6("root.incompleteComprehensionSource [Waiting]")
122 t6-->t5
123 t7("root.incompleteList [Waiting]")
124 t7-->t6
125 t8("root.incompleteGeneratedStruct [Waiting]")
126 t8-->t7
127
128-- out/run/t2/value --
129{
130 x: {
131 foo: 3
132 }
133 $id: "valToOut"
134 index: int
135}
136-- out/run/t3 --
137graph TD
138 t0("root.a [Terminated]")
139 t1("root.concreteValueInGeneratedSubfield [Terminated]")
140 t1-->t0
141 t2("root.indexReference [Terminated]")
142 t2-->t1
143 t3("root.taskRootReference [Ready]")
144 t3-->t2
145 t4("root.indirectTaskValueReference [Waiting]")
146 t4-->t3
147 t5("root.indirectTaskRootReference [Waiting]")
148 t5-->t4
149 t6("root.incompleteComprehensionSource [Waiting]")
150 t6-->t5
151 t7("root.incompleteList [Waiting]")
152 t7-->t6
153 t8("root.incompleteGeneratedStruct [Waiting]")
154 t8-->t7
155
156-- out/run/t3/value --
157{
158 x: [0, 1][INDEX]
159 $id: "valToOut"
160
161 //cue:path: root.concreteValueInGeneratedSubfield.index
162 let INDEX = int
163}
164-- out/run/t4 --
165graph TD
166 t0("root.a [Terminated]")
167 t1("root.concreteValueInGeneratedSubfield [Terminated]")
168 t1-->t0
169 t2("root.indexReference [Terminated]")
170 t2-->t1
171 t3("root.taskRootReference [Terminated]")
172 t3-->t2
173 t4("root.indirectTaskValueReference [Ready]")
174 t4-->t3
175 t5("root.indirectTaskRootReference [Waiting]")
176 t5-->t4
177 t6("root.incompleteComprehensionSource [Waiting]")
178 t6-->t5
179 t7("root.incompleteList [Waiting]")
180 t7-->t6
181 t8("root.incompleteGeneratedStruct [Waiting]")
182 t8-->t7
183
184-- out/run/t4/value --
185{
186 $after: {
187 x: [0, 1][INDEX]
188 $id: "valToOut"
189 }
190 $id: "valToOut"
191 x: 3
192
193 //cue:path: root.concreteValueInGeneratedSubfield.index
194 let INDEX = int
195}
196-- out/run/t5 --
197graph TD
198 t0("root.a [Terminated]")
199 t1("root.concreteValueInGeneratedSubfield [Terminated]")
200 t1-->t0
201 t2("root.indexReference [Terminated]")
202 t2-->t1
203 t3("root.taskRootReference [Terminated]")
204 t3-->t2
205 t4("root.indirectTaskValueReference [Terminated]")
206 t4-->t3
207 t5("root.indirectTaskRootReference [Ready]")
208 t5-->t4
209 t6("root.incompleteComprehensionSource [Waiting]")
210 t6-->t5
211 t7("root.incompleteList [Waiting]")
212 t7-->t6
213 t8("root.incompleteGeneratedStruct [Waiting]")
214 t8-->t7
215
216-- out/run/t5/value --
217{
218 x: 3
219 $id: "valToOut"
220}
221-- out/run/t6 --
222graph TD
223 t0("root.a [Terminated]")
224 t1("root.concreteValueInGeneratedSubfield [Terminated]")
225 t1-->t0
226 t2("root.indexReference [Terminated]")
227 t2-->t1
228 t3("root.taskRootReference [Terminated]")
229 t3-->t2
230 t4("root.indirectTaskValueReference [Terminated]")
231 t4-->t3
232 t5("root.indirectTaskRootReference [Terminated]")
233 t5-->t4
234 t6("root.incompleteComprehensionSource [Ready]")
235 t6-->t5
236 t7("root.incompleteList [Waiting]")
237 t7-->t6
238 t8("root.incompleteGeneratedStruct [Waiting]")
239 t8-->t7
240
241-- out/run/t6/value --
242{
243 x: {
244 x: 3
245 $id: "valToOut"
246 }
247 $id: "valToOut"
248 incomplete: _
249}
250-- out/run/t7 --
251graph TD
252 t0("root.a [Terminated]")
253 t1("root.concreteValueInGeneratedSubfield [Terminated]")
254 t1-->t0
255 t2("root.indexReference [Terminated]")
256 t2-->t1
257 t3("root.taskRootReference [Terminated]")
258 t3-->t2
259 t4("root.indirectTaskValueReference [Terminated]")
260 t4-->t3
261 t5("root.indirectTaskRootReference [Terminated]")
262 t5-->t4
263 t6("root.incompleteComprehensionSource [Terminated]")
264 t6-->t5
265 t7("root.incompleteList [Ready]")
266 t7-->t6
267 t8("root.incompleteGeneratedStruct [Waiting]")
268 t8-->t7
269
270-- out/run/t7/value --
271{
272 x: {
273 for x in INCOMPLETE {}
274 }
275 $id: "valToOut"
276
277 //cue:path: root.indirectTaskRootReference.incomplete
278 let INCOMPLETE = _
279}
280-- out/run/t8 --
281graph TD
282 t0("root.a [Terminated]")
283 t1("root.concreteValueInGeneratedSubfield [Terminated]")
284 t1-->t0
285 t2("root.indexReference [Terminated]")
286 t2-->t1
287 t3("root.taskRootReference [Terminated]")
288 t3-->t2
289 t4("root.indirectTaskValueReference [Terminated]")
290 t4-->t3
291 t5("root.indirectTaskRootReference [Terminated]")
292 t5-->t4
293 t6("root.incompleteComprehensionSource [Terminated]")
294 t6-->t5
295 t7("root.incompleteList [Terminated]")
296 t7-->t6
297 t8("root.incompleteGeneratedStruct [Ready]")
298 t8-->t7
299
300-- out/run/t8/value --
301{
302 x: [X]
303 $id: "valToOut"
304
305 //cue:path: root.incompleteComprehensionSource.x
306 let X = {
307 for x in INCOMPLETE {}
308 }
309
310 //cue:path: root.indirectTaskRootReference.incomplete
311 let INCOMPLETE = _
312}
313-- out/run/t9 --
314graph TD
315 t0("root.a [Terminated]")
316 t1("root.concreteValueInGeneratedSubfield [Terminated]")
317 t1-->t0
318 t2("root.indexReference [Terminated]")
319 t2-->t1
320 t3("root.taskRootReference [Terminated]")
321 t3-->t2
322 t4("root.indirectTaskValueReference [Terminated]")
323 t4-->t3
324 t5("root.indirectTaskRootReference [Terminated]")
325 t5-->t4
326 t6("root.incompleteComprehensionSource [Terminated]")
327 t6-->t5
328 t7("root.incompleteList [Terminated]")
329 t7-->t6
330 t8("root.incompleteGeneratedStruct [Terminated]")
331 t8-->t7
332
333-- out/run/t9/value --
334{
335 x: {
336 foo: [X_1]
337 }
338 $id: "valToOut"
339
340 //cue:path: root.incompleteComprehensionSource.x
341 let X_1 = {
342 for x in INCOMPLETE {}
343 }
344
345 //cue:path: root.indirectTaskRootReference.incomplete
346 let INCOMPLETE = _
347}
348-- out/run/t1/stats --
349Leaks: 0
350Freed: 0
351Reused: 0
352Allocs: 0
353Retain: 0
354
355Unifications: 0
356Conjuncts: 0
357Disjuncts: 0
358-- out/run/t2/stats --
359Leaks: 0
360Freed: 0
361Reused: 0
362Allocs: 0
363Retain: 0
364
365Unifications: 0
366Conjuncts: 0
367Disjuncts: 0
368-- out/run/t3/stats --
369Leaks: 0
370Freed: 0
371Reused: 0
372Allocs: 0
373Retain: 0
374
375Unifications: 0
376Conjuncts: 0
377Disjuncts: 0
378-- out/run/t4/stats --
379Leaks: 0
380Freed: 0
381Reused: 0
382Allocs: 0
383Retain: 0
384
385Unifications: 0
386Conjuncts: 0
387Disjuncts: 0
388-- out/run/t5/stats --
389Leaks: 0
390Freed: 0
391Reused: 0
392Allocs: 0
393Retain: 0
394
395Unifications: 0
396Conjuncts: 0
397Disjuncts: 0
398-- out/run/t6/stats --
399Leaks: 0
400Freed: 0
401Reused: 0
402Allocs: 0
403Retain: 0
404
405Unifications: 0
406Conjuncts: 0
407Disjuncts: 0
408-- out/run/t7/stats --
409Leaks: 0
410Freed: 0
411Reused: 0
412Allocs: 0
413Retain: 0
414
415Unifications: 0
416Conjuncts: 0
417Disjuncts: 0
418-- out/run/t8/stats --
419Leaks: 0
420Freed: 0
421Reused: 0
422Allocs: 0
423Retain: 0
424
425Unifications: 0
426Conjuncts: 0
427Disjuncts: 0
428-- out/run/t9/stats --
429Leaks: 0
430Freed: 0
431Reused: 0
432Allocs: 0
433Retain: 0
434
435Unifications: 0
436Conjuncts: 0
437Disjuncts: 0
438-- out/run/stats/totals --
439Leaks: 1
440Freed: 0
441Reused: 0
442Allocs: 1
443Retain: 1
444
445Unifications: 1
446Conjuncts: 1
447Disjuncts: 1
View as plain text