Red Hat Training

A Red Hat training course is available for RHEL 8

46.3. Tcl/Tk 8.6 への移行

Red Hat Enterprise Linux 7 では Tcl/Tk 8.5 が使用されていました。Red Hat Enterprise Linux 8 の Tcl/Tk バージョン 8.6 は、Base OS リポジトリーで提供されます。

本セクションでは、以下を対象に、Tcl/Tk 8.6 への移行パスを説明します。

  • Tcl 拡張を記述する、または Tcl インタープリターをアプリケーションに組み込む開発者
  • Tcl/Tk を使用してタスクのスクリプトを作成するユーザー

46.3.1. Tcl 拡張機能の開発者のための移行パス

コードを Tcl 8.6 と互換性を持たせるには、以下の手順に従います。

手順

  1. コードを書き直し、interp 構造を使用するようにします。たとえば、コードが interp→errorLine を読み込む場合は、これを書き直して以下の関数を使用します。

    Tcl_GetErrorLine(interp)

    Tcl 8.6 は、interp 構造のメンバーへの直接アクセスを制限するため、これが必要です。

  2. コードを、Tcl 8.5 および Tcl 8.6 の両方と互換性を持たせるには、C または C++ アプリケーションのヘッダーファイル、または Tcl ライブラリーを含む拡張に、以下のコードスニペットを使用してください。

    # include <tcl.h>
    # if !defined(Tcl_GetErrorLine)
    # define Tcl_GetErrorLine(interp) (interp→errorLine)
    # endif