home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / library / os2 / watcom / c286_c / readme.c < prev    next >
Encoding:
Text File  |  1992-09-10  |  10.8 KB  |  294 lines

  1.  
  2.           **********
  3.           ** WOMP **
  4.           **********
  5.  
  6.     WOMP /fm2 now converts fixups even if the default (metaware)
  7.     debugging information is specified.  As well, it only converts
  8.     32-bit fixups.  Thus, you can convert one of our libraries to
  9.     work with LINK386 with the following command:
  10.  
  11.     womp /fm2 clib3r.lib
  12. ===========================================================
  13.  
  14.           ************
  15.           ** WVIDEO **
  16.           ************
  17.  
  18.     Doing a print command using the default formatting with
  19.     an expression of type pointer (e.g. "print dbg$view") would
  20.     hang if no radix specifier prefix had been entered for
  21.     base 16.
  22. ===========================================================
  23.  
  24.     If a user interrupt occurred while a trace command was
  25.     running, the debugger would hang.
  26. ===========================================================
  27.  
  28.     Exiting a Windows application while the debugger was running
  29.     would have the user see a "invalid opcode" fault.
  30. ===========================================================
  31.  
  32.     When debugging a PharLap appication, if you attempted to quit
  33.     when any floating point exceptions masks in the numeric coprocessor
  34.     control word were clear, the machine would crash.
  35. ===========================================================
  36.  
  37.     The RETURN.DBG file did not work if the current language
  38.     was FORTRAN.
  39. ===========================================================
  40.  
  41.     Under OS/2 2.0 the debugger did not properly display the
  42.     numeric coprocessor state for threads other than thread
  43.     one.
  44. ===========================================================
  45.  
  46.           ************************
  47.           ** Windows Supervisor **
  48.           ************************
  49.  
  50.     Windows does not preserve any floating point state across
  51.     task switches. The supervisor was enhanced to preserve the necessary
  52.     state for an application that is using floating point.
  53. ===========================================================
  54.  
  55.           ************
  56.           ** Linker **
  57.           ************
  58.  
  59.     Hidden integer conversion problem sometimes made the 16-bit versions
  60.     of the linker not catch the address information too large problem.
  61. ===========================================================
  62.  
  63.     Added a debug none statement to shut off all debugging information
  64.     generation for specific object files.  Note that this is a
  65.     preliminary implementation designed solely to allow some users
  66.     to work around debugger limitations, and if not used properly can
  67.     cause incorrect debugging information to get produced.
  68. ===========================================================
  69.  
  70.     Fixed a problem where we were generating address information entries
  71.     with a 0 size for fortran common blocks.
  72. ===========================================================
  73.  
  74.     Pruning of zero size address information blocks caused some overlay
  75.     sections to have no addressing information generated, and wvideo
  76.     choked on this.  A dummy address information block is now generated
  77.     for such sections.
  78. ===========================================================
  79.  
  80.     Don't include type and locals information if no watcom object coment
  81.     found.  This is to avoid problems with spurious codeview information
  82.     being included when linking (esp. with 386asm .obj files)
  83. ===========================================================
  84.  
  85.           ***************
  86.           ** Librarian **
  87.           ***************
  88.  
  89.     Added a missing space in the library too large error
  90.     message.
  91. ===========================================================
  92.  
  93.     The librarian would sometimes hang when presented with
  94.     a library or object file which was invalid.
  95. ===========================================================
  96.  
  97.           **********************
  98.           ** Graphics Library **
  99.           **********************
  100.  
  101.     The _remapallpalette() function was also modifying the
  102.     overscan register (background colour) on VGA's.
  103. ===========================================================
  104.  
  105.     Modified the _setvideomode() function so that the user
  106.     can control whether the screen is cleared when a video
  107.     mode is selected.
  108. ===========================================================
  109.  
  110.     Fixed a problem in the SuperVGA support for ATI adapters
  111.     where the bottom half of the screen would not be drawn
  112.     properly.
  113. ===========================================================
  114.  
  115.           ************************
  116.           ** FORTRAN 77 Library **
  117.           ************************
  118.  
  119.     Now scans the following namelist input properly:
  120.  
  121.     &NML
  122.     A = T F
  123.     T = 4
  124.     &END
  125.  
  126.     Where A is an array of LOGICAL.
  127. ===========================================================
  128.  
  129.     Fixed a problem with REWIND; rewinding a file followed by a
  130.     write did not truncate the file after the write.
  131. ===========================================================
  132.  
  133.     Fixed a problem with NAMELIST input when using a repeat
  134.     specification as in the following example.
  135.  
  136.     &NML
  137.     A = 100*0
  138.     B = 10
  139.     &END
  140. ===========================================================
  141.  
  142.     Fixed problems with the run-time support for the
  143.     "/format" option.
  144. ===========================================================
  145.  
  146.     The OS/2 version of BEGINTHREAD() now initializes the
  147.     math coprocessor for each thread created.
  148. ===========================================================
  149.  
  150.           *************************
  151.           ** FORTRAN 77 Compiler **
  152.           *************************
  153.  
  154.     Passing a character array by value would always pass a
  155.     pointer to the string descriptor; a pointer to the actual
  156.     array is now passed.
  157. ===========================================================
  158.  
  159.     Added "/wild" option to allow branching into block
  160.     structures.  This option was added so that existing code
  161.     that performed such branches could be compiled.  We do
  162.     NOT encourage the use of this option as problems may
  163.     arise when branching into looping structures.
  164. ===========================================================
  165.  
  166.           *************
  167.           ** DOS4/GW **
  168.           *************
  169.  
  170. Reduced size of footprint under DPMI host.
  171.  
  172. Corrected problem with random program crashes under DOS box.
  173. (interrupt handling stack was too small under DPMI)
  174.  
  175. Corrected problem with LINEXE_Loader failures under DPMI hosts.
  176.  
  177. Further enhancements to memory retrieval on large machines (>32MB)
  178.  
  179. Fixed problem where you could not open more than 20 files under VMM.
  180. ===========================================================
  181.  
  182.           ******************
  183.           ** Disassembler **
  184.           ******************
  185.  
  186.    Using the /au switch under OS/2 would crash.
  187. ===========================================================
  188.  
  189.           ***************
  190.           ** C Library **
  191.           ***************
  192.  
  193.     Fixed the problem where argv[0] wasn't set to the path of the
  194.     executable under OS/2.
  195. ===========================================================
  196.  
  197.     Optimized fseek( fp, +ve, SEEK_CUR ) (where +ve is within the
  198.     buffered block) to an increment.
  199. ===========================================================
  200.  
  201.     _bios functions were compiled incorrectly, and didn't work.
  202. ===========================================================
  203.  
  204.     Fixed a subtle problem in the emulator that could cause
  205.     strange results when debugging a 32-bit program that
  206.     used the floating-point emulator.
  207. ===========================================================
  208.  
  209.     freopen a file for text mode on a file that was open for binary
  210.     did not change the mode from binary to text.
  211. ===========================================================
  212.  
  213.     longjmp now verifies the values to be reloaded into es,fs and gs on 386.
  214.     If they are not valid, then 0 will be loaded instead. This will
  215.     avoid protection exceptions where memory segments have been freed
  216.     between the call to setjmp and longjmp.
  217. ===========================================================
  218.  
  219.     WINDOWS.LIB now has the Windows 3.1 entry points.
  220. ===========================================================
  221.  
  222.     Incompatibilities with obtaining information about files
  223.     on Novell Netware drives were resolved in the OS/2 2.0
  224.     libraries.
  225. ===========================================================
  226.  
  227.     The OS/2 version of _beginthread() now initializes the
  228.     math coprocessor for each thread created.
  229. ===========================================================
  230.  
  231.     __TNK routine (OS/2 2.0 prolog thunk) changed to
  232.     ensure that the 16 bit routine is called with
  233.     at least 8K of stack.
  234. ===========================================================
  235.  
  236.           ********************
  237.           ** Code Generator **
  238.           ********************
  239.  
  240.     The 16 bit compiler would place an fwait instruction
  241.     after a compare//jump instead of before. For example:
  242.  
  243.     double v = f();
  244.     // wait instruction should have been placed here.
  245.     if( foo ) {
  246.     // wait instruction erroneously placed here.
  247.     return;
  248.     }
  249.     printf( "%g\n", v );
  250.  
  251. ===========================================================
  252.  
  253.     Internal compiler #31 was generated if a double function
  254.     return value was negated and the /3s switch was used.
  255.     For example:
  256.  
  257.     double foo();
  258.     int bar( double z )
  259.     {
  260.         return( z > -foo() );
  261.     }
  262. ===========================================================
  263.  
  264.     Specifying both the /oa and /oe options could generate
  265.     incorrect code if the function being inlined was passed
  266.     the address of a static/global variable which was also
  267.     being used in the routine being compiled.
  268. ===========================================================
  269.  
  270.           ****************
  271.           ** C Compiler **
  272.           ****************
  273.  
  274.     The inline assembler was not properly encoding moves
  275.     to segment registers when the second operand contained
  276.     a segment override (e.g. "mov ds, cs:mem"). The destination
  277.     was always encoded as the ES register.
  278. ===========================================================
  279.  
  280.     Fixed problem with constant folding when one of the operands
  281.     is an indirection through a constant address. e.g.
  282.         typedef struct { char u1, u2; } *P_Q;
  283.     foo( ((P_Q)9)->u2 & 0xfe );
  284. ===========================================================
  285.  
  286.     -op option added to compiler to force floating-point values to
  287.     be stored in memory in order to produce consistent floating-point
  288.     results. Values that stay in 8087 registers could have extra bits
  289.     of precision and not compare equal with values that are in memory.
  290.     This -op option should eliminate this situation.
  291.  
  292.     Several problems with __far16 pointers have been fixed.
  293. ===========================================================
  294.