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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
てきめん tekimen
PRO
February 24, 2026
Programming
250
1
Share
grapheme_strrev関数が採択されました(あと雑感)
てきめん tekimen
PRO
February 24, 2026
More Decks by てきめん tekimen
See All by てきめん tekimen
Limit of code point for grapheme cluster in programming language side.
youkidearitai
PRO
0
59
Unicodeどうしてる? PHPから見たUnicode対応と他言語での対応についてのお伺い
youkidearitai
PRO
2
3.2k
PHP 8.5の裏話
youkidearitai
PRO
0
130
CJK and Unicode From a PHP Committer
youkidearitai
PRO
0
290
PHP Internals わいわい #3 mb_*関数を作ってみよう
youkidearitai
PRO
0
150
Windows版php-srcデバッグ方法
youkidearitai
PRO
1
120
PHP Internals わいわい #1 の資料
youkidearitai
PRO
1
1.6k
mb_trim関数を作りました
youkidearitai
PRO
1
1.3k
PHPの次期バージョンはこの時期どうなっているのか - Internalsの開発体制について - PHPカンファレンス小田原
youkidearitai
PRO
1
1.1k
Other Decks in Programming
See All in Programming
Nuxt Server Components
wattanx
0
260
レガシーPHP転生 〜父がドメインエキスパートだったのでDDD+Claude Codeでチート開発します〜
panda_program
0
600
Vibe하게 만드는 Flutter GenUI App With ADK , 박제창, BWAI Incheon 2026
itsmedreamwalker
0
540
PCOVから学ぶコードカバレッジ #phpcon_odawara
o0h
PRO
0
240
今からFlash開発できるわけないじゃん、ムリムリ! (※ムリじゃなかった!?)
arkw
0
190
Codex CLI でつくる、Issue から merge までの開発フロー
amata1219
0
330
Coding as Prompting Since 2025
ragingwind
0
770
CDK Deployのための ”反響定位”
watany
1
510
テレメトリーシグナルが導くパフォーマンス最適化 / Performance Optimization Driven by Telemetry Signals
seike460
PRO
2
220
ハンズオンで学ぶクラウドネイティブ
tatsukiminami
0
100
脱 雰囲気実装!AgentCoreを良い感じにWEBアプリケーションに組み込むために
takuyay0ne
3
440
見せてもらおうか、 OpenSearchの性能とやらを!
shunta27
1
180
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
96
14k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
260
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.6k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
200
Code Review Best Practice
trishagee
74
20k
The Curse of the Amulet
leimatthew05
1
11k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
710
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
260
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
160
How GitHub (no longer) Works
holman
316
150k
Optimizing for Happiness
mojombo
378
71k
Marketing to machines
jonoalderson
1
5.1k
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の「歯ブラシ」らしさを追求していく