# Release History

## Ver 11  2.3.1

Release Date: 2026/07/28

### Added Features

* Startup of the command version (sitcobol_bat.exe) has been made faster.
  It previously extracted its internal files into a temporary folder on every
  start, which took about 6 seconds each time. It now starts in about 1 second.
  This is effective when many programs are run one after another.

  Accordingly, sitcobol_bat.exe now refers to the _internal folder located in
  the same folder. Copying sitcobol_bat.exe alone to another location will not
  work; please copy the whole folder.

  The total size of the installation folder has also been reduced from about
  206 MB to about 151 MB.

### Fixes

* Fixed an issue where the INITIALIZE statement set zeros instead of spaces for Japanese items
  (PIC N) and alphabetic items (PIC A) subordinate to a group item.

* Fixed an issue where a level-78 item (named constant) declared in a subprogram (a program
  called by a CALL statement) caused the fatal error "Level number 01 or 77 was not found".

* Fixed an issue where, after a fatal error was detected during parsing, the same message was
  output repeatedly and the program never terminated.

* Fixed an issue where a level-78 item (named constant) specified as the repeat count of a PIC
  clause (e.g., PIC X(MAX-LEN)) was not expanded, resulting in an item length of zero.

* Fixed an issue where a window appeared for a moment on every run, even for programs that do
  not use a SCREEN SECTION. The screen control module is no longer loaded until the screen
  functionality is actually used. This also makes startup faster.

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

## Ver 11  2.2.2

Release Date: 2025/12/16

### Added Features

* None

### Fixes

* Fixed an issue where the application would crash when an INITIALIZE statement specified an
  identifier name that includes an OCCURS clause.

* Fixed an issue where initial values could not be set for data containing three-dimensional arrays.

* Fixed an issue where a numeric literal such as 78 (e.g., in VALUE 78.) was incorrectly interpreted
  as the start of a level-78 item, causing an abnormal termination.

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

## Ver 11  2.2.1

Release Date: 2025/10/06

### Added Features

* Screen Functionality
  Screen functionality is now supported. Screen definitions can be specified within a Screen Section
  (SCREEN SECTION), enabling screen drawing and data input via ACCEPT/DISPLAY statements.

* 78 Items (Named Constants)
  Named constants now allow abstraction of constant-1/integer-1 portions, such as:

  Example)

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

### Changed Features

* Infinite loop detection
  Previously, a dialog warning about a possible infinite loop was shown when the same statement
  was executed 1,000 times or more. This dialog is no longer displayed.

### Fixes

* Fixed an issue where an error stating the condition expression was invalid could occur
  when the left side of a conditional expression started with an opening parenthesis ("(").

* Fixed an issue where, if an inner PERFORM statement existed within an IF statement's ELSE clause,
  control would transfer to that PERFORM statement after executing the IF statement's THEN clause.

* Fixed an issue where control did not move to the statement following the PERFORM statement that
  directly contains the EXIT PERFORM statement.

* Fixed an issue where the value input window did not appear for ACCEPT statements
  with CONSOLE specification.

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

## Ver 11  2.1.0

Release Date: 2025/08/24

### Changes to the Product Lineup

* Smart Interpreter Training COBOL (hereinafter referred to as SITCOBOL) is now available in the
  following two editions.

  - Professional Edition (commonly known as the Pro version):

    - This edition offers access to all features.
    - Available for a fee.
    - Support services are available.

  - Standard Edition (commonly known as the Standard version):

    - Compared to the Pro Edition, this edition does not include indexed file functionality
      or SQL functionality.
    - Available free of charge.
    - Inquiries regarding issues are accepted, but responses may be slightly slower than
      for the Pro Edition.

  - About the previous trial version

    The previous trial version is no longer available. Compared with it, the Standard Edition
    offers the following additional features.

     - String manipulation
       STRING statement, INSPECT statement, TRANSFORM statement, UNSTRING statement

     - Table lookup
       SEARCH statement, SEARCH TABLE statement

     - Source text manipulation
       COPY statement

     - Sequential file functions (including CSV/TSV file functions)
       OPEN statement, CLOSE statement, READ statement, WRITE statement, DELETE statement,
       REWRITE statement, etc.

     - Sort/merge functions
       SORT statement, MERGE statement, RELEASE statement, RETURN statement

     - Intrinsic function support

     - Number of executable lines
       No limit (previously limited to 100 steps)

### Fixes

* Fixed a bug where the message "**[FATAL] 'DUMP' statement is currently not supported" appeared
  during step execution, preventing data values from being referenced.

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

## Ver 11  2.0.0

Release Date: 2025/07/23

### Added Features

* Performance has been greatly improved.
  Previously, for a program of about 1,000 steps, it took more than ten seconds before
  execution started. Now there is almost no wait and execution starts immediately.

