# リリース履歴

## Ver 11  2.3.1

リリース日: 2026/07/28

### 追加機能

* コマンド版(sitcobol_bat.exe)の起動を高速化しました。
  従来は起動のたびに内部ファイルを一時フォルダへ展開していたため、1回あたり
  6秒程度かかっていましたが、約1秒で起動するようになりました。多数のプログラムを
  続けて実行する場合に効果があります。

  これにともない、sitcobol_bat.exe は同じフォルダにある _internal フォルダを
  参照するようになりました。sitcobol_bat.exe だけを別の場所へコピーしても
  動作しませんので、フォルダごとコピーしてご利用ください。

  あわせて、インストールフォルダ全体の大きさが約206MBから約151MBになりました。

### 修正事項

* INITIALIZE文において、集団項目に従属する日本語項目(PIC N)および英字項目(PIC A)に、
  空白ではなくゼロが設定される件を修正しました。

* 副プログラム(CALL文で呼び出されるプログラム)に78項目(名前付き定数)を記述すると、
  「レベル番号が01/77ではない」という致命的エラーになる件を修正しました。

* 解析時に致命的エラーが発生したときに、同じメッセージを出力し続けて終了しなくなる
  件を修正しました。

* PIC句の反復回数に78項目(名前付き定数)を指定したとき(例 PIC X(MAX-LEN))、定数が
  展開されず項目の長さが0になる件を修正しました。

* 画面節(SCREEN SECTION)を使用しないプログラムでも、実行のたびにウィンドウが
  一瞬表示される件を修正しました。画面機能を実際に使用するまで画面制御モジュールを
  読み込まないようにしています。これにともない起動も速くなりました。

---------------------------------------------------------------------------------------------------

## Ver 11  2.2.2

リリース日: 2025/12/16

### 追加機能

* なし

### 修正事項

* OCCURS句を含む一意名をINITIALIZE文に指定すると異常終了していた件を修正しました。

* 3次元の配列を持つデータの初期値が設定できていない件を修正しました。

* 例えば、"VALUE 78." のように、78という数字定数があったとき、それを78項目の始まりと
  みなして異常終了していた件を修正しました。

---------------------------------------------------------------------------------------------------

## Ver 11  2.2.1

リリース日: 2025/10/06

### 追加機能

* 画面機能
  画面機能を新たにサポートしました。画面節(SCREEN SECTION)に画面定義を記載し
  ACCEPT/DISPLAY文によって、画面の描画、データ入力を行えるようになりました。

* 78項目(名前付き定数)
  名前付き定数により、以下のような定数-1/整数-1部分を抽象化できるように
  なりました。

  例）
    78 MAX-SIZE  VALUE 1000.
       :
      02 X-TABLE OCCURS MAX-SIZE PIC X(10).
                        ~~~~~~~~

### 変更機能

* 無限ループチェック
  同じ文を1000回以上実行したときに、無限ループの可能性がある旨のダイアログを
  表示していましたが、表示しないようにしました。

### 修正事項

* 条件式において、左辺の最初が括弧('(')のときに、条件式が正しくない、というエラーが
  出ることがある件を修正しました。

* IF文のELSE節中に内側のPERFORM文がある場合、IFのTHEN節を実行したあと、そのPERFORM文に
  制御が移ってしまう件を修正しました。

* EXIT PERFORMにおいて、そのEXIT文を直接含むPERFORM文の次に制御が移動しない件を修正しました。

* CONSOLE指定のACCEPT文で値を入力するウインドウが出ない件を修正しました。

---------------------------------------------------------------------------------------------------

## Ver 11  2.1.0

リリース日: 2025/08/24

### 製品体系の変更について

* Smart Interpreter Training COBOL(以下SITCOBOL) は、以下の2つの製品体系となりました。

  - Professional Edition(通称：プロ版)：

    - すべての機能が利用できる製品となります。
    - 有償にて提供いたします。
    - サポートサービスがご利用いただけます。

  - Standard Edition(通称：スタンダード版)：

    - Pro版に比べて、索引ファイル機能、SQL機能が利用できない版となります。
    - 無償にて提供いたします。
    - 不具合等に対する問い合わせは可能ですが、対応についてはPro版に
      比べて若干遅くなります。

  - 従来の体験版について

    従来の体験版はなくなりましたが、Standard版では従来の体験版に比べて
    下記の機能が利用できるようになっています。

     - 文字列操作系
       STRING文, INSPECT文, TRANSFORM文, UNSTRING文

     - 表引き
       SEARCH文, SEARCH TABLE文

     - 原始文操作機能
       COPY文

     - 順ファイル機能(CSV/TSVファイル機能含む)
       OPEN文, CLOSE文, READ文, WRITE文, DELETE文, REWRITE文など

     - ソート/マージ機能
       SORT文, MERGE文, RELEASE文, RETURN文

     - 組込み関数機能

     - 実行行数
       制限なし（従来は100ステップまで）

