Will the D GC be awesome?

Walter Bright newshound1 at digitalmars.com
Thu Oct 4 18:51:29 PDT 2012


On 10/3/2012 11:50 PM, Jacob Carlborg wrote:
> On 2012-10-04 01:33, Alex Rønne Petersen wrote:
>
> > Use tuples. Multiple return values (as far as ABI goes) are impractical
> > because every major compiler back end (GCC, LLVM, ...) would have to be
> > adjusted for every architecture.
>
> Why can't it just be syntax sugar for returning a struct?
>

That's really the only credible way. A tuple should be an anonymous 
struct with the fields being the elements of the tuple.

The main issue for me for having perfect tuples is that the layout of 
fields in a struct is different from the layout of parameters being 
passed on the stack to a function. Ideally,

    struct S { int a; int b; }
    void foo(int p, int q);
    S s;
    foo(s);

should work (setting aside for the moment that they are different 
types). Unfortunately, the variety of function calling ABIs makes this 
impractical.

So tuples in a language like D that must conform to external ABIs is 
that tuples will always have some rough edges.


More information about the Digitalmars-d mailing list