grapheme_strrev関数が採択されました(あと雑感)
by
てきめん tekimen
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
grapheme_strrev作っ た、あと雑感 😴
Slide 2
Slide 2 text
自己紹介 てきめん ● https://tekitoh-memdhoi.info ● @youkidearitai ● https://github.com/youkidearit ai ● PHP のmbstringコミッター オレ
Slide 3
Slide 3 text
grapheme_strrev関数 ● 2月20日に採択されました ● 書記素クラスターごとにstrrevする関数です – GitHubでmb_strrevを作ってた人が多数だったことと、複数コー ドポイントに対応させないと今どきじゃないため – 絵文字や異体字セレクタがstrrevできます – RtoL言語(アラビア語など)でもちゃんと動きます ● レビュー待ちです
Slide 4
Slide 4 text
書記素クラスター ● ちょっと、書記素クラスターについて思うところがあ る ● 書記素クラスターにコードポイントの上限はある? – https://unicode-org.atlassian.net/browse/ICU-233 02 – ICUで聞いたところ「ない」とのこと
Slide 5
Slide 5 text
書記素クラスターの実験:emoji bomb ● 見た目は 👨👦👦 ● 実際は10000000回繰り返し、ZWJ(U+200D)を挟むことで「1書記素クラス ター」としてカウントさせる ● 結果として200MB超の1書記素クラスターの が誕生 👨👦👦 – 仮に絵文字爆弾 とでも名付けましょうか、 💣️/ Bomb Emoji 💣️/ があるけど ● なお、スクリーンに表示するだけでクラッシュするため出せない
Slide 6
Slide 6 text
書記素クラスターにコードポイントの上限 がないのが何が悪いのか ● 大量のコードポイント、1書記素クラスターができて しまう – 極めて危険で、DoSなどを考慮しないとまずい – 書記素クラスターが無限のコードポイントを受け入れら れても、コンピューターは有限なのでまずい
Slide 7
Slide 7 text
ということで提案してみる ● 1書記素クラスターにつきコードポイントの上限を設定し、バ リデーションする関数の提案をPHP Internalにてしてみてる ● ICUではないのでクローズ、ではプログラミング言語レイヤー で何とかするしか無いのでは感 ● なお、もし採択、搭載まで行ってしまうと多分プログラミング 言語では初の機能になる – みんなそんな書記素クラスター興味ないの?
Slide 8
Slide 8 text
まとめ ● grapheme_strrevが採択された ● Unicode(.org)は書記素クラスターがあれば万能だと多分 思い込んでるのでは – それはたしかにそうなんだが、コンピューターなどは有限なので 狂う – 多分違うので正していく – PHPの「歯ブラシ」らしさを追求していく