TeXで危うくPCを壊しかけた話

ある日、Excelで作業をしていてファイルを保存しようとしたら、Cドライブがいっぱいだと言われて保存できず。
そんなこともあるんだな~~と思い、基礎化学実験のレポート(手書きレポートの写真をそのままpdfにしただけなので少し重い)をいくつか消してその場をしのぎ、とりあえず保存するも、数分後に再び保存に失敗。
小手先のゴミ捨てではダメなのかと反省し、データサイズの内訳(デスクトップ○○GB、ダウンロード○○GB、ミュージック○○GB、……と教えてくれるアレ)を確認しながら、古いデータを一旦USBに移すなどして20GB程度あけ、PCに平穏が戻る……はずだった。

1時間もたたないうちに再び保存に失敗。再びデータサイズの内訳を見ると、また空き容量が0GBに戻っているではないか。
さすがに何かがおかしいことを完全に確信し、ふと冷静になる。

デスクトップに170GBもあるわけなくね?

昔のデータもあるとはいえ、塵も積もれば山となるにしては山がデカすぎる。さっき整理したときも細かいファイルばかりで、中くらいのサイズのファイルもそんなになかったはず……

そこで一つ一つのフォルダのサイズを順に確認していくと、TeX実験というフォルダーのサイズの桁が3つ~4つくらい周りと違うではないか。

ここでやっと心当たりが。あいつだ


その数日前、展開制御の実験をしていました。
自分自身を呼び出すことを繰り返して適切な条件をみたしたら終了するコマンド\periwo です。
ブログをよく読んでくださっている方は見覚えがあると思います。そう、

shukutoiya.hateblo.jp

です。
これを応用させている中で事件は起きました。ご察しのとおり、無限ループです。

通常の無限ループだとTeXworksの左上にデカデカと鎮座しているタイプセット停止ボタンを押せば(経験上)止まるはずなのだが、今回は何かが違う。
無限ループだと気づいたころにはもう押しても反応がない!!
ボタンも反応しなければ、タスクマネージャーも開けず、焦るばかり。
なんとか強制終了に成功し、ほっと一安心。一瞬で精神が削られ、TeXで遊ぶ気力も消えてその日はもう寝ることに。


原因はどう考えてもこれだが、まだ具体的に何が起きているかはわかっていない状態で、TeX実験のフォルダを開く。

すると、perio.sty 22KBなどが並んでいる中に一つ、macrotest.log 151GB。
無限ループが止まらなかった理由も納得です。具体的にlogファイルに何が書き出されたかはわからなかったが、展開待ちのトークンの数が増えていくタイプの無限ループはおそらく同様になるのだろう(実験する気はありません)。

※ちなみにlogファイルを開くことは不可能でした。デカすぎて。



皆さんも無限ループには十分に注意してください。万が一起こした場合は補助ファイルを削除することをお忘れなく。


ぺりをだねぇ