On Tuesday, 9 April 2019 at 20:45:18 UTC, Alex wrote:
On Tuesday, 9 April 2019 at 18:33:21 UTC, Seb wrote:
Have you considered writing a DIP?

No, because I expect it won't even be considered.

You won't pass review if you don't show knowledge of the existing language, but there's a lot of people who are interested in a few changes.

A few years ago, there was a proposal for a magical `meta` namespace that would call into the compiler for syntax sugar on CT reflection. The old idea was to replace `__traits(X, args)` with `meta.X(args)` - pure syntax change - but you could perhaps revive and expand that as the entry point to your new idea and get some people on board.

I'm skeptical of any reflection library, but compiler changes might be able to change that. The status quo for D's reflection libraries are:

1) weird bugs and/or omissions since the language does not let you express all the function parameter details as return values or local variables.

2) slow compile times (you said your thing was 10 seconds! that's utterly unacceptable)

3) not actually significantly easier to use than language built-ins (if they are actually easier to use at all!)


So any library without compiler changes is, as of today, I believe *impossible* to get right, and getting as close as you can is horribly slow. So, your DIP would necessarily include language+compiler changes.

And the compiler is *already* (almost) fully capable, so changing that needs to show that the change is worth it. Maybe you can do that, even little cosmetic things can indeed be a win, but to write a convincing case here, you'll need to compare and contrast various cases.

Reply via email to