* master: (50 commits)
stop snprintfing from a string into itself
pin arvo version number
bumped urbit version number
saves a checkpoint during replay, every 100K events or on failure
simplifies loom init and checkpoint restore
- Adds tracing during playback - stop snprintf-ing from one string into another, which is undefined behavior
reclaim memory every 1k events in live operation or replay
splits log files between arvo events
name trace files by urbit date
automatically split json trace outputs at 100000 line intervals
stick |mass outputs in mass subdirectory of put
adds comment about %funk hook in +ut
adds sha-256 battery hashes to the jet dashboard, corrects axes
[CI] disables deployment of tagged builds
removes unused fprintf arg
[CI] updates pinned arvo commit
bumps urbit patch number to 0.7.1
removes obsolete, commented-out gc implementation from loop.c
moves all vere gc to _raft_grab(), run once after event
Move _XOPEN_SOURCE #define to include/c/portable.h
...
* master: (99 commits)
updates contact instructions
erased some lines in raft
updates libent submodule
cleans up event error handling in _raft_lame
Remove includes introduced for getentropy
Use libent for getentropy
Fix link in README
remove old version of u3r_mug()
renames test-hash
removes temporary u3r_mug tests
adds assertions to protect u3r_mug against stack overflow
adds a u3_none explicit bottom stack frame to u3r_mug
WIP simplified conditionals, still dies, appears stateful?
WIP refactored but still dying
WIP still dying
WIP testing and printing
WIP compiles but crashes
updates CONTRIBUTING.md, removing obsolete instructions
exit cleanly if $galaxy is already running (fake or real)
corrects usage instructions
...
This should work on Linux since kernel 3.17, OS X since 10.12, OpenBSD
since 5.6, and FreeBSD since 12.0. It also introduces no external
dependencies. Note that getentropy should only be called with at most
256 bytes or it will return EIO. The getrandom variant on Linux doesn't
check for this. If called with len > 256, it's allowed to produce a
short read if it gets interrupted. This should show up as an error, so
everything's fine.
- Condense the allocator section in defs.h and make it match the
surrounding style.
- Use real calloc in c3_calloc. Some guy on the internet says
calloc can be faster than malloc since the OS may not actually
need to call memset.
- Replace calloc calls in vere code with c3_calloc.
Note that I left the c3_calloc definition as-is (i.e., not taking
a count argument). I was going to change it, but it seems like
count is 1 at all call sites. If it's ever used with count != 1,
I'd be in support of changing it, fwiw.
* release-candidate: (90 commits)
Only bail if profiling is enabled
Fixes the build on OpenBSD
don't abort on bail:fail, but continue with crash handling
renames event-timing, adds build option to enable
Add jet for +del:in
prevents profiling on *bsd
removes preprocessor errors in trace.c on openbsd
updates secp256k1 to include /usr/local/include for openbsd
Style nits
[CI] Update arvo
Add a jet for +del:by
fit UTF-8 tape bug
calls u3_raft_work on leader promotion (for eager restart effects)
enables event-log encryption
removes unused u3v_nick (effect traversal) and u3v_http_request
refactors event replay, removing unnecessary effect traversal
refactors event poke, removing unnecessary effect traversal
trailing whitespace
adds and corrects some raft comments
separates effects and persistence
...
Tested with stock clang on an OpenBSD 6.4 amd64 VM. Unfortunately
clang (and also gcc from ports) was not pleased about c3_rand,
whereas this was fine before. I have no idea what changed, but it
works now.