- From: Andrew Fedoniouk <news@terrainformatica.com>
- Date: Thu, 01 Nov 2007 20:49:22 -0800
- To: Philip Taylor <pjt47@cam.ac.uk>
- CC: public-html@w3.org
Philip Taylor wrote: > > Andrew Fedoniouk wrote: >> Each C/C++ compiler has its own vendor/version identifier. No one >> known compiler is pretending to be another one. > > The Intel C++ Compiler, when on Windows, pretends to be Microsoft Visual > C++. It defines the _MSC_VER macro, and has command-line switches to > emulate the bugs/behaviour of VC++ 6.0/7.0/7.1/8.0. It has to do that so > that existing VC++ programs can be ported to ICC easily. Oh, thanks for that. "Exceptions are only emphasize rules" (I do not remember who said that). > > The same compiler on Linux pretends to be GCC by defining __GNUC__, for > the same reasons. It has to implement lots of GCC-specific extensions to > C++, in order to be useful in a world where many programs rely on those > non-standard features. > > That sounds like quite a pain for Intel and for anyone else who wants to > write a compiler, so it may not be the best model to emulate. It helps > authors in the short term since they can write GCC-specific code and > MSVC-specific code and get the right behaviour on each compiler, but it > hurts compiler developers in the longer term since they can't implement > pure standard C++ without breaking lots of existing code. > This simply highlights the fact that this compiler can emulate behavior of both. If it *really* can emulate 100% of nuances then why not? I see no problems in such mimicry and respect marketing backgrounds of such decisions. Back to versioning model per se. I think that model should be built by using module names and their versions (not UA names): @has module("paged-media") { } @has module("color", 2.0) { } This way we can build applications that support latest features and fall back gracefully for cases when UA is not supporting some particular feature set. This is far from only "UA A vs UA B" kind of things but about modularity in general. Think about Desktop and Mobile profiles of HTML and CSS. In reality particular UA may support Mobile and some modules from Desktop version. I mean that device (and software on it) can be something in between of Desktop and Mobile. And versioning system shall allow to support such diversity. -- Andrew Fedoniouk. http://terrainformatica.com
Received on Friday, 2 November 2007 03:48:52 UTC