Jason House wrote:
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.
No, all system means is no checking is done for safe mode, even if the
compiler switch says to.
I assumed this proposal would
mean that module(floatingpoint) could not call code that wasn't
marked the same way.
If so, it couldn't call any library functions.