On Tuesday, 26 December 2017 at 13:27:38 UTC, RazvanN wrote:
On Thursday, 21 December 2017 at 03:31:16 UTC, Joakim wrote:
On Wednesday, 20 December 2017 at 18:21:33 UTC, Andrei Alexandrescu wrote:
A tool (call it depend - heh) to automate that would be awesome. For example, this run would make all imported names explicit:

depend --explicit *.d

This run would push all imports down to the innermost scope of usage:

depend --pushdown *.d


Andrei

I'm on it. I tried using a version of Seb's frontend library yesterday but with the standard dmd main and tried running it on std.stdio, but it asserted in asmSemantic because of an asm block somewhere in druntime, so I'm back to using a tweaked full dmd with the backend simply disabled again:

I ran into the same issue. The problem was that currently the frontend doesn't set the version identifiers. There's a PR which tries to fix it [1], but if you want to go back at using the compiler library via Seb's interface you just have to call this method [2] in the initialization step.

I doubt that's it, as I noted I was running the standard dmd main from mars.d. More likely it tries to run asmSemantic on an asm block in core.atomic and asserts because that function's stubbed out when there's no backend.

Anyway I am working on this sort of tool also, so maybe we can unite our efforts.

As in the `depend` import-scoping tool that Andrei wanted above? If so, that'd be great, as you know the frontend much better than me. I've been meaning to investigate how to extract a scope tree from the frontend, as I've never done much with dmd.

Let me know how far you've gotten and what you want it to do initially, and maybe I can pitch in with your effort.

Reply via email to