Article de reference

Watcom C/C++

{{Cite web |title=Current-build |url=https://github.com/open-watcom/open-watcom-v2/releases |access-date=2024-12-09 |website=GitHub |language=en}} "},"repo":{"wt":"{{URL|https:/...

environnement de développement intégré (IDE) de Watcom International Corporation pour les langages de programmation C , C++ et Fortran . Commercialisé jusqu'à son abandon, Watcom C/C++ est désormais disponible sous licence publique Sybase Open Watcom sous le nom d'Open Watcom C/C++. Il propose des outils de développement et de débogage pour les systèmes d'exploitation DOS , OS/2 , Windows et Linux , compatibles avec les processeurs 16 bits x86 , 32 bits IA-32 et 64 bits x86-64 .

Sybase , propriétaire de Watcom International Corporation, a cessé la commercialisation des compilateurs Watcom C/C++ et Fortran . En 2003, SciTech Software Inc., client de Sybase, a négocié avec cette dernière la publication du code source de ces compilateurs sous le nom d'Open Watcom, dans le cadre d'un projet open source. Les compilateurs Watcom C/C++ et Watcom Fortran ont ainsi été mis à disposition gratuitement au sein du package Open Watcom .

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.

DateProduitNotes1984Waterloo C pour S/3701985
  • Les travaux sur la base de code du générateur de code actuel ont commencé.
1988Watcom C 6.0
  • 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
1989Watcom C 7.01989Watcom C 7.0/3861990Watcom C 8.01990Watcom C 8.0/3861991Watcom C 8.51991Watcom C 8.5/3861992Watcom C 9.01992Watcom C 9.0/386
  • Prise en charge des hôtes et cibles OS/2 2.0
  • 486 optimisations
  • Support de pointeur basé
Watcom C 9.01/3861993Watcom C/C++ 9.51993Watcom C/C++ 9.5/386
  • Compilateur C++ ajouté
  • Optimisations Pentium
  • Prise en charge de l'hôte et de la cible Windows NT
1994Watcom C/C++ 10.01995Watcom C/C++ 10.51996Watcom C/C++ 10.61997 T1 Watcom C/C++ 11.01998Watcom C/C++ 11.0B30 juin 19992000-08-22
  • Sybase annonce l'ouverture du code source des outils Watcom
27/09/2001Watcom C/C++ 11.0c Beta21/12/2002Watcom C/C++ 11.0c28 janvier 2003Ouvrez Watcom 1.012 août 2003Ouvrez Watcom 1.12004-01-07Ouvrez Watcom 1.22004-08-03Ouvrez Watcom 1.314 décembre 2005Ouvrez Watcom 1.426 avril 2006Ouvrez Watcom 1.515/12/2006Ouvrez Watcom 1.618 août 2007Ouvrez Watcom 1.723 octobre 2007Ouvrez Watcom 1.7a21 février 2009Ouvrez Watcom 1.82010-06-02Ouvrez Watcom 1.9
  • Dernière version publiée via https://www.openwatcom.org
Version initiale : 2015-04-02 (mises à jour continues par la suite, au moins jusqu’en 2025)Open Watcom v2 roulant
  • 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

Open Source Initiative a approuvé la licence en tant que logiciel libre , mais Debian , Fedora et la Free Software Foundation l'ont rejetée parce qu'« elle vous oblige à publier publiquement le code source chaque fois que vous "déployez" le logiciel couvert, et le terme "déploiement" est défini pour inclure de nombreux types d'utilisation privée. »

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. »