On 8 April 2013 23:01, John Colvin <john.loughran.colvin@gmail.com> wrote:
On Monday, 8 April 2013 at 12:39:58 UTC, Manu wrote:
On 8 April 2013 21:53, Iain Buclaw <ibuclaw@ubuntu.com> wrote:

On 8 April 2013 12:41, deadalnix <deadalnix@gmail.com> wrote:

On Monday, 8 April 2013 at 09:41:52 UTC, Iain Buclaw wrote:

It uses some type information, eg:

const/immutable/wild  -> qualified const.
shared -> qualified volatile.
shared + const/wild -> qualified const/volatile.


const/wild can be muted via aliasing. I'm not sure how GCC's backend
understand const, but this seems unclear to me if this is correct.


GCC's backend is pretty much C/C++ semantics.  So the const qualifier is
shallow, and does not guarantee that no mutations will occur.


But D makes no further guarantee. I don't see how const in D is any
different than const in C++ in that sense? That's basically the concept of
const, it's not a useful concept for optimisation, only immutable is.

D const is transitive, surely that makes a difference/presents an opportunity?

No, I think that just makes it 'safer', or as many might say, "more annoying" ;)