Skip to content

Commit

Permalink
Spelling
Browse files Browse the repository at this point in the history
  • Loading branch information
expede committed Oct 17, 2023
1 parent e53c74a commit 39cb79e
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 6 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/words-to-ignore.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ Cap'n
CapTP
DAG-CBOR
DAG-JSON
DHT
E-lang
ERTP
Enum
Expand Down Expand Up @@ -86,6 +87,7 @@ pipelined
pipelining
pre-vacation
proxied
pubsub
rc
referentially
representable
Expand Down
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ This specification describes a mechanism for extending UCAN [Invocation]s with d

# 1. Introduction

> Machines grow faster and memories grow larger. But the speed of light is constant and New York is not getting any closer to Tokyo. As hardware continues to improve, the latency barrier between distant machines will increasingly dominate the performance of distributed computation. When distributed computational steps require unnessesary round trips, compositions of these steps can cause unnessecary cascading sequences of round trips.
> Machines grow faster and memories grow larger. But the speed of light is constant and New York is not getting any closer to Tokyo. As hardware continues to improve, the latency barrier between distant machines will increasingly dominate the performance of distributed computation. When distributed computational steps require unnessesary round trips, compositions of these steps can cause unnessesary cascading sequences of round trips.

Check failure on line 29 in README.md

View workflow job for this annotation

GitHub Actions / spellcheck

Misspelled word

Misspelled word "unnessesary". Suggested alternatives: "unnecessary", "unnecessarily", "necessary" If you want to ignore this message, add unnessesary to the ignore file at .github/workflows/words-to-ignore.txt

Check failure on line 29 in README.md

View workflow job for this annotation

GitHub Actions / spellcheck

Misspelled word

Misspelled word "unnessesary". Suggested alternatives: "unnecessary", "unnecessarily", "necessary" If you want to ignore this message, add unnessesary to the ignore file at .github/workflows/words-to-ignore.txt
>
> [Mark Miller], [Robust Composition]
Expand Down Expand Up @@ -57,7 +57,7 @@ Input addressing plays nicely as a global [memoization] table. Since it maps a h

## 1.2 Comparing Async Promises to Sync Invocations

The semantics of invocations say the same with round trips and promises. Here is an exmaple of delegation, invocation, and promise pipelining to show how these relate:
The semantics of invocations say the same with round trips and promises. Here is an example of delegation, invocation, and promise pipelining to show how these relate:

``` mermaid
sequenceDiagram
Expand Down Expand Up @@ -94,7 +94,7 @@ sequenceDiagram

# 2. Promise Format

A Promise is encoded as a map with a single field (the tag) which selects for the branch, and the CID of the relevant [Task]. Becasue Tasks uniquely identify their output and MAY be replicated across multiple trustless providers, referencing the entire [Invocation] would overspecify the [Result].
A Promise is encoded as a map with a single field (the tag) which selects for the branch, and the CID of the relevant [Task]. Because Tasks uniquely identify their output and MAY be replicated across multiple trustless providers, referencing the entire [Invocation] would over-specify the [Result].

It has several variants:

Expand Down Expand Up @@ -144,11 +144,11 @@ Here are a few examples:

Using a shared cache[^bbd], many cooperating processes can collaborate on multiple separate goals while reusing each others results. The exact mechanism is left to the implementation, but [pubsub], [gossip], and [DHT]s are all viable.

The Executor MUST extract the [Result] from a resolved [Receipt], and attempt to match on the tag. If the match passes or fails branch selection, the behaviour is as described below.
The Executor MUST extract the [Result] from a resolved [Receipt], and attempt to match on the tag. If the match passes or fails branch selection, the behavior is as described below.

## 3.1 Happy Path

If the Promise uses the `await/*` tag, then any branch MUST be accepted, and the entire Result (inluding the `ok` or `error` tag) MUST be substituted. For example:
If the Promise uses the `await/*` tag, then any branch MUST be accepted, and the entire Result (including the `ok` or `error` tag) MUST be substituted. For example:

``` js
// Pseudocode
Expand Down Expand Up @@ -204,7 +204,7 @@ promised.resolve(result, "bafkr4ie7m464donhksutmfqsyqzgcrqhzi2vc5ygiw3ajkhuz6lul

## 3.2 Branch Mismatch

If the branch from the Result doesn't match the branch selector, the Invocation that contains the Promise MUST return an `error` Result in its own Reciept.
If the branch from the Result doesn't match the branch selector, the Invocation that contains the Promise MUST return an `error` Result in its own Receipt.

``` js
// Pseudocode
Expand Down

0 comments on commit 39cb79e

Please sign in to comment.