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.
* release-candidate: (21 commits)
zinc gate casting bug
Bug fix for metal-wrapping runes
converting iron and zinc cores to lead bug
8. updates nock 4K spec
7. updates %5 to require two subformulas (nock 4K)
6. implements edit at %10 (nock 4K)
5. removes %13 and %14 (nock 4K)
4. emits %11 and %12 (nock 4K)
3. implements hint at %11 and wish at %12 (nock 4K)
2. removes %10 and %11 (nock 4K)
1. duplicates hint (%10) and wish (%11) at %13 and %14 (nock 4K)
Disable terminal echo on passcode entry
increased inbound request and ward timeouts to 5 min
mutating edit
bail in _n_edit on invalid path
avoid allocating an atom for _cj_bash
bypass mat and chop directly in jam
small memory leak for large edits
disable hike jet, kill errant and unneccessary mutate-context-sample opcodes
bugfixes
...
* fodwyt/edit:
mutating edit
bail in _n_edit on invalid path
avoid allocating an atom for _cj_bash
bypass mat and chop directly in jam
small memory leak for large edits
disable hike jet, kill errant and unneccessary mutate-context-sample opcodes
bugfixes
first pass at nock 12 impl
* release-candidate: (138 commits)
adds meson option (-Dprof=true) to set U3_CPU_DEBUG
adds meson option (-Dgc=true) to set U3_MEMORY_DEBUG
refactors http card validation
fixes leak in proxy when networking is disabled
fixes leak in _http_serv_start_all
bypassed profiling bug
Eliminate cons optimization.
Remove broken assert.
Clean up some printfs.
increases tcp proxy listener timeout to 2 minutes
fixes dumb bug in tcp reverse proxy remote address resolution
Fix issue with trimming >4 character jet names
upgrades libh2o to v0.13.5 (h2o v2.2.5)
sets the http client request timeout to 2 minutes
adds an http request timer to ensure connections are always closed
adds an http request timer to ensure connections are always closed
adds (disabled) h2o access log
don't leak ship-name in _proxy_ward_connect()
refactors .http.ports write/release (avoid the loom, etc.)
updates SSL_CTX init to support any PEM private key, simplifies error handling
...
* https-proxy-config: (92 commits)
increases tcp proxy listener timeout to 2 minutes
fixes dumb bug in tcp reverse proxy remote address resolution
upgrades libh2o to v0.13.5 (h2o v2.2.5)
sets the http client request timeout to 2 minutes
adds an http request timer to ensure connections are always closed
adds an http request timer to ensure connections are always closed
adds (disabled) h2o access log
don't leak ship-name in _proxy_ward_connect()
refactors .http.ports write/release (avoid the loom, etc.)
updates SSL_CTX init to support any PEM private key, simplifies error handling
adds u3_wcon (ward candidate conn), refactors ward connection accept and auth
enables ALPN and HTTP2 over TLS
increases timeout before server struct, adds explanatory comment
closes u3_ward stream and timer sequentially, fixing use-after-free per ASan
moves u3_pact to vere.h, replacing the unused u3_apac
fixes memory leak in failed cttp.c address resolution
suppresses AddressSanitizer in vararg functions u3i_molt and u3r_mean
ignores AddressSanitizer errors in jets.c
updates %wise and %that to give and receive the proxy auth nonce
implements nonce-baced authentication for u3_ward proxies
...
* master:
adds an http request timer to ensure connections are always closed
moves u3_pact to vere.h, replacing the unused u3_apac
fixes memory leak in failed cttp.c address resolution
Remove deprecated paths from gitignore
print error on failed syscall in _ce_patch_create()
removes tabs from http.c
removes orphaned telnet constants and forward declarations