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

Reply via email to