ProtoObject and comparison for equality and ordering

Mike Franklin slavo5150 at yahoo.com
Fri May 17 00:30:41 UTC 2019


On Thursday, 16 May 2019 at 14:41:09 UTC, Steven Schveighoffer 
wrote:

> That's beside the point. You shouldn't call a non-const 
> function on something that is const *or* immutable. Which is 
> what druntime is currently doing.

I'd be interested in knowing more about this.  Would you be 
willing to show me the specific function where this is occurring?

I've been working over the past few years to learn how to convert 
many runtime hooks to templates, and in that process I've 
discovered that the runtime hooks are not abiding by their 
contracts.

The runtime hooks are added to the binary in e2ir.d which is 
after the semantic phase, so purity, safety, throwability, etc... 
is not enforced. For example, code in a `pure` function is 
lowered to an impure runtime hook, and the compiler doesn't catch 
it. Is that what's going on here as well?

Mike




More information about the Digitalmars-d mailing list