Thread overview
Deprecation plan for TypeTuple?
Jan 16, 2020
berni44
Jan 16, 2020
H. S. Teoh
Jan 17, 2020
berni44
Jan 17, 2020
Jonathan M Davis
Jan 17, 2020
MoonlightSentinel
Jan 17, 2020
MoonlightSentinel
January 16, 2020
I know, this question has been asked 4 years ago where the answer was essentially that we should wait some time... Now, what's the current state?
January 16, 2020
On Thu, Jan 16, 2020 at 04:13:31PM +0000, berni44 via Digitalmars-d wrote:
> I know, this question has been asked 4 years ago where the answer was essentially that we should wait some time... Now, what's the current state?

I thought `TypeTuple` already doesn't compile, and you have to use `AliasSeq` now?

Although there's still the ongoing problem of the compiler docs still referring to "tuples", and "AliasSeq" being a real mouthful that people have a hard time understanding without spending a lot of time to learn what it is.


T

-- 
Two wrongs don't make a right; but three rights do make a left...
January 17, 2020
On Thursday, 16 January 2020 at 18:17:03 UTC, H. S. Teoh wrote:
> I thought `TypeTuple` already doesn't compile, and you have to use `AliasSeq` now?

I havn't checked that. I just noticed that std.typetuple still exists and asked myself if it is still needed...

January 17, 2020
On Thursday, January 16, 2020 11:17:03 AM MST H. S. Teoh via Digitalmars-d wrote:
> On Thu, Jan 16, 2020 at 04:13:31PM +0000, berni44 via Digitalmars-d wrote:
> > I know, this question has been asked 4 years ago where the answer was essentially that we should wait some time... Now, what's the current state?
>
> I thought `TypeTuple` already doesn't compile, and you have to use `AliasSeq` now?

Originally, TypeTuple was left in undeprecated, because it was so heavily used and so much code would get deprecation messages if we actually deprecated it. So, we added AliasSeq and told people to switch to using it, but we didn't actually do anything to TypeTuple. We might have removed it from the documentation at some point (I don't recall), but it was never actually deprecated. I don't know how disruptive it would be to deprecate it now.

> Although there's still the ongoing problem of the compiler docs still referring to "tuples", and "AliasSeq" being a real mouthful that people have a hard time understanding without spending a lot of time to learn what it is.

There isn't _any_ name which doesn't have problems. They aren't tuples as tuples are normally defined (e.g. they don't nest), and they can hold a combination of types and values. It's not even entirely accurate that it's a sequence of aliases. No matter what you name it, you have to explain it. AliasSeq was the best of a list of bad names, and it caused fewer bad assumptions than other names like TypeTuple do. So, it was the winner when we decided to rename TypeTuple to try to reduce the confusion.

- Jonathan M Davis



January 17, 2020
On Friday, 17 January 2020 at 13:06:34 UTC, Jonathan M Davis wrote:
> Originally, TypeTuple was left in undeprecated, because it was so heavily used and so much code would get deprecation messages if we actually deprecated it. So, we added AliasSeq and told people to switch to using it, but we didn't actually do anything to TypeTuple. We might have removed it from the documentation at some point (I don't recall), but it was never actually deprecated. I don't know how disruptive it would be to deprecate it now.

std.typecons still has DDOC comments but is hidden from the public documentation (except a note on AliasSeq which we should probably be removed).

But I don't see much value in deprecating/removing TypeTuple because it's implementation just forwards to AliasSeq anyway and hence does not require maintenance/bugfixes.

January 17, 2020
On Friday, 17 January 2020 at 23:49:15 UTC, MoonlightSentinel wrote:
> [...] (except a note on AliasSeq which we should probably be removed).

Nevermind, this comment was requested a few years ago