When you loaded an app with an error, then fixed the error, it would
create the main gall %mult subscription at a time in the past. Then,
clay would never fill the subscription since it couldn't get the old %a
entries for the apps.
This fixes the issue in two ways: first, don't subscribe in the past.
Second, if clay can't get the old versions, just fire the subscription
anyway.
Remote install send a %commit because they receive new files. Local
installs never receive files, so weren't notifying kiln subscribers.
Here we "manually" send a %commit fact when installing a local desk.
The base desk is the new default. If we leave the dir untouched, for
most users this means they remain on home, which gets rendered
explicitly in the prompt since it's no longer the default desk.
Previously, if trying to bind to an endpoint that was already bound to,
eyre would reject it. This doesn't play very nicely in a softdist world
where uninstalled apps might not get a chance to clean up, and apps
might re-bind simply for being re-installed.
Here we change eyre to overwrite an existing binding if it conflicts
with the new one to be added.
Syntax is +desk#gen. (We can probably find something nicer.)
:app|gen desugars to :app +desk#gen, where the desk is the desk the app
is running on.
:app|desk#gen currently broken, in the sense that the above desugaring
takes precedence.
+on-load just aborts any running user action to avoid having a
monstrously large state adapter.
Adds a new transaction type and signing method for eip-1559-style
transactions.
Includes a $typed-transactions type which can support any number of
eip-2718-style typed transactions.
Previously, this would measure as <20 bytes for addresses with leading
zeroes. This resulted in transactions with unexpected behavior.
For example, sending ETH to the zero address would create a contract
instead.
Here we switch to using +encode:rlp directly and indicate a width of
20 bytes for the "to" field.
It will measure them for you, making it easier to encode lists
containing both fixed- and variable-width numbers.
Largely obviates the need for +encode-atoms.
Null bytes in lists were getting eaten during concatenation. To avoid
this, we track encoded item widths (which are always 1 or higher) and
+can them all together.
This likely did not affect any of the other Ethereum code, considering
it nearly always measures atoms, and the null byte would be seen as
no bytes in that case.
Notably, we include the base desk last. This is to ensure that the
other desks are present by the time kiln gets loaded from base, letting
it install the software on the other desks, as per 22ad2516c.
During kiln's +on-init, we now check for non-base (and non-kids) desks.
If any are present, we execute the install flow for them, and set them
to sync from our sponsor afterwards.
This depends on work done in d7afe3229, in that without those changes
the successive +find requests from kiln to clay would clobber each
other, leaving only the "install from sponsor" one active, thus never
actually installing the desk for which we already have the files.
When installing from an existing local desk, kiln now scries the
relevant data out of clay instead of sending moves to it and awaiting
responses.
This prepares for coming kiln work.
If a remote commit is downloaded that simultaneously removes an agent from
desk.bill but also removes the associated source files, then the commit
will fail as gall will not have received the card to kill the agent yet.
Instead, we read our foreign copy of the bill in +take-download, and
kill any necessary agents there, preventing a reload of the deleted
agent from occurring.
When we receive the %mere gift from clay, the kernel has not yet been
reloaded. This means any attempts to bump desks will fail, as they will
be bumped against the old kernel. Rectifies this by continuing the %base
desk update flow in +on-load, instead of +take-merge-main. Also adds a
wef=(unit weft) to the state in order to discriminate whether or not the
kernel has just been reloaded
* frodwith/urcrypt: (75 commits)
move libaes_siv to deps
fix typo in urcrypt.h
libaes_siv now using tip of dfoxfranke master
check for recovery header presence in configure, put -O3 in flags, move pc to distcleanfiles
clean generated pkg-config file
update urbit's configure to use a liburcrypt version
add a versioning scheme to urcrypt
remove scrypt from urbit build (in urcrypt now)
move the rest of the scrypt jets to urcrypt, enable them, and correct the hoon test to match the source rfc.
scr-pbk->urcrypt
start scrypt porting
Squashed 'pkg/urcrypt/scrypt/' content from commit a402f4116
finish porting secp jets to urcrypt
pkg-config support for urcrypt, update urbit build
cosmetic configure things
require shared ssl when building a shared urcrypt
remove some old files
add autogen.sh
use srcdir in -I to support out of tree builds
whitespace and symbol cleanup
...
If a subscription was kicked before receiving any graph-updates on it,
then the attempt to construct a valid resubscribe path would fail, as
the scry crashes. Fixes this by handling the missing update-log case
correctly.
* Use `rap` to concatenate `cord`s rather than homegrown arm
* Replace `%graph` test fail of association with no-op instead of crash
* Re-style multi-arg runes `:*` `%:` and `:~`
The crunch library and generator are tools to
export group graph data to a CSV-format file.
The purpose of crunch is to help quantify the
growth of the Urbit network.
The code added here is work done under the grant
https://urbit.org/grants/bounties/analytics-script/