12. Changelog¶
All notable changes to this project will be documented in this page.
The structure of this page is based on Keep a Changelog. Versioning of this project adheres to Semantic Versioning.
12.1. 0.9.5-beta¶
12.1.1. Added¶
C.replace_conversion_error option for OUTPUT_PRINTER.new, INPUT_SCANNER.new, FILE.open_to_print, and FILE.open_to_scan.
C.synchronize option for OUTPUT_PRINTER.new and FILE.open_to_print.
C.no_buffer option for FILE.open_to_read, open_to_scan, open_to_write, and open_to_print.
C.on_closed option to Tcp.connect
C.on_canceled option to Tcp_server.accept
An optional parameter $if_absent to Map.get
An optional parameter $if_empty to Vec.just
Optional parameters
FromandToto Vec.clearC.tail option for TRACE.new
New types program and compile_error. API changes accordingly.
12.1.2. Changed¶
In program texts, carriage return (U+000d) can appear only before line feed (U+000a)
In
\x{xxxxxx}notation of rich string tokens, surrogate codes can no longer be specified$body of CONTROL.with_finally can no longer exit without calling $return.
Refine the API of BIN_HASHER
PROCESS.exit now only accepts an exit status in [0, 255].
The exit status from Process.wait is now unsigned.
Scan methods of input_scanner now tail-call $error on decoding error.
Print methods of output_printer now tail-call $error on encoding error.
Charset.bin_to_str now raises an exception on decoding error.
Charset.str_to_bin now raises an exception on encoding error.
Rename Str.runes to .codepoints.
Rename STR.from_runes to .from_codepoints.
Rename JAVA.read_only_byte_buffer to JAVA.byte_buffer.
Rename VAL.val_id to VAL.id_hash.
Str.repr now produces unpaired surrogates to backslash notation.
stderr replaces encode error.
stderr is synchronized.
Rename Vec.chunk, Iter.chunk, and IFUN.chunk to Vec.unconcat, Iter.unconcat, and IFUN.unconcat
IFUN.cycle now takes an ifun rather than a thunk.
Rename Dyn.bind to Dyn.with.
Now JAVA.char, byte, short, int, long, and big_integer require that the argument is an integer. The first five also validate the lower and the upper boundaries.
Tls.input, Tls.output, Tcp.input, Tcp.output, JAVA_CHANNEL_INPUT.new, and JAVA_CHANNEL_OUTPUT.new now reject Max_buf_size=0.
Rename IP_ADDRESS to IP.
Rename IP_ADDRESS_PORT to IP_PORT.
Make the parameter of Vec.any?, Iter.any?, and Set.any? optional.
Rename Varref.have_val? to Varref.any?.
Rename Dyn.have_val? to Dyn.any?.
Move kink/charset/CHASET to kink/CHARSET.
Rename Atomic.get to Atomic.load.
Rename Atomic.set to Atomic.op_store.
Rename Map.get_maybe to Map.get_opt
Inequality operators are now compiled to
<=/op_le, instead of</op_lt.Rename Set.push_each to Set.append.
Rename Java.static_type to Java.type.
Rename Java_throw.thrown to Java_throw.throwable.
JAVA_PROXY.new now returns a java value typed as the primary interface. Also, proxies provide default implementations for Object methods and interface default methods.
Now socket options like TCP_NODELAY are provided as ref values.
12.1.3. Removed¶
Multiline string literals
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 method TraceVal.isSnip()
Java method vm.trace.empty()
Java.dynamic_type
JAVA.runtime_class_loader
METHOD_HANDLE.nop .return .throw .params .result
12.2. 0.9.4-beta¶
12.2.1. Added¶
Optional
FromandToparameters to Vec.iter.Optional
Minparameter to Ordered_set.iter.Optional
Min_keyparameter to Ordered_map.key_iter and Ordered_map.pair_iter.
12.2.2. Changed¶
Generate 32 bytes section id instead of 62 bytes in kinkdoc
When making an exception with the current traces, now the second parameter of EXCEPTION.new can be omitted.
.reduce methods like Vec.reduce take an optional fallback continuation for empty streams, instead of returning maybe_vec.
Rename Vec.rev to .reverse.
Rename Vec.push_each_xxx methods to append_each_xxx.
Str.search_slice now takes a config fun, and returns the index instead of maybe_vec by default.
Regex.match and Regex.search now take a config fun, and return a match instead of maybe_vec by default.
NUM.parse_int and NUM.parse_decimal now take a config gun, and return a num instead of maybe_vec by default.
OFFSET_DATETIME.parse now takes a config fun, and returns an offset_datetime by default.
Rename
on_presentmethods toon_success, andon_absentmethods toon_error.Scanner.scan_rune now returns a rune instead of maybe_vec.
Scanner.scan_line now returns a line instead of maybe_vec.
Input.read now returns a bin instead of maybe_vec.
Funs and methods now pass an exception instead of an error message to $error: funs of FILE mod, input methods, output methods, scanner methods, printer methods, PROCESS.start, socket framework, and TLS framework.
12.2.3. Removed¶
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. Added¶
Minimal TLS support
METHOD_HANDLE mod
12.3.2. Changed¶
12.3.3. Removed¶
CONTROL.with_break, replaced by CONTROL.with_return.
Support for nonblocking IO. Virtual threads via THREAD.spawn_io are better abstraction.
12.4. 0.9.2-beta¶
12.4.1. Added¶
12.4.2. Changed¶
Migrate publishing of maven artifacts from OSSRH to Central Portal using Portal OSSRH Staging API.
12.5. 0.9.1-beta¶
12.5.1. Added¶
JAVA.runtime_class_loader
Config fun arg to JAVA.class.
--outputswitch of kink/doc/DOC_PARSE_TOOL mod.
12.5.2. Changed¶
Widen access privilege of JAVA.class from static access of org.kink_lang.kink module to reflection access of the unnamed module.
Str.repr, Vec.repr, Set.repr and Map.repr methods no longer return too long results.
12.6. 0.9.0-beta¶
12.6.1. Changed¶
The first beta release of Kink runtime.