W6
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
[
|
||||
{
|
||||
"backend": "native",
|
||||
"target": "template-heavy-doc",
|
||||
"url": "/doc/singlepage.uce",
|
||||
"ok": true,
|
||||
"status": 200,
|
||||
"samples_ms": [
|
||||
318.72209906578064,
|
||||
340.9293442964554,
|
||||
319.705568253994,
|
||||
324.0259513258934,
|
||||
350.93583166599274,
|
||||
313.20811808109283,
|
||||
317.0944079756737,
|
||||
310.312956571579,
|
||||
307.89367109537125,
|
||||
308.1864267587662,
|
||||
311.681292951107,
|
||||
313.39504569768906,
|
||||
314.3857270479202,
|
||||
312.5988021492958,
|
||||
313.25943768024445,
|
||||
312.9996135830879,
|
||||
334.4864323735237,
|
||||
314.2518773674965,
|
||||
309.7490146756172,
|
||||
317.4726217985153
|
||||
],
|
||||
"median_ms": 313.8234615325928,
|
||||
"mean_ms": 318.2647120207548,
|
||||
"min_ms": 307.89367109537125,
|
||||
"max_ms": 350.93583166599274,
|
||||
"note": ""
|
||||
},
|
||||
{
|
||||
"backend": "native",
|
||||
"target": "sqlite-page",
|
||||
"url": "/demo/sqlite.uce",
|
||||
"ok": true,
|
||||
"status": 200,
|
||||
"samples_ms": [
|
||||
3.4144148230552673,
|
||||
6.088584661483765,
|
||||
3.463640809059143,
|
||||
3.498159348964691,
|
||||
3.5023540258407593,
|
||||
6.214611232280731,
|
||||
3.563329577445984,
|
||||
3.3720433712005615,
|
||||
3.330707550048828,
|
||||
3.3808723092079163,
|
||||
3.322914242744446,
|
||||
3.3655911684036255,
|
||||
3.374151885509491,
|
||||
3.358304500579834,
|
||||
3.3307820558547974,
|
||||
3.268897533416748,
|
||||
3.360658884048462,
|
||||
3.3061057329177856,
|
||||
6.233863532543182,
|
||||
3.432638943195343
|
||||
],
|
||||
"median_ms": 3.3775120973587036,
|
||||
"mean_ms": 3.809131309390068,
|
||||
"min_ms": 3.268897533416748,
|
||||
"max_ms": 6.233863532543182,
|
||||
"note": ""
|
||||
},
|
||||
{
|
||||
"backend": "native",
|
||||
"target": "component-heavy-starter",
|
||||
"url": "/examples/uce-starter/?dashboard",
|
||||
"ok": true,
|
||||
"status": 200,
|
||||
"samples_ms": [
|
||||
74.01428371667862,
|
||||
40.9795418381691,
|
||||
40.995217859745026,
|
||||
41.04568809270859,
|
||||
40.724173188209534,
|
||||
41.10313206911087,
|
||||
40.59913754463196,
|
||||
41.28593951463699,
|
||||
41.10439121723175,
|
||||
40.649913251399994,
|
||||
42.06441342830658,
|
||||
42.074643075466156,
|
||||
43.475523591041565,
|
||||
41.8255478143692,
|
||||
41.068583726882935,
|
||||
41.116394102573395,
|
||||
41.09777510166168,
|
||||
42.58237034082413,
|
||||
41.312023997306824,
|
||||
70.98117470741272
|
||||
],
|
||||
"median_ms": 41.11039265990257,
|
||||
"mean_ms": 44.50499340891838,
|
||||
"min_ms": 40.59913754463196,
|
||||
"max_ms": 74.01428371667862,
|
||||
"note": ""
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Phase 5 native baseline — 2026-06-12
|
||||
|
||||
Host: `k-uce` / `uce.openfu.com` via localhost with Host header.
|
||||
|
||||
This is a durable informational snapshot. The Phase 5 gate recomputes native medians during paired native/WASM runs; these numbers are not hard-coded budgets.
|
||||
|
||||
- Warmup suite: 82/82 passed; excludes `site tests tasks` to avoid perturbing task lifecycle state.
|
||||
- Measured full network suite: 83/83 passed.
|
||||
- Measured starter subset: 14/14 passed.
|
||||
- Static audit default scan: 50 code findings, documentation prose excluded by default.
|
||||
|
||||
| target | median ms | mean ms | samples |
|
||||
|---|---:|---:|---:|
|
||||
| template-heavy-doc | 313.8 | 318.3 | 20 |
|
||||
| sqlite-page | 3.4 | 3.8 | 20 |
|
||||
| component-heavy-starter | 41.1 | 44.5 | 20 |
|
||||
|
||||
Raw benchmark JSON: `native-baseline-2026-06-12.json`.
|
||||
Static audit snapshot: `site-static-audit-2026-06-12.md`.
|
||||
@@ -0,0 +1,56 @@
|
||||
# Phase 5 site static-state audit
|
||||
|
||||
Findings: 50 code, 0 documentation prose.
|
||||
|
||||
| file | line | severity | kind | code | note |
|
||||
|---|---:|---|---|---|---|
|
||||
| site/demo/index.uce | 76 | code | background task | `<? if(allow_server_demos) { render_card("task_repeat.uce", "Task Repeat", "Recurring task scheduling"); } ?>` | Task APIs cross request lifetimes; verify they are host handles, not guest statics. |
|
||||
| site/demo/once-init.uce | 1 | code | static local/global | `static s64 demo_worker_init_count = 0;` | Check whether state is request-local, immutable, or intentionally persistent; unit statics reset per wasm workspace. |
|
||||
| site/demo/once-init.uce | 2 | code | static local/global | `static s64 demo_component_hits = 0;` | Check whether state is request-local, immutable, or intentionally persistent; unit statics reset per wasm workspace. |
|
||||
| site/demo/once-init.uce | 4 | code | init hook | `INIT(Request& context)` | Audit behavior under per-request wasm workspaces; ONCE/INIT may need host-side cache semantics if used for cross-request state. |
|
||||
| site/demo/once-init.uce | 10 | code | once hook | `ONCE(Request& context)` | Audit behavior under per-request wasm workspaces; ONCE/INIT may need host-side cache semantics if used for cross-request state. |
|
||||
| site/demo/once-init.uce | 44 | code | once hook | `ONCE() and INIT()` | Audit behavior under per-request wasm workspaces; ONCE/INIT may need host-side cache semantics if used for cross-request state. |
|
||||
| site/demo/once-init.uce | 44 | code | init hook | `ONCE() and INIT()` | Audit behavior under per-request wasm workspaces; ONCE/INIT may need host-side cache semantics if used for cross-request state. |
|
||||
| site/demo/once-init.uce | 47 | code | once hook | `This page calls the same named component twice. `ONCE()` should only run once for the request, while `INIT()` should stay stable for the currently loaded worker copy.` | Audit behavior under per-request wasm workspaces; ONCE/INIT may need host-side cache semantics if used for cross-request state. |
|
||||
| site/demo/once-init.uce | 47 | code | init hook | `This page calls the same named component twice. `ONCE()` should only run once for the request, while `INIT()` should stay stable for the currently loaded worker copy.` | Audit behavior under per-request wasm workspaces; ONCE/INIT may need host-side cache semantics if used for cross-request state. |
|
||||
| site/demo/task-status.uce | 11 | code | background task | `String task_name = first(context.get["task-name"], "example-task");` | Task APIs cross request lifetimes; verify they are host handles, not guest statics. |
|
||||
| site/demo/task-status.uce | 13 | code | background task | `print("Task Name: ", task_name, "\n");` | Task APIs cross request lifetimes; verify they are host handles, not guest statics. |
|
||||
| site/demo/task-status.uce | 14 | code | background task | `print("Task ID: ", task_pid(task_name), "\n");` | Task APIs cross request lifetimes; verify they are host handles, not guest statics. |
|
||||
| site/demo/task-status.uce | 15 | code | background task | `print("Task Running: ", task_pid(task_name) == 0 ? "no" : "yes", "\n");` | Task APIs cross request lifetimes; verify they are host handles, not guest statics. |
|
||||
| site/demo/task.uce | 13 | code | background task | `String task_name = first(context.get["task-name"], "example-task");` | Task APIs cross request lifetimes; verify they are host handles, not guest statics. |
|
||||
| site/demo/task.uce | 37 | code | background task | `<input type="text" name="task-name" value="<?= task_name ?>"/>` | Task APIs cross request lifetimes; verify they are host handles, not guest statics. |
|
||||
| site/demo/task.uce | 46 | code | background task | `load(document.getElementById('task-status'), 'task-status.uce?task-name=<?= uri_encode(task_name) ?>');` | Task APIs cross request lifetimes; verify they are host handles, not guest statics. |
|
||||
| site/demo/task.uce | 56 | code | background task | `print("Task Name: ", task_name, "\n");` | Task APIs cross request lifetimes; verify they are host handles, not guest statics. |
|
||||
| site/demo/task.uce | 57 | code | background task | `print("Task ID: ", task_pid(task_name), "\n");` | Task APIs cross request lifetimes; verify they are host handles, not guest statics. |
|
||||
| site/demo/task.uce | 58 | code | background task | `print("Task Running: ", task_pid(task_name) == 0 ? "no" : "yes", "\n");` | Task APIs cross request lifetimes; verify they are host handles, not guest statics. |
|
||||
| site/demo/task.uce | 71 | code | background task | `print("New Task ID: ", task(task_name, []() {` | Task APIs cross request lifetimes; verify they are host handles, not guest statics. |
|
||||
| site/demo/task_repeat.uce | 13 | code | background task | `String task_name = first(context.get["task-name"], "example-task");` | Task APIs cross request lifetimes; verify they are host handles, not guest statics. |
|
||||
| site/demo/task_repeat.uce | 37 | code | background task | `<input type="text" name="task-name" value="<?= task_name ?>"/>` | Task APIs cross request lifetimes; verify they are host handles, not guest statics. |
|
||||
| site/demo/task_repeat.uce | 46 | code | background task | `load(document.getElementById('task-status'), 'task-status.uce?task-name=<?= uri_encode(task_name) ?>');` | Task APIs cross request lifetimes; verify they are host handles, not guest statics. |
|
||||
| site/demo/task_repeat.uce | 56 | code | background task | `print("Task Name: ", task_name, "\n");` | Task APIs cross request lifetimes; verify they are host handles, not guest statics. |
|
||||
| site/demo/task_repeat.uce | 57 | code | background task | `print("Task ID: ", task_pid(task_name), "\n");` | Task APIs cross request lifetimes; verify they are host handles, not guest statics. |
|
||||
| site/demo/task_repeat.uce | 58 | code | background task | `print("Task Running: ", task_pid(task_name) == 0 ? "no" : "yes", "\n");` | Task APIs cross request lifetimes; verify they are host handles, not guest statics. |
|
||||
| site/demo/task_repeat.uce | 71 | code | background task | `print("New Task ID: ", task_repeat(task_name, 5, []() {` | Task APIs cross request lifetimes; verify they are host handles, not guest statics. |
|
||||
| site/examples/uce-starter/components/data/widgets.uce | 3 | code | once hook | `ONCE(Request& context)` | Audit behavior under per-request wasm workspaces; ONCE/INIT may need host-side cache semantics if used for cross-request state. |
|
||||
| site/examples/uce-starter/components/workspace/primitives.uce | 3 | code | once hook | `ONCE(Request& context)` | Audit behavior under per-request wasm workspaces; ONCE/INIT may need host-side cache semantics if used for cross-request state. |
|
||||
| site/examples/uce-starter/lib/user.class.h | 13 | code | static local/global | `static String session_key()` | Check whether state is request-local, immutable, or intentionally persistent; unit statics reset per wasm workspace. |
|
||||
| site/examples/uce-starter/lib/user.class.h | 18 | code | static local/global | `static String normalize_email(String email)` | Check whether state is request-local, immutable, or intentionally persistent; unit statics reset per wasm workspace. |
|
||||
| site/examples/uce-starter/lib/user.class.h | 23 | code | static local/global | `static String hash_id(String raw)` | Check whether state is request-local, immutable, or intentionally persistent; unit statics reset per wasm workspace. |
|
||||
| site/examples/uce-starter/lib/user.class.h | 45 | code | static local/global | `static String password_hash(String password, String salt)` | Check whether state is request-local, immutable, or intentionally persistent; unit statics reset per wasm workspace. |
|
||||
| site/examples/uce-starter/lib/user.class.h | 53 | code | static local/global | `static DValue read_json_file(String file_name)` | Check whether state is request-local, immutable, or intentionally persistent; unit statics reset per wasm workspace. |
|
||||
| site/examples/uce-starter/lib/user.class.h | 64 | code | static local/global | `static bool write_json_file(String file_name, DValue data)` | Check whether state is request-local, immutable, or intentionally persistent; unit statics reset per wasm workspace. |
|
||||
| site/examples/uce-starter/views/dashboard.uce | 3 | code | once hook | `ONCE(Request& context)` | Audit behavior under per-request wasm workspaces; ONCE/INIT may need host-side cache semantics if used for cross-request state. |
|
||||
| site/info/index.uce | 269 | code | static local/global | `<li>nginx serves static files directly from `site/`</li>` | Check whether state is request-local, immutable, or intentionally persistent; unit statics reset per wasm workspace. |
|
||||
| site/tests/preprocessor.uce | 3 | code | once hook | `ONCE(Request& context)` | Audit behavior under per-request wasm workspaces; ONCE/INIT may need host-side cache semantics if used for cross-request state. |
|
||||
| site/tests/tasks.uce | 25 | code | background task | `pid_t repeat_existing = task_pid("site-tests-repeat");` | Task APIs cross request lifetimes; verify they are host handles, not guest statics. |
|
||||
| site/tests/tasks.uce | 27 | code | background task | `task_kill(repeat_existing, 15);` | Task APIs cross request lifetimes; verify they are host handles, not guest statics. |
|
||||
| site/tests/tasks.uce | 37 | code | background task | `repeat_pid = task_repeat("site-tests-repeat", 1.0, []() {` | Task APIs cross request lifetimes; verify they are host handles, not guest statics. |
|
||||
| site/tests/tasks.uce | 55 | code | background task | `pid_t seen_short_pid = task_pid("site-tests-short");` | Task APIs cross request lifetimes; verify they are host handles, not guest statics. |
|
||||
| site/tests/tasks.uce | 56 | code | background task | `pid_t seen_repeat_pid = task_pid("site-tests-repeat");` | Task APIs cross request lifetimes; verify they are host handles, not guest statics. |
|
||||
| site/tests/tasks.uce | 57 | code | background task | `pid_t seen_timeout_pid = task_pid("site-tests-timeout");` | Task APIs cross request lifetimes; verify they are host handles, not guest statics. |
|
||||
| site/tests/tasks.uce | 58 | code | background task | `pid_t seen_unsafe_key_pid = task_pid("site-tests/../unsafe key");` | Task APIs cross request lifetimes; verify they are host handles, not guest statics. |
|
||||
| site/tests/tasks.uce | 59 | code | background task | `int short_alive = seen_short_pid == 0 ? -1 : task_kill(seen_short_pid, 0);` | Task APIs cross request lifetimes; verify they are host handles, not guest statics. |
|
||||
| site/tests/tasks.uce | 60 | code | background task | `int repeat_alive = seen_repeat_pid == 0 ? -1 : task_kill(seen_repeat_pid, 0);` | Task APIs cross request lifetimes; verify they are host handles, not guest statics. |
|
||||
| site/tests/tasks.uce | 72 | code | background task | `check("task_pid() + task_kill(pid, 0)", short_alive == 0, "kill(0) result=" + std::to_string(short_alive));` | Task APIs cross request lifetimes; verify they are host handles, not guest statics. |
|
||||
| site/tests/tasks.uce | 73 | code | background task | `check("task_repeat()", repeat_pid != 0 && seen_repeat_pid != 0, "started=" + std::to_string(repeat_pid) + " seen=" + std::to_string(seen_repeat_pid));` | Task APIs cross request lifetimes; verify they are host handles, not guest statics. |
|
||||
| site/tests/tasks.uce | 77 | code | background task | `check("task_kill() rejects negative pid", task_kill(-1, 0) == -1, "kill(-1, 0) rejected");` | Task APIs cross request lifetimes; verify they are host handles, not guest statics. |
|
||||
Reference in New Issue
Block a user