⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 diffs.gml

📁 开放源码的编译器open watcom 1.6.0版的源代码
💻 GML
📖 第 1 页 / 共 5 页
字号:
comparison was intended.
.bull
New __watcall keyword has been added to the C and C++ compilers to designate
the default Watcom calling convention.
.bull
New -ec? switches have been added to set the default calling convention.
.bull
The 16-bit C compiler now defines _M_I86 macro for consistency with the C++
compiler. The new macro should be used in preference to the existing M_I86.
.bull
A number of new keywords have been added to the C compiler; these were
previously defined as macros: _Cdecl, _Export, _Far16, _Fastcall, _Pascal,
__sycall, _System, __try, __except, __finally, __leave.
.bull
Analogous change has been made to the C++ compiler. The new keywords (and
removed predefined macros) are: _Cdecl, _Export, _Far16, _Fastcall, __inline,
_Pascal, __syscall, _System.
.bull
The C++ compiler now handles the "new" template specialization syntax,
and partial specialization is partially supported (no pun intended).
.bull
The C++ compiler now correctly handles the situation where control reaches
the end of main() function without encountering a return statement. In that
case, the effect is that of executing "return 0;".
.bull
The C++ compiler now properly allows return statements with a void expression
in functions that return void.
.bull
386 C and C++ compilers now support the Microsoft fastcall calling convention,
and recognize the __fastcall keyword.
.bull
The C compiler now recognizes #pragma data_seg and code_seg forms that
specify segment and class names without enclosing them in parentheses. The
new behaviour is consistent with other compilers.
.bull
New -fti switch has been added to the C compiler to track #include file
opens. This helps diagnose include file problems in complex projects.
.bull
The code generator no longer emits debug information for unreferenced
typedefs when -d1+ or -d2 switch is used. This produces slightly to
significantly smaller debug information. Note that behaviour of -d3 is
unchanged.
.bull
The 386 code generator will no longer select the 'and' instruction to perform
zero extension when optimizing for time on the 686 architecture (-6r or -6s
switch). The 'movzx' instruction will always be used instead, because it
avoids partial register stalls and in certain cases significantly improves
performance on P6 and newer class CPUs.
.bull
Support for long long based bitfields has been improved in the code generator.
.bull
The code generator now properly diagnoses attempts to emit symbol names
that overflow the OMF limit (255 bytes).
.bull
Several problems related to loss of segment information in 386 non-flat
models have been fixed in the code generator.
.bull
Command line processing has been changed in the Compile and Link utility
(wcl). Forward slashes now may be used as path separators in file arguments,
such that "foo/bar" is now interpreted as "foo\bar.c". Note that this does
not affect options delimited with forward slashes.
.bull
Support for raw binary and Intel Hex output has been added to the linker,
along with support for 24-bit segmented addressing architectures (HSHIFT
option) and arbitrary class/segment reordering (OUTPUT and ORDER directives).
See Linker Guide for details.
.bull
Support for overlays (16-bit DOS) has been reinstated in the linker.
A related FARCALLS/NOFARCALLS option has been added to the linker. See
Linker Guide for details.
.bull
The linker now correctly processes relocations to symbols in absolute
segments.
.bull
The linker now checks for bitness conflicts (16 vs. 32-bit) when adding
segments to a group.
.bull
The minimum accepted value for linker OBJALIGN option has been changed to
16 bytes (previously 512).
.bull
The linker no longer creates a separate .bss section when linking PE modules.
Instead, uninitialized data is added at the end of the data section. This
creates slightly smaller executables and reduces memory usage.
.bull
The st_name member was removed from struct stat and related structures. This
was done for consistency across platforms (UNIX has no such field), because
the st_name field was almost entirely useless (being limited to 13
characters), and for compatibility with Microsoft compilers; the latter
because struct _wstat and struct _wstati64 are now obsolete and struct
_stat/_stati64 can be used for wide character stat functions. NB: This change
requires recompilation. New object files will not work with old libraries
and vice versa.
.bull
The signal() function no longer modifies floating-point control word on
Win32 and 32-bit OS/2. Also, default value for SIGFPE has been changed to
SIG_DFL from SIG_IGN on all platforms.
.bull
The e/E format of printf() family of functions has been changed to format
the exponent with minimum of two digits (instead of three). This behaviour
is dictated by C99 and consistent with most other compilers.
.bull
The floating-point to string conversion routines now format values with
greater precision. This means that floating-point values printed by C and C++
programs may be slightly different from earlier versions of the runtime
libraries (but more accurate).
.bull
The sleep() function is now declared in unistd.h and its return type has been
changed to unsigned int, for compatibility with POSIX.
.bull
The clock() function now uses millisecond counters (where available) on DOS
and Windows, and is no longer susceptible to problems related to TZ changes.
.bull
The DOS runtime has been tuned to produce smaller executables.
.bull
C99 functions wmemchr(), wmemcmp(), wmemcpy(), wmemmove(), and wmemset()
have been added to the C runtime library.
.bull
A POSIX compatible getopt() function has been added to the C runtime library.
.bull
A POSIX compatible mkstemp() function has been added to the C runtime library.
.bull
BSD compatible safe string copy and concatenation functions, strlcpy()
and strlcat(), have been added. Use of these functions is highly recommended
over strncpy() and strncat(), because they are safer and much easier to use.
.bull
New strings.h header has been added for POSIX compatibility, although legacy
functions index() and rindex() are not supported. Functions strcasecmp() and
strncasecmp() are also declared in string.h for compatibility with other
compilers.
.bull
The C runtime library no longer returns ESPIPE when calling write() on a pipe
or device that was opened with O_APPEND flag. The old behaviour was not POSIX
conforming.
.bull
Handling of pathnames that include spaces has been improved in the make
utility (wmake).
.bull
The disassembler (wdis) now handles big endian object files on little
endian host platforms, and vice versa.
.bull
Support for MIPS R4000 and SPARC V8 instruction sets has been added to the
disassembler.
.bull
New -zz and -zzo option have been added to the assembler (wasm) for
backwards compatibility. See Tools User's Guide for details.
.bull
Default behaviour of inline assembler has changed. The CPU optimization
level (-4, -5, -6) now implies the available instruction set: -5 implies
MMX and 3DNow!, -6 also implies SSE/SSE2/SSE3. Also note that any CPU
setting override now reverts to default at the end of each inline assembly
block.
.bull
16-bit DOS version of the assembler (wasmr) has been added. This version
runs on 8086 and above and requires less memory than the protected mode
version.
.bull
The debugger has been changed to look for support files in directories
relative to the debugger executable's location. This allows the debugger to
be used when no debugger specific environment variables have been set.
.bull
A problem with stepping into code (F8) right after debuggee was loaded has
been fixed in the debugger.
.bull
The debugger now looks for debug information in a .sym file when the /DOwnload
option was specified. Previously it erroneously only looked at the executable
if the download option was used.
.bull
Support for Microsoft/IBM .sym files generated by the MAPSYM utility has
been added to the debugger and profiler. This is helpful especially with
symbol files provided by IBM for OS/2 system DLLs; disassembly now shows
for instance "call DOS32EXIT" instead of "call 01C74634".
.bull
The CauseWay trap file no longer incorrectly maps symbol addresses in
'large' executables (code segment > 64K).
.bull
Interoperability with GNU tools has been improved. The debugger (wd/wdw)
should now be able to debug GNU-produced executables (with DWARF 2 debug
information) and vice versa.
.bull
New -zld option has been added to the library manager (wlib) to strip
autodependency information from OMF objects.
.bull
New exe2bin utility has been added. See Tools User's Guide for details.
.bull
Basic support for compiling OS/2 resource scripts and binding resources
into OS/2 executables (both NE and LX formats) has been added to the resource
compiler (wrc).
.bull
The include search order in the resource compiler has been changed
to be more consistent with the C/C++ compilers, as well as with IBM's and
Microsoft's resource compilers. System include files (enclosed in angle
brackets) are no longer searched in current directory or in the dicrectory
of the file containing the #include directive.
.bull
The Windows resource compiler has been made more compatible with
scripts designed for Microsoft's RC in the way it treats string literals.
.bull
The MS LINK compatibility wrapper now supports a /RELEASE switch.
.bull
Syntax highlighting support for makefiles has been added to the editor.
The default syntax highlighting scheme has also been made more colourful.
.bull
The editor and Windows GUI tools now store configuration files in more
appropriate locations (notably on multi-user machines).
.bull
Several new DOS extender related targets have been added to the IDE. Better
support for remote debugging has also been added to the IDE.
.bull
The CauseWay DOS extender now supports SSE instructions on plain DOS.
.bull
Several simple OS/2 SOM programming examples have been added.
.endbull
.*
.section Changes in 1.4 that may Require Recompilation
.*
.begnote
.note stat()
The
.kw stat
function now uses a slightly different
.kw struct stat
argument.
Source code that uses the
.kw stat
function or references
.kw struct stat
must be recompiled before linking the application with new libraries.
.endnote
.*
.*
.section Differences from Open Watcom Version 1.2
.*
.np
Following is a list of changes made in &product 1.3:
.begbull
.bull
The C++ compiler now restricts the scope of variables declared in a for
loop to the scope of that loop in accordance with ISO C++, not extending
the scope beyond the loop (ARM compliant behaviour). Code relying on the
pre-standard behaviour must either be changed or compiled with new -zf
switch which reverts to old scoping rules.
.bull
Support for default template arguments has been added to the C++ compiler.
.bull
Support for alternative tokens (and, xor etc.) has been added to the C++
compiler. It is enabled by default, can be turned off with the new -zat
switch.
.bull
The C runtime library has been made significantly more C99 compliant. A number
of new headers have been added (inttypes.h, stdbool.h, stdint.h, wctype.h) and
corresponding new functions implemented. Wide character classification
functions were moved out of ctype.h into wctype.h. C99 va_copy macro was
added to stdarg.h.
.bull
Added 'cname' style C++ headers.
.bull
Support for SSE, SSE2, SSE3 and 3DNow! instruction sets has been added. Affected
tools are the assembler (wasm), as well as all x86 compilers, disassembler and
debugger. The debugger now also supports MMX registers formatted as floats
(for 3DNow!) as well as a new XMM register window for SSE.
.bull
Inline assembler directives .MMX, .K3D, .XMM, .XMM2 and .XMM3 are now supported in
the _asm as well as #pragma aux style inline assembler interface. Note: .MMX
directive is now required (in addition to .586) to use MMX instructions.
.bull
C compiler performance has been significantly improved (up to 5-10 times speedup)
when compiling large and complex source files.
.bull
All x86 compilers now have the ability to perform no truncation when converting
floating point values to integers. Additionally, 32-bit x86 compilers have the
option to inline the rounding code instead of calling __CHP.
.bull
The C lexical scanner no longer evaluates constants with (U)LL suffix that
fit into 32 bits as zero (1ULL was wrong, LONGLONG_MAX was correct).
.bull
C and C++ x86 inline assembler has been fixed to properly process hexadecimal
constants postfixed with 'h'.
.bull
The C compiler now supports the C99 'inline' keyword, in addition to previously
supported '_inline' and '__inline' keywords.
.bull
The C compiler now treats a sequence of adjacent character strings as wide if
any of the components are wide (required by C99), instead of depending on the
type of the last component. For example, L"foo " "bar" is now interpreted as
L"foo bar", instead of "foo bar".
.bull
The internal C compiler limit on complex expressions has been increased
and if it is still insufficient, the compiler now reports an error instead of
crashing.
.bull
The C compiler now issues a warning on the default warning level if a function
with no prototype is referenced. This was previously warning W301 (level 3), now
it is warning W131 (level 1).
.bull
Warning "W132: No storage class or type specified" has been added to the C compiler.
This warning is issued if a variable is declared without specifying either storage
class or type. This is not allowed in C89.
.bull
Warning "W304: Return type 'int' assumed for function 'foo'" has been added.
This warning is issued if a function is declared without specifying return type.
This is allowed in C89 but not in C99.
.bull
Warning "W305: Type 'int' assumed in declaration of 'foo'" has been added to the
C compiler. This warning is issued if a variable is declared without specifying
its type. This is allowed in C89 but not in C99. Note that if warning W132 is
issued, W305 applies as well.
.bull
The C compiler now properly warns if a function with implied 'int' return type
fails to return a value. This potential error was previously undetected.
.bull
C++ compiler diagnostic messages have been made more consistent and slightly more
detailed.
.bull
Linker for Win32 targets can now create file checksums. These are primarily used
for DLLs and device drivers, but can be applied to all Win32 PE images if required.
.bull
Linker for Win32 targets can now set operating system version requirements into
the PECOFF optional header (Microsoft extended header).
.bull
Linker for Win32 targets can now set the linker version number into the PE
optional header (Microsoft extended header).
.bull
The linker will now eliminate zero-sized segments from NE format (16-bit OS/2
and Windows) executables. This fixes a problem where Windows 3.x would refuse
to load an executable with zero sized segment. This could happen especially
with C++ programs where some segments may have ended up empty after eliminating
unused functions.
.bull
The linker now (again) produces correct Watcom style debugging information. This
was a regression introduced in previous version.
.bull
Command line parsing for wccxxx, wppxxx and cl has been changed such that a
double backslash inside a quoted string is collapsed to a single backslash,
and hence "foo\\" now translates to 'foo\' and not 'foo\"'.
.bull
The IDE and other graphical tools no longer leak system resources (a bug introduced
in version 1.2).
.bull
The Image Editor limit on bitmap size has been changed from 512x512 pixels to
2048x2048 pixels.
.bull
The source browser now correctly decodes array information; Version 11.0c of
Watcom C/C++ started emitting array browse information in a new format and the
browser hadn't been updated accordingly.
.bull
The NT debugger trap file has been changed so an exception generated during a
step operation is handled correctly. Previously, the single step flag was not being
cleared and when the exception was being offered to the debuggee's own exception
handlers, a single step exception occurred in NT's exception handler rather than
the exception being passed back to our handler.
.bull
The OS/2 debuggers now dynamically allocate buffer for the command line,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -