4 ms·
The funniest thing is that to compile Rust, enabling various compiler features (like borrow checker etc), the code has to be transmuted into non-mutable one Sin
by p_l 2y ago
The funniest thing is that to compile Rust, enabling various compiler features (like borrow checker etc), the code has to be transmuted into non-mutable one Single Static Assignment form :V
- nequo 2y agoAnd in the functional world, Lean 4 achieves language level support for local mutation, early return, etc. in the same way, by converting it into non-mutating code: https://dl.acm.org/doi/10.1145/3547640 https://dl.acm.org/doi/10.1145/3547640
- p_l 2y agoIn some ways, CPS as compilation target already went that way. Sure, ultimately the code mutates values in place, but the specific actions are modeled as pure operations