* bs/serf-dups-file-descriptors:
worker: also replaces fd 0/1 so we don't accidentally re-use them
worker: dup({0,1}) on serf start to prevent accidental use of stdin/stdout.
Signed-off-by: Jared Tobin <jared@tlon.io>
This gets a terminal spinner to spin after a short delay like in
vere. This also fixes a bug in termRefreshLine which was screwing
up redisplay of the terminal spinner; it hadn't been translated
from C properly.
Use the terminal-progress-bar package to display a progress bar
during replay, when there are jobs that need to be replayed. Bumps
the lts resolver so we get access to this package.
This performs all normal filesystem operations. We can take
filesystem hash snapshots on startup, write the contents of an
%ergo to disk, send changes to Urbit with an %into, and finally
delete mount points when they are %ogre.
This doesn't deal with updating an initial filesystem on first
run with -A, or with acquiring a lockfile, which should happen
elsewhere.
Can take filesystem hash snapshots on startup, and can write the
contents of an %ergo to disk.
* barbus:
hoon: removed unused parser type
hoon: remove extraneous cast
hoon: removed barhax. No hax!
hoon: replace barhax with barbus
hoon: changed barbus to match barhax
hoon: replaced barbus usage with barhax
hoon: add parsing for barhax
hoon: added barhax to replace barbus
hoon: update tall parsing for |$
hoon: replace +* name usage with ++ name |$
hoon: add parsing rules for |$
hoon: add ast for |$
Our conversions to and from GMP structs and our indirect atoms (a
heap-allocated array of uint_32_t) used alloca() and copied twice out of
an apparent abundance of caution. This PR removes the unnecessary
intermediate copy from both conversions.
The -P argument makes urbit send itself SIGPROF every 10ms. Sample
profile data is interpolated into a structure on the home road, which is
summarized and printed when urbit exits gracefully. (Note that this
profile will be useless without the CPU_DEBUG build option).
As of v0.8.0, the profiling became much more awkward. The multi-process
shutdown doesn't include affordances for sending the profiling data over
IPC, so it just prints to the terminal after urbit appears to have
shutdown. This PR changes the profiling printout, unconditionally
writing it to a file in the pier (at .urb/put/profile/~DATE.txt).