Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 4 reacties
Bron: Open Watcom

In de zomer van 1965 heeft een groep studenten van de University of Waterloo in Canada een FORTRAN-compiler, met de naam WATFOR, ontwikkeld die draaide op een IBM 7040-systeem. Deze compiler was geschreven in WSL en werd ook geschikt gemaakt voor andere systemen zoals de IBM 360 en de DEC PDP-11. Na vele ontwikkelingen, die op deze pagina na te lezen zijn, is het uiteindelijk doorgegroeid tot Open Watcom. Deze opensource compiler kan broncode in C, C++ en Fortran omzetten naar een uitvoerbaar bestand op het DOS-, OS/2- en Windows-platform. De ontwikkelaars hebben afgelopen week versie 1.7a uitgebracht met de volgende aankondiging op de mailinglijst:

Open Watcom v1.7a was released last week. This release fixes two regressions in 1.7 relative to 1.6. These regressions affected only the 16 bit code generator. No new features or bug fixes are in 1.7a compared to 1.7. Note that Open Watcom v1.7 was released in August. I apologize for the late announcement. The 1.7 release notes are listed below.

The latest version of Open Watcom can be downloaded from here. Please post questions or problems on the Open Watcom newsgroups (information for accessing the groups is on the main Open Watcom page).

Peter

Open Watcom v1.7 RELEASE NOTES:
  • Functions using the __cdecl calling convention now return floating-point values in FPU registers in 32-bit code. This is the correct behaviour compatible with other compilers.
  • The C and C++ compilers now support an include_alias pragma which can be used, among other things, to map long include filenames onto 8.3 names.
    In addition, the compilers now support a -na switch to disable the automatic inclusion of _ialias.h (which contains new include_alias pragmas for certain standard headers).
  • The C compiler now emits warnings on operations which mix multi-level pointer types such as void** and int**. Previously a warning was only emitted in ANSI mode. Note that while void** is not assignment compatible with int**, void* is. The new stricter behaviour is in line with most other C compilers and helps users write cleaner and more portable code.
  • The C compiler now warns (W400) when an expression of plain char type is used as array index. Because the sign of plain char changes depending on compiler choice and settings, using plain char as array index is inherently non-portable and likely to cause problems.
  • The C compiler now folds constant expression before checking for range overflows etc. This enables the compiler to diagnose constant out of range issues in more cases.
  • The C compiler now allows benign variable redefinitions where __near or __far modifiers aren't always explicitly specified but match when current data model is taken into account (eg. 'extern int __near x;' and 'extern int x;' in small data models). The new behaviour is compatible with the C++ compiler as well as with other vendors' compilers.
  • The default stack size for 32-bit DOS extended executables has been increased from 4K to 64K. Note that the linker can still set greater or smaller stack size.
  • The code generator now produces better 16-bit code for 64-bit math operations
  • The code generator no longer incorrectly optimizes out conditionals. The problem only occurred in very rare situations and probably only when doubles were being compared.
  • A long-standing problem with use of certain 64-bit constants as results of ternary operators has been fixed.
  • The C++ compilers now has a workaround for bugzilla bug #63. The compiler now generates an error message referring to the bug entry rather than crashing.
  • The LIBC and CLIB thin netware libraries have been added to the distribution as experimental.
  • 32-bit DOS executables now correctly pass environment to child processes started through the spawn family of functions. Previous incorrect behaviour was introduced in version 1.6.
  • In the NetWare libraries, __get_stdout with __get_std_stream was causing an infinite recursion. This has been fixed.
  • Fixed 8087 emulator/mathlib 80-bit real multiplication if one operator is zero and second is a power of two.
  • The _outgtext() function in graph.lib no longer fails on 32-bit targets.
  • The Win32 stat() function now returns correct results when it tries to access a file with given name and the directory containing that file also contained a subdirectory with the same name.
  • The debugger now supports a "No Source" toggle (right mouse click menu) in the assembly code window to switch on/off associated source code.
  • The debugger no longer crashes when tracing F77 programs that use variable-size arrays. This only applies to DWARF debugging information (which is used by default).
  • The debugger now correctly displays multi-dimensional Fortran arrays when DWARF debug information format is used (which is used by default).
  • The debugger can now display [partial] strings in Fortran code when the string length exceeds the debugger's internal limit. The internal limit has also been increased from 512 to 1024 characters.
  • The resource compiler now properly copies non-resident name table when processing LX executables.
  • The console version of vi for Win32 no longer quits after Ctrl+Left is pressed followed by any other key.
  • WCL now correctly takes options from the environment when there is more then one file to compile.
  • The linker now supports a MIXED1632 option to allow mixing of 16- and 32-bit logical segments into a single physical segment in OS/2 LX/LE executables.
  • The linker now supports a NOSTUB option for Windows and OS/2 executable formats. This option causes no DOS stub executable to be written to the output image.
  • The installer now allows you to disable creating program groups or modifying the startup environment using the /np and /ns switches.
Versienummer:1.7a
Releasestatus:Final
Besturingssystemen:Windows 9x, Windows NT, Windows 2000, Windows XP, DOS, OS/2, Windows Server 2003, Windows Vista
Website:Open Watcom
Download:http://www.openwatcom.org/index.php/Download
Licentietype:Voorwaarden (GNU/BSD/etc.)
Moderatie-faq Wijzig weergave

Reacties (4)

Gebruikt iemand dit echt? En waarvoor als ik zo onbeleefd mag zijn?
@iemand14: Goh, 14 is zeker je leeftijd?

Ik heb hier nog de officiele doos van Watcom C/C++ 10 liggen. Als ik me niet vergis was die aangeschaft zo rond 1995. Toen destijds waarschijnlijk de beste optimizing C/C++ compiler die je kon vinden. Daarom werd deze compiler ook vaak destijds voor game ontwikkeling gebruikt. Het is nog steeds een waanzinnige compiler, alleen jammer dar ze na vier jaar (of is het al vijf jaar?) OpenWatcom nog steeds geen Linux support hebben weten toe te voegen.

Edit: Oeps. Blijkbaar is er Linux support. Dat gaan we van het weekend eens even nader bekijken...

[Reactie gewijzigd door pan69 op 7 november 2007 23:29]

@offtopic: Het lijkt me niet nodig om zo minachtend te doen tegenover iemand14. Tenslotte heeft niet iedereen dezelfde kennis over bepaalde zaken :)

@ontopic: Geweldig dat een softwareproject een looptijd van meer dan 40 jaar kan hebben en nog steeds actueel is. Dat bewijst maar dat er een goede (of juist vreselijk slechte ;)) basis aan deze software ten grondslag moet liggen
om progamma's te maken misschien???

:P

(dit is namelijk een compiler en die zet geschreven tekst om naar een .exe programma)

[Reactie gewijzigd door Greyh0und op 7 november 2007 20:26]

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True