Visual Studio 2005, 2008 und 2010 hat schlechte Compiler



  • Denn keiner von denen beherrscht bis jetzt C99 annähernd vollständig.

    VS2010 kam letztes Jahr heraus und nach 11 Jahren seit dem die Specs zu C99 draußen sind, sollte es ein Compilerentwickler eigentlich gebacken kriegen, C99 konform zu werden.

    MS suckt da mal wieder gewaltig.



  • Heißt ja auch Visual C++ und nicht Visual C.



  • Dann schlag eine Alternative vor, die besser ist. Alles schlecht zu reden bringt die Compiler auch nicht weiter.



  • Was Konformität angeht, sowohl bei C als auch C++, ist GCC wesentlich besser.

    Trotzdem finde ich Visual Studio als Gesamtpaket OK. Wenn man dagegen nur den Compiler & Optimizer betrachtet ... sieht Visual C++ (leider) ziemlich alt aus gegen GCC.

    ps: was Visual C++ weiter bringen würde, wäre, wenn MS gemeldete Bugs fixen würde, anstatt (sehr) viele Bug-Reports mit "tut leid, nicht wichtig genug für das nächste Release" zu schliessen. Bzw. wenn sie sich wenigstens bei der übernächsten Release um diese Bugs kümmern würden. Was aber meistens nicht passiert. 😞



  • VS = schlecht schrieb:

    Denn keiner von denen beherrscht bis jetzt C99 annähernd vollständig.

    Liegt daran dass es keiner versucht. Offiziell heißt es dass die Nachfrage einfach nicht gegeben ist. Und das glaub ich sofort, wer verwendet schon C wenn er C++ verwenden kann 😕

    hustbaer schrieb:

    Was Konformität angeht, sowohl bei C als auch C++, ist GCC wesentlich besser.

    Soweit ich weiß sind die beiden ziemlich gleich auf was Standardkonformität angeht. Ein paar Macken haben beide aber im Großen und Ganzen sind sie relativ konform. Hier gibts eine Liste mit den Abweichungen wenns interessiert.

    hustbaer schrieb:

    Wenn man dagegen nur den Compiler & Optimizer betrachtet ... sieht Visual C++ (leider) ziemlich alt aus gegen GCC.

    Das ist mir neu. In allen Benchmarks die ich bisher so gesehen hab liegen MSVC und GCC meist gleich auf.



  • dot schrieb:

    Das ist mir neu. In allen Benchmarks die ich bisher so gesehen hab liegen MSVC und GCC meist gleich auf.

    Also was die Funktion strtol() angeht liegt MSVC sogar weit vorne. 🙂



  • dot schrieb:

    hustbaer schrieb:

    Was Konformität angeht, sowohl bei C als auch C++, ist GCC wesentlich besser.

    Soweit ich weiß sind die beiden ziemlich gleich auf was Standardkonformität angeht. Ein paar Macken haben beide aber im Großen und Ganzen sind sie relativ konform. Hier gibts eine Liste mit den Abweichungen wenns interessiert.

    Hihi, erwischt. Ich muss zugeben, ich kann nicht exakt einschätzen wie konform GCC wirklick ist. Ich lese nur sehr sehr selten was über ein Compliance-Problem von GCC. Bei MSVC sieht das dagegen anders aus. Da haben wir einerseits etliche lange bekanntes und dokumentiertes Fehlverhalten:

    http://msdn.microsoft.com/en-us/library/x84h5b78.aspx

    Und dann einige Dinge die MS zwar bekannt sind, aber lustigerweise auf dieser Seite nicht dokumentiert sind.

    z.T. Value Initialization:
    https://connect.microsoft.com/VisualStudio/feedback/details/499606
    http://connect.microsoft.com/VisualStudio/feedback/details/484295
    https://connect.microsoft.com/VisualStudio/feedback/details/100744
    Vermutlich ein einziger Bug, alle Tickets "Closed as Won't fix" 👍

    Hier ein Ticket von mir z.T. typeid() & ADL:
    https://connect.microsoft.com/VisualStudio/feedback/details/425720
    "Closed as Won't fix"

    Hier was was letztens im Forum gefunden wurde (Funktionstemplates mit Default-Parametern):
    https://connect.microsoft.com/VisualStudio/feedback/details/642766
    "Closed as Deferred" (Hurrah, einmal nicht "Won't fix" einself)

    Implizit definierter Copy-Ctor ruft Template-Ctor statt Copy-Ctor auf:
    http://connect.microsoft.com/VisualStudio/feedback/details/423737
    "Closed as Won't fix"

    usw.

    Dann sind da noch die MS-spezifischen "Extensions" wie dass man Temporaries an non-const Referenzen binden kann. Die kann man zwar per Switch abdrehen, nur kann man dann leider kein Windows-Programm mehr compilieren (weil das Windows SDK nicht damit klarkommt) 😞

    Und natürlich die (lange bekannten) Nichtkonformitäten des Präprozessors (die MS vermutlich einfach deswegen nicht fixt, weil dann verdammt viele Programme nicht mehr compilieren würden).

    Natürlich kann ich nicht ausschliessen dass GCC genau so viele Issues hat. Würde mich aber wundern 🙂

    hustbaer schrieb:

    Wenn man dagegen nur den Compiler & Optimizer betrachtet ... sieht Visual C++ (leider) ziemlich alt aus gegen GCC.

    Das ist mir neu. In allen Benchmarks die ich bisher so gesehen hab liegen MSVC und GCC meist gleich auf.

    Naja... ich meinte zum Einen die Konformität. Und dann scheint der GCC SIMD Vectorizer ein gutes Stück besser zu sein als der im MSVC.
    Was "general purpose" Code angeht dürfte aber stimmen, dass MSVC vergleichbar schnellen Code erzeugt.



  • Dem GCC fehlt noch eine gute crossplattform IDE, das ist das Problem.

    KDevelop gefällt mir nicht, fühlt sich einfach nicht intuitiv an.
    Das gleiche Problem existiert für Antjuta.
    Außerdem gehen die beiden nur unter Linux.

    Eclipse C++ ist nicht schlecht, wegen dem Java Ballast aber ein ziemliches Schwergewicht auf dem Rechner.

    Code::Blocks kann VS nicht das Wasser reihen.

    Mehr kostenlose crossplattform Alternativen fallen mir nicht ein.

    Eine gute IDE für Linux und Windows mit dem GCC als Compiler, das wär's.
    Dann könnte ich mich von VS und seinem Compiler verabschieden.



  • Netbeans ist auch nicht übel. Aber natürlich auch Java. Wobei ich das jetzt nicht als echtes Problem sehe.

    Ein Windows-Installer der die IDE (welche auch immer) *inklusive* GCC installiert wäre auch nett.



  • Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum Compiler- und IDE-Forum verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Lt. Produktgruppe wird mangels Nachfrage C99 nicht implementiert.



  • Kann mir auch nicht vorstellen, wer unter Windows lieber C99 anstatt C++03 programmieren will. Für die paar C-Sachen, die evtl. unter Windows anfallen, reicht sicherlich C89.


Anmelden zum Antworten