Proposal: fixing the 'pure' floating point problem.

Jason House jason.james.house at gmail.com
Fri Mar 13 18:17:39 PDT 2009


Walter Bright Wrote:

> While it's a good suggestion, I think there's a fundamental problem with 
> it. Suppose a function in the floatingpoint module calls foo() in a 
> non-floatingpoint module which calls std.math.sin(x). std.math.sin(x) is 
> marked as "pure" in a non-floatingpoint module. So, inside foo(), it is 
> assuming that sin(x) is pure and caches the value, while its caller is 
> manipulating the rounding mode and making repeated calls to foo() 
> expecting different answers.

Maybe I misinderstood, but I thought anything marked module(system) could not call anythimg that wasn't. I assumed this proposal would mean that module(floatingpoint) could not call code that wasn't marked the same way.



More information about the Digitalmars-d mailing list