* release-candidate: (156 commits)
refactors u3r_mug* and some call sites
corrects +muk jet comment
[CI] updates pinned arvo commit
removes aliases for +hor and +vor
[CI] updates pinned arvo commit
Revert "adds pristine jet copies (hash-order, containers, compiler)"
Revert "adds staged jet headers and dashboard declarations, renames everything"
Revert "adds temporary gum_w hash slot to u3_noun"
Revert "jets u3r_mur"
[CI] updates pinned arvo commit
[CI] ctrl-x out of :talk
renames *_vor to *_mor
replaces calls to u3qc_hor with u3qc_gor
updates arvo interface to use new axes
removes +hor jet, sets *_hor to point to *_gor
removes old u3r_mug*, switches u3r_mur* to u3r_mug*
sets u3qc__stage_hor to point to u3qc__stage_gor
sets u3r__stage_mug to point to u3r_mur
jets u3r_mur
memoize u3r_mur in temporary gum_w
...
This adds a -j parameter which writes traces of your Urbit's function call
stack to a json file, readable by Chrome's about://tracing or the standalone
trace-viewer webapp.
Everytime a new road is constructed, a new bank of cells is
allocated and initialized. This lead to over three megabytes of
memory being allocated and accessed on each road change. This takes
more than 1ms to complete.
Road changes occur on each virtualization call. Each +soft happens
virtualized; so each +soft call incurs a 1ms delay. The metavase
machinery does at least two (and usually three) softs per card move
meaning sending a card move through arvo usually incurs a 3ms delay.
Before this patch, the following line took six seconds to execute.
Now it is imperceivable:
```
~:(turn (gulf 0 10.000) |=(a=@ud (mule |.(a))))
```
if the warm dashboard is reaped before call sites, the activation
(and thus the label inside the activation) can be freed (during u3h_put)
while a call site in the junior still points to the label (but doesn't hold
a reference to it, since it is on a senior road). trying to take that label
during call site reap then results in a bail: foul.
the solution is to always reap call sites before reaping the warm dashboard.