[phobos] enforce() vs. assert() for range primitives

Sean Kelly sean at invisibleduck.org
Thu Aug 19 07:18:05 PDT 2010


On Aug 18, 2010, at 11:30 PM, Lars Tandle Kyllingstad wrote:

> On Wed, 2010-08-18 at 20:09 -0400, Michel Fortin wrote:
>> Le 2010-08-18 à 19:08, Jonathan M Davis a écrit :
>> 
>>> The ideal situation would be to use asserts in all cases where it's going to be 
>>> bugs in the program rather than bad user input and that they go away in release 
>>> mode.
>> 
>> I'd say the ideal situation would be to have the 'in' contracts checked on the caller's side. That way a program compiled in debug mode would still check the input it sends to Phobos, and whether Phobos was compiled in debug or release mode would only affect its internal checks, not the checks about its inputs.
> 
> I wonder if it would be feasible to have two versions of the Phobos lib,
> libphobos2.a and libphobos2-debug.a, distributed with DMD.  The former
> would be linked in when you compile with -release, otherwise the latter
> would be used.  The Phobos makefile already builds both versions, so it
> would just be a small compiler change.

The compiler already has -defaultlib and -debuglib flags also.  But what's really needed are checked and non-checked libraries (ie. no flags and -release) not... something and -debug.  It's been a while, but I think -debuglib applies to appls built with -debug set.



More information about the phobos mailing list