わたなべです.

pause(2) がなかったら対応は eval.c の頭に

#if !defined HAVE_PAUSE
# if defined _WIN32 && !defined __CYGWIN__
#  define pause() Sleep(INFINITE)
# else
#  define pause() sleep(0x7fffffff)
# endif
#endif

というのを入れたんだけど, 気づいてもらえなかったらしく,
rb_thread_sleep_forever() で

#ifdef HAVE_PAUSE
        pause();
#else
        sleep((32767<<16)+32767);
#endif

と変更されましたが, こっちは戻しちゃっていい?
#頭じゃなくて関数のそばに置いとけばよかったか.

なぜか mswin32, mingw32 では
  #define sleep(x) Sleep((x)*1000)
となっていて 1000 倍するもんだから overflow する(と gcc は教
えてくれる).

-- 
わたなべひろふみ