September 10, 2007
Russell Lewis Wrote:

> Walter Bright wrote:
> > What we are trying to achieve:
> > 
> > a) utility for functional programming
> > b) better modularity by self-documenting interfaces better
> > c) be able to treat reference types as if they were value types (i.e.
> > strings should behave to the user like value types, even though they are
> > references)
> 
> Is there a way to express (for a pointer passed as a function parameter) "the callee is allowed to modify this object through the pointer, but the caller ensures that no other code will be modifying it at the same time"?   Sort of a "you have exclusive write access" modifier?  Is that a common enough case to even support?
> 
> Russ

That's an interesting concept. From the functions point of view it would compile as if it was invariant but the invariantness doesn't have a lifetime beyond the function. I think its slightly off topic here though, multi-threading / IPC is an entirely different kettle of bananas. How do you even declare whether a variable is shared or thread-local at the moment? This is only indirectly related to the const concept. What we have hear is "shared locked" versus "shared volatile" versus "local".

Bruce.