From: Pierre O. <os...@ce...> - 2006-12-08 09:50:05
Attachments:
signature.asc
|
As a result of some cleanup I did to rdpsnd, the old issue of C standards once again surfaced. So I'd like to see how much support I can rally for moving this project into C99 land. The benefits are new features that allows you to write cleaner and safer code (like the update to rpdsnd). It also allows you to be less careful about which features in C you can and cannot use, something that is becoming more and more annoying as the rest of the open source world is moving to C99. The counter-argument is usually that there are old compilers out there that do not support C99. But how long should we support these? At some point we have to say that the C language is defined by C99 and a compiler that doesn't support that is simply broken. And for a standard that is almost 8 years old, that point should have been reached long ago.= For those that are stuck on their old platforms and the vendor isn't doing their job of maintaining their compiler, is it unreasonable to require them to use gcc? As far as I know, gcc is available for all the platforms we rdesktop for. Flame away! Rgds --=20 Pierre Ossman OpenSource-based Thin Client Technology Asbestos underwear tester Telephone: +46-13-21 46 00 Cendio AB Web: http://www.cendio.com |
From: Jay S. <jay...@gm...> - 2006-12-09 06:23:05
|
> For those that are stuck on their old platforms and the vendor isn't > doing their job of maintaining their compiler, is it unreasonable to > require them to use gcc? As far as I know, gcc is available for all the > platforms we rdesktop for. > > Flame away! I was really hoping someone would say something by now :) Oh well, I guess I can. I have yet to see code that can't be made to compile and be 'clean' for most compilers. I work with uiports alot. I can't use gcc in some cases. You're left in the Mercy of the platforms development tools. Lets do this, Cendio can work without pre C99 consideration and I can test others compilers. I do it now for non gcc compilers. g++, bcc32, etc. I also have a slew of patches for visual C and embedded visual C for CE platforms. I think we need to support more compilers not less. Jay |
From: Michael G. <ml...@ze...> - 2006-12-14 09:13:17
|
Hi, On Fri, Dec 08, 2006 at 10:49:48AM +0100, Pierre Ossman wrote: > For those that are stuck on their old platforms and the vendor isn't > doing their job of maintaining their compiler, is it unreasonable to > require them to use gcc? As far as I know, gcc is available for all > the > platforms we rdesktop for. Now I have to throw in my opinion, too: gcc might be available for most or all of our supported platforms, but installing a current version might well be described as interesting. And even if you get gcc installed, you might have reasons to prefer a vendor compiler (for example the SUN Studio compiler produces much better code on SPARC than gcc). As the current change only affected sound support it could be reasonable to disable sound support in configure when an older compiler is found. But even then, the SUN Studio 8 compiler from 2004 would qualify as an old compiler as it no longer can compile rdpsnd_sun.c. This is with the version: cc: Sun C 5.5 Patch 112760-18 2005/06/14 And I believe there is a huge number of such C99 incompliant C compilers still used. Regards, Michael |
From: <as...@ce...> - 2006-12-14 09:50:37
|
On Thu, 14 Dec 2006, Michael Gernoth wrote: > Now I have to throw in my opinion, too: > gcc might be available for most or all of our supported platforms, but > installing a current version might well be described as interesting. > And even if you get gcc installed, you might have reasons to prefer > a vendor compiler (for example the SUN Studio compiler produces much > better code on SPARC than gcc). >=20 > As the current change only affected sound support it could be reasonable > to disable sound support in configure when an older compiler is found. > But even then, the SUN Studio 8 compiler from 2004 would qualify as > an old compiler as it no longer can compile rdpsnd_sun.c. The file HACKING says: "The core protocol stack should be system-independent (i.e. ANSI C only) so that it is easy to port." The term "ANSI C" is a little bit vague, I think it should say "ANSI C89"= =20 or "ANSI C99". Personally, I prefer that we use the same coding standard for more or less= =20 the entire rdesktop project, with the possible exception of the uiports=20 files. And since there are so many compilers out there not supporting C99,= =20 I think we should go with C89. I suggest that the file HACKING is updated= =20 like this: --- doc/HACKING 27 Oct 2006 12:59:38 -0000 1.6 +++ doc/HACKING 14 Dec 2006 09:48:59 -0000 @@ -14,7 +14,7 @@ Structure --------- -The core protocol stack should be system-independent (i.e. ANSI C +The core protocol stack should be system-independent (i.e. ANSI C89 only) so that it is easy to port. This currently applies to the following files: @@ -23,6 +23,11 @@ rdesktop.c +Compiler support +---------------- +The source code should be compatible with ANSI C89. + + RDP resources ------------- http://dev.remotenetworktechnology.com/refdata.htm Regards,=20 --- Peter =C3=85strand=09=09ThinLinc Chief Developer Cendio AB=09=09http://www.cendio.se Teknikringen 3 583 30 Link=C3=B6ping=09Phone: +46-13-21 46 00 |
From: Jay S. <jay...@gm...> - 2006-12-15 04:15:47
|
> I think we should go with C89. I suggest that the file HACKING is updated Can we state that we support C89 and later compilers. There are some things that compile in C89 and not in C99. We should write code that works with either. What is the sound code that can't compile in gcc 2.95? I think its not such a big deal. Jay |
From: <as...@ce...> - 2006-12-15 09:30:04
|
On Thu, 14 Dec 2006, Jay Sorg wrote: > > I think we should go with C89. I suggest that the file HACKING is updat= ed >=20 > Can we state that we support C89 and later compilers. > There are some things that compile in C89 and not in C99. We should > write code that works with either. Good point, I agree.=20 Regards,=20 --- Peter =C3=85strand=09=09ThinLinc Chief Developer Cendio AB=09=09http://www.cendio.se Teknikringen 3 583 30 Link=C3=B6ping=09Phone: +46-13-21 46 00 |