Skip to content

ritsu v0.55.1

Choose a tag to compare

@github-actions github-actions released this 13 Nov 05:04
· 4 commits to main since this release

ritsu 0.55.1

This release puts right what ritsu did when built with Rust 1.100 or later. Rust 1.100's char reads Unicode 18.0 while rustc's names stay at Unicode 17.0, and built with it, chobo's E063 let through a name with a letter Unicode 18.0 added, and kaname wrote such a name as it was, in code the target's tools refuse. The checks now read the letters and numbers of Unicode 17.0 from ritsu's own tables. The binaries of 0.55.0 and of this release were built with Rust 1.99.1, those for macOS on Intel with 1.98.0, and do not do this; with them, nothing changes.

Fixed (chobo, kaname)

  • A name with a letter that only a later Unicode has is no name of any target's, whichever Rust built ritsu. chobo's E063 and the names kaname writes in a function's code are held to tables made from Unicode 17.0, of the characters each target's names do not take. Whether a character was a letter or a number at all was char's to say, and the char of Rust 1.100 reads Unicode 18.0, which makes letters of 12,833 more characters (U+0558 among them). No target takes them yet: the names of rustc 1.100 and of Node 24 are still of Unicode 17.0, and Python 3.13 and Go 1.26 read older versions. Built with Rust 1.100, ritsu let such a name through E063, and chobo wrote a client its language refuses; kaname wrote the name as it was. The tables now hold the letters and numbers of Unicode 17.0 as well, and the checks read them, not char: chobo stops such a name with E063, and kaname writes v for it, as for any name a target does not take. The binaries of 0.55.0 were built with Rust 1.99.1 and 1.98.0, whose char reads Unicode 17.0, and do neither.

Changes that can make a run that used to pass fail

  • Built with Rust 1.100 or later, chobo gen stops with E063 on a name with a letter Unicode 18.0 added. It used to write the name into a client that did not build. Built with Rust 1.99 or earlier, as the binaries of 0.55.0 and of this release are, ritsu does not read such a character as a letter, chobo check stops at the name with E001, and nothing changes.

ritsu 0.55.1(日本語)

Rust 1.100 以降で組んだときの ritsu の誤りを直しました。Rust 1.100 の char は Unicode 18.0 を読み、rustc の名前は Unicode 17.0 のままです。そのため Rust 1.100 で組んだ ritsu では、Unicode 18.0 で加わった文字を持つ名前を chobo の E063 が通し、kaname はそのまま書いて、出力先のツールが受け付けないコードになっていました。名前の字は、ritsu が持つ Unicode 17.0 の文字と数の表で見るようにしました。0.55.0 とこの版の公開のバイナリは Rust 1.99.1 で(Intel の macOS のものは 1.98.0 で)組んであり、この誤りは起きません。そのバイナリを使うかぎり、変わることはありません。

直したこと(chobo、kaname)

  • ritsu を組んだ Rust の版によらず、新しい Unicode にしか無い文字を持つ名前は、どの出力先の名前にもしないようにしました。 chobo の E063 と、kaname が関数の中に書く名前は、Unicode 17.0 から作った表で、出力先の名前が取らない字を見ます。ただ、字が文字か数かは char で見ていました。Rust 1.100 の char は Unicode 18.0 を読み、12,833 字(U+0558 など)を新たに文字と言います。まだどの出力先も、その字を名前に取りません。rustc 1.100 と Node 24 の名前は Unicode 17.0 のままで、Python 3.13 と Go 1.26 はそれより古い版を読みます。そのため Rust 1.100 で組んだ ritsu では、そういう名前が E063 を通り、chobo はその言語が受け付けないクライアントを書き、kaname は名前をそのまま書いていました。表に Unicode 17.0 の文字と数も持たせ、char ではなく表で見るようにしました。chobo はそういう名前を E063 で止め、kaname は、出力先が取らないほかの名前と同じく v にします。0.55.0 の公開のバイナリは、char が Unicode 17.0 の Rust 1.99.1 と 1.98.0 で組んであり、どちらも起きません。

前は通っていた実行が落ちうる変更

  • Rust 1.100 以降で組んだ ritsu では、Unicode 18.0 で加わった文字を持つ名前で、chobo gen が E063 で止まります。 前は、その名前を組めないクライアントに書いていました。0.55.0 とこの版の公開のバイナリのように Rust 1.99 までで組んだ ritsu は、その字を文字と読まず、chobo check が名前を E001 で止めます。変わることはありません。