home *** CD-ROM | disk | FTP | other *** search
/ ProfitPress Mega CDROM2 …eeware (MSDOS)(1992)(Eng) / ProfitPress-MegaCDROM2.B6I / PROG / PASCAL / TP6BUGS4.ZIP / TP6BUGS4 next >
Encoding:
Text File  |  1991-12-03  |  6.7 KB  |  188 lines

  1. This is a completely *un*official list of bugs in TP 6.0.  There have
  2. been (at least) two releases both numbered 6.00:  the original one in
  3. October 1990, and another in June 1991.  You can identify the later
  4. release by the date or by the file size:  TURBO.EXE is 325982 bytes in
  5. the later release.  Several bugs were fixed in the second release; those
  6. are marked below.  I've also heard of a 6.01 release dated July 1991,
  7. but haven't tested any of these bugs against it.
  8.  
  9. The list is very abbreviated;  if any of the items are too obscure, ask
  10. and I'll expand on them.
  11.  
  12. Juergen Schlegelmilch sent me a very detailed list of bugs & fixes in TP
  13. 6.0 & Turbovision; the file version (TP6BUGS4.ZIP) of this list contains
  14. all of his comments.  It will be available on Fidonet on the PDN Pascal
  15. file echo area, and on Internet from garbo.uwasa.fi.  It is *not*
  16. available on Compuserve, as it's just too long to post.  Borland will
  17. not merge bug lists into the Borland forum download libraries there.
  18.  
  19. I'd appreciate it if anyone sent me their own bug list; I'll publicize
  20. it on Usenet, Fidonet and Compuserve. I'd also appreciate hearing about
  21. patches.
  22.  
  23. Duncan Murdoch
  24.  
  25.  dmurdoch@math.carleton.ca       (Internet temporary address)
  26.  dmurdoch@watstat.waterloo.edu   (Internet address)
  27.  71631,122 (Compuserve)
  28.  DJ Murdoch at 1:163/140.3 (Fidonet) (until Dec 31)
  29.                1:221/177.40 (after that).
  30.  
  31. December 3, 1991:
  32.  
  33. TP doesn't handle the denormal exception properly on an 8087 or 80287,
  34. so underflow sometimes creates non-zero results.  Not fixed.
  35.  
  36. Compile time evaluation of the ROUND() function is different than
  37. run-time evaluation in $N+ mode on numbers ending in .5.  Not fixed.
  38.  
  39. Arithmetic on the REAL type is sometimes inaccurate in the last few bits
  40. of the result.  Not fixed.
  41.  
  42. The coprocessor emulator doesn't properly emulate the FINCSTP and
  43. FDECSTP instructions in BASM.  (These aren't used by compiled Pascal
  44. code.)  Not fixed.
  45.  
  46. The coprocessor emulator doesn't respect the precision control bits. Not
  47. fixed.
  48.  
  49. The SEG operator in BASM doesn't work on variables declared in the stack
  50. segment. Not fixed.
  51.  
  52. Referencing fields of records in BASM in a WITH block doesn't add the
  53. base address. Not fixed.
  54.  
  55. BASM doesn't generate correct code for instructions like MOV AX,[WORD
  56. PTR BX]. (This is TASM Ideal mode syntax; MASM syntax MOV AX,WORD PTR
  57. [BX] is fine.)  Not fixed.
  58.  
  59. The Graph.TextWidth function returns incorrect results when fonts are
  60. scaled.
  61.  
  62. A long list of bugs (with fixes!) in the Editors and Helpfile unit and
  63. TV demo programs is given in the accompanying file TVBUGS, by Juergen
  64. Schlegelmilch.  (This list is not being posted here; it's available in
  65. TP6BUGS4.ZIP.)
  66.  
  67. October 31, 1991:
  68.  
  69. The instruction "IMUL AX, 16" (valid on an 80186+) is rejected by BASM.
  70. The equivalent "IMUL AX, AX, 16" does work (in $G+ mode).  Not fixed.
  71.  
  72. October 26, 1991:
  73.  
  74. If a byte variable X = 0, then (X-1) DIV 8 produces a zero divide error.
  75. Fixed June 91.
  76.  
  77. October 23, 1991:
  78.  
  79. Hitting tab on a help topic with no crossrefs will crash the help
  80. system.  A patch to HELPFILE.PAS is available.
  81.  
  82. October 17, 1991:
  83.  
  84. The coprocessor emulator does not respect the rounding bits internally
  85. or when storing results to Single or Double variables.
  86.  
  87. October 11, 1991:
  88.  
  89. Segments in external .OBJ files with no class names (e.g. ABSOLUTE
  90. segments) will crash TURBO, TPC or TPCX.  Not fixed.
  91.  
  92. September 16, 1991:
  93.  
  94. The IDE will give incorrect matches when doing word searches on words at
  95. the start of lines (e.g. "Const" matches "onst").  Fixed June 91.
  96.  
  97. The compiler won't allow the optional identifier in a variant record to
  98. be an already defined scalar type identifer. Not fixed.
  99.  
  100. The compiler gives spurious errors if you nest loops very deeply (e.g.
  101. 256 deep).
  102.  
  103.  
  104. August 16, 1991
  105.  
  106. Dangerous bugs:
  107.  
  108. You can use typed constants and variables in constant expressions,
  109. giving garbage values.  Fixed June 91.
  110.  
  111. The coprocessor emulator doesn't check properly for internal stack
  112. overflow; it just wraps around and trashes the top of the stack segment.
  113. Not fixed.
  114.  
  115. Succ(Seg(v)) = Seg(v)  and Pred(Seg(v)) = Seg(v) !  Fixed June 91.
  116.  
  117. TBufStream writes garbage to the stream sometimes.  (A patch for this is
  118. available from Borland QA).  Not fixed.
  119.  
  120. IN doesn't properly handle out of range values.  (What it does is to
  121. demote out of range scalars to byte, ignoring any high bits.) Not fixed.
  122.  
  123. Referencing fields of records in inline machine code sometimes makes the
  124. compiler go quietly insane.  Not fixed.
  125.  
  126.  Other bugs:
  127.  
  128. Coprocessor errors are often reported at the wrong address, especially
  129. if the error occurs on the first pass through. Not fixed.
  130.  
  131. GetDir returns a root directory for non-existent drives.  (This is
  132. almost as documented.)
  133.  
  134. Horizontal text justification to the right side doesn't work if the
  135. writing direction is vertical.
  136.  
  137. Intr and MsDos don't always work properly in V86 mode under Windows 3,
  138. because they don't use the INT instruction.
  139.  
  140. The TVEdit unit can't input some digits.  (A patch for this is
  141. available.) Fixed in June 91.
  142.  
  143. ^T in TVEdit sometimes deletes more than the next word.  (This is by
  144. design, but inconsistent with the design of the IDE.)
  145.  
  146. ^QF followed by ^L followed by Space deletes words in TVEdit.  (This is
  147. also by design.)
  148.  
  149. TProgram doesn't clean up memory properly on exit.
  150.  
  151. TFileViewer's FileName field is never disposed.
  152.  
  153. The IDE forgets your snow check setting if you jump to DOS and exit
  154. back.
  155.  
  156. Writeln wipes out the status word in the coprocessor. Not fixed.
  157.  
  158. You can allocate an array bigger than 65528 bytes on the heap; it may
  159. wrap around and trash whatever precedes it.  Not fixed.
  160.  
  161. The coprocessor emulator doesn't propagate NaNs the same way as a real
  162. coprocessor does. Not fixed.
  163.  
  164. The string conversion routines sometimes print NaNs as INF.
  165.  
  166. Complicated expressions involving Reals compiled $N+ will unnecessarily
  167. overflow the coprocessor stack (and trigger the dangerous error above).
  168. Not fixed.
  169.  
  170. The $G+ option makes the inline assembler use inline floating point
  171. code, rather than the CD forms that allow emulation. Not fixed.
  172.  
  173. Graph3.Plot leaves a word on the stack; if you call it repeatedly, you
  174. may get a stack overflow; if you call it from a routine that doesn't
  175. have any locals, you're dead.  Fixed in June 91.
  176.  
  177. Some weird problems with F7 Trace; sometimes it just refuses to do it.
  178.  
  179. There are certain illegal Extended encodings that crash the debugger in
  180. TURBO. Not fixed.
  181.  
  182. Range checking shouldn't apply to the limits in a for loop.
  183.  
  184. Method arguments shouldn't be at the same scoping level as method names.
  185.  
  186. The compiler exports private identifiers in .TPU files (though you can't
  187. use them).
  188.