### Fixes

* Fixed an issue in the batch command where a relative path specified with call_path was handled
  incorrectly. It is now resolved relative to the path of the COBOL program started first.

* Fixed an issue where a relative path specified inside a built-in subroutine such as
  CBL_CHANGE_DIR behaved incorrectly.

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

## Ver 11  1.7.0

Release Date: 2025/05/21

### Added Features

* Sort/merge functionality (SORT/MERGE statements) is now supported.
  Sequential and indexed files can now be sorted with the SORT statement and merged with
  the MERGE statement.

* Table sorting (SORT statement, format 2) is now supported.
  This makes it easier to perform table sorting.

* Sequential file support for CSV files with comma-separated data
  (LINE SEQUENTIAL WITH CSV) has been added.
  This allows COBOL to perform tabulation processing using CSV data imported from Excel.

* Sequential file support for TSV files with tab-delimited data
  (LINE SEQUENTIAL WITH TSV) has been added.
  This allows COBOL to perform tabulation processing using TSV data imported from Excel.

* Manuals
  Descriptions of the relevant parts of the manual have been added for the features above.

* COBOL Sample Collection
  Related sample programs have also been added for the features above.

### Fixes

* Fixed an abnormal termination that occurred when the OPEN statement was executed
  without the file-control paragraph in the Environment Division.

* Fixed an issue so that a message is now output when the procedure name specified
  in the THRU clause of a PERFORM statement does not exist.

* When an item is written with only "01 A." and is not a group item,
  an appropriate message is now output.

* Fixed an abnormal termination that occurred when a PIC clause was written incompletely
  (e.g., "PIC COMP-2").

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

## Ver 11  1.6.0

Release Date: 2025/04/02

### Added Features

* SIT COBOL command startup is now supported.
  The command name is "sitcobol_bat.exe".
  Please refer to "Chapter 12 Command (Batch) Usage" in the language manual
  for details on how to use the command.

* Interprogram Communication Function
  The CALL statement can be used to call other COBOL programs.
  The following functions and statements are available.

  - CALL statement
  - CANCEL statement
  - EXIT PROGRAM statement
  - Initializing programs (INITIAL attribute)
  - Set program exit status (system control variable RETURN-CODE)

* Addition of built-in subroutines
  The following three built-in subroutines are now available.

  - CALL "CBL_GET_PID":
    Get own process ID
  - CALL "CBL_GET_PPID":
    Get own parent process ID
  - CALL "CBL_DELETE_FILE":
    Delete a file

* "FROM constant" specification added to the WRITE statement

  Only identifiers could be specified in the FROM phrase of the WRITE statement,
  but now constants can be specified.

      WRITE REC1 FROM "*** Inventory List ***"

* The TRIM function now accepts a number as an argument.
  This allows, for example, the number 000123.45000 to be trimmed to the string 123.45.

* Manuals
  Descriptions of the relevant parts of the manual have been added for the features above.

* COBOL Sample Collection
  Related sample programs have also been added for the features above.

### Fixes

* Fixed an issue where entering a number in "ACCEPT alphanumeric item FROM CONSOLE"
  did not produce the same result as "MOVE numeric TO alphanumeric item".

* Fixed an abnormal termination that occurred when an undefined item was specified
  in the RECORD KEY of the SELECT clause of an indexed file.

* Fixed an issue where no error occurred when an item that does not belong to the record
  of an indexed file was specified in the RECORD KEY of its SELECT clause.

* Fixed an issue where no error occurred when an item other than the primary key was
  specified in the KEY clause of a READ statement for an indexed file.

* Fixed an abnormal termination that occurred when the DELIMITED BY clause was not specified
  in a STRING statement.

* Fixed an issue in the INSPECT, STRING, and UNSTRING statements where, from the second
  execution onward, the sending item retained the contents it had on the first execution.

* In the INSPECT, STRING, and UNSTRING statements, functions can now be specified for
  identifiers other than the receiving item.

* Fixed an issue in the INSPECT statement where constant-6 could be specified immediately
  after INSPECT even when REPLACING was specified.

* Fixed an issue where, when ORGANIZATION IS SEQUENTIAL was explicitly specified, the file was
  treated as a line sequential file if a line sequential file had been defined before it.

* Fixed the behavior so that when an error occurs during file input/output on a file that has
  neither a FILE STATUS specification nor a USE statement, execution terminates immediately.

* Fixed an abnormal termination that occurred when the RECORD KEY clause was not written
  in the SELECT clause of an indexed file.

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

## Ver 11  1.5.1

Release Date: 2025/02/25

### Added Features

* None

### Fixes

