eeschema simulator: lazy ngspice_service worker — static sharedspice (XSPICE registry + CIDER), init_dll ifdef, e2e both engines
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
004412c53d
commit
703cb010b7
30 changed files with 2872 additions and 82 deletions
|
|
@ -106,6 +106,18 @@ echo " BINARYEN_CORES=${BINARYEN_CORES} LD_PRELOAD=${WASM_OPT_PRELOAD:-<none>}
|
|||
|
||||
SRC="${INPUT_WASM}"
|
||||
|
||||
# Refuse to double-instrument. A postprocess re-run on an artifact that a
|
||||
# previous (killed/partial) run already asyncified re-instruments the
|
||||
# instrumented module: the pass balloons to OOM/jetsam death, and the output
|
||||
# would be broken anyway. The asyncify export names only exist in a module
|
||||
# the pass already touched. Recover by re-copying the pristine post-link
|
||||
# artifact from the docker volume (docker/build.sh compile copy step).
|
||||
if LC_ALL=C grep -aq "asyncify_start_unwind" "${INPUT_WASM}"; then
|
||||
echo "ERROR: ${INPUT_WASM} already contains asyncify exports - refusing to" >&2
|
||||
echo "double-instrument. Restore the pristine post-link wasm first." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 1. (native wasm-EH only) hoist C++ catch arms so Asyncify can suspend from inside them.
|
||||
if [ "$DO_HOIST" = 1 ]; then
|
||||
echo "Running --hoist-cpp-catches${HOIST_G:+ (keeping names for removelist matching)}..."
|
||||
|
|
|
|||
|
|
@ -24,3 +24,9 @@ BRepCheck_ParallelAnalyzer::operator*
|
|||
ShapeFix_Wire::FixGap3d*
|
||||
ShapeFix_Wire::FixGap2d*
|
||||
PCB_EDIT_FRAME::setupUIConditions*
|
||||
# The ngspice model-parameter table initializers (sim_model_ngspice_data_*.cpp,
|
||||
# restored for the simulator split): thousands of straight-line emplace_backs,
|
||||
# nothing that can suspend. Uninstrumented they stay under the JS engines'
|
||||
# per-function locals limit and shave the post-asyncify module size
|
||||
# (bsim4/b3soi/b4soi/hsim alone are the four largest functions in eeschema).
|
||||
NGSPICE_MODEL_INFO_MAP::add*
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ export KICAD_VERSION="8.99"
|
|||
|
||||
# From vcpkg.json overrides (pinned versions)
|
||||
export GLM_VERSION="0.9.9.8"
|
||||
export NGSPICE_VERSION="45.2"
|
||||
export NGSPICE_VERSION="46"
|
||||
export PROTOBUF_VERSION="3.21.12"
|
||||
export PYTHON_VERSION="3.11.5"
|
||||
export WXWIDGETS_VERSION="3.3.1"
|
||||
|
|
@ -51,7 +51,9 @@ export CAIRO_URL="https://cairographics.org/releases/cairo-${CAIRO_VERSION}.tar.
|
|||
export PIXMAN_URL="https://cairographics.org/releases/pixman-${PIXMAN_VERSION}.tar.gz"
|
||||
export OCC_URL="https://github.com/Open-Cascade-SAS/OCCT/archive/refs/tags/V${OCC_VERSION//./_}.tar.gz"
|
||||
export RAPIDJSON_URL="https://github.com/Tencent/rapidjson/archive/${RAPIDJSON_COMMIT}.tar.gz"
|
||||
export NGSPICE_URL="https://sourceforge.net/projects/ngspice/files/ng-spice-rework/${NGSPICE_VERSION}/ngspice-${NGSPICE_VERSION}.tar.gz/download"
|
||||
# downloads.sourceforge.net serves the file directly; the projects/... /download
|
||||
# form returns an HTML redirect page that breaks curl-based fetches.
|
||||
export NGSPICE_URL="https://downloads.sourceforge.net/project/ngspice/ng-spice-rework/${NGSPICE_VERSION}/ngspice-${NGSPICE_VERSION}.tar.gz"
|
||||
|
||||
# SHA256 checksums (to be filled in after first successful download)
|
||||
# export ZSTD_SHA256=""
|
||||
|
|
|
|||
Loading…
Reference in a new issue