And those rules aren't really type aware... as far as I can tell it wont split the int/float/etc args into separate register types... Multiple return values via tuples are not really addressing the problem, and miss the point.
On 4 January 2012 01:13, Sean Kelly <s...@invisibleduck.org> wrote: > Tuple is a struct, so it's returned according to those rules. > > Sent from my iPhone > > On Jan 3, 2012, at 3:09 PM, Manu <turkey...@gmail.com> wrote: > > Does returning a tuple give any ABI guarantees? How can I be sure multiple > return values will return in consecutive registers? > What if the return types are of different types, a float and an int... can > I expect each to return in their own register types respectively? > This needs to be defined and loosely guaranteed (within reason) so people > can expect multiple return values to behave as expected on any architecture. > > On 4 January 2012 01:02, Sean Kelly <s...@invisibleduck.org> wrote: > >> It's easy enough with Tuple, though better language support would be nice. >> >> Sent from my iPhone >> >> On Jan 3, 2012, at 2:40 PM, Manu <turkey...@gmail.com> wrote: >> >> > Why doesn't D support multiple return values like many other modern >> languages? >> > >> > Clearly the same syntax as Go wouldn't work, but I'm sure a neat and >> tidy syntax could be invented? >> > I constantly want to be able to return x,y from a function, or >> retVal,errorCode and I want the language to make some rough ABI guarantees, >> like multiple return values will be returned in consecutive registers, >> rather than a single return value register like C/C++, avoiding the need to >> pass output addresses through ref function parameters (slow!). >> > >