AWARE [SYSTEMS] Imaging expertise for the Delphi developer
AWare Systems, Imaging expertise for the Delphi developer, Home TIFF and LibTiff Mailing List Archive

LibTiff Mailing List

TIFF and LibTiff Mailing List Archive
February 2009

Previous Thread
Next Thread

Previous by Thread
Next by Thread

Previous by Date
Next by Date

Contact

The TIFF Mailing List Homepage
This list is run by Frank Warmerdam
Archive maintained by AWare Systems



Valid HTML 4.01!



Thread

2009.02.05 18:38 "assertions, and building with DEBUG/NDEBUG", by Frank Warmerdam
2009.02.05 19:04 "Re: assertions, and building with DEBUG/NDEBUG", by Edward Lam
2009.02.05 19:13 "Re: assertions, and building with DEBUG/NDEBUG", by Bob Friesenhahn
2009.02.05 19:26 "Re: assertions, and building with DEBUG/NDEBUG", by Frank Warmerdam
2009.02.05 20:00 "Re: assertions, and building with DEBUG/NDEBUG", by Bob Friesenhahn
2009.02.06 04:39 "Re: assertions, and building with DEBUG/NDEBUG", by Phillip Crews
2009.02.06 16:33 "Re: assertions, and building with DEBUG/NDEBUG", by Bob Friesenhahn
2009.02.06 20:34 "Re: assertions, and building with DEBUG/NDEBUG", by Phillip Crews
2009.02.06 12:17 "Re: assertions, and building with DEBUG/NDEBUG", by <ron@debian.org>
2009.02.06 13:57 "Re: assertions, and building with DEBUG/NDEBUG", by Edward Lam
2009.02.06 17:08 "Re: assertions, and building with DEBUG/NDEBUG", by Bob Friesenhahn
2009.02.06 21:05 "Re: assertions, and building with DEBUG/NDEBUG", by Phillip Crews
2009.02.06 10:07 "Re: assertions, and building with DEBUG/NDEBUG", by Joris Van Damme
2009.02.06 15:05 "Re: assertions, and building with DEBUG/NDEBUG", by Frank Warmerdam
2009.02.06 10:44 "Re: assertions, and building with DEBUG/NDEBUG", by Joris Van Damme
2009.02.06 14:56 "Re: assertions, and building with DEBUG/NDEBUG", by Frank Warmerdam
2009.02.07 10:53 "Re: assertions, and building with DEBUG/NDEBUG", by Joris Van Damme
2009.02.07 14:10 "Re: The OJPEG bug 1996", by Joris Van Damme
2009.02.26 22:44 "Re: assertions, and building with DEBUG/NDEBUG", by Joris Van Damme

2009.02.05 19:26 "Re: assertions, and building with DEBUG/NDEBUG", by Frank Warmerdam

Bob Friesenhahn wrote:
>> It appears these assertions are being used to call to attention problems
>> in these files for developers, and are intended to be compiled out in
>> production software.
> 
> Assertions should only be used to detect logic problems in the libtiff 
> implementation or perhaps the using application.  It would be a bug if 
> an assertion is thrown by libtiff (rather than returning a warning or 
> error) based on reading a file.

Bob,

I agree.  I have removed some particular assertions in tif_readdir.c
now that were really just indicative of corrupt files that were already
being trapped appropriately with runtime errors.

>> So my question is, is it normal for people building for production 
>> purposes
>> to build with NDEBUG defined?
> 
> I have not heard of a build production process for open-source based 
> systems which intentionally disables assertions.  More than likely they 
> are disabled in quite a few closed-source applications.

It has always been my practice and assumption that assertions should
be disabled in production software where performance and appropriate
error handling is considered important.

>> I am contemplating modifying tiffiop.h to explicitly define NDEBUG if
>> DEBUG is not defined, before including assert.h.  This would mean that
>> assertions are compiled out by default, and only included if DEBUG is
>> explicitly requested.  I would also change Makefile.vc to define DEBUG 
>> for
>> the debug build case.
> 
> This is a sure-fire way to ensure that there are no bug-reports 
> regarding thrown assertions.  Is that really what we want?  Maybe we are 
> using the assertions incorrectly.

As noted, some of the assertions have been removed as inappropriate.

However, I still feel it is a questionable practice to leave assertions
compiled in to production builds.  For now though I'll take no further
action in this regard.

Best regards,
-- 
---------------------------------------+--------------------------------------
I set the clouds in motion - turn up   | Frank Warmerdam, warmerdam@pobox.com
light and sound - activate the windows | http://pobox.com/~warmerdam
and watch the world go round - Rush    | Geospatial Programmer for Rent