Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
grapheme_strrev関数が採択されました(あと雑感)
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
てきめん tekimen
PRO
February 24, 2026
Programming
350
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
grapheme_strrev関数が採択されました(あと雑感)
てきめん tekimen
PRO
February 24, 2026
More Decks by てきめん tekimen
See All by てきめん tekimen
フロントエンドとバックエンドで「1文字」を揃えよう
youkidearitai
PRO
0
820
ChatGPTを使ってRaspberry Pi Picoの処理系を書いた
youkidearitai
PRO
0
93
PHP Internals わいわい #3 PIEを使ってみよう
youkidearitai
PRO
0
71
Limit of code point for grapheme cluster in programming language side.
youkidearitai
PRO
0
94
Unicodeどうしてる? PHPから見たUnicode対応と他言語での対応についてのお伺い
youkidearitai
PRO
2
3.6k
PHP 8.5の裏話
youkidearitai
PRO
0
150
CJK and Unicode From a PHP Committer
youkidearitai
PRO
0
350
PHP Internals わいわい #3 mb_*関数を作ってみよう
youkidearitai
PRO
0
170
Windows版php-srcデバッグ方法
youkidearitai
PRO
1
130
Other Decks in Programming
See All in Programming
才能?センス?知らん、 続けたもん勝ちだ。-- 結婚・出産・癌を越えてなお、私がプロダクトを創り続ける理由
16bitidol
2
900
Terraform標準の組織で AWS CDKをどう使うか
mu7889yoon
1
350
「正の参照」と 「負の導出」で組む ハーネスエンジニアリング
cottpan
1
150
使用 Meilisearch 建立新聞搜尋工具
johnroyer
0
170
Claude Team Plan導入・ガイド
tk3fftk
0
220
【やさしく解説 設計編・中級 #6】良いアーキテクチャとは ~ 一本の登り道の、行き先 ~
panda728
PRO
0
180
【やさしく解説 設計編 #1】「ドメイン駆動」と「実装駆動」ってなに? 〜設計の考え方を、たとえ話で学ぼう〜
panda728
PRO
1
120
Hatena Engineer Seminar #37「言語モデルの活用に関する研究」
slashnephy
0
540
任せる範囲はこう広がった / How the Scope of AI Delegation Has Expanded
nrslib
1
270
yield再入門 #phpcon
o0h
PRO
0
720
AIキャラアプリkaiwaの低遅延音声通話基盤をどう作ったか - AWS Gravitonで支える低遅延・低コストAI Agent基盤
mogamit
0
180
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
340
Featured
See All Featured
Paper Plane
katiecoart
PRO
2
52k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
420
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
390
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
A designer walks into a library…
pauljervisheath
211
24k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
280
Designing Experiences People Love
moore
143
24k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
45k
Facilitating Awesome Meetings
lara
57
7k
A Tale of Four Properties
chriscoyier
163
24k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
220
Transcript
grapheme_strrev作っ た、あと雑感 😴
自己紹介 てきめん • https://tekitoh-memdhoi.info • @youkidearitai • https://github.com/youkidearit ai •
PHP のmbstringコミッター オレ
grapheme_strrev関数 • 2月20日に採択されました • 書記素クラスターごとにstrrevする関数です – GitHubでmb_strrevを作ってた人が多数だったことと、複数コー ドポイントに対応させないと今どきじゃないため – 絵文字や異体字セレクタがstrrevできます
– RtoL言語(アラビア語など)でもちゃんと動きます • レビュー待ちです
書記素クラスター • ちょっと、書記素クラスターについて思うところがあ る • 書記素クラスターにコードポイントの上限はある? – https://unicode-org.atlassian.net/browse/ICU-233 02 –
ICUで聞いたところ「ない」とのこと
書記素クラスターの実験:emoji bomb • 見た目は 👨👦👦 • 実際は10000000回繰り返し、ZWJ(U+200D)を挟むことで「1書記素クラス ター」としてカウントさせる • 結果として200MB超の1書記素クラスターの
が誕生 👨👦👦 – 仮に絵文字爆弾 とでも名付けましょうか、 💣️/ Bomb Emoji 💣️/ があるけど • なお、スクリーンに表示するだけでクラッシュするため出せない
書記素クラスターにコードポイントの上限 がないのが何が悪いのか • 大量のコードポイント、1書記素クラスターができて しまう – 極めて危険で、DoSなどを考慮しないとまずい – 書記素クラスターが無限のコードポイントを受け入れら れても、コンピューターは有限なのでまずい
ということで提案してみる • 1書記素クラスターにつきコードポイントの上限を設定し、バ リデーションする関数の提案をPHP Internalにてしてみてる • ICUではないのでクローズ、ではプログラミング言語レイヤー で何とかするしか無いのでは感 • なお、もし採択、搭載まで行ってしまうと多分プログラミング
言語では初の機能になる – みんなそんな書記素クラスター興味ないの?
まとめ • grapheme_strrevが採択された • Unicode(.org)は書記素クラスターがあれば万能だと多分 思い込んでるのでは – それはたしかにそうなんだが、コンピューターなどは有限なので 狂う –
多分違うので正していく – PHPの「歯ブラシ」らしさを追求していく