On Tue, Jul 30, 2013 at 4:08 PM, Jonathan S. Shapiro <[email protected]>wrote:
> 1. Typing support for deep immutability. It would be really useful to know > which subgraphs are deeply immutable and therefore can be accessed > concurrently without any locking at all. It's even possible to imagine > schemes in which phase changes are possible in both directions between > normal and deeply immutable states. This helps a lot in some fork/join > style concurrency, but it's certainly not a cure-all. > I'm intrigued by deep-immutability with easy deep COW semantics, that or STM. Something that enables the simplicity of immutability for concurrency, and the ability to have efficient COW snapshots with roll-forward/back (say for undo). Needs a way to construct cyclic immutable structures though. > 2. Lock labeling (which I sometimes think of as lock regions). ...It seems > mostly possible to document the relationship between locks and the things > they govern by suitable labeling,and to use some form of acquire/release > discipline to ensure that locks are acquired before their associated fields > are sourced or mutated. Separately, it seems straightforward to label those > fields that can only be sourced/sinked by CAS or atomic operations. > Yes, please. It won't handle all cases, but I think a big surface area could be covered. I think this is what Java was trying to do with synchronized methods, but I don't think it is the right pattern. --- Relating a comment you made about difficulty debugging unintended liveliness, debugging concurrency is also a huge issue that could use some brainpower. I read a really fascinating paper once about a concurrency testing framework that presented nice primitives for controlling the interleave patterns of fine grained instructions during test. I think this might be it but my mind is too filled with other stuff to read it and fully verify... http://www.cs.umd.edu/~ayewah/web/pubs/UnitTesting-ASE2007.pdf
_______________________________________________ bitc-dev mailing list [email protected] http://www.coyotos.org/mailman/listinfo/bitc-dev
