When a promise broke it was sent to all listeners, but the waiting
messages did not have their resolvers broken. This lead to a bug where
promise breakages were not being propegated upon promise pipeline
chains.
This renames "machine" which was previously misleading as didn't refer
to physical machines but rather a CapTP capable endpoint on a machine.
Machines can have many CapTP aware endpoints which could speak CapTP
with each other, so another term such as "node" makes this clearer.
This also renames address to designator in the OCapN node
URL (previously: OCapN machine URL).
Apparently I am good at picking names which already exist either from
sheer luck or something subconscious. Change the model of the car in the
CapTP away from that of a real car model.
We need to ensure that when we send keyword arguments over CapTP we
gather them up and include them at the end of the arg list. before we
were ignoring keyword arguments when sending a message over CapTP, this
fixes that.
Racket Goblins used to send the the key and signature in a racket
specific format across the wire, this worked well when it was just
racket goblins <-> racket goblins. However now we need a less
implementation specific approach to allow for other implementations.
This now uses the sexp format which is native to gcrypt. It includes
converters to and from these gcrypt sexps when sending and receiving on
the wire in CapTP.
Note: There are more changes to crypto to do, at the very least around handoffs.
This changes the machine URIs to be:
ocapn://address.[hints].transport
and for sturdyrefs to be:
ocapn://address.[hints].transport/s/swiss-num
Hints might want to be moved to somewhere else, for example the query
part of the URI, although that should be discussed further and happen in
a future PR.
When you're adding macros which should use content addresss
descriptions, you want to have the macro name held in a variable which
is populated based on the method description. Due to the normal
methods automatically making the method name a symbol, it needs a
different methods macro.
The text tries to explain something about `'run`, but it looks like
the sample code has since been updated to wrap `'run` into `a-run` and
`b-run`, so AFAICS this is now just a distraction.