Modernizing Standard ML of New Jersey: A Status Report
summary
Project modernizes Standard ML of New Jersey by porting to 64‑bit (stable Dec 2019), shrinking the codebase (basis library ~225k LOC, runtime ~25k C + 1.5k asm, compilation manager ~10k), reimplementing the pattern‑match compiler, and adding an LLVM backend: x86_64 + arm64 with bugs that yields ~15–20% faster generated code but can make full-compiler builds ~3× slower; development branch uses yeared numbering (20231) while legacy stays at 110.99.4, and a runtime rewrite to C++17 is underway to improve safety and shrink C++ sources.
AI-written summary · about
chapters (10)
- 0:00SML/NJ modernization intro
- 4:36Original design philosophy
- 10:16Compiler architecture overview
- 13:2364-bit porting motivation
- 16:58Deflinitification and successor ML compatibility
- 18:02LLVM-based code generator
- 20:54MLRISC limitations and LLVM
- 23:41LLVM challenges for SML/NJ
- 26:28Runtime system rewrite
- 30:23Future plans
related talks
17mA New Match Compiler for Standard ML of New Jersey
29mMsML: A Proposal for a successor ML
31mRange-Analysis-Based Optimization for SML/NJ
21mFlow-Analysis-Based Closure Optimization
48mCross-Domain Compilation: Exploiting Synergies Across the CS Community
29mLunarML: From Standard ML to Scripting Languages
34mModular Storage Mode Analysis
38mFireside chat
