違い
ROOTマクロなどを実行する際に使うインタプリタがCINT
からCINT++
に変更されました。
細かい違いはまったく分かりませんが、文法のチェックが厳密になったようです。
実はROOT5
ではC言語/C++言語の文法的には間違っているマクロでも動いてしまいます。
そのため、テストで作ったマクロで動作確認した後、より多くのデータを解析するためにコンパイルするとエラーが多出。
そのデバッグに追われるということが多々ありました。
ROOT6
では、このマクロの文法チェックも厳しくなったようです。
その証拠に、試しに ROOT5
のチュートリアルを ROOT6
で実行してみると、warning
や error
がたくさん表示されます。
また、エラーの内容を詳しく教えてくれるようになっています。
やってしまいがちな行末のセミコロンのつけ忘れなども指摘してくれるので、これで場所の分からない 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の文字も見つかります