That one last frontend feature to obsolete rebuild

Bill Baxter dnewsgroup at billbaxter.com
Wed Mar 12 20:25:10 PDT 2008


Gregor Richards wrote:
> 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.

I see.  I thought they were just ignored currently.
Now I understand why you require the version(build) around it.

--bb



More information about the Digitalmars-d mailing list