That one last frontend feature to obsolete rebuild
Gregor Richards
Richards at codu.org
Wed Mar 12 19:44:45 PDT 2008
Bill Baxter wrote:
> Gregor Richards wrote:
>> Believe it or not, I'd really like to obsolete rebuild. I'd love to
>> have a tiny little script that just reads the output of [g]dmd -v and
>> gets the list of files (and everything else) from that. At this point,
>> I'm very close to being able to accomplish this feat, as the
>> recent(ish) addition of outputting every file that's imported got my
>> 90% of the way there, but there's one problem. rebuild supports
>> nonstandard pragmas, and the compiler chokes on them.
>>
>> I would like to see a flag (-print-unsupported-pragmas or something
>> else obscure, doesn't need to be short or simple) that changed the
>> frontend's default behavior from choking on unrecognized pragmas to
>> printing them out with the verbose output, e.g.:
>> pragma link "(argument to the pragma)"
>>
>> Clearly this wouldn't work for pragmas which wrap declarations, but
>> for simple pragmas it would - and simple pragmas are all I need, and
>> probably all that most frontend-extending tools would need. With this
>> one, comparably simple change, I could scrap rebuild and write a
>> simple script that would be incapable of becoming outdated. Heck, if
>> you'd like, I could even write it and submit a patch :)
>
> Sounds great to me. I was pondering just the other day why Rebuild
> hasn't switched to using the -v output rather than embedding the entire
> DMD front end. So pragmas are the only thing, huh?
>
> One little thing -- I'd say just enhance -v output all pragmas. No new
> switch. Tools that don't need them will just ignore them, tools which
> do can grep for the ones they care about.
>
> --bb
I don't quite agree, because IMHO dying on unrecognized pragmas is a
good thing. e.g. I use some GCC property, then compile with DMD, and
maybe I have to do something special since that pragma is unsupported.
I'd rather have it tell me so I can go "d'oh! Needs version (GNU)" than
just silently ignore it.
- Gregor Richards
More information about the Digitalmars-d
mailing list