You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Found during a full bughunt/architecture review. Unlike #290–#294, this phase is primarily a maintainer decision rather than an engineering task — filing it so the decision is tracked and the affected issues are cross-linked.
Binding staleness, verified via git log
Java: last touched 2022-12-07
Matlab: last touched 2022-12-07
R: last touched 2022-12-07
Python: last touched 2022-12-07
Linux(deb): last touched 2022-12-07
JavaScript: last touched 2024-08-20
Java: distributions/Java/webstart/*.jnlp ships Java Web Start launch files. Web Start was removed from the JDK in Java 11 (2018) and dropped from all major browsers years ago — this binding cannot currently be used as documented.
Matlab: no CI coverage, no verification it still builds against current MATLAB/mex toolchains.
R: the package was removed from CRAN on 2019-09-03 (already stated candidly in README.md), yet distributions/R/generator is still a live git submodule (.gitmodules) being fetched on every full clone, and libamtrack R package installation fails #90 ("libamtrack R package installation fails") has been open since 2020 with no resolution.
Python (pyamtrack): more actively maintained than the others per the website docs, but missing port of pyamtrack for MacOSX #216 ("missing port of pyamtrack for MacOSX") has been open since 2023.
Carrying these as if they were supported implies a support burden that, per the commit history, isn't actually being met — that's arguably worse for users than clearly marking them unmaintained.
Proposed decision (pick one per binding, doesn't have to be uniform)
Java: given Web Start's removal from all runtimes, either replace the distribution mechanism entirely (plain JAR + runme.java, dropping webstart/) or move to contrib//mark unmaintained
Matlab: add a minimal CI smoke build, or mark unmaintained
R: given the CRAN removal was over 6 years ago and libamtrack R package installation fails #90 is unresolved, mark unmaintained and drop the ReGenerator submodule dependency from routine clones (it currently costs every contributor a submodule fetch for a binding that doesn't install)
JavaScript/WASM: most actively touched of the group and has CI coverage (webassembly-reusable.yml) — no action needed here beyond the generation-tooling item below
WASM export-list generation is fragile
distributions/JavaScript/parse_headers.py builds the exported-symbol list for compile_to_js.sh by splitting header lines on whitespace and checking split_line[0] in ["int","double","long","void"] — a formatting change from clang-format (which pre-commit already runs against these same headers, per .pre-commit-config.yaml) could silently change what gets exported, with no build failure to flag it. Currently only 64 of 382 public functions are exported, from a hand-maintained list inside compile_to_js.sh. This script also appears to be unused already (see #155, "Fix javascript generation script", open since 2021).
Replace the whitespace-splitting parser with a real C parser (pycparser or a libclang-based script) driven directly off include/*.h, or retire parse_headers.py if Fix javascript generation script #155 means it's already dead, and document which of the two (compile_to_js.sh's inline list vs. parse_headers.py) is actually the source of truth
Cross-reference: open issues now diagnosable from this review
For the maintainer's triage convenience, these existing open issues have a concrete root cause identified during this review:
Each binding in distributions/ has an explicit, documented maintenance status (maintained / unmaintained / removed)
The WASM export list has a single documented source of truth
Cross-referenced issues above are either closed as duplicates/resolved by the phase work, or explicitly kept open with an updated description reflecting the new context
Found during a full bughunt/architecture review. Unlike #290–#294, this phase is primarily a maintainer decision rather than an engineering task — filing it so the decision is tracked and the affected issues are cross-linked.
Binding staleness, verified via
git logdistributions/Java/webstart/*.jnlpships Java Web Start launch files. Web Start was removed from the JDK in Java 11 (2018) and dropped from all major browsers years ago — this binding cannot currently be used as documented.README.md), yetdistributions/R/generatoris still a live git submodule (.gitmodules) being fetched on every full clone, and libamtrack R package installation fails #90 ("libamtrack R package installation fails") has been open since 2020 with no resolution.pyamtrack): more actively maintained than the others per the website docs, but missing port of pyamtrack for MacOSX #216 ("missing port of pyamtrack for MacOSX") has been open since 2023.Carrying these as if they were supported implies a support burden that, per the commit history, isn't actually being met — that's arguably worse for users than clearly marking them unmaintained.
Proposed decision (pick one per binding, doesn't have to be uniform)
runme.java, droppingwebstart/) or move tocontrib//mark unmaintainedReGeneratorsubmodule dependency from routine clones (it currently costs every contributor a submodule fetch for a binding that doesn't install)webassembly-reusable.yml) — no action needed here beyond the generation-tooling item belowWASM export-list generation is fragile
distributions/JavaScript/parse_headers.pybuilds the exported-symbol list forcompile_to_js.shby splitting header lines on whitespace and checkingsplit_line[0] in ["int","double","long","void"]— a formatting change fromclang-format(which pre-commit already runs against these same headers, per.pre-commit-config.yaml) could silently change what gets exported, with no build failure to flag it. Currently only 64 of 382 public functions are exported, from a hand-maintained list insidecompile_to_js.sh. This script also appears to be unused already (see #155, "Fix javascript generation script", open since 2021).pycparseror a libclang-based script) driven directly offinclude/*.h, or retireparse_headers.pyif Fix javascript generation script #155 means it's already dead, and document which of the two (compile_to_js.sh's inline list vs.parse_headers.py) is actually the source of truthCross-reference: open issues now diagnosable from this review
For the maintainer's triage convenience, these existing open issues have a concrete root cause identified during this review:
AT_RDD_Tabulated.htable identified in [Bughunt Phase 3] Architectural risk reduction: 1.15MB zero-filled RDD table, GPL-incompatible Numerical Recipes code, no error channel #293, item 1 is the single largest offenderAT_RDD_*headers) in [Bughunt Phase 4] Documentation rebuild: chatbot artifacts in README, dead autotools guide, no published API reference #294AT_single_impact_local_dose_distrib()is partially unclear #161 (AT_single_impact_local_dose_distrib()partially unclear) → likely addressed as a side effect of the documentation burn-down in [Bughunt Phase 4] Documentation rebuild: chatbot artifacts in README, dead autotools guide, no published API reference #294Acceptance criteria
distributions/has an explicit, documented maintenance status (maintained / unmaintained / removed)Related: #90, #97, #124, #125, #155, #216, #258, #268, #278, #287, #57, #161