home *** CD-ROM | disk | FTP | other *** search
-
- ************
- ** WTOUCH **
- ************
-
- HPFS filename support was added.
- ===========================================================
-
- **************************************
- ** IBM WorkFrame/2 Support Programs **
- **************************************
-
- Fixed problem with main dialog refusing to close if secondary
- dialogs had been closed using the system menu close option.
- Fixed mixup with data threshold and structure packing when
- generating command lines.
- ===========================================================
-
- Selecting certain options from the compile options dialog
- would cause an error (command line missing filename) to be
- issued when compiling from the actions menu.
- ===========================================================
-
- *************
- ** cmdedit **
- *************
-
- Entering 'u' with leading or trailing whitespace no longer
- causes cmdedit to complain. Fixed problem which would cause
- cmdedit to halt OS/2 2.0. Cmdedit now has a proper stack
- segment so that it can be loaded high. Fixed problem with
- long PATH variables in os2edit.dll.
-
- ===========================================================
-
- Fixed file name completion problem that caused os2edit.dll to
- abnormally terminate.
- ===========================================================
-
- Under OS/2, search for .CMD files as well as .BAT, .EXE, and
- .COM files when doing executable name completion.
- ===========================================================
-
- Trailing whitespace in the 'd' command was being converted to
- backslashes, which would then cause an invalid directory error.
- Now all trailing backslashes and slashes are stripped (unless
- the command is of the form "d \" or "d x:\").
- ===========================================================
-
- OS2EDIT.DLL now supports HPFS filenames.
- ===========================================================
-
- Fixed bug with command history and command lines that were
- greater than 255 chars.
- ===========================================================
-
- **************
- ** Profiler **
- **************
-
- Windows Sampler was not working with 32-bit Windows
- applications.
- ===========================================================
-
- **********
- ** WOMP **
- **********
-
- Fixed a bug which would cause WOMP to leave a temporary file
- around in certain error situations.
- ===========================================================
-
- HPFS filename support was added.
- ===========================================================
-
- ************
- ** WVIDEO **
- ************
-
- For SERSERV.NLM you are now allowed to specify board
- and port numbers as reported by AIO. Board numbers are
- preceeded by a "b" and port numbers are preceeded by
- a "p". E.g.
-
- load serserv b3p1
-
- will attach to port one on board three. No spaces are
- allowed between the board and port numbers.
- ===========================================================
-
- OS/2 2.0 trap file was reporting guard page exceptions.
- ===========================================================
-
- On certain clone BIOS's, using the PLS.TRP, RSI.TRP, or ADS.TRP
- files would crash the debugger on startup.
- ===========================================================
-
- The Windows trap file, STD.DLL, thought that a 486SX
- chip had a floating point co-processor.
- ===========================================================
-
- Watch points in OS2 2.0 trap file, STD32.DLL, didn't work
- if the memory wasn't double word aligned.
- ===========================================================
-
- The debugger would die if symbol information was present,
- but there were no global symbols in the program (This
- could only happen with single assembly language source
- file programs).
- ===========================================================
-
- When using the RSI.TRP file, if the program being debugged
- modified memory containing an active breakpoint, the debugger
- would use the new value at that location as the breakpoint
- instruction from then on.
- ===========================================================
-
- The OS/2 version of WVIDEO now supports HPFS long file
- names.
- ===========================================================
-
- ************************
- ** Windows Supervisor **
- ************************
-
- The Escape function NEXTBAND didn't work correctly.
- ===========================================================
-
- The function _16SendMessage was missing from the supervisor.
- ===========================================================
-
- WBIND was building invalid .EXE's if RC step failed.
- ===========================================================
-
- A change was to the linker made allow .REX files to have > 1MB of
- relocation entries. The supervisor was changed to load this kind
- of .REX executable.
- ===========================================================
-
- The supervisor would crash if it's selector cache was empty and
- during a thunk more than 2 selector aliases were created.
- ===========================================================
-
- Windows does not preserve the EM bit of CR0 when doing a task switch
- between VM's. This would cause the emulator for 32-bit Windows
- applications to stop working when you start/switch to a DOS VM.
- ===========================================================
-
- An entry in GDI disappeared between the final beta of Windows 3.1
- and the release. The supervisor with 3.1 extensions referenced this
- entry and would cause the debugging version of Windows to complain
- about an invalid ordinal.
- ===========================================================
-
- The supervisors and wbind have been modified so that the module name
- of a 32-bit windows application is that of the applictaion, and not
- win386 or w386dll (the name of the supervisor).
- ===========================================================
-
- **********
- ** Make **
- **********
-
- HPFS filename support was added. WMAKE running under OS/2
- now preserves the case of filenames (but does case insensitive
- comparisons).
- ===========================================================
-
- $[&, $^&, or $]& at the end of a line inside a !if/!endif
- section that is skipped wouldn't be parsed correctly.
- For example:
-
- !ifdef __something_thats_not_defined__
- crispy = crunchy $^&
- !endif
-
- was parsed as if it was:
-
- !ifdef __something_thats_not_defined__
- crispy = crunchy $^!endif
-
- ===========================================================
-
- ************
- ** Linker **
- ************
-
- The phar lap .rex executable format (the one used for
- the windows 386 stuff) could not handle more than 1 MB
- of relocations, so we had to extend the format to get
- around this. (There are some huge apps out there...)
- ===========================================================
-
- If you said debug novell (or any other novell specific
- command) before doing a system novell or specifying an
- object file, the protected mode linker would crash
- ===========================================================
-
- Added HPFS support to wlink, ms2wlink and fcenable
- ===========================================================
-
- fixed a bug in wstrip where it would not behave as
- desired in very low memory conditions.
- ===========================================================
-
- Fixed problem which would cause wlink to crash under
- DR-DOS 6.0 with XMS memory when spool files were used.
- ===========================================================
-
- ***************
- ** Librarian **
- ***************
-
- Added HPFS support.
- ===========================================================
-
- Fixed problem which would cause wlib to crash under
- DR-DOS 6.0 with XMS memory.
- ===========================================================
-
- ********************
- ** C Header Files **
- ********************
-
- Added prototypes for vcscanf and vcprintf in CONIO.H
- ===========================================================
-
- **********************
- ** Graphics Library **
- **********************
-
- The _outtext() function was ignoring newline characters (\n) past
- the right edge of the text window.
- ===========================================================
-
- One of the functions called by _outtext() was using far pointers
- where it wasn't necessary, making it less efficient.
- ===========================================================
-
- Changed method of detecting Chips and Technologies SuperVGA cards.
- ===========================================================
-
- The font files (std.asm, hercfont.asm, etc) had segment
- definitions of the form "_DATA segment byte 'DATA'".
- These were changed to "_DATA segment byte public 'DATA'"
- Depending upon link order, these private segments could cause
- DGROUP to be split, causing incorrect relocations within
- the program.
- ===========================================================
-
- The _outtext() function was assuming an invalid number of
- text rows on the screen for certain SuperVGA adapters.
- ===========================================================
-
- The _setfont() function was not properly freeing memory, when
- multiple calls to the function were performed. This would cause
- the program to hang (16-bit) or to switch to using the default
- font (32-bit).
- ===========================================================
-
- ************************
- ** FORTRAN 77 Library **
- ************************
-
- Under OS/2 2.0, denormal floating-point exception is
- now ignored.
- ===========================================================
-
- Added FEXIT() subroutine that allows exit from a
- FORTRAN program with a return code.
- ===========================================================
-
- If a record was written at the end of a file and immediately
- re-read, an end-of-file message would be incorrectly issued.
- This only happens when the block size (default 16K for 32-bit
- and 4K for 16-bit) is not a multiple of the record size (default
- 256).
- ===========================================================
-
- In the 16-bit runtime libraries, reading a record from a
- file opened using RECL=32K or bigger, would not read the
- whole record.
- ===========================================================
-
- Fixed problems with reading binary files (files opened with
- ACCESS='SEQUENTIAL', FORM='UNFORMATTED', and RECFM='FIXED').
- ===========================================================
-
- Fixed problem mixing OS/2 2.0 FORTRAN multithread libraries
- with C multithread libraries. Also fixed problems with FORTRAN
- multithread libraries.
- ===========================================================
-
- Fixed problems using OS/2 2.0 default windowing libraries;
- opening 'CON' would not open another window.
- ===========================================================
-
- Fixed problem where BACKSPACE after reaching end-of-file
- would point to the last data record in the file instead of
- the end-file record.
- ===========================================================
-
- *************************
- ** FORTRAN 77 Compiler **
- *************************
-
- Fixed a bug which would cause an erroneous extension message
- to be issued for multiple DATA statements.
- ===========================================================
-
- The OS/2-hosted version of the compile and link utility
- ignores the "/p" option. The "/p" option used to invoke
- protected-mode versions of the compiler which were not
- present.
- ===========================================================
-
- Added HPFS support to FORTRAN compilers and compile
- and link utilities (WFC*.EXE and WFL*.EXE).
- ===========================================================
-
- CHARACTER*(*) arguments in subprograms that had multiple
- entry points would cause the compiler to crash when compiled
- with "/d2" option.
- ===========================================================
-
- Calling a COMPLEX statement function more than once from the
- same expression, as in the following example,
-
- complex f
- f(r) = cmplx( r, 0.0 )
- print *, f(2.0) * f(4.0)
- end
-
- would produce incorrect results.
- ===========================================================
-
- *************
- ** DOS4/GW **
- *************
-
- Major functionality change:
- DOS/4GW no longer ignores physical memory beyond the 16 MB mark.
-
- Corrected the following bugs:
-
- Program hangs in VMM initialization, unless VCPI/DPMI host present.
-
- On machine with 32MB & EMM386, DOS/4GW finds no memory available.
-
- LINEXE_LOADER fails on 64MB machine with HIMEM or no mem manager.
- We have fixed a wide range of configuration problems. In addition,
- this version should make use of all the physical memory in the
- machine, although we know there are still some problems on machines
- with 64MB or more of total memory. DOS/4GW does not work reliably
- on such machines in combination with HIMEM.SYS and EMM386.EXE; we
- recommend the use of QEMM (or no memory manager) on these machines.
-
- Int 31h/0204h returns wrong address.
-
- Chaining from 32-bit handler to previous 16-bit handler crashes.
- Several problems have been fixed with respect to interrupt handling.
-
- FS, GS not restored by mouse interrupt subroutine.
-
- Mouse button causes interrupt 0D in Windows DOS box.
-
- Int 21h/35h returns "thunk" address for 32-bit handlers.
-
- Pop fs and pop gs exceptions not covered up by kernel.
-
- WSTUBQ isn't quiet.
- ===========================================================
-
- ******************
- ** Disassembler **
- ******************
-
- The disassembler now ensures that its internal labels
- (L1, L2, etc) do not conflict with any user defined
- labels in the object file.
- ===========================================================
-
- The three operand imul instruction did not output its
- operands in the proper order if /au was specified
- ===========================================================
-
- HPFS filename support was added.
- ===========================================================
-
- Did not always get the size of ".bss" symbols correct
- when /au was specified.
- ===========================================================
-
- The disassembler did not properly handle cases when the
- displacement field of an instruction was outside the
- range of a segment. E.g.:
-
- mov ax,L1-4[bx]
-
- where L1 was at the begining of a segment.
- ===========================================================
-
- ***************
- ** C Library **
- ***************
-
- Added Ole32InitClientVtbl for 32-bit OLE support
- ===========================================================
-
- The length byte of the command tail was sometimes incorrect
- when spawning a program
- ===========================================================
-
- If you closed one of the first 5 files (stdin,stdout,stderr,
- stdprn,stdaux) their FILE struct would never be used again for
- a subsequent open.
- ===========================================================
-
- fseek was not positioning to correct position when seeking relative
- to end-of-file under certain conditions.
- ===========================================================
-
- _dos_read and _dos_write in the C/386 -3r libraries were not removing
- the last parameter from the stack before returning.
- ===========================================================
-
- A change had to be made to the file CRWDATA.OBJ in the
- C library to allow linking with the Microsoft LINK.EXE
- program.
- ===========================================================
-
- A new C library function, _splitpath2() has been added that is similar in
- function to _splitpath(). The prototype for _splitpath2() is defined in
- "stdlib.h" and is as follows.
-
- void _splitpath2( const char *__inp, char *outp,
- char **__drive, char **__dir, char **__fn, char **__ext );
-
- __inp is the path to be processed
-
- __outp is a buffer that will contain ALL the components of the
- path, each separated by a null character. The buffer should
- be defined to be as big as _MAX_PATH2.
-
- __drive is the location that is to contain the pointer to the drive
- specification (set by _splitpath2())
-
- __dir is the location that is to contain the pointer to the
- directory specification (set by _splitpath2())
-
- __fn is the location that is to contain the pointer to the file
- name specification (set by _splitpath2())
-
- __ext is the location that is to contain the pointer to the file
- extension specification (set by _splitpath2())
-
- _splitpath2() was added when HPFS support was added. In an HPFS, each
- component of the file could be as long as 255. In addition, the maximum
- length of a filename is 259. In order to reduce the stack requirements
- when allocating a 256-byte (255 + 1 for null character) buffer for each
- component and calling _splitpath(), you can allocate one 263-byte buffer
- (260 + 3 extra null characters) and call _splitpath2().
- ===========================================================
-
- Using the O_NOINHERIT flag in open/sopen in the DOS
- libraries caused fstat to return incorrect information
- in the st_mode field.
- ===========================================================
-
- The functions kbhit(), getch(), and putch() now work
- properly in OS/2 2.0.
- ===========================================================
-
- WILDARGV didn't work correctly under /mc /mh /ml if the
- near heap ran out while trying to allocate space for the
- file names. It would write over location ds:0.
- ===========================================================
-
- spawnvpe, execvpe and the other related functions did not
- handle long path components in the PATH environment
- variable properly. (Affects OS/2 mainly). These routines
- also did not handle long command lines (>128 chars) under
- OS/2.
- ===========================================================
-
- _dos functions were not setting errno in the 32-bit Windows
- environment.
- ===========================================================
-
- Truncate result of pow in 8087 libraries to be double precision.
- ===========================================================
-
- ********************
- ** Code Generator **
- ********************
-
- Far pointers could cause the 386 code generator to
- become confused when it tried to generate addressing modes
- like GS:[EAX+EDX]. This only applies to 48 bit pointers.
- ===========================================================
-
- Fixed problem with instruction scheduler (activated by -or
- and -ox). Floating point comparisons against memory (FCOMP x)
- are sometimes reordered incorrectly. The problem only
- occurs when the result of the comparison is used as an
- integer. The following code revealed the problem.
-
- extern real v1, v2, v3, v4, v5;
- if (fabs(v1) <= v4 | fabs(v1) >= v2)
-
- Notice that the | is used instead of ||, forcing the compiler
- to convert the expressions (fabs(v1) <= 4) and (fabs(v1) >=
- v2) to integers and then perform a bitwise-or of the two
- integers. Had || been used, the problem would not have
- appeared. Other expressions that could uncover the problem
- are:
-
- i = v1 != v2;
- ( v1 != v2 ) + 10
- v1 < v2 ? 2 : 3
-
- ===========================================================
-
- If an inline code sequence for a pragma exceeded 32 bytes
- in size and the sequence contained references to global
- or static symbols, then the code generator would page
- fault.
- ===========================================================
-
- Conversions from integer to floating point and vice
- versa were optimized out when the source and destination
- were the same location and native 80x87 code generation
- was selected. For example:
-
- union {
- float f;
- long i;
- } u;
-
- u.f = u.i;
- ===========================================================
-
- Fixed an "Internal compiler error #40" in the 16 bit
- compilers (wcc wccp wfc wfcp), caused by very complex
- subroutines containing shifts of "long" and "unsigned
- long" values. The 386 compilers were unaffected.
- ===========================================================
-
- Using a 2 parameter intrinsic math function (eg: pow, atan2)
- as a parameter to another 2 parameter intrinsic math function
- could cause the 8087 stack to overflow at runtime. This
- also affects both C and FORTRAN intrinsic functions.
- ===========================================================
-
- With the big data models (-mc, -ml, -mh) if the code generator
- decided to cache a static/global variable in a register (-oa)
- and there was no segment register dedicated to pointing at
- the segment that the variable resided in (either -zu or a
- 'far' item) then incorrect code could be generated.
- ===========================================================
-
- Using far pointers could cause wcc386p/wcc386 to crash.
- ===========================================================
-
- ****************
- ** C Compiler **
- ****************
-
- Compiler did not issue a warning if the address of an auto
- was passed to a function in a small data model and "/zu" option
- was specified.
- ===========================================================
-
- Compiler issued a warning when it shouldn't have when assigning
- a non-volatile far or huge pointer to a volatile declared pointer.
- ===========================================================
-
- enum's with values greater than 32767 in the real-mode version of
- C/386 (i.e. WCC386.EXE) were not handled correctly.
- ===========================================================
-
- Scanner no longer gives "Token truncated" message for tokens that
- are too long and are inside a block of code to be skipped. i.e.
- tokens that are inside a #if 0 block.
- ===========================================================
-
- Shift JIS to Unicode translation support has been added to C/386.
- New switch to activate this support is -zk0u.
- ===========================================================
-
- Problems occur when a function is inlined in the second or third
- parts of a "for" statement using the -oe option.
- ===========================================================
-
- Issue "Constant truncated" warning for "|=" and "^=" if constant
- is larger than the type of the left hand side. e.g.
- unsigned short us;
- us |= 0x00010000;
- ===========================================================
-
- Added #pragma disable_message(num,num,...) so that you can
- selectively disable individual errors and warnings.
- The #pragma enable_message(num,num,...) directive can be
- used to enable them again.
- ===========================================================
-
- Tail recursive functions that are inlined jump to the wrong label.
- ===========================================================
-
- #pragma off/on(reuse_duplicate_strings) added. Default is on.
- ===========================================================
-
- The "-bt[=<os>]" (build target) switch has been added to the C compiler.
- This switch is used for cross-development work. It prevents the compiler
- from defining the default system macro (which is based on the host
- system the compiler is running on) and instead defines a macro
- consisting of the string "<os>" converted to uppercase and prefixed
- and suffixed with two underscores. E.g, specifying the switch:
-
- -bt=foo
-
- would cause the compiler to define the macro
-
- __FOO__
-
- and prevent it from defining "MSDOS" if the compiler was being run under
- DOS, "__OS2__" if using the OS/2 hosted compiler, or "__QNX__" if using
- the QNX hosted version. Any string consisting of letters, digits, and
- the underscore character may be used for the system name. Also,
- several system names are recognized by the compiler and perform
- additional operations.
-
- System name Additional operation
- =========== ====================
-
- dos Defines the macro "MSDOS".
-
- windows Same as specifying the -zw switch.
- The 32-bit compiler additionally defines
- the macro "__WINDOWS_386__".
-
- netware (32-bit compiler only) Causes the compiler
- to use stack based calling conventions
- unless overridden by the -3r or -4r switches.
- Also defines the macro "__NETWARE_386__".
-
- penpoint (32-bit compiler only) Causes the compiler
- to use stack based calling conventions
- unless overridden by the -3r or -4r switches.
-
-
- Specifying -bt with no system name following restores the default system
- name.
- ===========================================================
-
- HPFS support has been added to the C compiler and the
- compile and link utilities (WCC*.EXE & WCL*.exe).
- ===========================================================
-
- The compiler was not automatically making static functions
- near calls where possible in big code models.
- ===========================================================
-
- The real mode DOS compilers (WCC.EXE, WCC386.EXE)
- could crash after issuing a FATAL message from the
- code generator.
- ===========================================================
-
- The OS/2 2.0 C libraries were not handling the conversion
- of far16 pointers to and from near pointers when the
- pointers were NULL.
- ===========================================================
-
- Report an error if an item over 64K in size is not
- marked as huge in the 16-bit compilers.
- ===========================================================
-
- Ignore the #ident directive for UNIX compatability unless
- the /za switch is set.
- ===========================================================
-
- Fixed problem with *L"\x0109" so that it picks up an unsigned
- short rather than just a byte.
- ===========================================================
-
- Compiler did not diagnose a parameter count mismatch error when
- a call with one or more parameters is made to a function that is
- defined in the same module with no parameters.
- ===========================================================
-
- Compiler did not diagnose attempts to modify const typedef items
- when compiling with -d2.
- ===========================================================
-