tuple not part of core language

Nick Treleaven nick at geany.org
Tue Jan 20 17:54:56 UTC 2026


On Tuesday, 20 January 2026 at 13:43:02 UTC, libxmoc wrote:
> Timon's attempted PR did try to add tuples to core D,

Do you have a link? I don't see anything on 
https://github.com/dlang/dmd.

> but it still pulled in runtime library code - that's exactly 
> the problem. A language feature that depends on library code 
> violates the clean separation: it's either core or library, not 
> both. I hope it won't be accepted, tuples should be native to 
> the language, meaning it should not depend on runtime code, the 
> compiler should support that by default, just like `struct`.

Tuples could be zero-library, but why do you think that is a 
significant benefit? A druntime Tuple wouldn't require GC (except 
if instantiating `toString`) so it should work with any custom 
runtime, it should be only a struct template (and a factory 
function template), no library to link against. And it would be a 
lot of extra compiler complexity to have zero druntime 
dependencies. Lowering language constructs to druntime means less 
bugs and a less complex compiler, which is itself good for 
correctness. Plus easier to extend if needed.

People have in fact been changing druntime hooks into templates 
so that the compiler has fewer special cases and the templates 
are more capable than the compiler was, because they are easier 
to work with. Using a Tuple template is consistent with that.


More information about the Digitalmars-d-learn mailing list