# Changelog

# このドキュメントは、マークダウン形式で記述しています。対応しているエディタであれば、ハイライト表示されます。
  This document is written in markdown format. If it is a supported editor, it will be highlighted.
  https://keepachangelog.com/ja/1.0.0/

AWK~Plus Ver.2 をお届けします.

ダイナミック言語としてのインタプリタに、
Apache Groovy をスクリプトジェネレータ及び実行環境として加えることで、更に強力なツールになりました.

As an interpreter as a dynamic language,
By adding Apache Groovy as a script generator and execution environment,
it became a more powerful tool.

## [Unreleased]

## [2.2.24] - 2022-09-03
### Added
- code conversion: make code, Ref. blog

## [2.2.23] - 2022-09-02
### Added
- MATRIX Screen Seba: make MATRIX
- CSV tool: make csv1, Ref. blog

## [2.2.22] - 2022-08-21
### Checked Java 18.0.2.1 Groovy-4.0.4

## [2.2.21] - 2022-07-24
### Checked Java 18.0.2 Groovy-4.0.4

## [2.2.20] - 2022-06-08
### Checked Java 18.0.1.1 Groovy-4.0.3

## [2.2.19] - 2022-05-02
### Checked Java 18.0.1 Groovy-4.0.2
### Changed
- Java18の仕様でターミナル出力は、従来通りになっているのに合わせました.
- According to the Java 18 specifications, the terminal output is the same as before.
- Ref. make cat1～3 T11i T11g

## [2.2.18] - 2022-04-04
### Changed Java 18
- デフォルトエンコーディング変更への対応(Correspondence to change of default encoding)
- Ref. make cat1 cat2 T11i T11g

## [2.1.17] - 2022-03-09
### Checked Groovy-4.0.1

## [2.1.16] - 2022-02-12
### Checked
- jdk-17.0.2, Groovy-4.0.0
### Removed
- JAXB は、Groovy に組み込まれたため、lib.Removed に移動しました。
  JAXB has been incorporated into Groovy and has been moved to ’lib.Removed’.

## [2.1.15] - 2022-01-19
### Checked
- jdk-17.0.2

## [2.1.13] - 2022-01-07
### Changed
- plus.lex.TypeHelper#T4Types() -> Convert to 'record'.

## [2.1.12] - 2021-11-11
### Checked
- jdk-17.0.1

## [2.1.11] - 2021-09-23
### Checked
- jdk-17

## [2.1.10] - 2021-09-07
### Checked
- jdk-16.0.2, groovy-3.0.9

## [2.1.9] - 2021-07-22
### Checked
- jdk-16.0.2, groovy-3.0.8
### Fixed
- グローバル変数への空文字代入が機能していなかったのを修正。
- Fixed empty string assignment to global variables not working.

## [2.1.8] - 2021-07-09
### Checked
- jdk-16.0.1, groovy-3.0.8

## [2.1.7] - 2021-05-22
### Added
- `make matrix`
  映画 MATRIX のスクリーンセイバー(ANSCエスケープシーケンス)を作成しました.鏡に映してご覧ください.
  We have created a screensaver (ANSC escape sequence) for the movie MATRIX.
  Please look in the mirror.

- ANSCエスケープシーケンスが \033 -> \e と指定できるようになりました.
  The ANSC escape sequence can now specify \033 -> \e.

### Information
- Java16 の標準起動では、[2.0.2]で予告した`sun.awt.SunToolkit`が利用できなくなりました.
  `ImageViewer.awk`は、マクロ　$(PLUSX)を使用してください.
  With Java16 standard startup, the `sun.awt.SunToolkit` announced in [2.0.2] is no longer available.
  For `ImageViewer.awk`, please use the macro $(PLUSX).

## [2.1.6] - 2021-02-23
### Changed
- 正規表現のエスケープシーケンスが正しく機能していなかったのを修正しました。
  Fixed regular expression escape sequences not working properly.

### Added
- Linux の `cawsay` コマンドを移植しました。(要、エスケープシーケンス) `make cawsay`
  Ported the Linux `cawsay` command. (Required, escape sequence) `make cawsay`

## [2.1.5] - 2020-12-30
### Added
- https をサポートしました。 Ref.`make https` (Supports https)

