Bools reloaded

Kyle Furlong kylefurlong at gmail.com
Fri Mar 3 00:06:49 PST 2006


Don Clugston wrote:
> Tom wrote:
>> In article <du71jc$1e9h$1 at digitaldaemon.com>, Bruno Medeiros says...
>>> Walter Bright wrote:
>>>> "Tom" <Tom_member at pathlink.com> wrote in message 
>>>> news:du049t$2uv2$1 at digitaldaemon.com...
>>>>> Yes, PLEASE, WHY?? Just ONE argument against pure bools, only one 
>>>>> and I shut my
>>>>> mouth forever!
>>>> One should be very careful about stepping away from C's implicit 
>>>> promotion rules for a language that aims to be a successor to C. C 
>>>> absolutely *buried* Pascal.
>>>>
>>> Uuh, I'm not sure what Tom meant by "pure bools", nor I'm sure what 
>>> you meant by "C's implicit promotion rules" (as C doesn't even have a 
>>> bool). But ok, nevermind, let's pause for a moment, and get our facts 
>>> straight.
>>>
>>> What exactly is it in bools that you Walter, want and not want?
>>> I already know that the ability to write 'while(1)' as the same as 
>>> 'while(true)' is one of them, but, anything more?
>>> Is the behaviour of having an "implicit promotion" something you want 
>>> too?
>>> If so, promotion from where, from int to bool, or from bool to int?
>>> Do you want or not want bool numeric operations to be an error (like 
>>> boolA / boolB*2) ?
>>
>> You should read the latest posts about this stuff (the most with 
>> subject "Re:
>> DMD 0.148 release"). It's all said there. By "pure bools" I mean the 
>> *purist
>> kind* of boolean type. A boolean type that abstracts us from the 
>> implementation.
> 
> Sorry, that's still not clear.
> Bruno is right, terms like "pure bools" or "purist bools" are vague, you 
> can't expect everyone to know what you mean.
> 
> For example: do you want "&" to be legal for bool types, or just "&&"?
> (they mean very different things for integers). "&" normally means 
> "bitwise and", but a pure bool doesn't have any bits.
> Is it legal to cast from a bool to some other type?
> 
>  > A boolean type that abstracts us from the implementation.
> 
> No abstraction is perfect. Does a bool have a defined bit 
> representation? (If you say 'no' to this, then I don't think a bool 
> could be used in an extern function, you'd always have to convert it to 
> int or something).
> 
> You need a comprehensive list of which operations are legal, and which 
> are not.

I tend to want a boolean that is an operand of the boolean algebra and nothing else. So it is either true or false, independant 
of implementation, integer operations are illegal, and it cant be cast to anything.



More information about the Digitalmars-d-announce mailing list