From: Aleksei Guzev Date: 2001-10-05T16:22:17+09:00 Subject: [ruby-talk:22123] RE: The Windows question still remains... # -----Original Message----- # From: Martin Kahlert [mailto:martin.kahlert@infineon.com] # Sent: 5 ??????? 2001 ?. 12:57 # To: ruby-talk ML # Subject: [ruby-talk:22121] Re: The Windows question still remains... # # # Hi, # # On Fri, Oct 05, 2001 at 11:57:42AM +0900, Aleksei Guzev wrote: # > Intel's C++ compiler "understands" almost everything that VC++ can # > compile. But cygwin provides such things like "noreturn". # It's a good # > hint, but using this word would lead to incompatibility. # # noreturn is no cygwin extension. Every gcc knows of it, thus # it is in cygwin's gcc and in mingw. I you do not want the # compiler to see this, use defines!. (E.g. on Linux, all these # extensions are defined to be empty in the headerfiles for # non-gcc compilers). # # VC++ has the same sort of extensions... # # > I think there is the standard of C++. # > It doesn't matter what compiler will eat my # > text files. My texts should conform to the standard and compiler # > should conform to the same standard. # Yes. Then g++ is the better way to go, because its # standard-conformance is much better than VC++'s. # Unfortunately, that's only true for > gcc-3.*, mingw is based # on gcc-2.95.3 up to now IIRC. # # Standard conformance is only important for sources, ruby # extensions should be *object file compatible*: If you want to # supply ruby extensions, which can be used by anyone (i.e. # from non-developper folks, too) you must make sure, that the # binaries are compatible. There are *no* two C++ compilers, # which produce binary compatible objects! This is by design, # not by accident and caused by the complexity of # C++. Demanding binary compatibility will deny corssplatformness, because no one knows surely what kind of processor do I use ;) If all of you are speaking of binary compatibility I would leave the discussion... # # So, if you want to produce extensions for widespread use, stick to C. # # > When a user wishes get ver-very efficient code he/she would get # > perfect and expensive compiler for his/her platform. If MingW or # > sygwin are not standart that's their problem: there WILL be a good # > free compiler. # # On Windows, there are only 3 free C++ compilers at all # (Borland, gcc and VC++ # -- is Watcom C++?) # None of them conforms completely to the standard IIRC. Note the word "expensive". Good ANSI compliant compiler is worth spending money. Intels' C++ compiler is about $300 or so. For free compilers there could be a "Ruby list of features" the compiler should support. Those features should not fall outside the chosen standard.