On Monday, 15 July 2019 at 12:19:02 UTC, Vladimir Panteleev wrote:

You don't need to move the implementations themselves into core.internal. Adding declarations there for the rt implementations would suffice.

Many of the implementations in `rt/array` are templates, so the entire implementation should be available through object.d, not just declarations.

So is the rest of core.internal.

Please take a few minutes to have a look at the contents of the core.internal package, as well as all the places in object.d where modules from core.internal are already imported.

Would you say that those cases are very unlike the case of this particular change? If so, would you mind explaining how?

In `core.internal`, I see utilities that appear to be intended for use only within runtime, or "privately" imported by Phobos. I do not see implementations for fundamental language features as can be found in `rt`. The code in `rt/array` implementations for fundamental language features, not utilities to be used privately with druntime.

Based on what you and Vladimir have said, I'm even more confident I've made the right decision putting them in `rt`.

I really don't see the series of logical steps one would need to take to reach that conclusion.

"rt can import core, but core can't import rt." makes it pretty clear to me.

Mike


Reply via email to