- コマンドラインパラメータで lib の位置を指定できるようになりました。(Androide サポートで必要な機能です)
  You can now specify the location of lib with command line parameters.
  (Required for Androide support)

## [2.1.4] - 2020-10-28
### Checked
- Java-15.0.1  NEW

## [2.1.3] - 2020-10-1
### Checked
- Java-15.0.0  NEW

## [2.1.2] - 2020-9-16
### Checked
- groovy-3.0.6  NEW

### Changed
- イメージファイルを更新しました.(Updated image file)

## Information
- Groovy Ver.3.4 Bug  https://issues.apache.org/jira/browse/GROOVY-9581
　　The compiler cannot reference static class variables from closures.
  コンパイラで、クロージャから静的クラス変数を参照できない.
	/*　--------------------------------------------------
	　ERROR:Groovyc: While compiling XXX: BUG!
	　exception in phase 'class generation' in source unit 'Test.groovy'
	　Trying to access private field [Test1#foo] from inner class
	*/
	class Test1 {
	//  boolean foo // OK
		static boolean foo // NG #1
	}
	class Test2 extends Test1 { // #2
		def bar() {
			Closure baz = { // #3
				assert foo  // Compilation error.
			}
		}
	}　---------------------------------------------------
  旧バージョンで、動作していたためレポートを提出しました。核部分に大幅な修正が入ったようです。
  テストコードのシンプルさに感動しました。発火条件(#)は、3個あり、どれが欠けても発動しません。
  次のバージョンでは、メソッド・オーバーレイでエラーになりましたが、テストケースを作れず、
  名前を変えれば済むため、泣き寝入りしました。
  バグ表示でタイトルが日本語で表示されるため勇気あるなと思っていましたが、アクセスした国を見ているようです。
  ちなみに管理サーバは、Apacheに集約されています。

  I submitted a report because it was working on an older version.
  It seems that the core part has undergone a major correction.
  I was impressed by the simplicity of the test code. There are
  three ignition conditions (#), and even if any of them is missing,
  it will not be activated.
  In the next version, I got an error in the method overlay,
  but I couldn't make a test case and I fell asleep because
  I could change the name.
  I thought it was courageous because the title is displayed
  in Japanese in the bug display, but it seems that I am looking
  at the country I accessed.
　　By the way, the management server is centralized in Apache.

- `AWK~plus`(gawkをオブジェクト指向に拡張)のメジャーアップデートが完了し、Android へのポーティングに取り掛かりました。
  新プロジェクトの検証用部品を製品化しており自信作です。(awk4jView - Image viewer)
  リリース時には、『雑誌 Linuxに』 に、タレコミ(密告)します。
  Playストア 価格は、¥1,830(日経Linux電子書籍)、プロジェクトヘージからダウンロードされた方は、価値に応じた価格設定をお願いします。
  目安として、『Groovy イン・アクション』　2008年 古書 4,300～¥15,157 ＋ α。
  Coming Soon.

  The major update of `AWK~plus`(extending gawk to object-oriented) has been completed, 
  and we have started porting to Android.
  We are confident that we have commercialized verification parts for the new project.
  (awk4jView -　Image viewer)　At the time of release, we will inform you in the magazine Linux.
  Play store price is $18 (Equivalent　Linux e-book), 
  As a guide, "Groovy in Action" 2008 foreign books $144 + α.
  Coming Soon.

## [2.1.1] - 2020-8-4
### Checked
- Windows10 + Windows Terminal

### Changed
- <おまけ> エスケープシーケンス・アニメーションサンプルをアップグレードしました. (Ref. `make T10i`)
  MS.が、気合いをいれて開発している、'Windows Terminal(Open Source)'で動作します.
- <Bonus> The escape sequence animation sample has been upgraded.
  It works with 'Windows Terminal(Open Source)' that MS. is seriously developing.

## [2.1.0] - 2020-7-24
### Checked
- Java-14.0.2  NEW
- Groovy-3.0.5 NEW
- jaxb-3.1.0

### Added
- I/O処理において、エスケープシーケンス処理を無視するサンプルを作成しました. (Ref. `make T9i`)
  (処理結果を次のアプリに渡すケースを想定しています)
- <おまけ> エスケープシーケンス・アニメーションサンプルを作成しました. (Ref. `make T10i`)
- Created a sample that ignores escape sequence processing in I/O processing.
  (It is supposed to pass the processing result to the next application)
- <Bonus> An escape sequence animation sample has been created.

### Changed
- File URI の形式を、RFC-8089(2017-2) に合わせて修正しましました. (Ref. `make T11i`)
  URI: 'file:///<path>[#<reference(encoding)>]`
  (path に`#`を含む場合は、`#encoding` 指定は必須)
- Corrected the format of File URI according to RFC-8089(2017-2).
  (If the path includes `#`, `#encoding` must be specified)

### Fixed
- Groovy-3.0.4 は、重大なBUGがあるため、3.0.5 を待ちました.
  発火条件が、3つあるためテストをすり抜けたようです.
- Groovy-3.0.4 has a serious BUG and waited for 3.0.5.
  It seems that it passed the test because there are 3 ignition conditions.
  https://issues.apache.org/jira/browse/GROOVY-9581
  http://groovy-lang.org/changelogs/changelog-3.0.5.html

## [2.0.3] - 2020-6-24
### Changed
- Groovy generator で、AWK組込み変数名への'$'の付加を中止しました.(これにより、スクリプトが美しくなりました)
- Stop adding '$' to AWK built-in variable names.(This made the script beautiful)

- Windows環境で、環境変数(ENVIRON)に生データ'\'が格納されているためエスケープ処理が誤動作する問題に対応.
  表示用の環境変数を追加することも考えましたが、利用頻度を考慮し、Linuxスタイル('\'->'/')に変換しました.
- Addressed the problem that escape processing malfunctions because raw data'\' is stored
  in the environment variable (ENVIRON) in the Windows environment.
  I thought about adding an environment variable for display, but considering
  the frequency of use, I converted it to Linux style ('\'->'/').

## [2.0.2] - 2020-6-16
### Changed
- jaxb-3.1.0 (JAXBを本体から分離しました. Separated from the body)

### Fixed
- ImageViewer.awk をインタプリタで動かすと、警告メッセージが表示される.
  これは、Java9 以降のモジュール機能(Project Jigsaw)で、export
  されていないクラス(sun.awt.SunToolkit)へのリフレクションアクセスが原因です.
  明にSunToolkitにアクセスしておらず、代替手段が無いため、export するように修正しました.
  Ref. makefile $(PLUSX)
- When I run ImageViewer.awk in the interpreter, a warning message is displayed.
  This is a module System (Project Jigsaw) of Java9 or later.
  This is due to reflection access to an unclassified class (sun.awt.SunToolkit).
  Since I didn't access SunToolkit and there is no alternative, I fixed it to export.

## [2.0.1] - 2020-6-9
### Changed
- コードを、リファクタリング(Refactoring)及び、Java8->Java14にマイグレーション(migration)しました.

### Fixed
- Javaドキュメントのclasspathオプションに目を通し、疑問点が解消しました.
  これにより、インストールした GROOVYHOME/lib を使用するよう、makefile を修正しました.
- By looking through the classpath option in the Java documentation,
  the question has been resolved.
  This modified the makefile to use the installed GROOVYHOME/lib.

## [2.0.0] - 2020-6-6
### Checked
- Java-14.0.1
- Groovy-3.0.3

### Install
- Java, Groovy および AwK~Plus を適当な場所に解凍してください.(Unzip to a suitable place)
- makefile 中の該当するパス(JAVAHOME,GROOVYHOME)を修正してください.(correct the corresponding path)
  システムの環境変数、パスは、変更しません.(Do not change the system environment variables and paths)

### Fixed
- Groovy-plus コードを、JDK9 以上でビルドするとエラーになります.(再ビルドしなければ、問題はない)
  これは、Groovy コンパイラが Java EE に移行されたパッケージ 'JAXB' を使用しているためで、
  JDK8 を使用するか、Maven リポジトリからダウンロードしてください.
- An error occurs when building Groovy-plus code with JDK9 or above.
  (No problem if you do not rebuild)
  This is because the Groovy compiler uses the package 'JAXB' which has
  been migrated to Java EE Use JDK8 or download from Maven repository.


# blog
- https://zen2022.blog.fc2.com/blog-entry-5.html