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.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
root
2026-06-14 23:43:16 +00:00
co-authored by Claude Opus 4.8
parent cf51336873
commit bfd6d33829
21 changed files with 80 additions and 154 deletions
+19 -29
View File
@@ -386,34 +386,29 @@ SharedUnit* compiler_cached_unit(Request* context, String file_name)
return(it->second);
}
bool compiler_cache_mode_matches(SharedUnit* su, bool opt_so_optional)
{
return(su && su->opt_so_optional == opt_so_optional);
}
bool compiler_cached_unit_is_reusable(Request* context, SharedUnit* su, bool opt_so_optional, bool force_recompile)
bool compiler_cached_unit_is_reusable(Request* context, SharedUnit* su, bool force_recompile)
{
return(
!force_recompile &&
compiler_cache_mode_matches(su, opt_so_optional) &&
su &&
!shared_unit_cache_is_stale(context, su)
);
}
SharedUnit* compiler_reusable_cached_unit(Request* context, String file_name, bool opt_so_optional, bool force_recompile)
SharedUnit* compiler_reusable_cached_unit(Request* context, String file_name, bool force_recompile)
{
auto su = compiler_cached_unit(context, file_name);
if(compiler_cached_unit_is_reusable(context, su, opt_so_optional, force_recompile))
if(compiler_cached_unit_is_reusable(context, su, force_recompile))
return(su);
return(0);
}
void compiler_release_cached_unit_if_needed(Request* context, String file_name, bool opt_so_optional, bool force_recompile)
void compiler_release_cached_unit_if_needed(Request* context, String file_name, bool force_recompile)
{
auto su = compiler_cached_unit(context, file_name);
if(!su)
return;
if(force_recompile || !compiler_cache_mode_matches(su, opt_so_optional) || shared_unit_cache_is_stale(context, su))
if(force_recompile || shared_unit_cache_is_stale(context, su))
release_shared_unit_cache_entry(context, file_name);
}
@@ -632,11 +627,9 @@ void setup_unit_paths(Request* context, SharedUnit* su, String file_name)
su->pre_path = context->server->config["BIN_DIRECTORY"] + su->src_path;
su->src_file_name = basename(file_name);
su->bin_file_name = su->src_file_name + ".so";
su->wasm_file_name = su->src_file_name + ".wasm";
su->pre_file_name = su->src_file_name + ".cpp";
su->so_name = su->bin_path + "/" + su->bin_file_name;
su->wasm_name = su->bin_path + "/" + su->wasm_file_name;
su->wasm_check_file_name = su->bin_path + "/" + su->src_file_name + ".wasm-check.txt";
su->api_file_name = su->bin_path + "/" + su->src_file_name + ".exports.txt";
@@ -779,21 +772,20 @@ void compile_shared_unit(Request* context, SharedUnit* su)
}
}
SharedUnit* compiler_get_shared_unit_internal(Request* context, String file_name, bool opt_so_optional, bool force_recompile)
SharedUnit* compiler_get_shared_unit_internal(Request* context, String file_name, bool force_recompile)
{
file_name = compiler_normalize_unit_path(context, file_name);
auto cached = compiler_reusable_cached_unit(context, file_name, opt_so_optional, force_recompile);
auto cached = compiler_reusable_cached_unit(context, file_name, force_recompile);
if(cached)
return(cached);
compiler_release_cached_unit_if_needed(context, file_name, opt_so_optional, force_recompile);
compiler_release_cached_unit_if_needed(context, file_name, force_recompile);
SharedUnit* su = new SharedUnit();
setup_unit_paths(context, su, file_name);
su->opt_so_optional = opt_so_optional;
int fdlock = compiler_open_lock_file(su->so_name + ".lock", "shared-unit:" + file_name);
int fdlock = compiler_open_lock_file(su->wasm_name + ".lock", "shared-unit:" + file_name);
if(fdlock == -1)
{
su->compiler_messages = "could not open compile lock";
@@ -804,7 +796,7 @@ SharedUnit* compiler_get_shared_unit_internal(Request* context, String file_name
return(su);
}
cached = compiler_reusable_cached_unit(context, file_name, opt_so_optional, force_recompile);
cached = compiler_reusable_cached_unit(context, file_name, force_recompile);
if(cached)
{
compiler_close_lock_file(fdlock);
@@ -812,7 +804,7 @@ SharedUnit* compiler_get_shared_unit_internal(Request* context, String file_name
return(cached);
}
compiler_release_cached_unit_if_needed(context, file_name, opt_so_optional, force_recompile);
compiler_release_cached_unit_if_needed(context, file_name, force_recompile);
auto state = inspect_shared_unit_filesystem(context, su);
auto compile_check = shared_unit_compile_check(state);
@@ -852,9 +844,9 @@ SharedUnit* compiler_get_shared_unit_internal(Request* context, String file_name
return(su);
}
SharedUnit* get_shared_unit(Request* context, String file_name, bool opt_so_optional)
SharedUnit* get_shared_unit(Request* context, String file_name)
{
return(compiler_get_shared_unit_internal(context, file_name, opt_so_optional, false));
return(compiler_get_shared_unit_internal(context, file_name, false));
}
String compiler_error_page_unit(Request* context, String config_key)
@@ -880,7 +872,7 @@ bool compiler_unit_compile_pending(Request* context, String file_name)
String normalized = compiler_normalize_unit_path(context, file_name);
if(normalized == "" || !file_exists(normalized))
return(false);
if(compiler_reusable_cached_unit(context, normalized, false, false))
if(compiler_reusable_cached_unit(context, normalized, false))
return(false);
SharedUnit probe;
@@ -972,7 +964,7 @@ String component(String name, DValue props, Request& context)
SharedUnit* unit_load(String file_name)
{
String resolved = compiler_resolve_unit_path(context, file_name);
return(resolved == "" ? 0 : get_shared_unit(context, resolved, true));
return(resolved == "" ? 0 : get_shared_unit(context, resolved));
}
DValue* unit_call(String file_name, String function_name, DValue* call_param)
@@ -1120,9 +1112,8 @@ DValue unit_info(String path)
info["bin_path"] = su->bin_path;
info["pre_path"] = su->pre_path;
info["src_file_name"] = su->src_file_name;
info["bin_file_name"] = su->bin_file_name;
info["pre_file_name"] = su->pre_file_name;
info["so_name"] = su->so_name;
info["wasm_file_name"] = su->wasm_file_name;
info["wasm_name"] = su->wasm_name;
info["wasm_exists"].set_bool(file_exists(su->wasm_name));
info["api_file_name"] = su->api_file_name;
@@ -1134,7 +1125,6 @@ DValue unit_info(String path)
info["error_status"] = compiler_error_status(su);
info["compiler_messages"] = su->compiler_messages;
info["last_compiled"] = (f64)su->last_compiled;
info["last_loaded"] = (f64)su->last_loaded;
info["last_rendered"] = (f64)su->last_rendered;
info["last_error"] = (f64)su->last_error;
info["request_count"] = (f64)su->request_count;
@@ -1164,7 +1154,7 @@ DValue unit_info(String path)
info["metadata_build_token"] = fs_state.metadata_build_token;
compiler_tree_set_bool(info, "known", compiler_has_known_unit_cached(context, resolved_path));
compiler_tree_set_bool(info, "current_unit", resolved_path == compiler_current_unit_path(context));
compiler_tree_set_bool(info, "loaded", file_exists(su->wasm_name));
compiler_tree_set_bool(info, "wasm_available", file_exists(su->wasm_name));
compiler_tree_set_bool(info, "source_exists", fs_state.source_exists);
compiler_tree_set_bool(info, "compiled_exists", fs_state.compiled_time != 0);
compiler_tree_set_bool(info, "metadata_exists", fs_state.metadata_exists);
@@ -1202,6 +1192,6 @@ bool unit_compile(String path)
if(resolved_path == "")
return(false);
compiler_track_known_unit(context, resolved_path);
auto su = compiler_get_shared_unit_internal(context, resolved_path, false, true);
auto su = compiler_get_shared_unit_internal(context, resolved_path, true);
return(su && trim(su->compiler_messages) == "" && file_exists(su->wasm_name));
}