The result is only guaranteed to be an atom if both parts of the cell
are nouns. Otherwise, it could still be a specific kind of cell.
Co-authored-by: joemfb <joemfb@users.noreply.github.com>
Since this is the ?# codepath, we want to drop any faces that might
already exist, since we'll bring our own (through %name in +gain:ar).
Co-authored-by: joemfb <joemfb@users.noreply.github.com>
They were not handling the %over and %spec cases correctly. We update
the %over cases to recurse as they should, and the %spec cases to +mint
and +crop respectively.
Co-authored-by: joemfb <joemfb@users.noreply.github.com>
Previously, this would replace the entire subject's type with the type
of the wing. Now we use +take to descend into the subject and replace
only the type of the affected wing.
We also lightly refactor the implementation, to resemble +cool more
closely.
Co-authored-by: joemfb <joemfb@users.noreply.github.com>
It's too easy to get trapped in the dojo %dy-edit-busy escape room. Just
type something like:
-build-file /=base/gen/ls/hoon
This modifies the dojo output to tell the user how to get out.
Fixes#1462.
Incorporates @Fang- suggested changes (thanks!).
Drops the path serialization as it will print on two separate lines,
and it is already displayed in dojo immediately above the error message:
> =dir /=base=/ge
dojo: dir does not exist
Previously, if the pointer for a syntax error pointed to the end of the file
(and the file ended in a newline) the code snippet rendering would try to
display a line _beyond_ the end of the file, causing a crash.
Here, we detect that case, and display `<<end of file>>` instead.
This accounts for a possible race condition where ames expects a
response, but regresses into the larval state. Upon receiving the
$sign on +take, we would remain stuck as a larva. Now we check
that we have enough information to re-evolve and then start a
/larval timer to begin draining the queue.