4 ms·
The mistake there is a classical example of why (software) transactional memory is valuable. Double linked lists are trivial in single core execution, need PhD
by thesz 10mo ago
The mistake there is a classical example of why (software) transactional memory is valuable. Double linked lists are trivial in single core execution, need PhD level understanding of everything in multicore execution and become trivial again in multicore execution with (S)TM.
Rust has troubles with STM because it lacks anything resembling effect system. Most probably, this will not be fixed.
- dlahoda 10mo agomay you share links to read or vote to understand better and push for?
- thesz 10mo agohttps://timharris.uk/papers/2005-ppopp-composable.pdf https://timharris.uk/papers/2005-ppopp-composable.pdf - Composable Memory Transactions. Page 13 discuss why imperative approach like Rust's may fail in delivering transactional memory and why arbitrary-side-effect-free transactions in Haskell are, in fact, very composable due to effects separation inside STM and IO monads.