Usage of ANSI-C |const| in X11 code...
Adam Jackson
ajax at nwnk.net
Fri Mar 25 13:49:03 PST 2005
On Friday 25 March 2005 16:12, Roland Mainz wrote:
> Adam Jackson wrote:
> > Can anyone even name a compiler shipped in the last ten years for any
> > major operating system that didn't include ANSI C support?
>
> AFAIK no new operating system (but there are still a couple of companies
> out there who have to support their old stuff... ,-/)
Life is hard for those companies. They should offer free upgrades to their
customers who are still using compilers older than X itself for having been
so doggedly loyal all these years.
Also I hear there's a very good compiler that implements c89 and much of c99
as well. It's supported on many platforms, and is even free software:
http://gcc.gnu.org/
I think one or two of the X developers might even be using this as their
primary compiler. ;)
If c89 was effectively required in 6.3, as Alan said, then I don't see any
reason to move backwards.
> > It's kind of like the register keyword. If it makes you feel better, you
> > can add it to your declarations, but it's really not going to change
> > anything.
>
> AFAIK on some platforms (SPARC comes in mind) it makes a huge difference
> as values are passed in registers (unless all registers are used up) and
> not via the stack (and no stack version is provided).
Yes, this is true on x86 too. However the register keyword has nothing to do
with function calling conventions.
> > If we find performance-critical code where inlining makes a difference
> > for a given compiler, we should handle that case-by-case, because
> > heuristics differ and what's fast in gcc may be slow in sun c.
>
> My point with using |inline| was more to replace some of the very ugly
> #define macros with |inline| functions (|static inline| to be exactly)
> to give the compiler better ways for type checking, the optimizer a way
> to analyse (e.g. profiling) the code correctly (I am looking here at Sun
> Workshop's XIPO option which allows the optimizer to operate application
> wide in one step (e.g. the optimizer can inline&&optimize over all
> source files in one step (which gives nice performance boosts when this
> step is combined with profile-feedback))) and make the code more
> readable, too.
That sounds reasonable.
- ajax
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg/attachments/20050325/3f5a44b0/attachment.pgp>
More information about the xorg
mailing list