# 違い ROOTマクロなどを実行する際に使うインタプリタが``CINT``から``CINT++``に変更されました。 細かい違いはまったく分かりませんが、文法のチェックが厳密になったようです。 実は``ROOT5``ではC言語/C++言語の文法的には間違っているマクロでも動いてしまいます。 そのため、テストで作ったマクロで動作確認した後、より多くのデータを解析するためにコンパイルするとエラーが多出。 そのデバッグに追われるということが多々ありました。 ``ROOT6`` では、このマクロの文法チェックも厳しくなったようです。 その証拠に、試しに ``ROOT5`` のチュートリアルを ``ROOT6`` で実行してみると、``warning`` や ``error`` がたくさん表示されます。 また、エラーの内容を詳しく教えてくれるようになっています。 やってしまいがちな行末のセミコロンのつけ忘れなども指摘してくれるので、これで場所の分からない ``segmentation fault`` に悩まされることも減るかもしれません。 ## ROOT5のチュートリアルをROOT6で実行してみた ROOT5の文法がROOT6と異なることを確かめてみましょう。 ```bash # 1. ROOT6がactiveになっていることを確認する $ port select --list root # 2. ROOT5のチュートリアルを置いたディレクトリへ移動する $ cd ...source/tutorials/root5/ # 3. root (=ROOT6)を起動する $ root # ==> Warningという文字が出るのを確認する # 出力を全部確認するとErrorの文字も見つかります ``` ![](./root-tutorial/root5-root6-diff.png)