Sorry to jump in here on this thread with a similar issue for v1 versus v3 runtime API troubleshooting. Much gratitude for implementing v3 for tgz!
Granted our collaborative notebook is excessively sprawling, but I would welcome any tips on how to mitigate Uncaught RangeError: Maximum call stack size exceeded
so e.g. d3
and/or barRangeSlider
can load in an untarballed localhost-hosted v3 version of this notebook: https://observablehq.com/@thadk/windfall-awareness-notebook-prototype (really, I think this holds the issue: https://observablehq.com/@bumbeishvili/data-driven-range-sliders )
I will soon try using NPM again with the v3 tgz, which is our main use for the tarball. Still, it was comforting (if not necessarily essential) with v1 to see even index.html unhosted (file://) html load the full notebook when uncompressed in both Firefox, Safari and Chrome. Now, running a server is required and only works in Safari/Chrome yet.
After further testing, it seems like barRangeSlider
is using up the call stack in a different order in v3 than it was in v1 (though that part also didn’t work in v1 of the independent runtime). If I edit the v3 .js and pull d3, fastxml, and form above that, no problem:
const child1 = runtime.module(define1);
main.variable(observer("fastXml")).define("fastXml", ["require"], function(require){return(
require('https://bundle.run/fast-xml-parser@3.12.16')
)});
main.variable(observer("d3")).define("d3", ["require"], function(require){return(
require("d3@5")
)}); const child5 = runtime.module(define5);
main.import("form", child5); main.import("table", child1);
const child2 = runtime.module(define2);
main.import("select", child2);
main.import("textarea", child2);
main.import("file", child2);
main.import("input", child2);
main.import("slider", child2);
main.import("date", child2);
main.import("radio", child2);
main.import("checkbox", child2);
main.import("number", child2);
const child3 = runtime.module(define3);
main.import("NumberParser", child3);
const child4 = runtime.module(define4);
main.import("barRangeSlider", child4);