Since when did I say that truncating and wrapping are the same thing? OK, perhaps this thread could do with a summary before it dies:
1. I stated that $and evaluated to an incorrect value when either input A or input B are too high.
2. 5618 agreed.
3. argv0 disagreed, stating that the mIRC help file isn't incorrect, but incomplete.
4. I disagreed with argv0, stating that the mIRC help file is incorrect until it documents the behaviour. I provided an example which involved a function that isn't relevant and shouldn't have been brought into the discussion (stupid me!).
5. argv0 disagreed with me. In a strange twist, argv0 then agreed with me, stating that the mIRC help fle is incorrect and requires further elaboration. argv0 then assumed that I was making implementation assumptions.
6. I disagreed with argv0's assumptions, attempting to bring the discussion back into relevance by stating the definition of a "binary and" operation.
7. Thrull made a rather humorous attempt at pointing out the whole love/hate relationship.
8. argv0 informs Thrull that he missed the point.
9. argv0 disagreed with me again. He then brought irrelevance in the form of assumptions that would have been fair to state, if they were stated. He then made an assumption regarding atoi returning the same value "on 32bit systems", and at the same time technically agreed with me regarding this undefined behaviour.
10. I state that a helpful participant would be better off acknowledging my point of view and discussing possible alternatives that may be better defined and provide better results. I give one example of such alternative, that would return an infinitely greater variety of correct result.
11. argv0 agrees in regards to the undefined behaviour.
12. I agree in regards to the undefined behaviour.
13. Darwin_Koala agrees in regards to the undefined behaviour. Darwin_Koala then states "If you truncated the extra bits - the original problem you complained about would still exist (an unexpected answer to a function)" (only true if both inputs are truncated) and "You can't both truncate and wrap." He then suggests that it isn't important because it's not going to break anything in the near future, thus disagreeing with my definition of a helpful participant.
14. I disagree with Darwin_Koala's statement: "You can't both truncate and wrap." I state that truncating results in wrapping (for the record, this is not a statement of equality). I would like to state, from the ISO C99 standard: "C's unsigned integer types are 'modulo' in the LIA−1 sense in that overflows or out-of-bounds results silently wrap." What exactly does that mean? Well, if you take a number that is larger than an unsigned integer (eg. that 'overflows' the unsigned integer), it silently wraps. For example, if a 64-bit unsigned integer is assigned to a 32-bit unsigned integer, the 32-bit unsigned integer's result is wrapped, and truncated, at the same time.
15. genius_at_work stated "functions that can only handle 32-bit numbers should only ACCEPT 32-bit numbers." genius_at_work provides another possible, and perfectly acceptable alternative.
16. Darwin_Koala attempts to defend his ego by listing part of his library. Darwin_Koala then agrees that the behaviour is undefined. Darwin_Koala attempts to agree with something that genius_at_work didn't state: "Genius_at_work notes that mIRC handles this undefined behaviour in a consistent manner." He then states that I should learn how computers work before telling him he's stupid.
17. I state my point again, that the behaviour should be defined rather than left undefined, to prevent scripts from breaking.
18. Darwin_Koala states that I stated that "truncating and wrapping are the same thing". Darwin_Koala stated that genius_at_work agrees that the behaviour is consistent.
Read my post again. Just because going up results in coming back down doesn't mean they're the same thing. Now tell me, where did I state that truncating and wrapping are the same? You may not have made any argument against my point, but it is still my point, and you are still bringing irrelevancy to this thread.
Read genius_at_work's post again. Now tell me, where within genius_at_work's post, would I "see that the behaviour at the moment is consistent." I forgive you if English is your second language, but please learn to read more accurately. Also, please refrain from bringing irrelevancy to this thread.
Thankyou, s00p.
edit: argv0, I missed your most recent post. I apologise. My original point could be about either. The documentation can not define the behaviour, unless a defined behaviour is used. If a defined behaviour is used, then it should be noted in the help file. At the moment, I suspect that it's entirely up to the compiler.
Last edited by s00p; 27/09/09 08:50 AM.