compile server design document

Devang Patel dpatel@apple.com
Thu Feb 27 23:04:00 GMT 2003


Thanks for taking time to write detailed document. It helps to 
understand more about compile server approach.

- "This assumes that (normally) a header file consists mainly of 
declarations (including macro definitions), and the "meaning" of these 
declarations does not chnge across compilations."

In C++ headers, inline function definitions are everywhere. But even 
<stdio.h> brings in this little jewel

static __inline int __sputc(int _c, FILE *_p) {
         if (--_p->_w >= 0 || (_p->_w >= _p->_lbfsize && (char)_c != 
'\n'))
                 return (*_p->_p++ = _c);
         else
                 return (__swbuf(_c, _p));
}

- Do you have any info/data/rough estimate about fragments per header 
for popular headers like stdio.h, iostream and Carbon.h ?

- "Depending on lack of a macro bindings" issue. In C++, namespaces 
also creates similar problem.

- "Types defined in multiple locations". Do you plan to detect and 
report violation of extended single one-definition rule?

- And last question is a implementation detail. Any idea how client 
will know if server went in infinite loop or an ICE?

Thanks,
-Devang



More information about the Gcc mailing list