home *** CD-ROM | disk | FTP | other *** search
- This is the time of year when Borland must be getting ready for another
- TP release. With that in mind, I've put together an update to my bug
- list. If any beta testers out there read this, check for these and see
- how well Borland listens to bug reports.
-
- The list is very abbreviated; if any of the items are too obscure, ask and
- I'll expand on them.
-
- I'd appreciate it if anyone sent me their own bug list; I'll publicize
- it on Usenet, Fidonet and Compuserve. I'd also appreciate hearing about
- patches other than the two I mention.
-
- Duncan Murdoch
-
- dmurdoch@watstat.waterloo.edu
- DJ Murdoch at Fidonet node 1:221/177.40
- Compuserve id 71631,122
-
- TP 6.0 bug list (August 16, 1991)
-
- Dangerous bugs:
-
- You can use typed constants and variables in constant
- expressions, giving garbage values.
-
- The coprocessor emulator doesn't check properly for internal
- stack overflow; it just wraps around and trashes the top of the
- stack segment.
-
- Succ(Seg(v)) = Seg(v) and Pred(Seg(v)) = Seg(v) !
-
- TBufStream writes garbage to the stream sometimes. (A patch for
- this is available from Borland QA).
-
- IN doesn't properly handle out of range values.
-
- Referencing fields of records in inline code sometimes makes the
- compiler go quietly insane.
-
-
- Other bugs:
-
- Coprocessor errors are often reported at the wrong address if the
- error occurs on the first pass through.
-
- GetDir returns a root directory for non-existent drives.
-
- Horizontal text justification to the right side doesn't work if
- the writing direction is vertical.
-
- Intr and MsDos don't always work properly in V86 mode under
- Windows 3, because they don't use the INT instruction.
-
- The TVEdit unit can't input some digits. (A patch for
- this is available.)
-
- ^T in TVEdit sometimes deletes more than the next word.
-
- ^QF followed by ^L followed by Space deletes words in TVEdit.
-
- TProgram doesn't clean up memory properly on exit.
-
- TFileViewer's FileName field is never disposed.
-
- The IDE forgets your snow check setting if you jump to DOS and
- exit back.
-
- Writeln wipes out the status word in the coprocessor.
-
- You can allocate an array bigger than 65528 bytes on the heap; it
- may wrap around and trash whatever precedes it.
-
- The coprocessor emulator doesn't propagate NaNs the same way as
- a real coprocessor does.
-
- The string conversion routines sometimes print NaNs as INF.
-
- Complicated expressions involving Reals compiled $N+ will
- unnecessarily overflow the coprocessor stack (and trigger the
- dangerous error above).
-
- The $G+ option makes the inline assembler use inline floating
- point code, rather than the CD forms that allow emulation.
-
- Graph3.Plot leaves a word on the stack; if you call it
- repeatedly, you may get a stack overflow; if you call it from a
- routine that doesn't have any locals, you're dead.
-
- Some weird problems with F7 Trace; sometimes it just refuses to
- do it.
-
- There are certain illegal Extended encodings that crash the
- debugger in TURBO.
-
- Range checking shouldn't apply to the limits in a for loop.
-
- Method arguments shouldn't be at the same scoping level as method
- names.
-
- The compiler exports private identifiers in .TPU files (though
- you can't use them).
-
- (And for free, a TD 2.01 bug:)
-
- If the condition for a conditional breakpoint is a little too
- long, the popup window gets messed up; if it's really too long,
- TD dies.
-
-