* Fixed an issue where item values were not entirely filled with quotation marks (")
  when VALUE QUOTE was specified. (A regression introduced in 1.5.0)

* Fixed an error with concatenated expressions starting with a figurative constant
  (e.g., SPACE & "ABC").

* Fixed SQL errors that occurred when executing SQL statements containing DISTINCT.

* Fixed an issue where the message "Data definition is incorrect" was output
  for numeric edited items (99/99/99, etc.).

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

## Ver 11  1.5.0

Release Date: 2025/01/12

### Added Features

* Language Feature Manual released.
  Please refer to the following link:

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

* Sample Program Collection released.
  Download it from the following page:

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

* Embedded SQL support added.

  - You can now write EXEC SQL ... END-EXEC. within COBOL code, which makes it possible to
    experience building more business-oriented applications.

* Japanese language support added.

  - You can now use N as a PIC string type. (Example: PIC N(5))
  - You can write Japanese constants using N"..." or NC"...".
  - Japanese items can now be used in statements such as MOVE and IF.
  - Japanese items can also be specified in the INSPECT, SUBSTRING, TRANSFORM,
    and UNSTRING statements.

* TRIM added to the intrinsic functions.

  - FUNCTION TRIM(argument [ LEADING | TRAILING ])

* "ASSIGN TO data-name" is now supported in the ASSIGN clause of a file.
  This lets you supply the physical file name with a data name.

  - file-name ASSIGN TO { constant | data-name }

* The FOREVER phrase has been added to the PERFORM statement.
  This enables usage equivalent to a LOOP statement.

  - PERFORM FOREVER ~

* String concatenation expressions are now supported.
  This allows a long string to be split into manageable parts and concatenated.

  - MOVE "ABC"
                & "DEF" TO XYZ.   -> Equivalent to MOVE "ABCDEF" TO XYZ.

### Fixes

* Fixed an issue where specifying CHARACTER in SIGN IS TRAILING/LEADING SEPARATE CHARACTER
  resulted in an error.

* Fixed an issue where no error was raised when different USAGE clauses were written for both
  a group item and its subordinate data items.

* Adjusted the initial current directory setting. Previously, it was the directory
  where sitcobol.pyw resided. Now it defaults to the directory of the program being executed.

* Fixed an issue where executing the START statement immediately after OPEN, followed
  by a READ NEXT statement, sometimes failed to read the record positioned by the START
  statement.

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

## Ver 11  1.4.0

Release Date: 2024/11/12

### Added Features

* Built-in subroutine functionality is now supported.
  The following built-in system subroutines are available:

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

### Fixes

* None

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

## Ver 11  1.3.0

Release Date: 2024/10/21

### Added Features

* Source text manipulation (COPY statement) is now supported.
* Environment variable manipulation is now supported.

  - Environment variable retrieval: ACCEPT FROM { ENVIRONMENT | ENVIRONMENT-NUMBER }
  - Environment variable setting:   SET ENVIRONMENT TO ~

### Fixes

* Modified so that if there is an environment variable corresponding to constant-1
  in SELECT ASSIGN TO constant-1, its value is referenced.
* Fixed an issue where a memory error occurred when VALUE ALL constant was written.

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

## Ver 11  1.2.0

Release Date: 2024/10/07

### Added Features

* Added support for sequential files, line sequential files, and indexed files.

### Fixes

* Added a message output when a non-existent section or paragraph name is specified in the PERFORM
  statement.
* Added a confirmation dialog when the program appears to be in an infinite loop (if the same
  line is executed 200 times).
* Fixed an issue in the ACCEPT statement where entering a quotation mark (") would trigger a warning
  message about an incorrect hexadecimal constant.

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

## Ver 11  1.1.0

Release Date: 2024/09/16

### Added Features

* Added support for intrinsic functions. The following intrinsic functions are now available:
  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
* Added support for inline comments using *>.
* Added "Recently Used Files" to the File menu.

### Fixes

* Fixed an issue where an abnormal termination occurred if there was a conditional expression
  with no left side (e.g., IF = 1).
* Fixed an issue where writing an expression with parentheses on the right side of the condition
  (e.g., "AB" = K1(10)) caused an abnormal termination.
* Fixed an issue where the program terminated abnormally if the receiving item in the MOVE
  statement was not specified (e.g., MOVE A TO .).
* Fixed an issue where data transfer, etc., was not performed correctly due to the incorrect size of
  group items that include level-66 items.
* Fixed an issue where the program terminated abnormally if a sequential file was defined and
  both the ACCESS MODE clause and the ORGANIZATION clause were omitted.
* Fixed an issue where parsing stopped for further data definitions if more than two consecutive
  periods were found in the record definition.
* Fixed an issue in the PERFORM statement where, if the UNTIL clause contained
  data-name = alphanumeric-constant (e.g., A = "ABC"), the message
  "**[FATAL] Incorrect Arithmetic1" was displayed.

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

## Ver 11  1.0.0 Initial Version

Release Date: 2024/08/20
