Watcom C Compiler
   HOME

TheInfoList



OR:

Watcom C/C++ (currently Open Watcom C/C++) is an
integrated development environment An integrated development environment (IDE) is a Application software, software application that provides comprehensive facilities for software development. An IDE normally consists of at least a source-code editor, build automation tools, an ...
(IDE) product from Watcom International Corporation for the C, C++, and Fortran
programming language A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
s. Watcom C/C++ was a commercial product until it was discontinued, then released under the Sybase Open Watcom Public License as Open Watcom C/C++. It features tools for developing and
debugging In engineering, debugging is the process of finding the Root cause analysis, root cause, workarounds, and possible fixes for bug (engineering), bugs. For software, debugging tactics can involve interactive debugging, control flow analysis, Logf ...
code for
DOS DOS (, ) is a family of disk-based operating systems for IBM PC compatible computers. The DOS family primarily consists of IBM PC DOS and a rebranded version, Microsoft's MS-DOS, both of which were introduced in 1981. Later compatible syste ...
,
OS/2 OS/2 is a Proprietary software, proprietary computer operating system for x86 and PowerPC based personal computers. It was created and initially developed jointly by IBM and Microsoft, under the leadership of IBM software designer Ed Iacobucci, ...
,
Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
, and
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
operating systems An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ...
, which are based upon 16-bit
x86 x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel, based on the 8086 microprocessor and its 8-bit-external-bus variant, the 8088. Th ...
, 32-bit
IA-32 IA-32 (short for "Intel Architecture, 32-bit", commonly called ''i386'') is the 32-bit version of the x86 instruction set architecture, designed by Intel and first implemented in the i386, 80386 microprocessor in 1985. IA-32 is the first incarn ...
, or 64-bit
x86-64 x86-64 (also known as x64, x86_64, AMD64, and Intel 64) is a 64-bit extension of the x86 instruction set architecture, instruction set. It was announced in 1999 and first available in the AMD Opteron family in 2003. It introduces two new ope ...
compatible processors.


History

In 2000,
Sybase Sybase, Inc. was an enterprise software and services company. The company produced software relating to relational databases, with facilities located in California and Massachusetts. Sybase was acquired by SAP in 2010; SAP ceased using the Syba ...
, who owned Watcom International Corporation halted the commercial sale of the Watcom C/C++ and Fortran compilers. In 2003, SciTech Software Inc, a customer of Sybase, negotiated wth Sybase, to have the code for the compilers released as an open source project under a new name, Open Watcom. The Watcom C/C++ compiler and the Watcom Fortran compiler were made available free of charge as the ''Open Watcom'' package. The last stable version endorsed by the original openwatcom.org team was 1.9, released in June 2010. A community-based forked version 2.0 (with continuous updates under the same version moniker) was released after the original codebase was seemingly no longer developed by the original team. It includes miscellaneous bugfixes, supports 64-bit hosts (Windows and Linux), built-in text editor, 2-phase build system, and has a DOS version that supports
long filename Long filename (LFN) support is Microsoft's backward-compatible extension of the 8.3 filename (short filename) naming scheme used in MS-DOS. Long filenames can be more descriptive, including longer filename extensions such as .jpeg, .tiff, an ...
s (LFN).Open Watcom v2 Fork
/ref>


Release history

The ''Open Watcom Wiki'' has a comprehensive history.


License

The
Open Source Initiative The Open Source Initiative (OSI) is a California public benefit corporation "actively involved in Open Source community-building, education, and public advocacy to promote awareness and the importance of non-proprietary software". Governance The ...
has approved the license as
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
, but
Debian Debian () is a free and open-source software, free and open source Linux distribution, developed by the Debian Project, which was established by Ian Murdock in August 1993. Debian is one of the oldest operating systems based on the Linux kerne ...
,
Fedora A fedora () is a hat with a soft brim and indented crown.Kilgour, Ruth Edwards (1958). ''A Pageant of Hats Ancient and Modern''. R. M. McBride Company. It is typically creased lengthwise down the crown and "pinched" near the front on both sides ...
and the
Free Software Foundation The Free Software Foundation (FSF) is a 501(c)(3) non-profit organization founded by Richard Stallman on October 4, 1985. The organisation supports the free software movement, with the organization's preference for software being distributed ...
have rejected it because "It requires you to publish the source code publicly whenever you “Deploy” the covered software, and “Deploy” is defined to include many kinds of private use."


