You might still want some destination-passing-argument annotation so the constructor can tell the caller "evaluate your arguments into these addresses", so you can compose the in-place construction
-
-
Is that what you meant by "ABI on the callee side"?
2 replies 0 retweets 0 likes -
Yeah you can add explicit caller syntax to set the pointer if you really want, but the callee's implementation shouldn't have to explicitly care about placement new. We should just optimize it for you. Can add callee syntax to "get" the pointer later if we're bad at optimizing.
2 replies 0 retweets 2 likes -
More radically: return-ptr get/set should be a "maybe it worked, or maybe it's just a temp buffer we'll copy from at the end, you don't know!", similar to materializeForGet/Set, otherwise you can't ever return in registers. Probably based on a simple heuristic like value size?
1 reply 0 retweets 3 likes -
The x64 sysv abi conveniently gives us an algorithm for this :)pic.twitter.com/4foMCqlmyO
1 reply 0 retweets 3 likes -
I’m biased but you should totally use Swift’s instead. Simpler chunking model, more argument and return registers
1 reply 0 retweets 2 likes -
And privileging registers for self and Result return tag would probably be a code size win for Rust as well as Swift
1 reply 0 retweets 1 like -
yes, I have long whispered into the ears of the compiler devs that ()-> Result<T, U>'s ABI should be (*T, *U) -> bool for large payloads, but alas, they don't have the resources/expertese to work on ABI stuff much
4 replies 0 retweets 8 likes -
I thought open source meant we had unlimited resources
1 reply 1 retweet 8 likes -
it's the nature of the resources that's the problem. still working on the alchemic process to transmute hundreds of randos yelling at you into llvm patches
1 reply 2 retweets 18 likes
What if cryptocurrency but instead of a blockchain you spend people's opinions on the await syntax
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.