### 修正事項

* ステップ実行時に「**[致命的] 'DUMP'文は、現在未サポートです」のメッセージが出て、データ値の参照が
  できないという不具合を修正しました。

---------------------------------------------------------------------------------------------------

## Ver 11  2.0.0

リリース日: 2025/07/23

### 追加機能

* 性能を大幅に改善しました。
  従来、1000ステップ程のプログラムの場合、実行が開始されるまでに10数秒を要していましたが
  待ち時間はほとんどなく、すぐに実行されるようになりました。

### 修正事項

* バッチにおいて、call_pathに相対パスを指定したときの処理に誤りがあった件を修正しました。
  最初に起動したCOBOLプログラムのパスを基準として解決するようにしました。

* CBL_CHANGE_DIRなどの組込みサブルーチンの中で相対パスが指定されていた場合の挙動が不正であった件を
  修正しました。

---------------------------------------------------------------------------------------------------

## Ver 11  1.7.0

リリース日: 2025/05/21

### 追加機能

* 整列併合機能(SORT/MERGE文)をサポートしました。
  順・索引ファイルのSORT文によるソート、MERGE文によるマージが
  できるようになりました。

* テーブルソート(SORT文の書き方2)機能をサポートしました。
  これによりテーブルのソート処理が簡単に行えるようになりました。

* カンマ区切りのデータを持つCSVファイルを直接扱える順ファイル機能(LINE SEQUENTIAL WITH CSV)を
  サポートしました。
  これにより、ExcelからインポートしたCSVデータを使っての集計処理などがCOBOLで
  できるようになります。

* タブ区切りのデータを持つTSVファイルを直接扱える順ファイル機能(LINE SEQUENTIAL WITH TSV)を
  サポートしました。
  これにより、ExcelからインポートしたTSVデータを使っての集計処理などがCOBOLで
  できるようになります。

* 説明書
  上記の機能追加により説明書も関連部分の記述が追加されています。

* COBOLサンプル集
  上記の機能追加により関連するサンプルプログラムも追加されています。

### 修正事項

* 環境部のファイル管理記述項が書かれていない状態で、OPEN文を実行したときに
  異常終了する件を修正しました。

* THRU指定のあるPERFORM文において、THRU句に指定された手続き名が存在しない場合、
  メッセージが出力されるように修正しました。

* 「01 A.」だけの記述でしかも集団項目でない項目を書いた場合、適切なメッセージが
  出力されるように修正しました。

* PIC句の書き方が不完全（例えば「PIC COMP-2」）な場合に異常終了する件を
  修正しました。

---------------------------------------------------------------------------------------------------

## Ver 11  1.6.0

リリース日: 2025/04/02

### 追加機能

* SIT COBOLのコマンド起動をサポートしました。
  コマンド名は「sitcobol_bat.exe」となります。
  利用方法については言語説明書「第12章 コマンド(バッチ)での利用方法」を
  参照ください。

* プログラム間連絡機能
  CALL文により、他のCOBOLプログラムを呼ぶことができるようになりました。
  利用できるようになった機能や文は次のとおりです。

  - CALL文
  - CANCEL文
  - EXIT PROGRAM文
  - 初期化プログラム(INITIAL属性)
  - プログラムの終了状態設定(システム制御変数RETURN-CODE)

* 組込みサブルーチンの追加
  以下の3つの組込みサブルーチンが利用できるようになりました。

  - CALL "CBL_GET_PID":
    自分自身のプロセスIDを取得
  - CALL "CBL_GET_PPID":
    自分の親のプロセスIDを取得
  - CALL "CBL_DELETE_FILE":
    ファイルの削除

* WRITE文に「FROM 定数」指定を追加

  WRITE文のFROM指定には一意名のみが記述できましたが、定数が記述できるようになりました。

      WRITE REC1 FROM "*** 在庫一覧 ***"

* TRIM関数の引数に数字が指定できるようにしました。
  これにより、例えば000123.45000 という数字が123.45という文字列にトリムされます。

