January 05, 2019
On Sat, Jan 05, 2019 at 09:49:58PM +0000, Seb via Digitalmars-d wrote:
> On Saturday, 5 January 2019 at 21:12:54 UTC, Manu wrote:
> > So, druntime has core.internal.traits where a bunch of std.traits have
> > been mirrored to support internal machinery within druntime.
> > This is clear evidence that a lot of these traits are really
> > super-critical to doing basically anything interesting with D.
> > I have experience with no-phobos projects in the past where I've been
> > frustrated that I had to mirror all the traits I needed manually.
> > 
> > [...]
> 
> I would go even one step further and move everything and just alias things in std.traits, s.t. no breakage happens.

I concur!  We've been adding ugly nasty hacks to druntime, or writing code in circumlocutous ways, for far too long now, all because certain basic traits happen to be in std.traits and it's verboten to import Phobos from druntime.  It's time to revisit that decision.  The more complex traits should remain in Phobos in order not to complicate druntime too much, but the basic ones needed also in druntime should moved into druntime, instead of copy-pasta or roll-your-own in druntime.


T

-- 
It's amazing how careful choice of punctuation can leave you hanging:
January 05, 2019
On Sat, Jan 5, 2019 at 2:04 PM H. S. Teoh via Digitalmars-d <digitalmars-d@puremagic.com> wrote:
>
> On Sat, Jan 05, 2019 at 09:49:58PM +0000, Seb via Digitalmars-d wrote:
> > On Saturday, 5 January 2019 at 21:12:54 UTC, Manu wrote:
> > > So, druntime has core.internal.traits where a bunch of std.traits have
> > > been mirrored to support internal machinery within druntime.
> > > This is clear evidence that a lot of these traits are really
> > > super-critical to doing basically anything interesting with D.
> > > I have experience with no-phobos projects in the past where I've been
> > > frustrated that I had to mirror all the traits I needed manually.
> > >
> > > [...]
> >
> > I would go even one step further and move everything and just alias things in std.traits, s.t. no breakage happens.
>
> I concur!  We've been adding ugly nasty hacks to druntime, or writing code in circumlocutous ways, for far too long now, all because certain basic traits happen to be in std.traits and it's verboten to import Phobos from druntime.  It's time to revisit that decision.  The more complex traits should remain in Phobos in order not to complicate druntime too much, but the basic ones needed also in druntime should moved into druntime, instead of copy-pasta or roll-your-own in druntime.
>
>
> T
>
> --
> It's amazing how careful choice of punctuation can leave you hanging:

Great! So, who's gonna do it?
I'm already overloaded with these sorts of refactors >_<