In the `+ape` parser constructor, we were providing `0` as the parsing result
for the zero character. Hoon syntax dictates this is a `@ud` however,
resulting in a parsing output type of `?(@ud etc)`. Since `+ape` is commonly
used for parsing atoms of various kinds, one might end up with a result
of `?(@ud @)`, which would fail to nest directly under, say, `@uv`, requiring
parsers to add a casting step.
Here, we simply cast the zero result to `@` to make it perfectly generic. This
should alleviate the need for a casting step in parsers that need to fit their
output into a specific aura.
(The output type in the common case (ie, `+hex:ag`, `+viz:ag`) is now `?(@ @)`,
which is still somewhat strange, but should have better ergonomics.)
Since `@` can be used in any place `@ud` is accepted, this is a non-breaking
change.
if you're trying to tombstone at the head of the desk, you probably
don't know what you're doing. so we abort.
we keep the option to `|rm` any matching hashes in other desks since
this is something the tombstoner might not know exists in advance and is
actively blocking them from completing the desired tombstone operation.
Marks it as deprecated in lull with a comment, and removes the verbosity
toggle state from dill. Filtering should now happen at the edges where
%crud error messages get printed.
We don't remove it from lull just yet, because that would necessitate a
kelvin bump, even though the rest of this changeset doesn't.
previously we were acking the nack-trace message (adding a %send move)
before notifying the message-pump with a %near task. Now, due to the
refactoring we invert the order of those moves. This seems safe but will
determine with livenet testing
The previous changes implementing the /~/name endpoint were breaking,
since we changed the type of `$action:eyre`. This commit keeps the /~/name
endpoint functional, but adds adapters to eyre scries that returns the old
`$action:eyre` type. These adapters and their associated intermediate types
can be removed the next time we burn a kelvin.
These haven't been in use for a long time (if ever), but are now fully
deprecated: if you want to receive system output, see dill's %logs task
instead.
This should no longer go into dill, but instead be controlled by drum
directly, since that's where system output gets rendered now (in the
common/default case).
Dill's new %logs endpoint can be used to receive system output as $told
nouns. Dill no longer prints system output itself, leaving the display
of it up to terminal handlers (or the runtime). For now, to maintain the
status quo, drum subscribes to dill %logs, and prints them inline in the
default session.
Now that %logs exists, dill can delegate responsibility for printing
system output to outsiders (like the runtime, or the terminal handler
agent). Here, we remove dill's printing logic, which was still coupling
it to the default session and drum's expected semantics.
A dill %logs task can be used to open and close subscriptions to "system
output". Whenever dill receives a %text, %talk, or %crud task, it
considers this "system output", and passes it along to all %logs
subscribers.
Autoprop has a timer that checks whether we're on a new/different runtime
periodically. When we detect we are, we re-build the props, so that they may
be re-published under that new version identifier.
However, we weren't updating the cached runtime version we store in state,
causing every firing of this timer to re-build the props.
Here, we correctly update state if we detect a difference, so that subsequent
timers don't trigger redundant rebuilds.