Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
MK
Uploaded by
Moriyoshi Koizumi
PPTX, PDF
2,525 views
PHP7を魔改造した話
PHP7を魔改造してES6 style array decompositionを実装した話
Entertainment & Humor
◦
Read more
1
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 8
2
/ 8
3
/ 8
4
/ 8
5
/ 8
6
/ 8
7
/ 8
8
/ 8
More Related Content
PDF
よいことも悪いこともぜんぶPHPが教えてくれた
by
Moriyoshi Koizumi
PDF
SlowQueryとの戦い
by
Ken Gotoh
PDF
Symfony2 How to create your Bundle
by
chobi e
PPTX
知ってるようで意外と知らないPHPの便利関数
by
Wataru Terada
PPTX
PHP基本的関数QUIZ
by
Wataru Terada
PDF
Ruby 同好会宣言
by
Yuya Takeyama
PDF
HHVM Hack
by
Masaaki Yonebayashi
PDF
Prophecyを使ったユニットテスト
by
Akio Ishida
よいことも悪いこともぜんぶPHPが教えてくれた
by
Moriyoshi Koizumi
SlowQueryとの戦い
by
Ken Gotoh
Symfony2 How to create your Bundle
by
chobi e
知ってるようで意外と知らないPHPの便利関数
by
Wataru Terada
PHP基本的関数QUIZ
by
Wataru Terada
Ruby 同好会宣言
by
Yuya Takeyama
HHVM Hack
by
Masaaki Yonebayashi
Prophecyを使ったユニットテスト
by
Akio Ishida
What's hot
PDF
PHP5.5新機能「ジェネレータ」初心者入門
by
kwatch
PPTX
Perl Hobby Programming - Games::BeLike::EightBIT ターミナルで8ビット風ゲームをつくろう
by
keroyonn
PDF
40分濃縮 PHP classの教室
by
Yusuke Ando
KEY
Mojoliciousをウェブ制作現場で使ってみてる
by
jamadam
PPTX
Perl logging
by
keroyonn
PDF
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
by
leverages_event
PDF
phpspecで学ぶLondon School TDD
by
Akio Ishida
PDF
PHP の GC の話
by
y-uti
PDF
WebAPIではじめるphp入門
by
Hiroaki Murayama
PPTX
実用裏方 Perl 入門
by
keroyonn
PDF
traitを使って楽したい話
by
infinite_loop
PDF
Hack/HHVM 入門
by
y-uti
PDF
最近の PHP の話
by
y-uti
PPTX
PSR-1 と PSR-2 を5分でざっくり理解する
by
Wataru Terada
PDF
最新PHP事情 (2000年7月22日,PHPカンファレンス)
by
Rui Hirokawa
KEY
Perlで伝統芸能
by
hitode909
PDF
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
by
Hiroaki KOBAYASHI
PDF
【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト
by
Yuki Okamoto
PDF
PHPの今とこれから2014
by
Rui Hirokawa
PHP5.5新機能「ジェネレータ」初心者入門
by
kwatch
Perl Hobby Programming - Games::BeLike::EightBIT ターミナルで8ビット風ゲームをつくろう
by
keroyonn
40分濃縮 PHP classの教室
by
Yusuke Ando
Mojoliciousをウェブ制作現場で使ってみてる
by
jamadam
Perl logging
by
keroyonn
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
by
leverages_event
phpspecで学ぶLondon School TDD
by
Akio Ishida
PHP の GC の話
by
y-uti
WebAPIではじめるphp入門
by
Hiroaki Murayama
実用裏方 Perl 入門
by
keroyonn
traitを使って楽したい話
by
infinite_loop
Hack/HHVM 入門
by
y-uti
最近の PHP の話
by
y-uti
PSR-1 と PSR-2 を5分でざっくり理解する
by
Wataru Terada
最新PHP事情 (2000年7月22日,PHPカンファレンス)
by
Rui Hirokawa
Perlで伝統芸能
by
hitode909
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
by
Hiroaki KOBAYASHI
【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト
by
Yuki Okamoto
PHPの今とこれから2014
by
Rui Hirokawa
Viewers also liked
PDF
Goをカンストさせる話
by
Moriyoshi Koizumi
PDF
Goでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 Spring
by
Yahoo!デベロッパーネットワーク
PPTX
Authentication, Authorization, OAuth, OpenID Connect and Pyramid
by
Moriyoshi Koizumi
PDF
GoでKVSを書けるのか
by
Moriyoshi Koizumi
PDF
go 1.8 net/http timeouts
by
Yahoo!デベロッパーネットワーク
PDF
My client wanted their apps synced, and I made it with Go
by
Toru Furukawa
PDF
Coding in the context era
by
lestrrat
PDF
条件式評価器の実装による管理ツールの抽象化
by
Takuya Ueda
PDF
Go conference 2017 Lightning talk
by
mokelab
PDF
PHPのすべらない話
by
Moriyoshi Koizumi
PDF
PHPのすべらない話#3
by
Moriyoshi Koizumi
PDF
Swift : クラス継承とプロトコル拡張を比べてみる #yidev
by
Tomohiro Kumagai
PPTX
Pyramidのrendererをカスタマイズする
by
Moriyoshi Koizumi
PDF
Kubernetes in 30 minutes (2017/03/10)
by
lestrrat
PDF
[C16] インメモリ分散KVSの弱点。一貫性が崩れる原因と、それを克服する技術とは? by Taichi Umeda
by
Insight Technology, Inc.
PPTX
HLSについて知っていることを話します
by
Moriyoshi Koizumi
PDF
文書をコードとして扱う
by
Recruit Technologies
PDF
いまさら聞けないselectあれこれ
by
lestrrat
PDF
フォントの選び方・使い方
by
k maztani
PDF
LLの虎 semifinal: 殺伐Python
by
Moriyoshi Koizumi
Goをカンストさせる話
by
Moriyoshi Koizumi
Goでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 Spring
by
Yahoo!デベロッパーネットワーク
Authentication, Authorization, OAuth, OpenID Connect and Pyramid
by
Moriyoshi Koizumi
GoでKVSを書けるのか
by
Moriyoshi Koizumi
go 1.8 net/http timeouts
by
Yahoo!デベロッパーネットワーク
My client wanted their apps synced, and I made it with Go
by
Toru Furukawa
Coding in the context era
by
lestrrat
条件式評価器の実装による管理ツールの抽象化
by
Takuya Ueda
Go conference 2017 Lightning talk
by
mokelab
PHPのすべらない話
by
Moriyoshi Koizumi
PHPのすべらない話#3
by
Moriyoshi Koizumi
Swift : クラス継承とプロトコル拡張を比べてみる #yidev
by
Tomohiro Kumagai
Pyramidのrendererをカスタマイズする
by
Moriyoshi Koizumi
Kubernetes in 30 minutes (2017/03/10)
by
lestrrat
[C16] インメモリ分散KVSの弱点。一貫性が崩れる原因と、それを克服する技術とは? by Taichi Umeda
by
Insight Technology, Inc.
HLSについて知っていることを話します
by
Moriyoshi Koizumi
文書をコードとして扱う
by
Recruit Technologies
いまさら聞けないselectあれこれ
by
lestrrat
フォントの選び方・使い方
by
k maztani
LLの虎 semifinal: 殺伐Python
by
Moriyoshi Koizumi
Similar to PHP7を魔改造した話
PDF
知って得する標準関数の使い方
by
Soudai Sone
PPTX
PHP AST 徹底解説
by
do_aki
PDF
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
by
Hideo Kashioka
ODP
本当は怖いPHP
by
Takuya Sato
PDF
HashTable と HashDos
by
Yuya Takeyama
PPTX
詳説ぺちぺち
by
do_aki
PDF
お前は PHP の歴史的な理由の数を覚えているのか
by
Kousuke Ebihara
PDF
PHPの今とこれから2023
by
Rui Hirokawa
PDF
PHPの今とこれから2024 at PHP Conference Japan 2024
by
Rui Hirokawa
知って得する標準関数の使い方
by
Soudai Sone
PHP AST 徹底解説
by
do_aki
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
by
Hideo Kashioka
本当は怖いPHP
by
Takuya Sato
HashTable と HashDos
by
Yuya Takeyama
詳説ぺちぺち
by
do_aki
お前は PHP の歴史的な理由の数を覚えているのか
by
Kousuke Ebihara
PHPの今とこれから2023
by
Rui Hirokawa
PHPの今とこれから2024 at PHP Conference Japan 2024
by
Rui Hirokawa
More from Moriyoshi Koizumi
PDF
All I know about rsc.io/c2go
by
Moriyoshi Koizumi
PPTX
Hacking Go Compiler Internals / GoCon 2014 Autumn
by
Moriyoshi Koizumi
PDF
Uguisudani
by
Moriyoshi Koizumi
PDF
Ik in action
by
Moriyoshi Koizumi
PDF
Nginx lua
by
Moriyoshi Koizumi
PDF
Haxeについて
by
Moriyoshi Koizumi
PDF
Gocon2013
by
Moriyoshi Koizumi
PDF
PHP language update 201211
by
Moriyoshi Koizumi
PDF
mod_himoteからはじめよう
by
Moriyoshi Koizumi
PDF
HPHPは約束の地なのか
by
Moriyoshi Koizumi
PDF
Pyfes201110
by
Moriyoshi Koizumi
PDF
Phjosh(仮)プロジェクト
by
Moriyoshi Koizumi
PDF
Aaなゲームをjsで
by
Moriyoshi Koizumi
PDF
Aaなゲームをjsで
by
Moriyoshi Koizumi
PDF
ctypes拡張モジュール
by
Moriyoshi Koizumi
PDF
Introducing E-Cell 3.2
by
Moriyoshi Koizumi
PDF
10〜30分で何となく分かるGo
by
Moriyoshi Koizumi
PDF
Phpをいじり倒す10の方法
by
Moriyoshi Koizumi
PDF
X / DRM (Direct Rendering Manager) Architectural Overview
by
Moriyoshi Koizumi
All I know about rsc.io/c2go
by
Moriyoshi Koizumi
Hacking Go Compiler Internals / GoCon 2014 Autumn
by
Moriyoshi Koizumi
Uguisudani
by
Moriyoshi Koizumi
Ik in action
by
Moriyoshi Koizumi
Nginx lua
by
Moriyoshi Koizumi
Haxeについて
by
Moriyoshi Koizumi
Gocon2013
by
Moriyoshi Koizumi
PHP language update 201211
by
Moriyoshi Koizumi
mod_himoteからはじめよう
by
Moriyoshi Koizumi
HPHPは約束の地なのか
by
Moriyoshi Koizumi
Pyfes201110
by
Moriyoshi Koizumi
Phjosh(仮)プロジェクト
by
Moriyoshi Koizumi
Aaなゲームをjsで
by
Moriyoshi Koizumi
Aaなゲームをjsで
by
Moriyoshi Koizumi
ctypes拡張モジュール
by
Moriyoshi Koizumi
Introducing E-Cell 3.2
by
Moriyoshi Koizumi
10〜30分で何となく分かるGo
by
Moriyoshi Koizumi
Phpをいじり倒す10の方法
by
Moriyoshi Koizumi
X / DRM (Direct Rendering Manager) Architectural Overview
by
Moriyoshi Koizumi
PHP7を魔改造した話
1.
PHP7を魔改造した話 Moriyoshi Koizumi <moriyoshi@php.net>
2.
端的には • ES6-styleのarray decompositionを実装してみました。 <?php $a
= 1; $b = 2; list($a, $b) = [$b, $a]; var_dump($a); // 2 var_dump($b); // 1 <?php $a = 1; $b = 2; [$a, $b] = [$b, $a]; var_dump($a); // 2 var_dump($b); // 1 Before After
3.
他のサンプル <?php $db = new
PDO('...'); $rows = $db->query('SELECT hoge, fuga FROM foo;'); foreach ($rows as [$hoge, $fuga]) { // ... }
4.
やったこと • zend_language_parser.y に手を入れる •
zend_compile.c を直す
5.
zend_language_parser.y • 最初は T_LIST
’(’ assignment_list ’)’ をパースしている部分に ’[’ assignment_list ’]’ をカジュアルに突っ込んでみた • reduce / reduce conflict が発生する • [$a, $b, $c] = [$a, $b, $c] = [$a, $b, $c] のようなケースでの曖昧さ • ZEND_AST_LIST を生成するルールを取り除き ZEND_AST_ARRAY を生 成するルールに一本化することで曖昧さを回避 • 代入として正しくない構文は AST の解析時にエラーを出す • PHP7でとてもやりやすくなった部分
6.
zend_compile.c • ZEND_AST_LIST を扱っているところを
ZEND_AST_ARRAY に書き換え て回る • ZEND_AST_LIST と ZEND_AST_ARRAY とでは木構造が異なるので、そ の部分も修正 ZEND_AST_LIST ZEND_AST_VAR ZEND_AST_VAR ZEND_AST_ARRAY ZEND_AST_ARRAY_ELEM ZEND_AST_ARRAY_ELEM ZEND_AST_EXPRZEND_AST_EXPR ZEND_AST_EXPR ZEND_AST_EXPR
7.
副作用 • list(…) でarrayを定義できるようになった <?php $a
= list( 'a' => 'b', 'c' => list() );
8.
Diffはこちら • https://github.com/moriyoshi/php-src/pull/1/files
Download