SlideShare a Scribd company logo
Explaining exception handling on Zend VM




❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
<?php
function mydiv($a, $b) {
return $b ? $a / $b : 0;
}
$ php -dopcache.enable_cli=1 -dopcache.opt_debug_level=0x10000 mydiv.php
L0 (2): CV0($a) = RECV 1
L1 (2): CV1($b) = RECV 2
L2 (3): JMPZ CV1($b) L6
L3 (3): T2 = DIV CV0($a) CV1($b)
L4 (3): T3 = QM_ASSIGN T2
L5 (3): JMP L7
L6 (3): T3 = QM_ASSIGN int(0)
L7 (3): RETURN T3
L8 (4): RETURN null
❖
❖
❖
❖
JMPZ CV1($b) L6
T2 = DIV CV0($a) CV1($b)
❖
❖
❖
❖
❖
❖
❖
❖
❖
<?php
function bar() {
$e = new Exception();
throw $e;
try {
throw $e;
} catch (FooException $e) {
throw $e;
} catch (BarException $e) {
return 0;
}
}
❖
L0 (4): V1 = NEW 0 string("Exception")
L1 (4): DO_FCALL
L2 (3): ASSIGN CV0($e) V1
L3 (4): THROW CV0($e)
L4 (6): THROW CV0($e)
L5 (6): JMP L11
L6 (7): CV0($e) = CATCH string("FooException") L9
L7 (8): THROW CV0($e)
L8 (8): JMP L11
L9 (9): CV0($e) = CATCH string("BarException")
L10 (10): RETURN int(0)
L11 (12): RETURN null
EXCEPTION TABLE:
L4, L6, -, -
❖
L0 (4): V1 = NEW 0 string("Exception")
L1 (4): DO_FCALL
L2 (3): ASSIGN CV0($e) V1
L3 (4): THROW CV0($e)
L4 (6): THROW CV0($e)
L5 (6): JMP L11
L6 (7): CV0($e) = CATCH string("FooException") L9
L7 (8): THROW CV0($e)
L8 (8): JMP L11
L9 (9): CV0($e) = CATCH string("BarException")
L10 (10): RETURN int(0)
L11 (12): RETURN null
EXCEPTION TABLE:
L4, L6, -, -
❖
❖
THROW CV0($e)
❖
CV0($e) = CATCH string("FooException") L9
❖
❖
❖
❖
THROW CV0($e)
ZEND_API ZEND_COLD void zend_throw_exception_internal 
(zval *exception) /* {{{ */
{
if (exception != NULL) {
EG(exception) = Z_OBJ_P(exception);
❖
❖
❖
EG(current_execute_data)->opline = EG(exception_op);
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
THROW CV0($e)
❖
❖
❖
❖
L0 (4): V1 = NEW 0 string("Exception")
L1 (4): DO_FCALL
L2 (3): ASSIGN CV0($e) V1
L3 (4): THROW CV0($e)
L4 (6): THROW CV0($e)
L5 (6): JMP L11
L6 (7): CV0($e) = CATCH string("FooException") L9
L7 (8): THROW CV0($e)
L8 (8): JMP L11
L9 (9): CV0($e) = CATCH string("BarException")
L10 (10): RETURN int(0)
L11 (12): RETURN null
EXCEPTION TABLE:
L4, L6, -, -
❖
if (ce != catch_ce) {
if (!catch_ce || !instanceof_function(ce, catch_ce)) {
if (opline->extended_value & ZEND_LAST_CATCH) {
zend_rethrow_exception(execute_data);
HANDLE_EXCEPTION();
}
ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0);
}
}
❖
❖
❖
❖
static zend_always_inline void 
zend_rethrow_exception(zend_execute_data *execute_data)
{
if (EX(opline)->opcode != ZEND_HANDLE_EXCEPTION) {
EG(opline_before_exception) = EX(opline);
EX(opline) = EG(exception_op);
}
}
❖
❖
❖
❖
❖
THROW CV0($e)
❖
HANDLE_EXEPTION
CV0($e) = CATCH string("FooException") L9
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
<?php
function baz() {
try {
throw new Exception();
} finally {
return 0;
}
}
❖
<?php
function baz() {
try {
throw new Exception();
} finally {
return 0;
}
}
❖
❖
❖
L0 (4): V1 = NEW 0 string("Exception")
L1 (4): DO_FCALL
L2 (4): THROW V1
L3 (5): T0 = FAST_CALL L5
L4 (5): JMP L8
L5 (6): DISCARD_EXCEPTION T0
L6 (6): RETURN int(0)
L7 (6): FAST_RET T0
L8 (8): RETURN null
EXCEPTION TABLE:
L0, -, L5, L7
❖
❖ 

❖
❖
❖
❖
<?php
function baz() {
try {
throw new Exception(1);
} finally {
throw new Exception(2);
}
}
❖
<?php
function baz() {
try {
throw new Exception(1);
} finally {
throw new Exception(2);
}
}
❖
❖
try {
baz();
} catch (Exception $e) {
echo $e->getMessage(); // 2
echo $e->getPrevious()->getMessage(); // 1
}
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
❖
Zend VMにおける例外の実装

More Related Content

What's hot

Laravel - PHP For artisans
Laravel - PHP For artisansLaravel - PHP For artisans
Laravel - PHP For artisans
Francisco Carvalho
 
The Ring programming language version 1.6 book - Part 84 of 189
The Ring programming language version 1.6 book - Part 84 of 189The Ring programming language version 1.6 book - Part 84 of 189
The Ring programming language version 1.6 book - Part 84 of 189
Mahmoud Samir Fayed
 
JavaScript - Agora nervoso
JavaScript - Agora nervosoJavaScript - Agora nervoso
JavaScript - Agora nervoso
Luis Vendrame
 
Burrowing through go! the book
Burrowing through go! the bookBurrowing through go! the book
Burrowing through go! the book
Vishal Ghadge
 
Michael kontopoulos
Michael kontopoulosMichael kontopoulos
Michael kontopoulos
josnihmurni2907
 
The Ring programming language version 1.4.1 book - Part 22 of 31
The Ring programming language version 1.4.1 book - Part 22 of 31The Ring programming language version 1.4.1 book - Part 22 of 31
The Ring programming language version 1.4.1 book - Part 22 of 31
Mahmoud Samir Fayed
 
C++ Programming - 11th Study
C++ Programming - 11th StudyC++ Programming - 11th Study
C++ Programming - 11th Study
Chris Ohk
 
Hacking parse.y (RubyConf 2009)
Hacking parse.y (RubyConf 2009)Hacking parse.y (RubyConf 2009)
Hacking parse.y (RubyConf 2009)
ujihisa
 
โปรแกรมย่อยและฟังชันก์มาตรฐาน
โปรแกรมย่อยและฟังชันก์มาตรฐานโปรแกรมย่อยและฟังชันก์มาตรฐาน
โปรแกรมย่อยและฟังชันก์มาตรฐานknang
 
GeoGebra JavaScript CheatSheet
GeoGebra JavaScript CheatSheetGeoGebra JavaScript CheatSheet
GeoGebra JavaScript CheatSheet
Jose Perez
 
Elements of C++11
Elements of C++11Elements of C++11
Elements of C++11
Uilian Ries
 
Unix open
Unix openUnix open
Unix open
dimitar9
 

What's hot (20)

Laravel - PHP For artisans
Laravel - PHP For artisansLaravel - PHP For artisans
Laravel - PHP For artisans
 
The Ring programming language version 1.6 book - Part 84 of 189
The Ring programming language version 1.6 book - Part 84 of 189The Ring programming language version 1.6 book - Part 84 of 189
The Ring programming language version 1.6 book - Part 84 of 189
 
JavaScript - Agora nervoso
JavaScript - Agora nervosoJavaScript - Agora nervoso
JavaScript - Agora nervoso
 
Advanced pointer
Advanced pointerAdvanced pointer
Advanced pointer
 
Burrowing through go! the book
Burrowing through go! the bookBurrowing through go! the book
Burrowing through go! the book
 
Tu1
Tu1Tu1
Tu1
 
C++ programs
C++ programsC++ programs
C++ programs
 
Michael kontopoulos
Michael kontopoulosMichael kontopoulos
Michael kontopoulos
 
Vcs8
Vcs8Vcs8
Vcs8
 
The Ring programming language version 1.4.1 book - Part 22 of 31
The Ring programming language version 1.4.1 book - Part 22 of 31The Ring programming language version 1.4.1 book - Part 22 of 31
The Ring programming language version 1.4.1 book - Part 22 of 31
 
C++ Programming - 11th Study
C++ Programming - 11th StudyC++ Programming - 11th Study
C++ Programming - 11th Study
 
Hacking parse.y (RubyConf 2009)
Hacking parse.y (RubyConf 2009)Hacking parse.y (RubyConf 2009)
Hacking parse.y (RubyConf 2009)
 
โปรแกรมย่อยและฟังชันก์มาตรฐาน
โปรแกรมย่อยและฟังชันก์มาตรฐานโปรแกรมย่อยและฟังชันก์มาตรฐาน
โปรแกรมย่อยและฟังชันก์มาตรฐาน
 
งานนำเสนอ อาจารย์ลาวัลย์
งานนำเสนอ อาจารย์ลาวัลย์งานนำเสนอ อาจารย์ลาวัลย์
งานนำเสนอ อาจารย์ลาวัลย์
 
GeoGebra JavaScript CheatSheet
GeoGebra JavaScript CheatSheetGeoGebra JavaScript CheatSheet
GeoGebra JavaScript CheatSheet
 
Elements of C++11
Elements of C++11Elements of C++11
Elements of C++11
 
Unix open
Unix openUnix open
Unix open
 
Final ds record
Final ds recordFinal ds record
Final ds record
 
Message in a bottle
Message in a bottleMessage in a bottle
Message in a bottle
 
Trisb
TrisbTrisb
Trisb
 

Similar to Zend VMにおける例外の実装

[FT-11][suhorng] “Poor Man's” Undergraduate Compilers
[FT-11][suhorng] “Poor Man's” Undergraduate Compilers[FT-11][suhorng] “Poor Man's” Undergraduate Compilers
[FT-11][suhorng] “Poor Man's” Undergraduate Compilers
Functional Thursday
 
循環参照のはなし
循環参照のはなし循環参照のはなし
循環参照のはなし
Masahiro Honma
 
Intel codetable
Intel codetableIntel codetable
Intel codetable
J R7
 
Lec19 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Pr...
Lec19 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Pr...Lec19 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Pr...
Lec19 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Pr...
Hsien-Hsin Sean Lee, Ph.D.
 
Javascript engine performance
Javascript engine performanceJavascript engine performance
Javascript engine performanceDuoyi Wu
 
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil PerssonLow-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
AMD Developer Central
 
Instruction set of 8086 Microprocessor
Instruction set of 8086 Microprocessor Instruction set of 8086 Microprocessor
Instruction set of 8086 Microprocessor
Velalar College of Engineering and Technology
 
PHP in 2018 - Q4 - AFUP Limoges
PHP in 2018 - Q4 - AFUP LimogesPHP in 2018 - Q4 - AFUP Limoges
PHP in 2018 - Q4 - AFUP Limoges
✅ William Pinaud
 
Pragmatic Optimization in Modern Programming - Mastering Compiler Optimizations
Pragmatic Optimization in Modern Programming - Mastering Compiler OptimizationsPragmatic Optimization in Modern Programming - Mastering Compiler Optimizations
Pragmatic Optimization in Modern Programming - Mastering Compiler Optimizations
Marina Kolpakova
 
Virtual machine and javascript engine
Virtual machine and javascript engineVirtual machine and javascript engine
Virtual machine and javascript engine
Duoyi Wu
 
Protecting C++
Protecting C++Protecting C++
Protecting C++
Pavel Filonov
 
Защищая С++. Павел Филонов ➠ CoreHard Autumn 2019
Защищая С++. Павел Филонов ➠ CoreHard Autumn 2019 Защищая С++. Павел Филонов ➠ CoreHard Autumn 2019
Защищая С++. Павел Филонов ➠ CoreHard Autumn 2019
corehard_by
 
プログラム実行の話と
OSとメモリの挙動の話
プログラム実行の話と
OSとメモリの挙動の話プログラム実行の話と
OSとメモリの挙動の話
プログラム実行の話と
OSとメモリの挙動の話
tatsunori ishikawa
 
Michal Malohlava presents: Open Source H2O and Scala
Michal Malohlava presents: Open Source H2O and Scala Michal Malohlava presents: Open Source H2O and Scala
Michal Malohlava presents: Open Source H2O and Scala
Sri Ambati
 
Ruby closures, how are they possible?
Ruby closures, how are they possible?Ruby closures, how are they possible?
Ruby closures, how are they possible?
Carlos Alonso Pérez
 
PHP Internals and Virtual Machine
PHP Internals and Virtual MachinePHP Internals and Virtual Machine
PHP Internals and Virtual Machine
julien pauli
 

Similar to Zend VMにおける例外の実装 (17)

[FT-11][suhorng] “Poor Man's” Undergraduate Compilers
[FT-11][suhorng] “Poor Man's” Undergraduate Compilers[FT-11][suhorng] “Poor Man's” Undergraduate Compilers
[FT-11][suhorng] “Poor Man's” Undergraduate Compilers
 
循環参照のはなし
循環参照のはなし循環参照のはなし
循環参照のはなし
 
Intel codetable
Intel codetableIntel codetable
Intel codetable
 
Lec19 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Pr...
Lec19 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Pr...Lec19 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Pr...
Lec19 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Pr...
 
Javascript engine performance
Javascript engine performanceJavascript engine performance
Javascript engine performance
 
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil PerssonLow-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
 
Instruction set of 8086 Microprocessor
Instruction set of 8086 Microprocessor Instruction set of 8086 Microprocessor
Instruction set of 8086 Microprocessor
 
PHP in 2018 - Q4 - AFUP Limoges
PHP in 2018 - Q4 - AFUP LimogesPHP in 2018 - Q4 - AFUP Limoges
PHP in 2018 - Q4 - AFUP Limoges
 
Pragmatic Optimization in Modern Programming - Mastering Compiler Optimizations
Pragmatic Optimization in Modern Programming - Mastering Compiler OptimizationsPragmatic Optimization in Modern Programming - Mastering Compiler Optimizations
Pragmatic Optimization in Modern Programming - Mastering Compiler Optimizations
 
20141106 asfws unicode_hacks
20141106 asfws unicode_hacks20141106 asfws unicode_hacks
20141106 asfws unicode_hacks
 
Virtual machine and javascript engine
Virtual machine and javascript engineVirtual machine and javascript engine
Virtual machine and javascript engine
 
Protecting C++
Protecting C++Protecting C++
Protecting C++
 
Защищая С++. Павел Филонов ➠ CoreHard Autumn 2019
Защищая С++. Павел Филонов ➠ CoreHard Autumn 2019 Защищая С++. Павел Филонов ➠ CoreHard Autumn 2019
Защищая С++. Павел Филонов ➠ CoreHard Autumn 2019
 
プログラム実行の話と
OSとメモリの挙動の話
プログラム実行の話と
OSとメモリの挙動の話プログラム実行の話と
OSとメモリの挙動の話
プログラム実行の話と
OSとメモリの挙動の話
 
Michal Malohlava presents: Open Source H2O and Scala
Michal Malohlava presents: Open Source H2O and Scala Michal Malohlava presents: Open Source H2O and Scala
Michal Malohlava presents: Open Source H2O and Scala
 
Ruby closures, how are they possible?
Ruby closures, how are they possible?Ruby closures, how are they possible?
Ruby closures, how are they possible?
 
PHP Internals and Virtual Machine
PHP Internals and Virtual MachinePHP Internals and Virtual Machine
PHP Internals and Virtual Machine
 

More from Yoshio Hanawa

自宅の消費電力をリアルタイムに グラフ化してみた
自宅の消費電力をリアルタイムに グラフ化してみた自宅の消費電力をリアルタイムに グラフ化してみた
自宅の消費電力をリアルタイムに グラフ化してみた
Yoshio Hanawa
 
ぼくのかんがえる
さいきょうの銀行振込
ぼくのかんがえる
さいきょうの銀行振込ぼくのかんがえる
さいきょうの銀行振込
ぼくのかんがえる
さいきょうの銀行振込
Yoshio Hanawa
 
「OKグーグル! 銀行振込1000円」
「OKグーグル! 銀行振込1000円」「OKグーグル! 銀行振込1000円」
「OKグーグル! 銀行振込1000円」
Yoshio Hanawa
 
浮動小数点数とOSSのバグの話
浮動小数点数とOSSのバグの話浮動小数点数とOSSのバグの話
浮動小数点数とOSSのバグの話
Yoshio Hanawa
 
PHP拡張をPECLに登録してわかったこと
PHP拡張をPECLに登録してわかったことPHP拡張をPECLに登録してわかったこと
PHP拡張をPECLに登録してわかったこと
Yoshio Hanawa
 
GitHubからお金をもらった話
GitHubからお金をもらった話GitHubからお金をもらった話
GitHubからお金をもらった話
Yoshio Hanawa
 
iOS/macOSとAndroid/Linuxのサンドボックス機構について調べた
iOS/macOSとAndroid/Linuxのサンドボックス機構について調べたiOS/macOSとAndroid/Linuxのサンドボックス機構について調べた
iOS/macOSとAndroid/Linuxのサンドボックス機構について調べた
Yoshio Hanawa
 
realpathキャッシュと OPcacheの面倒すぎる関係
realpathキャッシュと OPcacheの面倒すぎる関係realpathキャッシュと OPcacheの面倒すぎる関係
realpathキャッシュと OPcacheの面倒すぎる関係
Yoshio Hanawa
 
家庭用ブロードバンドルータ上でWordPressを動かそう
家庭用ブロードバンドルータ上でWordPressを動かそう家庭用ブロードバンドルータ上でWordPressを動かそう
家庭用ブロードバンドルータ上でWordPressを動かそう
Yoshio Hanawa
 
Laungage Update PHP編
Laungage Update PHP編Laungage Update PHP編
Laungage Update PHP編
Yoshio Hanawa
 
PHPの拡張モジュールをGoで作る
PHPの拡張モジュールをGoで作るPHPの拡張モジュールをGoで作る
PHPの拡張モジュールをGoで作る
Yoshio Hanawa
 
GitHubにバグ報告して賞金$500を頂いた話
GitHubにバグ報告して賞金$500を頂いた話GitHubにバグ報告して賞金$500を頂いた話
GitHubにバグ報告して賞金$500を頂いた話
Yoshio Hanawa
 
php-buildがいかに便利かを力説する
php-buildがいかに便利かを力説するphp-buildがいかに便利かを力説する
php-buildがいかに便利かを力説する
Yoshio Hanawa
 
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみたOPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
Yoshio Hanawa
 
PHP7の拡張モジュール事情
PHP7の拡張モジュール事情PHP7の拡張モジュール事情
PHP7の拡張モジュール事情
Yoshio Hanawa
 
PHP7の内部実装から学ぶ性能改善テクニック
PHP7の内部実装から学ぶ性能改善テクニックPHP7の内部実装から学ぶ性能改善テクニック
PHP7の内部実装から学ぶ性能改善テクニック
Yoshio Hanawa
 
PHPの正規表現と最長一致
PHPの正規表現と最長一致PHPの正規表現と最長一致
PHPの正規表現と最長一致
Yoshio Hanawa
 
PHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイントPHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイント
Yoshio Hanawa
 
偶然にも500万個のSSH公開鍵を手に入れた俺たちは
偶然にも500万個のSSH公開鍵を手に入れた俺たちは偶然にも500万個のSSH公開鍵を手に入れた俺たちは
偶然にも500万個のSSH公開鍵を手に入れた俺たちは
Yoshio Hanawa
 
PHP7はなぜ速いのか
PHP7はなぜ速いのかPHP7はなぜ速いのか
PHP7はなぜ速いのか
Yoshio Hanawa
 

More from Yoshio Hanawa (20)

自宅の消費電力をリアルタイムに グラフ化してみた
自宅の消費電力をリアルタイムに グラフ化してみた自宅の消費電力をリアルタイムに グラフ化してみた
自宅の消費電力をリアルタイムに グラフ化してみた
 
ぼくのかんがえる
さいきょうの銀行振込
ぼくのかんがえる
さいきょうの銀行振込ぼくのかんがえる
さいきょうの銀行振込
ぼくのかんがえる
さいきょうの銀行振込
 
「OKグーグル! 銀行振込1000円」
「OKグーグル! 銀行振込1000円」「OKグーグル! 銀行振込1000円」
「OKグーグル! 銀行振込1000円」
 
浮動小数点数とOSSのバグの話
浮動小数点数とOSSのバグの話浮動小数点数とOSSのバグの話
浮動小数点数とOSSのバグの話
 
PHP拡張をPECLに登録してわかったこと
PHP拡張をPECLに登録してわかったことPHP拡張をPECLに登録してわかったこと
PHP拡張をPECLに登録してわかったこと
 
GitHubからお金をもらった話
GitHubからお金をもらった話GitHubからお金をもらった話
GitHubからお金をもらった話
 
iOS/macOSとAndroid/Linuxのサンドボックス機構について調べた
iOS/macOSとAndroid/Linuxのサンドボックス機構について調べたiOS/macOSとAndroid/Linuxのサンドボックス機構について調べた
iOS/macOSとAndroid/Linuxのサンドボックス機構について調べた
 
realpathキャッシュと OPcacheの面倒すぎる関係
realpathキャッシュと OPcacheの面倒すぎる関係realpathキャッシュと OPcacheの面倒すぎる関係
realpathキャッシュと OPcacheの面倒すぎる関係
 
家庭用ブロードバンドルータ上でWordPressを動かそう
家庭用ブロードバンドルータ上でWordPressを動かそう家庭用ブロードバンドルータ上でWordPressを動かそう
家庭用ブロードバンドルータ上でWordPressを動かそう
 
Laungage Update PHP編
Laungage Update PHP編Laungage Update PHP編
Laungage Update PHP編
 
PHPの拡張モジュールをGoで作る
PHPの拡張モジュールをGoで作るPHPの拡張モジュールをGoで作る
PHPの拡張モジュールをGoで作る
 
GitHubにバグ報告して賞金$500を頂いた話
GitHubにバグ報告して賞金$500を頂いた話GitHubにバグ報告して賞金$500を頂いた話
GitHubにバグ報告して賞金$500を頂いた話
 
php-buildがいかに便利かを力説する
php-buildがいかに便利かを力説するphp-buildがいかに便利かを力説する
php-buildがいかに便利かを力説する
 
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみたOPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
 
PHP7の拡張モジュール事情
PHP7の拡張モジュール事情PHP7の拡張モジュール事情
PHP7の拡張モジュール事情
 
PHP7の内部実装から学ぶ性能改善テクニック
PHP7の内部実装から学ぶ性能改善テクニックPHP7の内部実装から学ぶ性能改善テクニック
PHP7の内部実装から学ぶ性能改善テクニック
 
PHPの正規表現と最長一致
PHPの正規表現と最長一致PHPの正規表現と最長一致
PHPの正規表現と最長一致
 
PHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイントPHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイント
 
偶然にも500万個のSSH公開鍵を手に入れた俺たちは
偶然にも500万個のSSH公開鍵を手に入れた俺たちは偶然にも500万個のSSH公開鍵を手に入れた俺たちは
偶然にも500万個のSSH公開鍵を手に入れた俺たちは
 
PHP7はなぜ速いのか
PHP7はなぜ速いのかPHP7はなぜ速いのか
PHP7はなぜ速いのか
 

Recently uploaded

Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Yara Milbes
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 

Recently uploaded (20)

Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 

Zend VMにおける例外の実装