- 2008.12.18 04:56 "[Tiff] tiffvers.h - TIFFLIB_RELEASE macro addition", by Frank Warmerdam
-
2008.12.18 21:56 "Re: [Tiff] 3.9.0 release, Was: tiffvers.h - TIFFLIB_RELEASE macro addition", by Frank Warmerdam
-
2008.12.18 19:04 "Re: [Tiff] 3.9.0 release, Was: tiffvers.h - TIFFLIB_RELEASE macro addition", by Lee Howard
- 2008.12.18 19:18 "Re: [Tiff] 3.9.0 release, Was: tiffvers.h - TIFFLIB_RELEASE macro addition", by Edward Lam
-
2008.12.18 19:20 "Re: [Tiff] 3.9.0 release, Was: tiffvers.h - TIFFLIB_RELEASE macro addition", by Frank Warmerdam
-
2008.12.18 19:28 "Re: [Tiff] 3.9.0 release, Was: tiffvers.h - TIFFLIB_RELEASE macro addition", by Lee Howard
- 2008.12.18 19:35 "Re: [Tiff] 3.9.0 release, Was: tiffvers.h - TIFFLIB_RELEASE macro addition", by Frank Warmerdam
- 2008.12.18 20:42 "Re: [Tiff] 3.9.0 release, Was: tiffvers.h - TIFFLIB_RELEASE macro addition", by Bob Friesenhahn
-
2008.12.18 19:28 "Re: [Tiff] 3.9.0 release, Was: tiffvers.h - TIFFLIB_RELEASE macro addition", by Lee Howard
- 2008.12.18 22:05 "Re: [Tiff] 3.9.0 release, Was: tiffvers.h - TIFFLIB_RELEASE macro addition", by Bob Friesenhahn
- 2008.12.21 16:03 "Re: [Tiff] 3.9.0 release, Was: tiffvers.h - TIFFLIB_RELEASE macro addition", by Jay Berkenbilt
-
2008.12.18 19:04 "Re: [Tiff] 3.9.0 release, Was: tiffvers.h - TIFFLIB_RELEASE macro addition", by Lee Howard
-
2009.01.21 04:07 "[Tiff] libtiff 4.0.0beta3", by Frank Warmerdam
-
2009.01.21 21:11 "Re: [Tiff] libtiff 4.0.0beta3", by Edward Lam
-
2009.01.22 16:23 "Re: [Tiff] libtiff 4.0.0beta3", by Edward Lam
- 2009.01.22 16:31 "Re: [Tiff] libtiff 4.0.0beta3", by Bob Friesenhahn
- 2009.01.22 17:00 "Re: [Tiff] libtiff 4.0.0beta3", by Bob Friesenhahn
- 2009.01.22 19:38 "Re: [Tiff] libtiff 4.0.0beta3", by Frank Warmerdam
-
2009.01.22 16:23 "Re: [Tiff] libtiff 4.0.0beta3", by Edward Lam
-
2009.01.21 21:11 "Re: [Tiff] libtiff 4.0.0beta3", by Edward Lam
- 2009.01.22 07:15 "[Tiff] Bugzilla not available?", by Rob Eisink
-
2009.02.05 18:38 "[Tiff] assertions, and building with DEBUG/NDEBUG", by Frank Warmerdam
- 2009.02.05 19:04 "Re: [Tiff] assertions, and building with DEBUG/NDEBUG", by Edward Lam
-
2009.02.05 19:13 "Re: [Tiff] assertions, and building with DEBUG/NDEBUG", by Bob Friesenhahn
- 2009.02.05 19:26 "Re: [Tiff] assertions, and building with DEBUG/NDEBUG", by Frank Warmerdam
- 2009.02.06 10:07 "Re: [Tiff] assertions, and building with DEBUG/NDEBUG", by
- 2009.02.06 10:44 "Re: [Tiff] assertions, and building with DEBUG/NDEBUG", by
- 2009.02.26 22:44 "Re: [Tiff] assertions, and building with DEBUG/NDEBUG", by
- 2009.02.07 14:10 "Re: [Tiff] The OJPEG bug 1996", by
2009.02.05 19:26 "Re: [Tiff] assertions, and building with DEBUG/NDEBUG", by Frank Warmerdam
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