Комментарий кажется устаревшим.Я могу подтвердить, что в GHCi 8.6.4 в Linux ввод этого кода в интерактивном режиме просто зависает.
Более того, если вы возьмете программу:
main = let x = x in x
и скомпилируете ее с GHC 8.6.4 (снова в Linux), затем скомпилируйте без оптимизации, она зависнет, а скомпилируется с -O2
он печатает:
Loop: <<loop>>
Кажется, что не имеет никакого значения, скомпилирован ли он с резьбой или нет.
Суть в том, что GHC не дает никаких реальных гарантий относительно того, какие бесконечные циклы могутили может не «поймать», и это может измениться от версии к версии и с различными настройками оптимизации, и в интерактивном, а не в интерактивном коде, и может отличаться от архитектуры к архитектуре.
Нет ничего присущего Windows, котораяпредотвратил бы этот процесс обнаружения, и нет особой причины, по которой версии программ для Windows и Linux будут вести себя по-разному.Если комментарий был точным в какой-то момент, то, вероятно, была небольшая разница в генерации кода под Windows, которая привела к разнице в наблюдаемом поведении.