# Release History

## 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: October 6, 2025

### 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 next statement after an EXIT PERFORM statement 
  within a nested 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: August 24, 2025

### Changes to the product lineup

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

- Professional Edition (commonly known as the Pro version):
    
    - This product offers access to all features.
    - Available for a fee
    - Support services are available

- Standard Edition (commonly known as the Standard Edition)
  
    - Compared to the Pro Edition, this version does not include index file functionality or SQL functionality.
    - Available free of charge
    - Inquiries regarding issues are possible, but responses may be slightly slower compared to the Pro Edition
      
  - About the previous trial version
  
    The previous trial version is no longer available, but the Standard Edition offers the following features 
    that were not available in the previous trial version.
    
     - String manipulation
       STRING statement, INSPECT statement, TRANSFORM statement, UNSTRING statement
       
     - Table lookup
       SEARCH statement, SEARCH TABLE statement
       
     - Primitive statement manipulation functions
       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
       
     - Built-in function functionality

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

### Fixes

* Fixed a bug where the message “**[Fatal] ‘UMP’ 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

* The runtime performance of SIT COBOL has been greatly improved. 
  Previously, it took several tens of seconds to start executing a 1,000-step program, 
  but now execution starts immediately.

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

## Ver 11 1.7.0

Release date: 2025/05/21

### Additional features

* Alignment merging function (SORT/MERGE statement) is now supported.
  
* The table sorting (SORT statement writing method 2) function is now supported.
  This makes it easier to perform table sorting.
  
* The ordered file function (LINE SEQUENTIAL WITH CSV), 
  which allows direct handling of CSV files with comma-separated data, is now supported.
  This allows COBOL to perform tabulation processing using CSV data imported from Excel.
  
* Added support for the Line Sequential with TSV function, 
  which allows direct handling of TSV files with tab-delimited data.
  This allows COBOL to perform tabulation processing using TSV data imported from Excel.

* Manuals
  The above additions have resulted in the addition of descriptions of the relevant 
  parts of the manual.

* COBOL Samples
  Related sample programs are also added due to the addition of the above functions.  
  
### Fixes

* Fixed the problem of abnormal termination when the OPEN statement is executed 
  without the file-control paragraph in the environment division.
  
* Fixed a problem in which a message is output when the procedure name specified 
  in the THRU clause does not exist in a PERFORM statement with a THRU specification.
  
* When an item is written with only “01 A.” and is not a group item, 
  the appropriate message is now output.

* Fixed a case in which a PIC clause was written incompletely (e.g., “PIC COMP-2”), 
  resulting in an abnormal exit.

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

## Ver 11 1.6.0

Release date: 2025/03/31

### Additional 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”: 
    Deleting a file 
    
* “FROM constant” specification added to WRITE statement

  Only unique names could be specified in the FROM specification of the WRITE statement, 
  but now constants can be specified.

      WRITE REC1 FROM “*** Inventory List ***”

* 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.
  
* Instructions
  With the addition of the above functions, descriptions of the relevant parts have also 
  been added to the manual.

* COBOL Sample Collection
  Related sample programs have also been added due to the addition of the above functionality.

### Fixes

* In “ACCEPT alphanumeric item FROM CONSOLE,” the result of “MOVE numeric TO alphanumeric item” 
  is not the same as the result of “MOVE numeric TO alphanumeric item” 
  even if a numeric value is entered.
  Fixed a problem in which entering a number in “ACCEPT alphanumeric item FROM CONSOLE” 
  did not result in the same result as MOVE number TO alphanumeric item.

* Fixed a case in which specifying an item that is not defined in the RECORD KEY of the SELECT 
  clause in the index file causes an abnormal termination Fixed.
  
* Fixed a case in which an error did not occur if an item that does not belong to a record 
  in the index file was specified in RECORD KEY of the SELECT clause of the index file.
  Fixed a problem in which an error did not occur when an item that does not belong to a record 
  in the index file was specified for RECORD KEY in the SELECT clause of an index file.
  
* Fixed the case where an error did not occur when an item other than the primary key was 
  specified in the KEY clause of the READ statement of an index file.

* Fixed the problem of abnormal termination when the DELIMITED BY clause is not specified 
  in the STRING statement.

* In the INSPECT, STRING, and UNSTRING statements, the send-out item when executed a second time
  or later was not the same as the send-out item when first executed,
  The INSPECT, STRING, and UNSTRING statements have been corrected.
  
* In INSPECT, STRING, and UNSTRING statements, functions can now be specified as unique names 
  other than the receiving item.

