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.
* 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
...
The size and starting position of Urbit's reserved memory block is set by `U3_OS_LoomBits` and `U3_OS_LoomBase` in `include/c/portable.h`.
`U3_OS_LoomBase` is referenced in `include/noun/allocate.h` and sets the position in memory of u3_Loom. This is good.
However, `U3_OS_LoomBits` is not actually used to set the size of the reserved memory block. Instead:
in `include/allocate.h`,
- `u3a_bits` is defined
- `u3a_bits` → `u3a_bytes`
in `noun/manage.c`,
- `u3a_bytes` → `len_w` in `_cm_init()`
- `len_w` sets the reserved memory block size
This proposal puts `U3_OS_LoomBits` back to work by defining `u3a_bits` with it.