Larry Wall wrote:

my hope is that we can delegate locking entirely to the innards of
the implementation and never mention it at all on the language level.


Hmm, sounds to me analogous to hoping that type inference will avoid the need to expose type-annotations at the language level (synchronization constraints can be seen as an extension the type system -- that is, the formal theory that defines what it means for a program to be well behaved).

Even if it is possible to infer everything automagically, it is still useful for the user to reinforce the inference with explicit, precise, declarations: makes things faster, and avoids pathological corner cases. Plus it catches errors. Which I guess is why perl6 provides a user-visible explicit typing system.

Even if locking itself remains under-the-hood, the constraints that imply the locking need to be user-visible. S03 says that a hyperoperator is a promise that the operator is parallelizable; but that promise implies that the author has taken care of any sync issues in the side effects. It cannot simultaneously be both a promise that the code is safe, and a demand that that compiler add locking to make it safe.

Reply via email to