Design

The compiler can be operated from, and generate executable code for, the
DOS DOS (, ) is a family of disk-based operating systems for IBM PC compatible computers. The DOS family primarily consists of IBM PC DOS and a rebranded version, Microsoft's MS-DOS, both of which were introduced in 1981. Later compatible syste ...
,
OS/2 OS/2 is a Proprietary software, proprietary computer operating system for x86 and PowerPC based personal computers. It was created and initially developed jointly by IBM and Microsoft, under the leadership of IBM software designer Ed Iacobucci, ...
,
Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
, Linux
operating systems An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ...
. It also supports NLM targets for
Novell NetWare NetWare is a discontinued computer network operating system developed by Novell, Inc. It initially used cooperative multitasking to run various services on a personal computer, using the Internetwork Packet Exchange, IPX network protocol. The f ...
. There is ongoing work to extend the targeting to
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
and modern
BSD The Berkeley Software Distribution (BSD), also known as Berkeley Unix or BSD Unix, is a discontinued Unix operating system developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berkeley, beginni ...
(e.g.,
FreeBSD FreeBSD is a free-software Unix-like operating system descended from the Berkeley Software Distribution (BSD). The first version was released in 1993 developed from 386BSD, one of the first fully functional and free Unix clones on affordable ...
) operating systems, running on
x86 x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel, based on the 8086 microprocessor and its 8-bit-external-bus variant, the 8088. Th ...
,
PowerPC PowerPC (with the backronym Performance Optimization With Enhanced RISC – Performance Computing, sometimes abbreviated as PPC) is a reduced instruction set computer (RISC) instruction set architecture (ISA) created by the 1991 Apple Inc., App ...
, and other processors. The code is portable and, like many other open source compiler projects such as GCC or LCC the compiler backend (code generator) is retargetable.


Uses

In the mid-1990s some of the most technically ambitious
DOS DOS (, ) is a family of disk-based operating systems for IBM PC compatible computers. The DOS family primarily consists of IBM PC DOS and a rebranded version, Microsoft's MS-DOS, both of which were introduced in 1981. Later compatible syste ...
computer game A video game or computer game is an electronic game that involves interaction with a user interface or input device (such as a joystick, controller, keyboard, or motion sensing device) to generate visual feedback from a display device, mo ...
s such as ''
Doom Doom is another name for damnation. Doom may also refer to: People * Doom (professional wrestling), the tag team of Ron Simmons and Butch Reed * Daniel Doom (1934–2020), Belgian cyclist * Debbie Doom (born 1963), American softball pitche ...
'',History - Open Watcom
OpenWatcom.com wiki.
''
Descent Descent may refer to: As a noun Genealogy and inheritance * Common descent, concept in evolutionary biology * Kinship, one of the major concepts of cultural anthropology **Pedigree chart or family tree **Ancestry **Lineal descendant **Heritage ** ...
'', ''
Duke Nukem 3D ''Duke Nukem 3D'' is a 1996 first-person shooter, first-person shooter game developed by 3D Realms and published by FormGen for MS-DOS. It is a sequel to the platform games ''Duke Nukem (video game), Duke Nukem'' and ''Duke Nukem II'', published ...
'', ''
Rise of the Triad ''Rise of the Triad: Dark War'' is a first-person shooter video game, developed and published by Apogee Software (now 3D Realms) in 1995. The player can choose to play as one of five different characters, each bearing unique attributes such a ...
'', and
Tomb Raider ''Tomb Raider'', known as ''Lara Croft: Tomb Raider'' from 2001 to 2008, is a media franchise that originated with an Action-adventure game, action-adventure video game series created by British video game developer Core Design. The franchise i ...
were built using Watcom C/C++ using the DOS/4GW
protected mode In computing, protected mode, also called protected virtual address mode, is an operational mode of x86-compatible central processing units (CPUs). It allows system software to use features such as Memory_segmentation, segmentation, virtual mem ...
extender with the Watcom compiler. It was used to port the game
Retro City Rampage ''Retro City Rampage'' is an action-adventure game developed by Vblank Entertainment. It is a parody of retro games and 1980s and 1990s pop culture, as well as ''Grand Theft Auto'' and similar games. It was first released for PlayStation 3, P ...
to DOS in 2015. It was used by
VirtualBox Oracle VirtualBox (formerly Sun VirtualBox, Sun xVM VirtualBox and InnoTek VirtualBox) is a hosted hypervisor for x86 virtualization developed by Oracle Corporation. VirtualBox was originally created by InnoTek Systemberatung GmbH, which was ac ...
to compile the
BIOS In computing, BIOS (, ; Basic Input/Output System, also known as the System BIOS, ROM BIOS, BIOS ROM or PC BIOS) is a type of firmware used to provide runtime services for operating systems and programs and to perform hardware initialization d ...
. Current development for
FreeDOS FreeDOS (formerly PD-DOS) is a free software operating system for IBM PC compatible computers. It intends to provide a complete MS-DOS-compatible environment for running Legacy system, legacy software and supporting embedded systems. FreeDOS ca ...
requires that all C
source code In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer. Since a computer, at base, only ...
must be compilable by Open Watcom C. Open Watcom is the recommended compiler for application and driver development for the OS/2-based
ArcaOS ArcaOS is a Proprietary software, proprietary operating system based on OS/2, developed and marketed by Arca Noae, LLC under license from IBM. It was first released in 2017 and builds on OS/2 Warp 4.52 by adding support for new hardware, fixing ...
operating system.


