An unexpected infinite loop
cryptolosophy.io
cryptolosophy.io
First loop iteration: i is zero. i is post-incremented and becomes 1.
Loop iterations where i is in the range 1..253 blah, blah, blah... we just keep printing and incrementing.
Loop iteration i = 254: i is post-incremented. i is now 255. This is the highest possible value for an 8-bit integer, when interpreted as an unsigned value.
Loop iteration i = 255. The check still passes. The body still executes. i is post-incremented. i wraps around (this behavior is mandatory according to the C standard, and I assume it is the same in Go). i is now zero.
Next test of loop condition: i is still less than or equal to 255... so around we go.
What was the desired/expected behavior? I mean, I don't see anything that really should be some kind of language WTF or shocking behavior for a low-level language. It's just a common error, failing to take unsigned overflow into account, and/or not realizing that unsigned values never roll over to negative.