[boost] Permanently retire VC++ 6?
-
Für alle die immer noch mit dem VC++ 6 rumgurken oder ihn gar weiter empfehlen (Sprüche wie "Besorg dir die VC++ 6 Autorenversion..." sind hier im MFC-Forum tatsächlich noch an der Tagesordnung!), hier News von der Boost-Front:
In der Developer Mailingliste von Boost gibt es zur Zeit ein Topic namens "[boost] Permanently retire VC++ 6?" in dem diskuttiert wird, wie und welche Compiler vom Boost Team nicht mehr unterstützt werden. Soll heißen, es wird zukünftig nicht mehr allen Compilern Beachtung geschenkt, wie es bisher der Fall war.
Aktueller Stand: nicht nur der VC++ 6, sondern auch der VC++ 7.0 und die Borland Compiler werden mit dem nächsten Release von Boost wohl nicht mehr unterstützt. Wenn eine Boost-Lib auf den Compilern läuft, dann nur noch aus Zufall.
Von den MS-Compilern wird zukünftig nur noch Version 7.1 (2003er) und neuer untertützt werden. Borlands Compiler sollen wohl alle nicht mehr unterstützt werden.
Im Dezember soll ein neuer Borland Compiler erscheinen, diesen will man untertützen, wenn er sich besser an den ISO-Standard hält.
So, wer jetzt immer noch nicht auf einen neuen Compiler umsteigt, dem ist nicht mehr zu helfen.
-
Amen.
-
Und welche Compiler werden sonst noch unterstützt? Intel, g++ und ...?
-
Wer boost kennt, weiß das sehr viele Compiler unterstützt werden. Aber so langsam müssen die alten Schinken raus, sonst sind die Boost-Entwickler mehr mit #ifdef's für Compiler-Anpassungen beschäftigt als mit der eigentlichen Boost-Entwicklung.
Welche Compiler unterstützt werden, hängt vom Entwickler und von den Testern ab. Microsoft, HP u.a. stellen den Boost-Team ihre Compiler kostenlos zur Verfügung, so das die immer dabei sind. g++ hat eigentlich fast jeder Boost-Entwickler, da kostenlos, so das dieser auch immer mit in den Test-Sessions mit dabei ist.
Welche Compiler beim Test dabei sind, kann man in den Summaries der autom. Test-Sessions sehen.
http://boost.sourceforge.net/regression-logs/Ein Beipsiel wäre z.B. der Test der Graph Lib:
http://engineering.meta-comm.com/boost-regression/CVS-HEAD/developer/graph.htmlDa sieht man, das die Tests für msvc (VC++6.0) schon garnicht mehr durchgeführt werden. Und das z.B. der MingW fast in allen Graph Tests scheitert. Der Intel 9 Win32 Compiler hat alles erfolgreich bestanden. Wird also auch unterstützt.
-
Sag das mal meinen Bossen, ich gurke hier immer noch mit dem 6.0er rum, und keiner will mich erloesen ^^
Problem iss wohl, dass sich an der ATL 3.0 zu 4.x oder so einiges getan hat, was ne menge aufwand bedeutet. Glaub ne menge Makros ham sich geaendert.
Also nich jeder der den 6.0er hat, hat auch die Wahl ...
Iss aber eigentlich auch gar kein problem, weil die alten versioen der boost werden immer mit dem 6.0er noch laufen. Nur von den neusten features werd ich ned provitieren koennen ....privat nehm ich natuerlich den gcc ^^
Ciao ...
-
Als Argument für deine Chefs: vor zwei Monaten hat MS den offiziellen Support für den VC6 eingestellt!!! Zu Hause kann ich auf Wunsch noch mal den Link zur offiziellen Meldung raussuchen.
Die ATL hat sich tatsächlich geändert, zum positiven. Auch die MFC hat ein paar Änderungen, z.B. mußte ich beim Wechsel auf MFC7.1 eine der CString-Methodenaufrufe anpassen. War aber keine heiden arbeit. Weiterhin hat man endlich auch mal auf Templates in der ATL und MFC gesetzt. Immer meckern alle über die MS-Libs, jetzt macht MS langsam aber sich positive Änderungen dran, ist es auch nicht richtig.
Wer noch mit der 6er Version arbeiten _muß_, kann natürlich weiterhin die älteren Boost-Versionen benutzen. War auch ein Argument der Boost-Entwickler, weil ein paar 6er Benutzer sturm gelaufen sind. Aber die Main-Developer von Boost haben gesagt, das es sie zuviel Zeit und somit Geld kostet. Und das wollen sie nicht mehr investieren, da sie gemerkt haben, das sie keine neuen Boost-Libs und Boost-Features in letzter Zeit entwickeln können, obwohl sie wollen. Aber sie sind nur noch mit Hacks und #ifdefs beschäftigt. Das soll jetzt endlich mal eingeschränkt werden, in dem man endlich mal die schlechten Compiler nicht mehr supported.
-
Wird auch Zeit. Die Unterstützung von Krüppelcompilern kostet einfach nur Zeit und verkompliziert das Design einiger Boost Teile. Wer noch VC6 oder BCB benutzt hat wohl offensichtlich eh kein interesse an richtigem C++ :p Und Legacy Code ist ja eh eine andere Geschichte.
-
Hier mal was aus der Mailingliste, wo ich mich wirklich frage, wieso Boost überhaupt funktioniert.
Bo Persson schrieb:
It may save us from code looking like this (is_reference.hpp):
#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_reference,T,false) BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_reference,T&,true) #if defined(__BORLANDC__) && !defined(__COMO__) && (__BORLANDC__ < 0x600) // these are illegal specialisations; cv-qualifies applied to // references have no effect according to [8.3.2p1], // C++ Builder requires them though as it treats cv-qualified // references as distinct types... BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_reference,T& const,true) BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_reference,T& volatile,true) BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_reference,T& const volatile,true) #endif #if defined(__GNUC__) && (__GNUC__ < 3) // these allow us to work around illegally cv-qualified reference // types. BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_reference,T const ,::boost::is_reference<T>::value) BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_reference,T volatile ,::boost::is_reference<T>::value) BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_reference,T const volatile ,::boost::is_reference<T>::value) // However, the above specializations confuse gcc 2.96 unless we also // supply these specializations for array types BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,unsigned long N,is_reference,T[N],false) BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,unsigned long N,is_reference,const T[N],false) BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,unsigned long N,is_reference,volatile T[N],false) BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,unsigned long N,is_reference,const volatile T[N],false) #endif #else
where there is plenty of workarounds, but no real C++ code in sight.
This is really more of a Boost specification language than standard
C++. If we skip all of the "terribly nonstandard" compilers, we can
also remove most of this kind of code.
-
VC++ 6 wurde programmiert von Fricklern für Frickler.
-
Artchi schrieb:
Für alle die immer noch mit dem VC++ 6 rumgurken oder ihn gar weiter empfehlen (Sprüche wie "Besorg dir die VC++ 6 Autorenversion..." sind hier im MFC-Forum tatsächlich noch an der Tagesordnung!), hier News von der Boost-Front:
Na komm, an der Tagesordnung nicht gerade^^ Seit dem 7. November ist eine andere Empfehlung an der Tagesordnung