Conversation

The punchline to this sad story is that there’s already enough machinery to express the fast & ubiquitous cases via implicits, and rust has no more (cognitive) room in its static type system for more degrees of polymorphism to handle the exceptional cases.
2
4
Yeah I’d take you up on that (if not for the big ocean in the way)! There’s definitely a cost to zero cost. I’m also interested to see if we can define what people mean by ‘zero cost’ more precisely. had some interesting ideas on the Pikelet Gitter actually.
1
2
I don't think it's a very meaningful term tbh. It's close to a definition but if you're going to allow translation only "as good as if by hand" you get into a weird place: by hand an author would write different code, not the numerous as-if-by-hand instances the compiler emits.
2
2
I agree it’s not per se terribly meaningful, but I need a similar concept as a touchstone for thinking about my language design—what are the criteria by which I judge perf-sensitive features?—so I need a working definition that does mean something in the context of that design
1
1
There’s a subtlety, I think, between “would write” (willingly) and “could write” (conceivably, but it’s tedious and error-prone)—it’s more the latter that I care about: automatic rearrangement of the higher-level code I want to read & write into the lower-level code I want to run
1
1
Replying to and
If you're willing to talk about compilation time or other not-just-runtime-microbenchmark costs in your cost model (hello ABI stability / version-stable separate compilation! hello user cognitive load / predictability!) the picture gets _much_ murkier.
2
3
Yeah it's an interesting landscape. I bring it up because often 'zero cost' stuff sacrifices it. I'm just interested in having a healthier, more honest design discussion.
1
Show replies