What the go-scikit stack must add to reach feature parity with MATLAB, Mathematica and Maple, where each piece lives, and how far it has got.
- PLAN.md — the rules every work item follows, the home of each domain, and the order of the work in four waves.
- STATUS.md — each item with its repository, pull requests, release and measured parity.
- bib/ — one file per domain: the MATLAB and Mathematica inventory against what
go-scikit has, the reference algorithms and papers, the reference implementations and their
licences, and how results are validated. DOIs, function names and licences were checked on
2026-10-17; each file ends with what was verified.
- linear algebra
- approximation, signal and image processing
- arbitrary precision, number theory, computer algebra
- optimisation, statistical learning, automatic differentiation
- geometry, PDEs and graphs
- systems, units, file formats and visualisation
- code shared with the pure-Go Ruby — where go-embedded-ruby and the go-ruby-* gems duplicate go-scikit code, and which side should own each piece
- Maple — only what Maple adds to the two inventories above: ODE/PDE solving, algebraic numbers, triangular and differential algebra, code generation to Go, tensors, groups, and MapleSim-style modelling
- Julia — bibliography and feasibility plan for go-embedded-julia, a pure-Go
Julia interpreter over lowered IR for go-notebook cells and the WebAssembly playground:
parser, lowering, runtime boundary (896
ccallsites in Base), milestones - Julia runtime (M3) — the Core runtime against julia v1.12.6: what
interpreter.cexecutes, the contract with the lowered IR, 63 builtins, 93 intrinsics, subtyping and dispatch, package layout, exit tests; corrects the counts of the plan above - C and C++ — feasibility plan for go-embedded-c and go-embedded-cpp: C cells on the cc/v4 front end compiled to wasm32 and run on wazero or the browser engine, with wasi-libc; C++ cells as clang-repl compiled to wasm on the same runtime, behind a measured gate
- R — bibliography and feasibility plan for go-embedded-r, a pure-Go R interpreter for go-notebook cells, counted on the R 4.6.2 release: 210 primitives and 563 internals, the GPL boundary and what is portable, the CRAN native-code wall (15 % of CRAN runnable without compiled code), oracle harness, milestones
- template for a new domain
go run ./tools/checklinks checks that every relative link in the tree resolves; CI runs it.
go run ./tools/jlcount <julia-source-root> counts the builtins, intrinsics and core C lines of a
julia source tree, the figures bib/julia-runtime.md quotes.
go run ./tools/srccount [--ext .c,.h] [--contains text] <path>... counts files, lines and bytes
under source paths, and go run ./tools/wasmimports <file.wasm> validates a module with wazero
and lists what its host must provide; bib/c-cpp.md quotes both.
go run ./tools/rcount [--cran PACKAGES] <R-source-root> counts the primitives, internals,
grammar, opcodes, lines per language and native call sites of an R release tarball, and with a
CRAN PACKAGES index how much of CRAN needs compiled code: the figures bib/r.md quotes.