-
Notifications
You must be signed in to change notification settings - Fork 8
Open
Description
Sketches of some ideas/improvements that may (or may not) be worth implementing. Moved out of repo's TODO.md.
- [high] automated builds via github actions
- make sure all dockerfiles point to master/lkgr-like
- update.py to gen github workflows
- lightweight bench
- profile builds - time/space, optimize
- [high] test262
- create "portable262" subset of tests that don't need any special runtime APIs, codegen them similarly to kangax
conformance/preludes/<engine>.js- full $262 definitions for complex cases
- [high] explore alternative layout with a directory per engine,
engines/<name>/index.md-- descriptionMakefile-- build driver. Move build script tobuild/build.py, maybe create genericbuild/build.mkfor basic cases and symlink to it or include it.build/build.argsfor docker argsDockerfile/<variant>.Dockerfile/wasm.Dockerfile-- build scripts- patches, REPL/script runner files, repl.js, auxiliary scripts etc
conformance.json-- test suite results,{'metadata':{...}, 'tests':{'es5':{'JSON.js':'OK', ...}, ...}, 'summary': {...}}prelude.js-- for test262- ref trees
build/<module>/- shared modules to use viaFROM/COPY --from- compilers,dist.py,repl.jsetcCOPY --from=jsz-build dist.py- or flat hierarchy in build (
build/jsz-xxx.Dockerfile) for discoverability ofBASE=jsz-xxximages?
- ppc64 and riscv64 builds. Support overrides of form
engine[_variant][:arch]: flagsin args.txt - need to use debian's clagn for riscv64. Benchmark on a riscv64 hoster - avx2 / -march=x86-64-v3. bench major engines to check improvement, and maybe just switch all/most x64 builds to it. Add a gcc/clang wrapper and enable/disable it via --build-arg in args.txt for amd64 build envs.
- Wasm builds (dist/wasm/*). Explore how easy is it to build C/C++ engines with WASI SDK / Emscripten and produce something runnable with minimal extra code. Make the extra glue code generalizable/reusable across engines. Try different Wasm runtimes to run them: wazero, wasmtime etc
- kiesel's wasm build; hermes_sandbox
- engines/*.md: rename "Standard" to "(Target) Specification"
- docker/Makefile: make depend, and check-in depend file for review, split up base rule
- narcissus: vendor-in, add console.log() and multiple scripts command-line args
- engine262_jsc launcher
- make full-featured fully static builds the default?
*_min/benchfor size benchmarking- COPY libicu-static.sh ./ && ./libicu-static.sh
- Generic ways to pass extra CFLAGS: wrapper, hack system gcc spec, clang's CCC_OVERRIDE_OPTIONS.
- target triples beyond arm64/amd64; try
*-muslfor static builds
- /dist/runtimes
- node, bun, deno symlinks
- node_0.x - nvm install 0.x
- cjs/gjs
- jszvu: esvu/jsvu equivalent
- build from source on user's machine: docker, podman, buildah, macOS containerization
- or fetch github build artifact
- check builds from BASE=debian:stable and other releases
- check compatibility of builds with non-debian distros; vs engines official builds
- test running outside /dist, fix/document exceptions
- version handling
- update.py
- checkout and update repos, update loc
- check for broken links
- bench
- finally make use of timestamp_output to compute a score
- try various strategies to reduce variance
- variance.py report
- interleaving runs
- pin container to specific cores, podman --cpuset-cpus, set governor performance; script
- more repetitions for higher variance engines/test
- hetzner dedicated vm
- https://github.com/WebKit/JetStream
- https://github.com/quickjs-ng/benchmarks
- parsers / transpilers
- expand and add transpilers
- test parsers on conformance test suite, report results
- conformance
- align filenames with test262
- ensure every test has ": (OK|failed|exception)", check for all to detect dumb echos
- verify unexpected OKs
- ES1: this/inheritance/hoisting tests
- ESnext permalinks
- default strict mode fixes, bun/deno
- record tested revision+date+version at the top of Conformance section in
engine/*.md run.sh 'engine [--flags]' <paths relative to conformance directory or absolute paths or ./relative-to-cwd>- look at ant failure to run benchmarks despite passing ES1-ES5 tests, add missing tests
- compat-table subpage to serve conformance results from the repo. Original + transposed layout, toggleable loadable details, make it fast
- urls to check
- https://github.com/Diullei/Storm
- https://github.com/GitPaulo/gojo
- https://github.com/LukaTypeScripter/js-mini-engine
- https://github.com/YC-Lammy/rusty-js
- https://github.com/codelibs/sai
- https://github.com/devendrap/jsengine
- https://github.com/devlzl/RunJS
- https://github.com/dogukanakkaya/go-script
- https://github.com/forax/jsjs
- https://github.com/jakemarsden/JakeScript/tree/master
- https://github.com/junjis0203/joke
- https://github.com/labidiaymen/ec-engine?tab=readme-ov-file
- https://github.com/malstrom72/NuXJS
- https://github.com/r10nw7fd3/silk/tree/master/src
- https://github.com/shadowbrowser/shadow.js
- https://github.com/ssrlive/javascript/tree/master
- https://github.com/syoyo/lightjs
- https://github.com/zacbrannelly/go-js
- https://github.com/karatelabs/karate-js
- https://github.com/ubugeeei/Glasper
- https://github.com/devlzl/RunJS
- https://github.com/darkdrag00nv2/toyjs
- https://github.com/yanmingsohu/Polydeuces
- https://github.com/mirror/reactos/blob/master/reactos/dll/win32/jscript/engine.c
- https://github.com/chakra-core/ChakraCore/wiki/Resources
- https://github.com/JetCrabCollab/JetCrab boa runtime
- https://github.com/Lampese/NocturneJS
- https://github.com/syoyo/lightjs
- https://github.com/ubugeeei/rawjs
- https://github.com/xy660/NexusEJS
- https://github.com/ghosind/gjs
- https://github.com/dzzie/js4vb
- https://github.com/josedab/quicksilver
- https://github.com/zacbrannelly/go-js
- https://github.com/codelibs/sai
- https://github.com/vitkarpov/vitosik-js
- https://github.com/zfedoran/crabquick
- https://github.com/yazaldefilimone/ecmacore
- https://github.com/shadowbrowser/shadow.js
- https://github.com/pegasusheavy/spacey
- https://github.com/SunsetFi/suntime-js
- https://github.com/kodjodevf/js_interpreter
- https://github.com/zhuzilin/es
- https://github.com/DrkWithT/DerkJS-Redux
- https://github.com/SunsetFi/suntime-js
- https://github.com/search?q=%22javascript+engine%22+OR+%22javascript+interpreter%22+OR+%22ecmascript+engine%22+OR+%22ecmascript+interpreter%22&type=repositories&s=updated&o=desc
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels