12. 変更履歴

Kinkの重要な変更は、すべてこの変更履歴ページに記載される。

変更履歴ページの書式は、 Keep a Changelog に準拠する。Kinkのバージョニングは、 Semantic Versioning にしたがう。

12.1. 0.9.5-beta

12.1.1. 追加

12.1.2. 変更

  • プログラムテキストの中で、キャリッジリターン(U+000d)はラインフィード(U+000a)の前にだけ現れられるようにした

  • リッチ文字列トークンの中の \x{xxxxxx} 記法で、サロゲートコードが指定できないようにした

  • CONTROL.with_finally の$bodyが$returnを呼ばずに終われないようにした

  • BIN_HASHER のAPIを改善

  • PROCESS.exit が[0, 255]の終了ステータスのみを受け付けるようにした

  • Process.wait の戻す終了ステータスを符号なしにした

  • input_scanner のscan_xxxメソッドがデコードエラーの際に$errorを呼ぶようにした

  • output_printer のprint_xxxメソッドがエンコードエラーの際に$errorを呼ぶようにした

  • Charset.bin_to_str がデコードエラーの際に例外を投げるようにした

  • Charset.str_to_bin がエンコードエラーの際に例外を投げるようにした

  • Str.runesを .codepoints に改名

  • STR.from_runesを .from_codepoints に改名

  • JAVA.read_only_byte_bufferを JAVA.byte_buffer に改名

  • VAL.val_idを VAL.id_hash に改名

  • Str.repr が、 対になっていないサロゲートコードユニットを、 \x{dxxx} で表現するようにした

  • stderr はエンコードエラーを代替バイト列に置き換えるようにした

  • stderr は同期化されるようにした

  • Vec.chunk, Iter.chunk, IFUN.chunkを、 Vec.unconcat, Iter.unconcat, IFUN.unconcat に改名

  • IFUN.cycle がサンクでなくifunを取るようにした

  • Dyn.bindを Dyn.with に改名

  • JAVA.char, byte, short, int, long, big_integer が整数のみを取るようにした。最初の5つは上下の値域も検証するようにした。

  • Tls.input, Tls.output, Tcp.input, Tcp.output, JAVA_CHANNEL_INPUT.new, JAVA_CHANNEL_OUTPUT.new がMax_buf_size=0を拒否するようにした。

  • IP_ADDRESS を IP に改名。

  • IP_ADDRESS_PORT を IP_PORT に改名。

  • Vec.any?, Iter.any?, Set.any? のパラメータを省略可能にした。

  • Varref.have_val?を Varref.any? に改名。

  • Dyn.have_val?を Dyn.any? に改名。

  • kink/charset/CHASETを kink/CHARSET に移動。

  • Atomic.getを Atomic.load に改名。

  • Atomic.setを Atomic.op_store に改名。

  • Map.get_maybeを Map.get_opt に改名。

  • 不等号演算子が、 < / op_lt ではなく <= / op_le にコンパイルされるようにした。

  • Set.push_eachを Set.append に改名。

  • Java.static_typeを Java.type に改名。

  • Java_throw.thrownを Java_throw.throwable に改名。

  • JAVA_PROXY.new が、第一のインタフェースで型付けされた java 値を戻すようにした。また、プロキシがObjectのメソッド、インタフェースのdefaultメソッドについて、デフォルトの実装を提供するようにした。

  • TCP_NODELAYのようなソケットオプションを、ref値として提供するようにした。

12.1.3. 削除

  • 複数行にわたる文字列リテラル

  • Java.typable_as?

  • Java.copy_from_bin

  • INPUT.read_all

  • Scanner.scan_rune

  • FILE.resolve

  • Vec.scan, .scan_inside

  • Iter.scan, .scan_inside, .fetcher_thunk

  • ITER.cycle

  • IFUN.scan, .scan_inside, fetcher_thunk

  • Vec.with_just_or

  • Vec.just_or

  • Vec.clear_slice

  • *.empty?

  • Map.get_or

  • Map.set_pairs

  • FLAT_MAP.from_pairs

  • TREE_MAP.from_pairs

  • Trace.on_tail

  • Trace.snip?

  • JavaメソッドTraceVal.isSnip()

  • Javaメソッドvm.trace.isSnip()

  • Java.dynamic_type

  • JAVA.runtime_class_loader

  • METHOD_HANDLE.nop .return .throw .params .result

12.2. 0.9.4-beta

12.2.1. 追加

12.2.2. 変更

  • Kinkdocの節のIDを64バイトから32バイトにした

  • 現在のトレースで例外を作る場合、 EXCEPTION.new の2番目のパラメータは省略できるようにした。

  • Vec.reduce などのreduceメソッドが、maybe_vecを戻す代わりに、空のストリームのための継続を省略可能な引数として取るようにした。

  • Vec.revを .reverse に改名。

  • Vec.push_each_xxx の各メソッドを append_each_xxx に改名。

  • Str.search_slice がコンフィグ関数を取り、またデフォルトで maybe_vec ではなく添字それ自体を戻すようにした。

  • Regex.matchRegex.search がコンフィグ関数を取り、またデフォルトでmaybe_vecではなくmatchを戻すようにした。

  • NUM.parse_intNUM.parse_decimal がコンフィグ関数を取り、またデフォルトでmaybe_vecではなくnumを戻すようにした。

  • OFFSET_DATETIME.parse がコンフィグ関数を取り、またデフォルトでoffset_datetimeを戻すようにした。

  • on_present メソッドを on_success に、 on_absent メソッドを on_error に改名。

  • Scanner.scan_rune がmaybe_vecではなくコードポイントを戻すようにした。

  • Scanner.scan_line がmaybe_vecではなく行を戻すようにした。

  • Input.read がmaybe_vecではなくbinを戻すようにした。

  • $errorに文字列を渡していた関数とメソッドが、例外を渡すようにした: FILE モジュール の関数、 input のメソッド、 output のメソッド、 scanner のメソッド、 printer のメソッド、 PROCESS.start 、ソケットフレームワーク、TLSフレームワーク。

12.2.3. 削除

  • ITER.chain

  • IFUN.chain

  • Vec.iter_from

  • Vec.search

  • Ordered_set.iter_from

  • Ordered_map.key_iter_from

  • Ordered_map.pair_iter_from

12.3. 0.9.3-beta

12.3.1. 追加

12.3.2. 変更

  • TCP_CONNECTION を TCP に改名

  • UDP_SOCKET を UDP に改名

12.3.3. 削除

  • CONTROL.with_break。CONTROL.with_return で置き換えた。

  • ノンブロッキングIO。 THREAD.spawn_io によるバーチャルスレッドの方が良い抽象であるため。

12.4. 0.9.2-beta

12.4.1. 追加

12.4.2. 変更

  • Maven成果物のデプロイを、OSSRHから、Portal OSSRH Staging APIを介したCentral Portalへのデプロイに変更。

12.5. 0.9.1-beta

12.5.1. 追加

12.5.2. 変更

  • JAVA.class のアクセス権を、 org.kink_lang.kink モジュールの静的アクセスから、無名モジュールのリフレクションアクセス相当に変更。

  • Str.repr, Vec.repr, Set.repr, Map.repr メソッドが、あまりに長い結果を戻さないようにした。

  • bin 型と str 型の値の内部構造を改善。

12.6. 0.9.0-beta

12.6.1. 変更

  • Kink の最初のベータリリース。