* In the INSPECT statement, the constant -6 could be specified immediately after INSPECT 
  even when REPLACING is specified.

* Fixed a case in which a line-order file was defined prior to ORGANIZATION IS SEQUENTIAL 
  when it was explicitly specified,
  Fixed a problem in which a line-order file defined before the explicitly specified 
  ORGANIZATION IS SEQUENTIAL would be considered a line-order file as well.

* When an error occurs in file input/output when neither FILE STATUS nor USE statement is specified,
  file without either a FILE STATUS or a USE statement, it will terminate immediately. 
  
* Fixed an abnormal termination in the index file when the RECORD KEY clause was not written 
  in the SELECT clause.

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

## Ver 11 1.5.1

Release date: 2025/02/25

### Additional Features

None

### Fixes.

* When VALUE QUOTE was specified, all item values were not filled with quotation marks (").
  Fixed. (Degraded in 1.5.0)
  
* Fixed an error with concatenated expressions starting with an ideographic constant 
  (e.g., SPACE & “ABC”).

* Fixed SQL errors when executing SQL statements containing DISTINCT.

* Fixed a problem in which the message “Data definition is incorrect” would be output 
  for numeric edit items (99/99/99, etc.).

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

## Ver 11 1.5.0

Release Date: 2025/01/12

#### New Features

- Language Feature Manual Released  
  Please refer to the following link:  
  https://sit-cobol.sit11.com/manual

- Sample Program Collection Released  
  Download from the following page:  
  https://sit-cobol.sit11.com/download

- Embedded SQL Support Added  
  - Now you can write `EXEC SQL ... END-EXEC.` within COBOL code.
  
- Japanese Language Support

  - Japanese PIC Strings  
    You can now use `N` as a PIC string type.  
    Example: `PIC N(5)`

  - Japanese Constants  
    You can write Japanese string constants using `N"..."` or `NC"..."`.

  - Support for Japanese Items in Statements  
    Japanese items can now be used in statements such as `MOVE` and `IF`.

  - Support for Japanese Items in Specific Statements  
    Japanese items can also be specified in the following statements:  
    - `INSPECT`  
    - `SUBSTRING`  
    - `TRANSFORM`  
    - `UNSTRING`  

- TRIM Function Added to Built-in Functions  
  - `FUNCTION TRIM(argument [ LEADING | TRAILING ])`

- Support for ASSIGN Clause in File Handling  
  You can now specify file names dynamically using data names in the ASSIGN clause.  
  - `ASSIGN TO { constant | data name }`

- PERFORM Statement Enhancement  
  Added support for the `FOREVER` keyword, enabling loop-like behavior.  
  - `PERFORM FOREVER ~`

- String Concatenation Expressions Supported  
  Allows concatenation of long strings by splitting them into manageable parts.  
  - Example:  

    MOVE "ABC"
        & "DEF" TO XYZ.  
        
    Equivalent to:  
    MOVE "ABCDEF" TO XYZ.

#### Fixes

- Resolved an issue where specifying `CHARACTER` in `SIGN IS TRAILING/LEADING SEPARATE CHARACTER` 
  resulted in an error.

- Fixed a bug where different `USAGE` clauses written for both a group item and its subordinate 
  data items did not trigger an error.

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

- Corrected 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

### New Features

* Embedded subroutine functionality has been supported. 
  The following embedded system subroutines are now available:
  
  - CBL_GET_CURRENT_DIR
  - CBL_CHANGE_DIR
  - CBL_CHECK_FILE_EXIST
  - CBL_COPY_FILE
  - CBL_CREATE_DIR
  - CBL_RENAME_FILE
  - CBL_DELETE_DIR  
  
### Fixed

* None

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

## Ver 11 1.3.0

Release Date: 2024/10/21

### New Features

* Supported the copybook feature (COPY statement).
* Supported the environment variable input-output feature.

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

### Fixed

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

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

## Ver 11 1.2.0

Release Date: 2024/10/07

### New 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 quotation marks (") would trigger a warning 
  message about incorrect hexadecimal constants.

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

## Ver 11  1.1.0

Release Date: 2024/09/16

### New 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 incorrect size of
  group items that include 66 items.
* Fixed an issue where the program terminated abnormally if a sequential file was defined and
  both the `ACCESS MODE` clause and `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 `UNTIL` clause contained 
  `data-name = alphanumeric constant` (e.g., `A = "ABC"`), it displayed the message 
  "[FATAL] Incorrect Arithmetic1".

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

## Ver 11  1.0.0 Initial Version

Release Date: 2024/8/20
