grapheme_strrev関数が採択されました(あと雑感)
by
てきめん tekimen
×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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の「歯ブラシ」らしさを追求していく