Compatibility

Open Watcom's syntax supports many conventions introduced by other compilers, such as
Microsoft Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
's and
Borland Borland Software Corporation was a computing technology company founded in 1983 by Niels Jensen, Ole Henriksen, Mogens Glad, and Philippe Kahn. Its main business was developing and selling software development and software deployment products. B ...
's, including differing conventions regarding (for instance) the number of leading underscores on the "asm" tag. Code written specifically for another compiler rather than standard-compliant C or C++ will often compile with the Watcom compiler. The compiler supports C89/C90 standards by default. Open Watcom supports partial compatibility with the
C99 C99 (previously C9X, formally ISO/IEC 9899:1999) is a past version of the C programming language open standard. It extends the previous version ( C90) with new features for the language and the standard library, and helps implementations mak ...
standard. It implements the most commonly used parts of the standard. However, they are enabled only through the undocumented command-line switch "-za99". Three C99 features have been bundled as C90 Extension since pre-v1.0: C++ style comments (//), flexible array members, trailing comma allowed in enum declaration. The compiler currently doesn't support any new major C11 features, though the C library does include "Safe C" functions. It is specified in ISO/IEC TR 24731-1WG14 N1969 — "Updated Field Experience With Annex K — Bounds Checking Interfaces", Carlos O'Donell, Martin Sebor
/ref> and known as "Bounds-checking interfaces (Annex K)" in C11. Some function name examples are strcpy_s(), memcpy_s(), printf_s(). This library was released along with Open Watcom 1.5 in April 2006.


Reception

In a February 1989 overview of optimizing C compilers, ''
BYTE The byte is a unit of digital information that most commonly consists of eight bits. Historically, the byte was the number of bits used to encode a single character of text in a computer and for this reason it is the smallest addressable un ...
'' praised Watcom C 6.5's "unmatched execution speed" and noted that it was the most
ANSI C ANSI C, ISO C, and Standard C are successive standards for the C programming language published by the American National Standards Institute (ANSI) and ISO/IEC JTC 1/SC 22/WG 14 of the International Organization for Standardization (ISO) and the ...
-compliant. The magazine advised, "If speed is absolutely critical and
OS/2 OS/2 is a Proprietary software, proprietary computer operating system for x86 and PowerPC based personal computers. It was created and initially developed jointly by IBM and Microsoft, under the leadership of IBM software designer Ed Iacobucci, ...
compatibility isn't, choose Watcom".


See also

* Open Watcom Assembler


References


Further reading


Watcom C/C++ Gets a New Face
– review in October 1994 BYTE magazine
The WATCOM C/C++ Programmer's FAQ


External links

;Current
Open Watcom 2.0 fork
– GitHub ;Archives
Open Watcom 1.9
– GitHub * 1.9 – () * Sybase Watcom C/C++ version 11.0 – () {{CProLang C (programming language) compilers C++ compilers Formerly proprietary software 2003 software