Multiple return values

Manu turkeyman at gmail.com
Tue Jan 3 15:17:53 PST 2012


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 <sean at 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 <turkeyman at 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 <sean at 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 <turkeyman at 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!).
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20120104/bec3cd2f/attachment.html>


More information about the Digitalmars-d mailing list