That would be the -defaultlib and -debuglib options if I'm not misstaken. On 19 aug 2010, at 01:08, Jonathan M Davis <[email protected]> wrote:
> 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. The problem is the fact that Phobos is compiled as an external library > rather than being compiled in with your code when you compile. And since > there's > no way (at least no standard way) to have a release and debug version of the > Phobos libraries, with the release version being used in release mode and the > debug version being used in debug mode, that pretty much means that you > _always_ > compile your code with the release version of Phobos. This makes assert > _useless_ for users of the library. If you want checks beyond within Phobos > code, you _have_ to use enforce(), and since enforce has issues with inlining > and it doesn't go away in release mode, it's like forcing a portion of Phobos > into debug mode. > > _Ideally_, we would find some sort of standard way to make Phobos used in > debug > mode when compiling in debug mode and release mode when compiling in release > mode. That way, asserts could be used in a lot of these cases since a lot of > them really shouldn't be checked in release mode. Personally, I _really_ > don't > like the fact that the libraries aren't necessarily in the same mode as your > code, though I'm not sure that there's a good way to deal with that other > than > having some standard naming scheme for debug vs release libraries which > Phobos > uses and dmd understands so that you get a debug version when compiling your > code in debug mode, and you get a release version when compiling in release > mode. Barring that however... > > You'd almost have to take it on a case by case basis. In some cases, you're > going to need checks and it would be bad not to have them, while in others, > it > would just cost too much to leave them in. It's a tough call. If anything > though, I think that it's a prime example of needing to find a better way to > deal > with debug vs release and libraries. If we had a standard way to have both > available, then dmd could use both with user code, and then we can use > asserts > like they should be used. As it stands though, we're probably going to have > to > use enforce() where we _need_ checks for safety and asserts otherwise. But > since > using asserts is almost pointless.... Bleh. It's just ugly. > > - Jonathan M Davis > _______________________________________________ > phobos mailing list > [email protected] > http://lists.puremagic.com/mailman/listinfo/phobos _______________________________________________ phobos mailing list [email protected] http://lists.puremagic.com/mailman/listinfo/phobos