* 説明書
  上記の機能追加により説明書も関連部分の記述が追加されています。

* COBOLサンプル集
  上記の機能追加により関連するサンプルプログラムも追加されています。

### 修正事項

* 「ACCEPT 英数字項目 FROM CONSOLE」において、数字を入力しても、MOVE 数字 TO 英数字項目 の
  結果と同じにならない件を修正しました。

* 索引ファイルのSELECT句のRECORD KEYに定義されていない項目を指定すると異常終了する件を修正
  しました。

* 索引ファイルのSELECT句のRECORD KEYに、その索引ファイルのレコードに従属していない項目を
  指定してもエラーとならない件を修正しました。

* 索引ファイルのREAD文のKEY句に、主キー以外の項目を指定してもエラーとならない件を修正しました。

* STRING文において、DELIMITED BY句を書かなかったときに異常終了する件を修正しました。

* INSPECT文、STRING文、UNSTRING文において、2回目以降に実行されたときの送り出し項目が、
  最初に実行されたときの送り出し項目の内容になっていた件を修正しました。

* INSPECT文、STRING文、UNSTRING文の受取項目以外の一意名に関数が指定できるように修正しました。

* INSPECT文において、REPLACING指定時も、INSPECTの直後に定数-6が指定できてしまう件を修正しました。

* ORGANIZATION IS SEQUENTIAL と明示的に指定してあった場合、それよりも前に行順ファイルが定義されていると、
  同じく行順編成ファイルとみなされる件を修正しました。

* ファイル入出力において、FILE STATUSの指定も、USE文の指定もないファイルでエラーが発生したときは、
  直ちに終了するように修正しました。

* 索引ファイルにおいて、SELECT句にRECORD KEY句が書かれていなかった場合に異常終了する件を修正しました。

---------------------------------------------------------------------------------------------------

## Ver 11  1.5.1

リリース日: 2025/02/25

### 追加機能

* なし

### 修正事項

