Tcl Source Code

View Ticket
Login
Ticket UUID: 555635
Title: Dead code: matherr, TclMathInProgress
Type: Patch Version: None
Submitter: jenglish Created on: 2002-05-13 21:59:18
Subsystem: 52. Portability Support Assigned To: dgp
Priority: 5 Medium Severity:
Status: Closed Last Modified: 2002-06-01 05:21:15
Resolution: Accepted Closed By: dgp
    Closed on: 2002-05-31 22:21:15
Description:
The attached patch removes matherr() under Unix, the
internal routine TclMathInProgress(), and the
associated ThreadSpecificData.  The source file
unix/tclMtherr.c should also be removed if this patch
is applied.

The _matherr() implementation in win/tclWinMtherr.c --
which is only used in Borland C++, not MSVC -- has been
retained, but it no longer checks TclMathInProgress(). 
This routine is used to prevent the Borland C++ math
library from raising a fatal exception when illegal
values are encountered.  With this patch, it prevents
exceptions from being thrown when any part of the
program calls a math library function, not just Tcl
internals.  Again, this is only applicable when Tcl is
built with the Borland compiler.

Further discussion may be found under SF Tcl Bug
#474335 "logic of matherr is backwards", but in
summary:

 * matherr() is nonportable and not available on all
platforms;
 * On the platforms where it is available, it is
typically only used if the main executable is linked
with a special version of libm, which Tcl does not do;
 * The version in unix/tclMtherr.c is merely an
incomplete reimplementation of the default behaviour on
the Unix platforms where it is available;
 * A bug related to this code (#474335) has gone
unnoticed for over three years, so it is unlikely in
the extreme that its outright removal will cause any
ill effects;


Summarizing the summary, this is dead code and it ought
to be buried.
User Comments: dgp added on 2002-06-01 05:21:15:
Logged In: YES 
user_id=80530

updated patch committed to 8.4a5.

dgp added on 2002-06-01 05:06:09:

File Added - 24166: matherr.patch

Logged In: YES 
user_id=80530

Here's an updated version of the patch that
also accounts for the NEED_MATHERR in
unix/configure*.

jenglish added on 2002-05-14 05:00:49:

File Added - 23033: matherr-patch.txt

Logged In: YES 
user_id=68433

Once again, I forgot to check the little button to upload an
attachment...

Attachments: