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

Reply via email to