pTeX エンジンが Segmentation fault を起こす

  • 2
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

以前の「TeXエンジンが Abort trap 6 で落ちる」の続編(!?)です。

test.tex
$\mathchoice{あ}{}{}{}$
\bye

というソース (UTF8) を

$ ptex test

でコンパイルしようとすると,次のように Segmentation fault で落ちます(TeX Live 2015 on OS X 10.10 Yosemite で確認)。

This is pTeX, Version 3.14159265-p3.6 (utf8.euc) (TeX Live 2015) (preloaded format=ptex)
 restricted \write18 enabled.
(./test.texSegmentation fault: 11

pTeX 系列の (e)(u)pTeX の4種類のエンジン全てで再現しました。

  • TeX Live 2015/2014 on Mac
  • TeX Live 2015/2014 on Windows
  • W32TeX 最新版
  • W32TeX 2012年頃の版
  • TeX Live 2012 on Cygwin

で再現が確認されており,随分昔から存在するバグのようです。

一方,

  • 最新版 W32TeX で pTeX のオプションに -no-guess-input-enc を付けた場合
  • ソースが SJIS のものを TeX Live 2012 on Cygwin で処理した場合

はエラーとならないことも確認されており,どうやら UTF8 の文字コードまわりの問題のようです。

Twitter の情報のまとめ






続報 (2015/09/10)

ptex-base.ch を北川さんが改修してくださいました。
これにより,pTeX のバージョンは p3.6 から p3.7 になりました。(ptex_version.h, ptex-base.ch)

既に TeX Live の上流にも r38333, r38334 としてコミットされており,次の TeX Live 2016 のリリースにおいて修正されることになります。