On Friday 04 February 2011 04:30:42 bearophile wrote: > Jonathan M Davis: > > However, I don't see why there would be any problem with > > assert(0) meaning halt. It's a normal assert in non-release mode and it > > sticks around in release mode, becoming a halt instruction. I use it > > that way all the time. I don't see any problem with it whatsoever. > > There was a recent discussion about this. The final consensus was that > assert(0) to mean HALT is a small wart in the D language, but it's not > worth fixing it, because it's a small enough defect. But if now assert() > gets a significant facelift, then this little problem may be fixed along > with the other two.
Well, aside from the fact that I don' t think that it's a wart at all, I would point out that TDPL specifically points out that assert(false) is converted to a halt instruction. So, given that it's not a serious problem, I really don't think that it's reasonable to change it. At this point, for us to change something that's in TDPL, it pretty much needs to need changing, and I really don't think that assert(0) qualifies. - Jonathan M Davis