違い

ROOTマクロなどを実行する際に使うインタプリタがCINTからCINT++に変更されました。 細かい違いはまったく分かりませんが、文法のチェックが厳密になったようです。

実はROOT5ではC言語/C++言語の文法的には間違っているマクロでも動いてしまいます。 そのため、テストで作ったマクロで動作確認した後、より多くのデータを解析するためにコンパイルするとエラーが多出。 そのデバッグに追われるということが多々ありました。

ROOT6 では、このマクロの文法チェックも厳しくなったようです。 その証拠に、試しに ROOT5 のチュートリアルを ROOT6 で実行してみると、warningerror がたくさん表示されます。

また、エラーの内容を詳しく教えてくれるようになっています。 やってしまいがちな行末のセミコロンのつけ忘れなども指摘してくれるので、これで場所の分からない segmentation fault に悩まされることも減るかもしれません。

ROOT5のチュートリアルをROOT6で実行してみた

ROOT5の文法がROOT6と異なることを確かめてみましょう。

 1# 1. ROOT6がactiveになっていることを確認する
 2$ port select --list root
 3
 4# 2. ROOT5のチュートリアルを置いたディレクトリへ移動する
 5$ cd ...source/tutorials/root5/
 6
 7# 3. root (=ROOT6)を起動する
 8$ root
 9
10# ==> Warningという文字が出るのを確認する
11# 出力を全部確認するとErrorの文字も見つかります