On 11-05-25 06:00 PM, Rafael Ávila de Espíndola wrote:
Yes. And every function call has a check to see if it has to grow the
stack. We can plausibly collapse these two costs into one in some cases.
In cases where we can't, and it's a performance bottleneck, we can offer
some unsafe variant; but you're assuming a particular datapoint without
evidence just as you accuse me of. We don't know it'll be prohibitively
slow any more than we know bounds checking vector accesses is
prohibitively slow. I'm not ok with this argument.
Sorry what am I accusing you of? And no, I don't have a datapoint for
a system that has not been implemented.
Of arguing that the absence of data motivates a particular assumption.
In this case it has to do with yield checking (which, incidentally, we
do have some data on from the work in other JITs, and it's seldom a cost
center).
Elsewhere you seem to be frustrated that in the absence of data to the
contrary, I'm promoting the assumption that M:N (even if it runs 1:1
much of the time) is a safer default than mandatory-1:1. I can't say for
certain which of those scenarios *will* need M:N and how badly it'll
hurt to be without; but I feel like mandatory-1:1 will paint ourselves
into a bunch of potential corners, as I tried to point out in the last
email. So I'm arguing the M:N stance is safer to start.
Or maybe you're not frustrated about that, or hadn't previously
considered those scenarios, and I am just reading frustration into the
argument. Did any of the points I raised in defense of *permitting* M:N
operation sound reasonable?
-Graydon
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev