Outperforming Imperative with Pure Functional Languages
summary
A new language called rock compiles pure functional code to binaries with LLVM, unboxed values and static reference counting and uses opportunistic in-place mutation so immutable code can compile down to efficient in-place updates. Migration at NoRedInk shows Haskell services run about 10x faster than Ruby. Benchmarks sort 10 million numbers over 100 runs: rock’s pure functional quicksort outperforms JavaScript, Haskell, Java and Go (behind only C++), demonstrating concrete compiler tricks and memory strategies that deliver real speed.
AI-written summary · about
chapters (16)
- 0:00Start
- 3:23EXECUTION MODEL
- 5:04MEMORY MANAGEMENT
- 6:11Static Refcounting
- 7:25LANGUAGE OVERHEAD
- 8:40SIDE EFFECTS
- 10:22OVERHEAD OF WRAPPED EFFECTS?
- 17:11IMPERATIVE HASKELL
- 19:37TWEAKS AFFECT OVERHEAD
- 20:36INTEROP
- 21:15OPTIMIZERS
- 22:08TAIL-CALL OPTIMIZATION
- 23:55OPPORTUNISTIC IN-PLACE MUTATION
- 24:43STATIC IN-PLACE DETECTION
- 29:51LLVM OPTIMIZER
- 31:31Performance Considerations
related talks
14mAchieving High-Performance the Functional Way - A Functional Pearl on Expressing High...
41mAn Introduction to Functional Imperative Programming in Flix
48mOne VM To Rule Them All
34mLanguage Design Where Paradigms Meet
35mLet's make a functional language!
44mKeynote
44mRethinking compilers with live coding
57mWhy Programming Languages Matter
