All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
- Convert string literals containing SJIS characters to Java string literals. (#561)
- The older versions convert string literals containing SJIS characters into byte arrays with hexdecimal integers.
- Older versions convert
"日本語"
intoCobolUtil.toBytes((byte)0x93, (byte)0xfa, (byte)0x96, (byte)0x7b, (byte)0x8c, (byte)0xea)
. - Latest version converts
"日本語"
toCobolUtil.stringToBytes("日本語")
.
- Older versions convert
- The older versions convert string literals containing SJIS characters into byte arrays with hexdecimal integers.
- Fix comparisons of COMP data. (#559)
- With older versions, comparisons of COMP data are invalid in some cases.
- Process Japanese identifiers in COBOL correctly (#540)
- The older versions convert some Japanese characters in COBOL identifiers to another characters in Java.
- Fix the conditions
PERFORM UNTIL
(#544)- If COBOL source code contains divisions in conditions of
PERFORM UNTIL
, the older versions emit compile errors.
- If COBOL source code contains divisions in conditions of
- Fix
SEARCH
statements with data specifiedOCCURS
andDEPENDING
(#545)- The older versions emit compile errors when
SEARCH
statements with data specifiedOCCURS
andDEPENDING
- The older versions emit compile errors when
- Fix
ADD
statements andSUBTRACT
statements (#546)- In some case, the result of
SUBTRACT
was previously incorrect when the operands contais PIC S9(n) negative values. - In some case, the result of
ADD
was -0 instead of +0 previously.
- In some case, the result of
- Fix the process of checking signs of PIC 9(n) containing spaces (#549)
- Fix
INSPECT
statements (#550)- The older versions change signs of some values accidentally because of the bug of
INSPECT
statements.
- The older versions change signs of some values accidentally because of the bug of
- Add a new option
-variable
(#513)- With
-variable
, cobj allows 73 or more characters for each lines
- With
- Add documentations that describe the structure of libcobj and generated Java files (#492)
- Add Visual Studio Code Dev Container of opensource COBOL 4J (#529, #530)
- Fix a build error of opensource COBOL 4J on Windows 10 (489)
- Fix a build error of opensource COBOL 4J on Docker (#511)
- Fix
cobj-api
(#528)cobj-api
previously generated invalid constructors in record classses
- Fix typos of
cobj-idx
command (#503) - Fix a command line option
-fserial-variable
(#534)
- Improve the readability of variable names containing multi-byte characters (#502)
- Convert some EVALUATE statements to switch statements (#504)
- Add a new command line option
-Wtruncate
(#459)
- Change
-m
option so that generated jar files contains only class files. Now-m
becomes an alias of-jar
. (#456) - Fix
CALL (an integer) BY CONTENT
(#453) - Show an error message when SCREEN SECTION is found (#454)
- Improve code generated by cobj-api (#452)
- Release API reference of the runtime library
libcobj.jar
(#445) - opensource COBOL 4J on Windows passed COBOL85 test suites (#397)
- Upgrade dependencies of
libcobj.jar
to the latest versions (#398)
New! opensource COBOL 4J supports Windows! (#377)
- Add a command line option
-Wimplicit-define
(#386)
- Fix READ PREVIOUS statement after START statement with <= operator (#379)
- Fix Java code generated by cobj-api (#380)
- "-" in Java variables are converted to "_"
- Refactor libcobj/ (#387)
- Support Ubuntu 24.04 (#375)
- Add cobj-api command (#370)
- Implement a -Wstrict-typing (#369)
- Simplify generated Java code based on SonarQube analysis (#366)
- Improve the error message for record keys with duplicates (#368)
- Implement a new option
-info-json-dir
(#362) - Fix DISPLAY/ACCEPT for environment variables (#351)
- Implement a new option
-ext
(#354) - Implement a new option
-Wcall-params
(#353)
- Improve the maintainability of generate Java files (#361)
- Add command line options
-conf
: specify the configuration file (#331)-std
: specify the dialect (#331)-Wconstant
: Warn inconsistent constant (#335)-Warchaic
: Warn if archaic features are used (#336)-Wobsolete
: Warn if obsolete features are used (#336)
- Add intrinsic functions
LOCALE-DATE
(#338)LOCALE-TIME
(#340)LOCALE-TIME-FROM-SECONDS
(#341)
- Fix runtime checkings (#326, #328)
- Detect invalid indexed record keys (#346)
- Accept field names which contain Japanese characters (#324)
- A new CLI tool for indexed files (#299)
- Implement
COB_FILE_SEQ_WRITE_BUFFER_SIZE
(#294) - Implement options
-ffold-copy-upper
and-ffold-copy-lower
(#319)
- Change label names in Java source files based on COBOL labels (#297)
- Fix CobolUtil.isNationalPadding (#293)
- Refactor source code and resolve all gcc warnings
- Remove unused directory (#314)
- Support Amazon Linux 2023 (#282)
- Implement runtime numeric checkings (#253)
- Implement sorting a table based on ebcdic (#254)
- Implement KEY IS option of SORT statements (#259)
- Add documents that describes installations and requirements (#256)
- Implement the environemt variable COB_NIBBLE_C_UNSIGNED (#258)
- Add built-in subroutines
C$CALLEDBY
(#262)C$LIST-DIRECTORY
(#264)
- Implement
NUMBER-OF-CALL-PARAMETERS
(#270)
- Fix the message of COB_VERBOSE file sort (#260)
- Fix the process that checks MOVE statements (#266, #267)
- Fix
INSPECT
statement (#268) - Fix error handlings of 0 divisions (#273)
- Fix an error of comparing large numbers (#275)
- Fix checkings for subscripts (#277)
- Fix FUNCTION VARIANCE (#280)
- Optimize the file reading process (#257)
- Implement sorting a table (#251)
- Implement functions SUBSTITUTE and SUBSTITUTE-CASE (#246)
- Support JDK 11 (#249)
- Older versions are tested with JDK 17 and 1.0.17 is tested with JDK 11.
- Plan to support JDK 8 in the future.
- Publish libcobj.jar in GitHub Packages
- Implement intrinsic functions
- ORD-MAX (#228)
- ORD-MIN (#228)
- SECONDS-FROM-FORMATTED-TIME (#231)
- SIGN (#231)
- STORED-CHAR-LENGTH (#231)
- TRIM (#244)
- Publish libcobj.jar in GitHub Packages
- Implement intrinsic functions
- ORD-MAX (#228)
- ORD-MIN (#228)
- SECONDS-FROM-FORMATTED-TIME (#231)
- SIGN (#231)
- STORED-CHAR-LENGTH (#231)
- TRIM (#244)
- Fix
DECIMAL POINT IS COMMA
inSPECIAL NAMES
clause. (#233)
- Add new intrinsic functions
- EXCEPTION-FILE (#218)
- EXCEPTION-LOCATION (218)
- EXCEPTION-STATEMENT (#221)
- EXCEPTION-STATUS (#221)
- FRACTION-PART (#224)
- Add
-Wredefinition
option (#223) - Implement
FD
withEXTERNAL
clause (#222) - Add a guideline for contributing (#226)
- Fix a build error on some platforms (#225)
- Add
-jar
and-single-jar
option (#171) - Add FUNCTION COMBINED-DATETIM (#207)
- Add FUNCTION CONCATENATE (#212)
- Fix INDEXED files (#203)
- Fix comparison of PIC N (#208)
- Improve the readability of CALL statements (#202)
- Add new options
- Add
-debug
option (#146) - Add
-Wparentheses
(#182) - Add
-Wcolumn-overflow
(#184) - Add
-fmfcomment
(#185) - Add
-ffunctions-all
(#188)
- Add
- Implement
COB_IO_ASSUME_REWRITE
(#166) - Output version strings in generated Java files (#153)
- Allow string literals to be used as a call parameter (#127)
- Fix displaying numbers (#138)
- Fix the bug of COMPUTE statement (#143)
- Fix
EXIT PERFORM CYCLE
(#150) - Fix SORT statement (#151)
- Fix functions
CURRENT-DATE
andSYSTEM
(#162) - Fix the bug of COMPUTE statement for
COMP-3
(#186) - Fix non-NIST tests
- Fix
i18n_sjis
anddata-rep
(#141) - Fix
syntax
(#142, #172) - Fix
jp-compat
(#141, #149, #161) - Fix
run
(#169, #172, #180)
- Fix
- Optimize ADD statement and SUBTRACT statement (#133)
- Optimize comparison of
PIC S9(n)V(m)
(#143) - Implement the precomputation for
CobolDataStorage
(#163)
- Improve the variable names in generated Java files
- Update tests for NIST COBOL85 tests (#135)
- Refactor generated Java files (#125)
- Run NIST85 tests for Relative files and add the test status to README.md
- Add CHANGELOG.md (#119)
- Fix overflows of USAGE COMP data (#105)
- Fix the bug related to overflows of USAGE COMP (Issue #105) #107
- Fix the bug of comparison process for national strings of different lengths (#113)
- Fix overflows of USAGE COMP-3 data (#118)
- Fix CANCEL statement (#121)
- Refactor Java files in libcobj/ (#111)
- Improve the performance of File processing and comparision of 9(m)V9(n) (#114)
- Update README.md (#116)
- Improve the performance of converting Strings to byte arrays (#117)
- Implement new options
-o
,-j
,-class-file-path
,-java-file-path
(#99)
- Fix the command checking the results of NIST test and the read functoin of RELATIVE files (#98)
- Fix the method
realPutSign
ofAbstractCobolField
(#100)
- Fix string literals containing mutiple bytes
- Fix some broken tests for special-names
- Add
-constant
option and fix tests for dollarif
- Fix some build warnings
- Fix
Source file not found
test - Fix
FUNCTION ABS
- Fix warning messages involved with MOVE statements
- Fix the test for
EXIT PERFORM CYCLE
- Fix warning messages involved with MOVE statements
- Improve the representations of string literals
- Remove
frameIndex
, frame` and comments in generated Java source code
- Implement relative files (#97)
- Add
DESTDIR
support in libcobj/Makefile (#90) - Add help messages to cobj and add comments to spring_batch_tasklet.sh
- Add static analysis for C source code
- Fix moveFrom of CobolNumericPackedField (#79)
- Fix some warning messages
- Use equals to compare Java Strings
- Fix CI and remove unnecessary files
- Update .gitignore and tests/cobol85/Makefile.am (#79)
- Use BigDecimal.valueOf to create a new instance with double value (#85)
- Create cob_delete_file method (#68)
- Implement -java-package option (#70)
- Implement "SET ENVIRONMENT" statement (#72)
- Add a test for exchanging Japanese data between COBOL and Java (#73)
- Fix file-control.at
- Fix cmpInt of CobolNumericPackedField and add tests (#71)
- Fix EXIT PERFORM and EXIT PERFORM CYCLE (#75)
- Improve Java interface (#69)
- Improve tests and CI (#67)
- Add code-format scripts and Update CI (#58)
- Implement the matrix build (#59)
- Implement -fshort-variable option (#61)
- Add PMD analysis (#63)
- Fix FUNCTION CURRENT-DATE (#56)
- Update libcobj/Makefile to install libcobj.jar into /usr/lib/opensourcecobol4j (#57)
- Add options
- Add -B, -E, -g, -t, -C, -m options
- Add --listreserved, -fsyntax-only, -Wunreachable, -free and -free_1col_aster options
- Add the test case for NATIONAL items
- Fix warnings in cobj/*.c
- Fix codegen.c
- Fix segmentation faults when parsing exit-perform
- Fix exit perform and perform cycle
- Fix the help message of -m option
- Fix the bug of NATIONAL literals (#47)
- Fix the bug of NATIONAL items (#49)
- Fix moving sign-leading-separate to COMP3
- Update README_JP.md
- Update CI
- Update default compile level
- Output raw multi-byte characters in generated Java source code
- Improve test cases for binary data
- Update NIST85 tests
- remove libcob/ and po/ directory
- Remove options -c,-S, -O,-O2,-Os,-Q,-D
- Embedding COBOL variable names into Java variable names (#39)
- Add libcobj/compile.sh that builds java source code
- implement INDEXED files with SQLite
- Fix compilation errors related to EXIT PERFORM statements
- The license upgrades to GPL3.(#22)
- Add the conversoin process for CALL statement
- The first release