12. 変更履歴¶
Kinkの重要な変更は、すべてこの変更履歴ページに記載される。
変更履歴ページの書式は、 Keep a Changelog に準拠する。Kinkのバージョニングは、 Semantic Versioning にしたがう。
12.1. 0.9.5-beta¶
12.1.1. 追加¶
OUTPUT_PRINTER.new, INPUT_SCANNER.new, FILE.open_to_print, and FILE.open_to_scan のC.replace_conversion_errorオプション
OUTPUT_PRINTER.new, FILE.open_to_print のC.synchronizeオプション。
FILE.open_to_read, open_to_scan, open_to_write, open_to_print にC.no_bufferオプションを追加。
Tcp.connect のC.on_closedオプション
Tcp_server.accept のC.on_canceledオプション
Map.get の省略可能なパラメータ$if_absent
Vec.just の省略可能なパラメータ$if_empty
Vec.clear の省略可能なパラメータ
FromとToTRACE.new のC.tailオプション
新しい型: program, compile_error 。それにともなうAPIの変更。
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 に改名。
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. 追加¶
Vec.iter に、省略可能な
FromとToパラーメタを追加。Ordered_set.iter に省略可能な
Minパラメータを追加。Ordered_map.key_iter と Ordered_map.pair_iter に省略可能な
Min_keyパラメータを追加。
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.match と Regex.search がコンフィグ関数を取り、またデフォルトでmaybe_vecではなくmatchを戻すようにした。
NUM.parse_int と NUM.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. 追加¶
最低限の TLS サポート
METHOD_HANDLE モジュール
12.3.2. 変更¶
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. 追加¶
JAVA.runtime_class_loader
JAVA.class の引数にコンフィグ関数を追加。
kink/doc/DOC_PARSE_TOOL モジュールに
--outputスイッチを追加。
12.5.2. 変更¶
JAVA.class のアクセス権を、 org.kink_lang.kink モジュールの静的アクセスから、無名モジュールのリフレクションアクセス相当に変更。
Str.repr, Vec.repr, Set.repr, Map.repr メソッドが、あまりに長い結果を戻さないようにした。
12.6. 0.9.0-beta¶
12.6.1. 変更¶
Kink の最初のベータリリース。