* VALUE QUOTE を指定したとき、項目の値がすべて引用符(")で満たされない件を
  修正しました。(1.5.0におけるデグレード)

* 表意定数から始まる連結式(SPACE & "ABC"等)がエラーとなる件を修正しました。

* DISTINCTを含むSQL文が実行時にSQLエラーとなる件を修正しました。

* 数字編集項目(99/99/99など）に対して「データ定義が正しくない」というメッセージが
  出力される件を修正しました。

---------------------------------------------------------------------------------------------------

## Ver 11  1.5.0

リリース日: 2025/01/12

### 追加機能

* 言語機能マニュアルをリリースしました。
  以下のリンクより参照してください。

  https://sit-cobol.sit11.com/manual

* サンプルプログラム集をリリースしました。
  以下のダウンロードページより取得してください。

  https://sit-cobol.sit11.com/download

* 埋込みSQL機能をサポートしました。

  - COBOL文中に、EXEC SQL ... END-EXEC. を書くことができるようになり
    より業務的なアプリケーション作成の体験ができるようになりました。

* 日本語機能をサポートしました。

  - PIC文字列として、Nが利用できます。(例 PIC N(5))
  - 日本語定数として、N"…"、NC"…"が利用できます。
  - MOVE文、IF文などに日本語項目を書くことができます。
  - INSPECT、SUBSTRING、TRANSFORM、UNSTRING文に日本語項目を指定できます。

* 組込み関数機能に、TRIMを追加しました。

  - FUNCTION TRIM(引数 [ LEADING | TRAILING ])

* ファイルのASSIGN句に「ASSIGN TO データ名」をサポートしました。
  これにより、ファイルの実体名をデータ名で与えることができます。

  - ファイル名 ASSIGN TO { 定数 | データ名 }

* PERFORM文に「FOREVER」指定を追加しました。
  これにより、LOOP文相当の使い方ができます。

  - PERFORM FOREVER ～

* 文字列の連結式をサポートしました。
  これにより、長い文字列を適宜の大きさに区切って連結できるように
  なります。

  - MOVE "ABC"
              & "DEF" TO XYZ.   -> MOVE "ABCDEF" TO XYZ に同じ。

### 修正事項

* SIGN IS TRAILING/LEADING SEPARATE CHARACTER において、
  CHARACTERを指定するとエラーが表示される件を修正しました。

* 集団項目と、それに従属するデータ項目の両方に、異なるUSAGE句が書かれていたときに
  エラーとならなかった件を修正しました。

* 実行時のカレントディレクトリの初期値が、sitcobol.pywが存在するディレクトリに
  なっていましたが、実行するプログラムのディレクトリがカレントディレクトリの初期値と
  なるように修正しました。

* OPEN直後にSTART文を実行し、その後READ NEXT文を実行しても、START文で位置づいたレコードが
  読み込まれない現象が起こることがある件を修正しました。

---------------------------------------------------------------------------------------------------

## Ver 11  1.4.0

リリース日: 2024/11/12

### 追加機能

* 組込みサブルーチン機能をサポートしました。
  以下の組込みシステムサブルーチンが使用可能です。

  - CBL_GET_CURRENT_DIR
  - CBL_CHANGE_DIR
  - CBL_CHECK_FILE_EXIST
  - CBL_COPY_FILE
  - CBL_CREATE_DIR
  - CBL_RENAME_FILE
  - CBL_DELETE_DIR

### 修正事項

* なし

---------------------------------------------------------------------------------------------------

## Ver 11  1.3.0

リリース日: 2024/10/21

### 追加機能

* 原始文操作機能(COPY原文機能)をサポートしました。
* 環境変数操作機能をサポートしました。

  - 環境変数の取り込み： ACCEPT FROM { ENVIRONMENT | ENVIRONMENT-NUMBER }
  - 環境変数の設定：     SET ENVIRONMENT TO ～

### 修正事項

* SELECT ASSIGN TO 定数-1  の定数-1に相当する環境変数がある場合には、その値を参照するように
  修正しました。
* VALUE ALL 定数が記述されていると、メモリエラーが発生する件を修正しました。

---------------------------------------------------------------------------------------------------

## Ver 11  1.2.0

リリース日: 2024/10/07

### 追加機能

* 順ファイル機能、行順ファイル機能、索引ファイル機能をサポートしました。

### 修正事項

* PERFORMで存在しない節名や段落名を指定したときにメッセージを出力するようにしました。
* 無限ループしていそうな場合(同一行を200回実行した場合)に、続行するか否かの確認ダイアログを
  表示するようにしました。
* ACCEPT 文において、引用符(")を入力すると、16進定数が正しくないという警告メッセージが出る件を
  修正しました。

---------------------------------------------------------------------------------------------------

## Ver 11  1.1.0

リリース日: 2024/09/16

### 追加機能

* 組込み関数機能をサポートしました。以下の組込み関数が利用可能です。
  ACOS, ANNUITY, ASIN, ATAN, CHAR, COS, CURRENT-DATE, DATE-OF-INTEGER, DAY-OF-INTEGER, FACTORIAL,
  INTEGER, INTEGER-OF-DATE, INTEGER-OF-DAY, INTEGER-PART, LENGTH, LOG, LOG10, LOWER-CASE, MAX, MEAN,
  MEDIAN, MIDRANGE, MIN, MOD, NUMVAL, NUMVAL-C, ORD, ORD-MAX, ORD-MIN, PRESENT-VALUE, RANDOM, RANGE,
  REM, REVERSE, SIN, STANDARD-DEVIATION, SQRT, SUM, TAN, UPPER-CASE, VARIANCE, WHEN-COMPILED
* インラインコメント「*>」に対応しました。
* ファイルメニューに「最近使用したファイル」を追加しました。

### 修正事項

* 左辺のない条件式（例えば、「IF = 1」）があると異常終了していた件を修正しました。
* 条件式の右辺に括弧がある式（例えば「"AB" = K1(10)」)を書くと異常終了する件を修正しました。
* MOVE文の受け取り項目の指定がない場合（例えば「MOVE A TO .」)に異常終了する件を修正しました。
* 66項目が含まれる集団項目のサイズ不正で転記等が正しくできない件を修正しました。
* 順ファイルの定義があり、ACCESS MODE句もORGANIZATION句も省略されている場合に異常終了する件を
  修正しました。
* レコード定義中にピリオドが2つ以上続いたときに、それ以上のデータ定義を解析しなくなる件を
  修正しました。
* PERFORM文において、UNTIL句に「データ名=英数字定数」(例えば「A = "ABC"」)が記述されていたときに
  「**[FATAL] Incorrect Arithmetic1」というメッセージが表示される件を修正しました。

---------------------------------------------------------------------------------------------------

## Ver 11  1.0.0 初期バージョン

リリース日: 2024/08/20
