La dernière version stable approuvée par l'équipe originale d'openwatcom.org était la 1.9, sortie en juin 2010.
Une version 2.0 dérivée et mise à jour en continu sous le même nom de version a été publiée par la communauté après que le développement du code source original a apparemment cessé par l'équipe d'origine. Elle inclut divers correctifs de bogues, prend en charge les systèmes 64 bits (Windows et Linux), un éditeur de texte intégré, un système de compilation en deux phases et dispose d'une version DOS prenant en charge les noms de fichiers longs (LFN).
Historique des versions
Le wiki Open Watcom contient un historique complet.
- Les travaux sur la base de code du générateur de code actuel ont commencé.
- Hôte et cible DOS uniquement
- Inclut un débogueur et un ensemble complet de bibliothèques d'exécution
- Il générait un code de meilleure qualité que les autres compilateurs de l'époque.
- La version 6.5 de Watcom C contenait une bibliothèque graphique similaire à la bibliothèque graphique de Microsoft.
- Prise en charge du mode réel uniquement
- Première version 32 bits, hôte et cible DOS uniquement
- Extension DOS Phar Lap prise en charge
- Livré sans éditeur de liens ni débogueur
- Ajout d'un éditeur de liens , d'un gestionnaire de bibliothèques, d'un débogueur et d'un profileur.
- Livré avec DOS/4GW
- Compatible avec Windows 3.0 (extension Win386)
- Prise en charge d'Unicode
- Ajout de fichiers exécutables hébergés sur OS/2
- Prise en charge des hôtes et cibles OS/2 2.0
- 486 optimisations
- Support de pointeur basé
- Prise en charge de Windows 3.1
- Compilateur C++ ajouté
- Optimisations Pentium
- Prise en charge de l'hôte et de la cible Windows NT
- MFC inclus
- Prise en charge des en-têtes précompilés
- Outils 16 bits et 32 bits fusionnés en un seul package
- Débogueur repensé
- navigateur de classes C++ ajouté
- Ajout des éditeurs de ressources Windows
- Environnement de développement intégré graphique pour Windows et OS/2
- Gestion native des exceptions C++ sur OS/2 et Win32
- Prise en charge de Windows 95 et NT 3.5
- Débogage à distance TCP/IP
- Gestion structurée des exceptions en C
- Compatibilité améliorée avec les compilateurs Microsoft
- Prise en charge des espaces de noms , de RTTI et des conversions de type de nouvelle génération dans le compilateur C++
- Prise en charge des entiers 64 bits
- Prise en charge des caractères multi-octets dans les bibliothèques
- Prise en charge de la liaison incrémentale
- Prise en charge des fichiers objets COFF et ELF dans l'éditeur de liens et la bibliothèque
- Ajout d'outils de clonage Microsoft
- Outils basés sur les DLL pour une meilleure intégration à l'IDE
- Prise en charge MMX, y compris le débogage
- Optimisations pour Pentium Pro, notamment la prédiction de branchement
- Assistance Novell NLM
- Sybase publie un avis de fin de vie pour Watcom C/C++ 11.0
- Sybase annonce l'ouverture du code source des outils Watcom
- Dernière version publiée via https://www.openwatcom.org
- Fork GitHub v2, nombreuses corrections
- Open Watcom porté sur les systèmes hôtes 64 bits (Windows et Linux)
- Le compilateur de ressources et l'éditeur de ressources prennent en charge les exécutables WIN64.
- éditeur de texte intégré
- système de construction en deux phases
- La version DOS des outils prend en charge les noms de fichiers longs (LFN).
- Ajouter une case à cocher pour C99 dans le panneau « 2. Commutateurs de diagnostic » de l'interface graphique.
Licence
Conception
Le compilateur peut être utilisé sous DOS , OS/2 , Windows et Linux et générer du code exécutable pour ces systèmes d'exploitation . Il prend également en charge les cibles NLM pour Novell NetWare . Des travaux sont en cours pour étendre sa compatibilité à Linux et aux systèmes d'exploitation BSD modernes (par exemple, FreeBSD ), fonctionnant sur des processeurs x86 , PowerPC et autres.
Le code est portable et, comme de nombreux autres projets de compilateurs open source tels que GCC ou LCC, le backend du compilateur (générateur de code) est réutilisable.
Utilisations
Au milieu des années 1990, certains des jeux informatiques DOS les plus ambitieux techniquement tels que Doom , Descent , Duke Nukem 3D , Rise of the Triad , et Tomb Raider ont été construits en utilisant Watcom C/C++ en utilisant l' extenseur de mode protégé DOS/4GW avec le compilateur Watcom.
Il a été utilisé pour porter le jeu Retro City Rampage sur DOS en 2015.
Il a été utilisé par VirtualBox pour compiler le BIOS .
Le développement actuel de FreeDOS exige que tout le code source C soit compilable par Open Watcom C.
Open Watcom est le compilateur recommandé pour le développement d'applications et de pilotes pour le système d'exploitation ArcaOS basé sur OS/2 .
Compatibilité
La syntaxe d'Open Watcom prend en charge de nombreuses conventions introduites par d'autres compilateurs, tels que ceux de Microsoft et de Borland , y compris des différences concernant (par exemple) le nombre de tirets bas en début de la balise « asm ». Le code écrit spécifiquement pour un autre compilateur que le C ou le C++ standard sera souvent compilé avec le compilateur Watcom.ANSI C (C89, C90, ISO C).
Open Watcom offre une compatibilité partielle avec la norme C99 . Il implémente les parties les plus couramment utilisées de cette norme, notamment la déclaration de variables en ligne. Cependant, ces fonctionnalités ne sont activées que par l'intermédiaire de l'option de ligne de commande non documentée « -za99 » (à ajouter au champ « Autres options » du panneau « 4. Options diverses » de l'interface graphique). Dans une version plus récente d'Open Watcom 2.0, une case à cocher pour C99 a été ajoutée au panneau « 2. Options de diagnostic » de l'interface graphique. Trois fonctionnalités C99 sont intégrées sous l'appellation « Extension C90 » depuis les versions antérieures à la 1.0 : les commentaires de style C++ (//), la flexibilité des éléments de tableau et l'autorisation de la virgule finale dans la déclaration d'une énumération.
Le compilateur ne prend actuellement en charge aucune nouvelle fonctionnalité majeure de C11 , bien que la bibliothèque C inclue des fonctions « Safe C ». Celles-ci sont spécifiées dans la norme ISO/IEC TR 24731-1 et connues sous le nom d'« interfaces de vérification des limites (annexe K) » en C11. Parmi les exemples de noms de fonctions, on trouve strcpy_s(), memcpy_s() et printf_s(). Cette bibliothèque a été publiée avec Open Watcom 1.5 en avril 2006.
Réception
Dans un article de février 1989 consacré à l'optimisation des compilateurs C, BYTE a salué la « vitesse d'exécution inégalée » de Watcom C 6.5 et a souligné qu'il était le plus conforme à la norme ANSI C. Le magazine conseillait : « Si la vitesse est absolument essentielle et que la compatibilité avec OS/2 ne l'est pas, choisissez Watcom. »