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
1
230
grapheme_strrev関数が採択されました(あと雑感)
てきめん tekimen
PRO
February 24, 2026
Tweet
Share
More Decks by てきめん tekimen
See All by てきめん tekimen
Limit of code point for grapheme cluster in programming language side.
youkidearitai
PRO
0
54
Unicodeどうしてる? PHPから見たUnicode対応と他言語での対応についてのお伺い
youkidearitai
PRO
2
3k
PHP 8.5の裏話
youkidearitai
PRO
0
120
CJK and Unicode From a PHP Committer
youkidearitai
PRO
0
270
PHP Internals わいわい #3 mb_*関数を作ってみよう
youkidearitai
PRO
0
140
Windows版php-srcデバッグ方法
youkidearitai
PRO
1
110
PHP Internals わいわい #1 の資料
youkidearitai
PRO
1
1.5k
mb_trim関数を作りました
youkidearitai
PRO
1
1.3k
PHPの次期バージョンはこの時期どうなっているのか - Internalsの開発体制について - PHPカンファレンス小田原
youkidearitai
PRO
1
1.1k
Other Decks in Programming
See All in Programming
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
300
ふつうのRubyist、ちいさなデバイス、大きな一年 / Ordinary Rubyists, Tiny Devices, Big Year
chobishiba
1
460
モックわからないマン卒業記 ~振る舞いを起点に見直した、フロントエンドテストにおけるモックの使いどころ~
tasukuwatanabe
3
390
CSC307 Lecture 14
javiergs
PRO
0
470
Go 1.26でのsliceのメモリアロケーション最適化 / Go 1.26 リリースパーティ #go126party
mazrean
1
410
野球解説AI Agentを開発してみた - 2026/02/27 LayerX社内LT会資料
shinyorke
PRO
0
330
Go Conference mini in Sendai 2026 : Goに新機能を提案し実装されるまでのフロー徹底解説
yamatoya
0
610
RAGでハマりがちな"Excelの罠"を、データの構造化で突破する
harumiweb
9
2.9k
AI 開発合宿を通して得た学び
niftycorp
PRO
0
140
米国のサイバーセキュリティタイムラインと見る Goの暗号パッケージの進化
tomtwinkle
2
600
モダンOBSプラグイン開発
umireon
0
150
20260313 - Grafana & Friends Taipei #1 - Kubernetes v1.36 的開發雜記:那些困在 Alpha 加護病房太久的 Metrics
tico88612
0
210
Featured
See All Featured
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
170
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
86
So, you think you're a good person
axbom
PRO
2
2k
Technical Leadership for Architectural Decision Making
baasie
3
290
Visualization
eitanlees
150
17k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
320
Agile that works and the tools we love
rasmusluckow
331
21k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
770
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
240
Color Theory Basics | Prateek | Gurzu
gurzu
0
250
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
480
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
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の「歯ブラシ」らしさを追求していく