Initial Dever 0.0.1
This commit is contained in:
commit
81233d098c
1479 files changed
+163782
No files matched your search
@@ -0,0 +1,92 @@
|
||||
type Local { streams: List<Stream<Int>>
|
||||
target: Channel<Int> }
|
||||
|
||||
submit(target: Channel<Int>) () {
|
||||
local = Local { streams = []
|
||||
target = target }
|
||||
send(local.target, 1)
|
||||
}
|
||||
|
||||
verify() (answer: Bool) {
|
||||
target = channel(Int, 2)
|
||||
pending = run(submit(target))
|
||||
wait(pending)
|
||||
first = receive(target)
|
||||
changed = run(reassigned(target))
|
||||
wait(changed)
|
||||
second = receive(target)
|
||||
third = receive(target)
|
||||
text_task = run(borrowedText())
|
||||
text_ok = wait(text_task)
|
||||
projected_task = run(projectedText())
|
||||
projected_ok = wait(projected_task)
|
||||
nested_task = run(nestedText())
|
||||
nested_ok = wait(nested_task)
|
||||
length_task = run(lengthSend(target))
|
||||
wait(length_task)
|
||||
length_value = receive(target)
|
||||
first_task = run(firstSend(target))
|
||||
wait(first_task)
|
||||
first_value = receive(target)
|
||||
map_task = run(mapSend(target))
|
||||
wait(map_task)
|
||||
map_value = receive(target)
|
||||
reduce_task = run(reduceSend(target))
|
||||
wait(reduce_task)
|
||||
reduce_value = receive(target)
|
||||
answer = first == 1 and second == 1 and third == 2 and text_ok and projected_ok and nested_ok and length_value == 0 and first_value == 1 and map_value == 1 and reduce_value == 0
|
||||
}
|
||||
|
||||
type TextLocal { streams: List<Stream<Int>>
|
||||
text: Text }
|
||||
|
||||
type Nested { streams: List<Stream<Int>>
|
||||
inner: TextLocal }
|
||||
|
||||
reassigned(target: Channel<Int>) () { local = Local { streams = []
|
||||
target = target }
|
||||
send(local.target, 1)
|
||||
local = Local { streams = []
|
||||
target = target }
|
||||
send(local.target, 2) }
|
||||
|
||||
textReady(text: Text) (answer: Bool) { dever.task.sleep(0)
|
||||
answer = text == "ready" }
|
||||
|
||||
borrowedText() (answer: Bool) { local = TextLocal { streams = []
|
||||
text = "ready" }
|
||||
answer = textReady(local.text) }
|
||||
|
||||
projectedText() (answer: Bool) {
|
||||
local = TextLocal { streams = []
|
||||
text = "ready" }
|
||||
text = local.text
|
||||
answer = textReady(text)
|
||||
}
|
||||
|
||||
nestedText() (answer: Bool) { local = Nested { streams = []
|
||||
inner = TextLocal { streams = []
|
||||
text = "ready" } }
|
||||
answer = textReady(local.inner.text) }
|
||||
|
||||
empty() (values: List<Stream<Int>>) pure { values = [] }
|
||||
|
||||
lengthSend(target: Channel<Int>) () { values = empty()
|
||||
send(target, length(values)) }
|
||||
|
||||
found(value: null) (answer: Int) pure { answer = 0 }
|
||||
found(value: Local) (answer: Int) pure { answer = 1 }
|
||||
|
||||
firstSend(target: Channel<Int>) () { values = [Local { streams = []
|
||||
target = target }]
|
||||
send(target, found(first(values))) }
|
||||
|
||||
mapSend(target: Channel<Int>) () { values = { 1 = Local { streams = []
|
||||
target = target } }
|
||||
send(target, found(get(values, 1))) }
|
||||
|
||||
count(value: Stream<Int>, state: Int) (next: Int) { close(value)
|
||||
next = state + 1 }
|
||||
|
||||
reduceSend(target: Channel<Int>) () { values = empty()
|
||||
send(target, reduce(count, values, 0)) }
|
||||
Reference in new issue
Block a user