W7 done done
This commit is contained in:
@@ -0,0 +1,15 @@
|
|||||||
|
commit ad3d65cdacdcc5aed72fe12354f66190d7be454d
|
||||||
|
Initial commit
|
||||||
|
|
||||||
|
commit c047927b189860220428b42400ed18942150882c
|
||||||
|
initial import
|
||||||
|
|
||||||
|
|
||||||
|
commit 3e8f0f1fa780da7836128fdbc39bbe8c2ba97de8
|
||||||
|
initial import
|
||||||
|
|
||||||
|
|
||||||
|
commit 939009f9a11d0934226c830375057491f088d362
|
||||||
|
shell stuff, preprocessor directive
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
commit 18ca2368bc1d4a5ef7e4c8470a9b3e32f496fc86
|
||||||
|
VERY basic UTF8 parser
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
commit 17336fe649c52c162a4541968c8d24c0c2ab3eb9
|
||||||
|
Unicode stuff
|
||||||
|
|
||||||
|
|
||||||
|
commit 5df52146be3f5a45759459d5716aec4ef8d3c33a
|
||||||
|
split_space
|
||||||
|
|
||||||
|
|
||||||
|
commit 3a9dfba86cb7dadb1268fcfd689b14066779e6aa
|
||||||
|
fixed bug in #load
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
commit 0a6ebc60f0b8aacf8b01e14bd9b6447c750edeb5
|
||||||
|
precompile on startup
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
commit 6f6919f3f01686175001251e2fca215bccc4806f
|
||||||
|
backage builder
|
||||||
|
|
||||||
|
|
||||||
|
commit defc628204f95d0cdd16c95c89ea30efe922b31a
|
||||||
|
packaging
|
||||||
|
|
||||||
|
|
||||||
|
commit 9e5b7d39e3b8be9f4ad537a134b1081564ae4abc
|
||||||
|
Basic readme
|
||||||
|
|
||||||
|
commit 21fdeafb6c5b8bc80a9d93ed61c36e05fbe7b267
|
||||||
|
Basic documentation
|
||||||
|
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
commit 364d83b199afa6a341173a80791060a42c169f0c
|
||||||
|
doc update
|
||||||
|
|
||||||
|
|
||||||
|
commit 392b7224b16e41198b0425c5ae04f46e014e78c7
|
||||||
|
Merge branch 'main' of github.com:ThingamaNet/uce
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
commit 984453f336a9b2ad47689d161c89d7020006f75a
|
||||||
|
update sigh
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
commit cd8f07aaa78fc488eba3b0e435350e5c2823e53e
|
||||||
|
Refactor FastCGI server and compiler, enhance HTTP header parsing, and add WebSocket support
|
||||||
|
|
||||||
|
- Refactored FastCGIServer class to improve socket handling and added shutdown functionality.
|
||||||
|
- Updated compiler functions to streamline HTML and text literal processing.
|
||||||
|
- Enhanced split_kv function to support uppercase keys and added split_http_headers for better HTTP header parsing.
|
||||||
|
- Introduced new session management functions to validate and handle session IDs.
|
||||||
|
- Added WebSocket frame parsing and handling in the URI module.
|
||||||
|
- Created systemd service scripts for easier deployment and management of the UCE FastCGI runtime.
|
||||||
|
- Added new test cases for header handling, time parsing, and WebSocket functionality.
|
||||||
|
|
||||||
|
|
||||||
|
commit 86dc93864e8eab9227ac50b16f1fc7f561383f5b
|
||||||
|
Add WebSocket support and enhance chat functionality
|
||||||
|
|
||||||
|
- Implement WebSocket handling in the FastCGI server, allowing for real-time communication.
|
||||||
|
- Introduce functions for managing WebSocket connections, broadcasting messages, and sending to specific connections.
|
||||||
|
- Create a chat interface in the `websockets.ws.uce` file, including message handling and user notifications.
|
||||||
|
- Refactor existing code to accommodate WebSocket integration, ensuring compatibility with HTTP requests.
|
||||||
|
- Update documentation to reflect new features and usage instructions for WebSocket functionality.
|
||||||
|
|
||||||
|
|
||||||
|
commit 46d98a092fb606c87ab4b9eef32fe68eeca2b2cb
|
||||||
|
Enhance WebSocket support: add opcode handling, binary message support, and improve connection validation
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
commit be514d63d6ed709a40441db9dc809837081d54f6
|
||||||
|
trying to port web app starter from PHP
|
||||||
|
|
||||||
|
|
||||||
|
commit 2b5586d7dfffc5c1c40cac97e6d4d0e1f86f151a
|
||||||
|
decided in favor of dedicated COMPONENT() macro, updates to documentation
|
||||||
|
|
||||||
|
|
||||||
|
commit d1167aec3b4d7870db0b289ee0ea690f8e7e5cc9
|
||||||
|
getting closer to full port of web app starter
|
||||||
|
|
||||||
|
|
||||||
|
commit af642c8167383f9acf99274d3b3c94017d860dcf
|
||||||
|
getting closer to full port of web app starter
|
||||||
|
|
||||||
|
|
||||||
|
commit dc05f9faa5eab980f1f1fd44cee06f811cc748ff
|
||||||
|
PHP familiarity shortcuts
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
commit b53eb6e4f1b5fa4e2a4907022f591eb9a1860c33
|
||||||
|
Enhance template parser to handle C++ comments and refactor preprocessing logic
|
||||||
|
|
||||||
|
- Updated parser to correctly interpret C++ `//` and `/* ... */` comments within template code.
|
||||||
|
- Split preprocessing implementation into separate files for better organization.
|
||||||
|
- Added regression test for comment parsing in templates.
|
||||||
|
- Adjusted CSS styles for improved layout and readability in documentation.
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
commit 8223dcc6b3cb7f4d26c69097fac973c2671f0938
|
||||||
|
I think I need to change the documentation format
|
||||||
|
|
||||||
|
|
||||||
|
commit f7b066b374f1031d38e3d2b344f6680534c3a2b2
|
||||||
|
changing doc format and HTML literals
|
||||||
|
|
||||||
|
|
||||||
|
commit 14ebf10a229021bb5d0fb1eae42a69c042699318
|
||||||
|
changing doc format and HTML literals
|
||||||
|
|
||||||
|
|
||||||
|
commit 223cf4c6e1c7a205bf1a27bebdc6d04fd7557df0
|
||||||
|
website with slop placeholders
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
commit cd445f3c9b6aa079a969351d6eb742b8a4d24f6b
|
||||||
|
some cleanup
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
commit 9f7625c7fdd6a9d2a184dc2cdf9f8a719d219ec2
|
||||||
|
working on documentation and more API functions
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
commit 02e153a6a78bf8ded1c7380713023b4f9c3b656f
|
||||||
|
Add archive helpers and harden task runtime
|
||||||
|
|
||||||
|
|
||||||
|
commit d37517041de0c5ebe4dfd232093a78ff49cff383
|
||||||
|
Add custom server API and runtime limits
|
||||||
|
|
||||||
|
|
||||||
|
commit 0d8b74930c74cc8018cb1c0cfc7cfe6740b49cf6
|
||||||
|
Harden HTTP path headers sessions and archives
|
||||||
|
|
||||||
|
|
||||||
|
commit 41e9ca219fd684c75e78a5493e20c754c7899105
|
||||||
|
Streamline hardening helpers and expand coverage
|
||||||
|
|
||||||
|
|
||||||
|
commit 8b37e7ea1e58e36c97852f79ec121947a1ffea08
|
||||||
|
Fix direct HTTP status sanitizer fallback
|
||||||
|
|
||||||
|
|
||||||
|
commit 71ddcaf7d48ffd1343e597e4715b570c922a306c
|
||||||
|
Consolidate config and base64 helpers
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
commit 7f757654b658d049564f1725f54fde781575e304
|
||||||
|
fix: harden UCE runtime and starter
|
||||||
|
|
||||||
|
|
||||||
|
commit 20db6695890a3ac274217fd0ed9e0edf7c5eb093
|
||||||
|
fix: stabilize runtime follow-up regressions
|
||||||
|
|
||||||
|
|
||||||
|
commit b957a2373b8464ffcb7791cc6b0031c441d5b09c
|
||||||
|
chore: ignore Python cache artifacts
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
commit 941f5aea08941327eecbc43128d8f171a4064616
|
||||||
|
feat: add configurable UCE error pages
|
||||||
|
|
||||||
|
|
||||||
|
commit 7066da3cdef08b01dda64bca34caadc7000587b2
|
||||||
|
refactor: rename DTree to DValue
|
||||||
|
|
||||||
|
|
||||||
|
commit 7e2faf1472c84f302ce5b7f9674091a1a2b3930f
|
||||||
|
spike: validate WASM phase 0
|
||||||
|
|
||||||
|
|
||||||
|
commit 80285b7fb4acd15850218ee87c72ec8272332c05
|
||||||
|
feat: implement WASM phase 1 DValue ABI
|
||||||
|
|
||||||
|
|
||||||
|
commit 961df2d542ff6554e32da9ee28e73f5fc59b5975
|
||||||
|
phase 5
|
||||||
|
|
||||||
|
|
||||||
|
commit 89b5499c8f4e1a8acc8748e66c9dba9eb9679369
|
||||||
|
fix: harden WASM phase 5 harness
|
||||||
|
|
||||||
|
|
||||||
|
commit eb8f303f94f0f43699eca7cd6474eedaef1ed711
|
||||||
|
docs: remove unsupported second-plane language roadmap
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
commit 577aae076e3603137265332adfdded3c15cfa8f4
|
||||||
|
W3
|
||||||
|
|
||||||
|
|
||||||
|
commit afaa4dd7c0203f322d625593a0d1c96c37130005
|
||||||
|
feat: cut over to WASM backend
|
||||||
|
|
||||||
|
|
||||||
|
commit 5a56d4f39e4b30a9a4e43985d64906aa16a642e6
|
||||||
|
W5
|
||||||
|
|
||||||
|
|
||||||
|
commit c84fc86e6cdfe254a59d57b909f647e6c254ef76
|
||||||
|
W6
|
||||||
|
|
||||||
|
|
||||||
|
commit fe83c524118722c062295bc9575cb71eff64dacb
|
||||||
|
feat: membrane remaining wasm host surfaces
|
||||||
|
|
||||||
|
|
||||||
|
commit d6421cb8f3721e69e999b84335e9094ad96356e9
|
||||||
|
feat: extend wasm backend entrypoints
|
||||||
|
|
||||||
|
|
||||||
|
commit af6500d1343581abdac475dcb6855821afd8c8d0
|
||||||
|
fix: harden wasm w7 entrypoint paths
|
||||||
|
|
||||||
|
|
||||||
|
commit b1856c1725970b31027383a7ae79c2140a62a896
|
||||||
|
chore: narrow wasm backend entrypoint API
|
||||||
|
|
||||||
|
|
||||||
|
commit 6bb4f7f0ad801a0127956f49e54d2be722c6537f
|
||||||
|
test: port network suite to uce cli runner
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,111 @@
|
|||||||
|
commit 15e8d092bc13c425b5c7f7a19dfaf3c9728104f5
|
||||||
|
W7+
|
||||||
|
|
||||||
|
|
||||||
|
commit 8587fbc5aa0f38739182fa50383bb94c8d821ed7
|
||||||
|
wasm runtime: central WS broker, unified handlers, W7d holdouts, membrane completeness
|
||||||
|
|
||||||
|
- WS: a dedicated broker process owns HTTP_PORT + every connection; it forwards
|
||||||
|
renders to the worker pool over uce.sock (non-blocking) and applies ws_*
|
||||||
|
command batches flushed back at workspace teardown. Removes the now-dead
|
||||||
|
per-worker websocket executor (-509 lines).
|
||||||
|
- Dispatch: unify CLI / WebSocket / serve_http / page render through one
|
||||||
|
serve_via_wasm(entry_unit, handler) path; handler string -> __uce_<handler>
|
||||||
|
export symbol.
|
||||||
|
- W7d: rewrite zip.uce to the membrane return-value error contract (no C++
|
||||||
|
try/catch), error-reporting.uce to genuine wasm traps instead of throw, and
|
||||||
|
sharedunit.uce to unit_info(); empty the native-only token gate.
|
||||||
|
- Membrane: wire ls / mkdir / file_mtime through new uce_host_file_list /
|
||||||
|
uce_host_file_mkdir / uce_host_file_mtime hostcalls (resolve_guest_file gains
|
||||||
|
directory support). Fixes /doc/index.uce listing nothing; adds a regression
|
||||||
|
assertion that the index enumerates items.
|
||||||
|
- Docs: add docs/wasm-runtime-architecture.md; record the W7e staged native-
|
||||||
|
deletion plan in WASM-PROPOSAL.md.
|
||||||
|
|
||||||
|
|
||||||
|
commit 2debd338040cf97e82bb8ccbb5ec09caee089c17
|
||||||
|
W7e: wasm-preferred dispatch + compile-on-demand; harden unit ABI validator
|
||||||
|
|
||||||
|
- Dispatch (linux_fastcgi.cpp): route every request through wasm. On a
|
||||||
|
cold/stale artifact, compile the unit on demand (get_shared_unit, forced) and
|
||||||
|
serve wasm; native compiler_invoke* remains only as a fallback when wasm
|
||||||
|
cannot be made ready (compile failure / backend disabled). Applies to the 4
|
||||||
|
handle_complete branches and the CLI socket path.
|
||||||
|
- backend.cpp: delete the now-vestigial native-only fallback token gate
|
||||||
|
(wasm_backend_native_fallback_*), empty since W7d; should_handle now gates on
|
||||||
|
config + current artifact + healthy worker only.
|
||||||
|
- check_unit_wasm.py: skip the defense-in-depth llvm-nm allocator scan when
|
||||||
|
llvm-nm SIGSEGVs on a degenerate-but-valid module (e.g. a unit with no
|
||||||
|
exported handlers). Fixes site/demo/empty.uce, the last unit that could not
|
||||||
|
produce a .wasm; forbidden allocator *exports* are still rejected.
|
||||||
|
|
||||||
|
A pi-assisted review caught that the compile-freshness check keys off the .so
|
||||||
|
mtime only, so force_recompile is required to rebuild a missing/stale .wasm; a
|
||||||
|
unit already cached in-process whose .wasm later vanished still uses native
|
||||||
|
fallback (closed in W7e stage B). Native execution is otherwise bypassed for
|
||||||
|
all real traffic.
|
||||||
|
|
||||||
|
|
||||||
|
commit fb728d63bcd0d80bd5161537e81c30d27eb4df7b
|
||||||
|
W7e stage B: factor the .wasm artifact into unit compile-freshness
|
||||||
|
|
||||||
|
inspect_shared_unit_filesystem() tracked only the .so mtime, so a missing or
|
||||||
|
stale .wasm with a current .so never triggered a rebuild and the unit fell to
|
||||||
|
native indefinitely (the in-process cache also never invalidated). Account for
|
||||||
|
su->wasm_name when wasm unit compilation is enabled: a unit counts as compiled
|
||||||
|
only as of the OLDER of the two artifacts; a missing .wasm forces a recompile.
|
||||||
|
Closes the cached-vanished-.wasm gap noted in the stage A review.
|
||||||
|
|
||||||
|
|
||||||
|
commit cf513368730e5f337e64a9c9f1456e6a64f49d9c
|
||||||
|
W7e: delete the native unit pipeline (.so compile + dlopen execution)
|
||||||
|
|
||||||
|
Units now run exclusively on wasm; the native generated-C++ -> clang -> .so ->
|
||||||
|
dlopen path and its request-time fallback are removed.
|
||||||
|
|
||||||
|
- Dispatch (linux_fastcgi.cpp): the 4 handle_complete branches + the CLI-socket
|
||||||
|
path route every request through wasm (wasm_ready compiles cold/stale on
|
||||||
|
demand); a wasm-unavailable unit now yields a clean error page
|
||||||
|
(fail_wasm_unavailable / render_request_failure) instead of native execution.
|
||||||
|
compiler_invoke / _cli / _websocket / _serve_http deleted.
|
||||||
|
- compiler.cpp (-1274): removed the native .so compile (COMPILE_SCRIPT),
|
||||||
|
load_shared_unit, dlopen/dlsym/dlclose, compiler_load_shared_unit, and the
|
||||||
|
SharedUnit .so function-pointer fields (on_setup/on_render/on_component/
|
||||||
|
on_websocket/on_cli/on_once/on_init) in types.h/types.cpp. compile_shared_unit
|
||||||
|
now builds only the .wasm side-module; the .uce preprocessor/parser front-end
|
||||||
|
is kept (it emits the C++ the wasm compile consumes).
|
||||||
|
- unit_call()/component()/once/init now resolve across units through the wasm
|
||||||
|
host component resolver (uce_host_component_resolve) instead of native dlsym;
|
||||||
|
configured runtime error pages render through the wasm backend.
|
||||||
|
- Dropped the WASM_BACKEND_ENABLED feature flag and dead COMPILE_SCRIPT /
|
||||||
|
COMPILE_WASM_UNITS config; unit ABI freshness tied to UCE_UNIT_ABI_VERSION;
|
||||||
|
guard against serving a stale .wasm for a deleted source; retired the obsolete
|
||||||
|
W5 native-vs-wasm toggle script. Docs updated.
|
||||||
|
|
||||||
|
|
||||||
|
commit bfd6d338299dd9001fe2d4a66f82bbc2b3b07ed9
|
||||||
|
W7f: sweep dead/legacy/fallback leftovers after native-pipeline removal
|
||||||
|
|
||||||
|
Post-deletion cleanup (units run only on wasm):
|
||||||
|
- types.h/compiler.cpp: drop the native-era SharedUnit fields so_name,
|
||||||
|
bin_file_name, and the opt_so_optional cache-mode plumbing (no native
|
||||||
|
optional .so path remains). The per-unit compile lock is re-keyed from
|
||||||
|
so_name+.lock to wasm_name+.lock (still per-unit).
|
||||||
|
- unit_info() and to_string(SharedUnit*) no longer expose .so artifact fields.
|
||||||
|
- backend.h: drop the stale "+ fallback-token gate" comment.
|
||||||
|
- Docs/comments corrected to wasm-only reality: README, tests/README,
|
||||||
|
site/doc C++ preprocessor + error_pages + unit_info pages, site/info intro,
|
||||||
|
site/demo/unit-browser artifact card; the Phase-5 native-vs-wasm benchmark
|
||||||
|
harness (tests/wasm_benchmark.py) reframed for the wasm-only backend.
|
||||||
|
|
||||||
|
Audit confirmed no live references remain to so_handle, load_shared_unit,
|
||||||
|
compiler_load_shared_unit, compiler_invoke*/_cli/_websocket/_serve_http,
|
||||||
|
COMPILE_SCRIPT/COMPILE_WASM_UNITS, or the native export-symbol constants;
|
||||||
|
request_ref_handler/dv_call_handler are kept (live wasm funcref casts).
|
||||||
|
|
||||||
|
Swept via the pi agent (delegated to a gpt-5.3-codex-spark sub-model);
|
||||||
|
independently re-verified on the host: run_cli_tests --include-wasm-kill =>
|
||||||
|
87 passed, 0 failed, 0 skipped.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
commit 560290ca1d18d4d5a0d204bb187d1aa68c3b5ac7
|
||||||
|
perf: cache the compiled core module so fresh workers deserialize, not recompile
|
||||||
|
|
||||||
|
Workers recycle every 8 requests (calls_until_termination=8). Each fresh worker
|
||||||
|
ran wasmtime::Module::compile() on the 6.8MB bin/wasm/core.wasm — a ~1.3s
|
||||||
|
Cranelift JIT — on its first request, so every ~8th request spiked to ~1.3s and
|
||||||
|
dominated suite wall-clock.
|
||||||
|
|
||||||
|
Cache the compiled artifact: on worker core-module load, if bin/wasm/core.cwasm
|
||||||
|
exists and is newer than core.wasm, load it via Module::deserialize_file() (mmap,
|
||||||
|
~ms); otherwise Module::compile() as before and atomically (temp+rename) write
|
||||||
|
the serialized artifact for the next worker. Deserialize failure / stale cache
|
||||||
|
falls back to a normal compile, so it is self-healing; rebuilding core.wasm
|
||||||
|
(newer mtime) invalidates the cache. Engine config (epoch_interruption,
|
||||||
|
signals_based_traps(false)) is unchanged, which the serialized format requires.
|
||||||
|
|
||||||
|
|
||||||
|
commit 83ab9e10f7c0f17805e40a9a3d2b4a3357e5280f
|
||||||
|
perf: extend the compiled-module disk cache to per-unit modules
|
||||||
|
|
||||||
|
Follow-up to 560290c. Per-unit .wasm modules were still Cranelift-compiled per
|
||||||
|
worker on first use (~40-70ms each), so with 8-call worker recycling fresh
|
||||||
|
workers re-JIT every unit they touch.
|
||||||
|
|
||||||
|
Refactor the core cache logic into a shared WasmWorker helper:
|
||||||
|
- cached_wasm_path(p): maps <...>.wasm -> <...>.cwasm.
|
||||||
|
- load_or_compile_cached_module(engine, cached, wasm, bytes, err): deserialize_file
|
||||||
|
the .cwasm when it is newer than the .wasm; otherwise Module::compile + serialize,
|
||||||
|
written atomically (temp+rename); deserialize failure falls back to compile.
|
||||||
|
Both the core module load and unit_module() now go through this helper, so unit
|
||||||
|
artifacts get the same <unit>.uce.cwasm cache the core got.
|
||||||
|
|
||||||
|
|
||||||
|
commit 4f84ac544d9c91a66d068d372055eec8e1723def
|
||||||
|
feat: request_perf() worker-side timing hostcall; restore demo System Info
|
||||||
|
|
||||||
|
Units run in the wasm sandbox, so my_pid/parent_pid/context.server->request_count
|
||||||
|
read as sandbox stubs — the demo System Info counters were broken, and there was
|
||||||
|
no authoritative server-side request timing available to unit code (client-side
|
||||||
|
measurement cannot see queue/dispatch latency).
|
||||||
|
|
||||||
|
Add a request_perf() unit API backed by a new uce_host_request_perf hostcall.
|
||||||
|
The native worker answers it live, returning a DValue:
|
||||||
|
worker_pid, parent_pid, request_count,
|
||||||
|
accept_us = (time_start - time_init)*1e6 (entry -> dispatch wait),
|
||||||
|
running_us = (now - time_start)*1e6 (since dispatch, live),
|
||||||
|
total_us = (now - time_init)*1e6 (since the request entered UCE),
|
||||||
|
workspace_birth_us.
|
||||||
|
time_init is captured at request entry (handle_request, with a handle_complete
|
||||||
|
fallback); a RequestPerfSnapshot {pids, request_count, time_init, time_start} is
|
||||||
|
threaded from wasm_backend_serve through wasm_worker_serve onto the workspace,
|
||||||
|
and the hostcall computes the live deltas at call time. Wired like uce_host_units
|
||||||
|
(sized DValue hostcall): core_hostcalls.syms + sys.cpp/sys.h request_perf().
|
||||||
|
|
||||||
|
site/demo/index.uce System Info now uses request_perf() and shows the real worker
|
||||||
|
PID, an incrementing per-worker request count, and the timing counters.
|
||||||
|
|
||||||
|
|
||||||
Executable
+21
@@ -0,0 +1,21 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
repo_root=$(git rev-parse --show-toplevel)
|
||||||
|
cd "$repo_root"
|
||||||
|
|
||||||
|
out_dir="${1:-changelog}"
|
||||||
|
mkdir -p "$out_dir"
|
||||||
|
rm -f "$out_dir"/*.log
|
||||||
|
|
||||||
|
while IFS= read -r commit; do
|
||||||
|
commit_date=$(git show -s --format=%cs "$commit")
|
||||||
|
out_file="$out_dir/$commit_date.log"
|
||||||
|
{
|
||||||
|
printf 'commit %s\n' "$commit"
|
||||||
|
git show -s --format=%B "$commit"
|
||||||
|
printf '\n'
|
||||||
|
} >> "$out_file"
|
||||||
|
done < <(git rev-list --reverse HEAD)
|
||||||
|
|
||||||
|
printf 'Wrote changelog files to %s\n' "$out_dir"
|
||||||
Reference in New Issue
Block a user