home *** CD-ROM | disk | FTP | other *** search
-
- **********
- ** WOMP **
- **********
-
- WOMP /fm2 now converts fixups even if the default (metaware)
- debugging information is specified. As well, it only converts
- 32-bit fixups. Thus, you can convert one of our libraries to
- work with LINK386 with the following command:
-
- womp /fm2 clib3r.lib
- ===========================================================
-
- ************
- ** WVIDEO **
- ************
-
- Doing a print command using the default formatting with
- an expression of type pointer (e.g. "print dbg$view") would
- hang if no radix specifier prefix had been entered for
- base 16.
- ===========================================================
-
- If a user interrupt occurred while a trace command was
- running, the debugger would hang.
- ===========================================================
-
- Exiting a Windows application while the debugger was running
- would have the user see a "invalid opcode" fault.
- ===========================================================
-
- When debugging a PharLap appication, if you attempted to quit
- when any floating point exceptions masks in the numeric coprocessor
- control word were clear, the machine would crash.
- ===========================================================
-
- The RETURN.DBG file did not work if the current language
- was FORTRAN.
- ===========================================================
-
- Under OS/2 2.0 the debugger did not properly display the
- numeric coprocessor state for threads other than thread
- one.
- ===========================================================
-
- ************************
- ** Windows Supervisor **
- ************************
-
- Windows does not preserve any floating point state across
- task switches. The supervisor was enhanced to preserve the necessary
- state for an application that is using floating point.
- ===========================================================
-
- ************
- ** Linker **
- ************
-
- Hidden integer conversion problem sometimes made the 16-bit versions
- of the linker not catch the address information too large problem.
- ===========================================================
-
- Added a debug none statement to shut off all debugging information
- generation for specific object files. Note that this is a
- preliminary implementation designed solely to allow some users
- to work around debugger limitations, and if not used properly can
- cause incorrect debugging information to get produced.
- ===========================================================
-
- Fixed a problem where we were generating address information entries
- with a 0 size for fortran common blocks.
- ===========================================================
-
- Pruning of zero size address information blocks caused some overlay
- sections to have no addressing information generated, and wvideo
- choked on this. A dummy address information block is now generated
- for such sections.
- ===========================================================
-
- Don't include type and locals information if no watcom object coment
- found. This is to avoid problems with spurious codeview information
- being included when linking (esp. with 386asm .obj files)
- ===========================================================
-
- ***************
- ** Librarian **
- ***************
-
- Added a missing space in the library too large error
- message.
- ===========================================================
-
- The librarian would sometimes hang when presented with
- a library or object file which was invalid.
- ===========================================================
-
- **********************
- ** Graphics Library **
- **********************
-
- The _remapallpalette() function was also modifying the
- overscan register (background colour) on VGA's.
- ===========================================================
-
- Modified the _setvideomode() function so that the user
- can control whether the screen is cleared when a video
- mode is selected.
- ===========================================================
-
- Fixed a problem in the SuperVGA support for ATI adapters
- where the bottom half of the screen would not be drawn
- properly.
- ===========================================================
-
- ************************
- ** FORTRAN 77 Library **
- ************************
-
- Now scans the following namelist input properly:
-
- &NML
- A = T F
- T = 4
- &END
-
- Where A is an array of LOGICAL.
- ===========================================================
-
- Fixed a problem with REWIND; rewinding a file followed by a
- write did not truncate the file after the write.
- ===========================================================
-
- Fixed a problem with NAMELIST input when using a repeat
- specification as in the following example.
-
- &NML
- A = 100*0
- B = 10
- &END
- ===========================================================
-
- Fixed problems with the run-time support for the
- "/format" option.
- ===========================================================
-
- The OS/2 version of BEGINTHREAD() now initializes the
- math coprocessor for each thread created.
- ===========================================================
-
- *************************
- ** FORTRAN 77 Compiler **
- *************************
-
- Passing a character array by value would always pass a
- pointer to the string descriptor; a pointer to the actual
- array is now passed.
- ===========================================================
-
- Added "/wild" option to allow branching into block
- structures. This option was added so that existing code
- that performed such branches could be compiled. We do
- NOT encourage the use of this option as problems may
- arise when branching into looping structures.
- ===========================================================
-
- *************
- ** DOS4/GW **
- *************
-
- Reduced size of footprint under DPMI host.
-
- Corrected problem with random program crashes under DOS box.
- (interrupt handling stack was too small under DPMI)
-
- Corrected problem with LINEXE_Loader failures under DPMI hosts.
-
- Further enhancements to memory retrieval on large machines (>32MB)
-
- Fixed problem where you could not open more than 20 files under VMM.
- ===========================================================
-
- ******************
- ** Disassembler **
- ******************
-
- Using the /au switch under OS/2 would crash.
- ===========================================================
-
- ***************
- ** C Library **
- ***************
-
- Fixed the problem where argv[0] wasn't set to the path of the
- executable under OS/2.
- ===========================================================
-
- Optimized fseek( fp, +ve, SEEK_CUR ) (where +ve is within the
- buffered block) to an increment.
- ===========================================================
-
- _bios functions were compiled incorrectly, and didn't work.
- ===========================================================
-
- Fixed a subtle problem in the emulator that could cause
- strange results when debugging a 32-bit program that
- used the floating-point emulator.
- ===========================================================
-
- freopen a file for text mode on a file that was open for binary
- did not change the mode from binary to text.
- ===========================================================
-
- longjmp now verifies the values to be reloaded into es,fs and gs on 386.
- If they are not valid, then 0 will be loaded instead. This will
- avoid protection exceptions where memory segments have been freed
- between the call to setjmp and longjmp.
- ===========================================================
-
- WINDOWS.LIB now has the Windows 3.1 entry points.
- ===========================================================
-
- Incompatibilities with obtaining information about files
- on Novell Netware drives were resolved in the OS/2 2.0
- libraries.
- ===========================================================
-
- The OS/2 version of _beginthread() now initializes the
- math coprocessor for each thread created.
- ===========================================================
-
- __TNK routine (OS/2 2.0 prolog thunk) changed to
- ensure that the 16 bit routine is called with
- at least 8K of stack.
- ===========================================================
-
- ********************
- ** Code Generator **
- ********************
-
- The 16 bit compiler would place an fwait instruction
- after a compare//jump instead of before. For example:
-
- double v = f();
- // wait instruction should have been placed here.
- if( foo ) {
- // wait instruction erroneously placed here.
- return;
- }
- printf( "%g\n", v );
-
- ===========================================================
-
- Internal compiler #31 was generated if a double function
- return value was negated and the /3s switch was used.
- For example:
-
- double foo();
- int bar( double z )
- {
- return( z > -foo() );
- }
- ===========================================================
-
- Specifying both the /oa and /oe options could generate
- incorrect code if the function being inlined was passed
- the address of a static/global variable which was also
- being used in the routine being compiled.
- ===========================================================
-
- ****************
- ** C Compiler **
- ****************
-
- The inline assembler was not properly encoding moves
- to segment registers when the second operand contained
- a segment override (e.g. "mov ds, cs:mem"). The destination
- was always encoded as the ES register.
- ===========================================================
-
- Fixed problem with constant folding when one of the operands
- is an indirection through a constant address. e.g.
- typedef struct { char u1, u2; } *P_Q;
- foo( ((P_Q)9)->u2 & 0xfe );
- ===========================================================
-
- -op option added to compiler to force floating-point values to
- be stored in memory in order to produce consistent floating-point
- results. Values that stay in 8087 registers could have extra bits
- of precision and not compare equal with values that are in memory.
- This -op option should eliminate this situation.
-
- Several problems with __far16 pointers have been fixed.
- ===========================================================
-