com presentations: Add internals talk for php tour: jump-phptour18.xml slides/xdebug/vld-path-2-paths.xml
[email protected] (Derick Rethans) Tue, 15 May 2018 13:46:57 +0000
| Newsgroups | php.pres |
|---|---|
| Message-ID | <[email protected]> |
Commit: 7587a566eda611fe500c574abe9d5b4209085e8c Author: Derick Rethans <[email protected]> Tue, 15 May 2018 14:46:57 +0100 Parents: 5c7bd964924efd4827918c04d5cf66fbec8b36cf Branches: master Link: http://git.php.net/?p=presentations.git;a=commitdiff;h=7587a566eda611fe500c574abe9d5b4209085e8c Log: Add internals talk for php tour Changed paths: A jump-phptour18.xml M slides/xdebug/vld-path-2-paths.xml Diff: diff --git a/jump-phptour18.xml b/jump-phptour18.xml new file mode 100644 index 0000000..b3e085f --- /dev/null +++ b/jump-phptour18.xml @@ -0,0 +1,117 @@ +<?xml version="1.0" encoding="utf-8"?> +<presentation css="10gen-strict.css"> +<topic>PHP</topic> +<title>It's All About the Goto</title> +<event>PHP Tour Montpellier</event> +<location>Montpellier, France</location> +<date>May 17th, 2019</date> +<speaker>Derick Rethans</speaker> +<email>[email protected]</email> +<twitter>derickr</twitter> +<joindin>https://joind.in/23097</joindin> + +<slide>slides/mongodb/title.xml</slide> +<slide>slides/mongodb/me.xml</slide> + +<slide>slides/internals/title-agenda.xml</slide> + +<slide>slides/internals/title-stages.xml</slide> +<!-- INTRODUCTION +Compile stages: +Parse script +Create AST +Convert to opcodes +Run the code +Opcache for caching +--> +<slide>slides/internals/stages.xml</slide> + +<!-- STAGES +Parse +- Show parser rules +- Show "compiler" rules +--> + +<slide>slides/internals/title-parsing.xml</slide> +<slide>slides/internals/parse-state-machine.xml</slide> +<slide>slides/internals/parse-tokenization.xml</slide> +<slide>slides/internals/scanner.xml</slide> +<slide>slides/internals/scanner-rules.xml</slide> +<slide>slides/internals/ast.xml</slide> +<slide>slides/internals/ast1.xml</slide> +<slide>slides/internals/scanner-ast.xml</slide> +<slide>slides/internals/scanner-ast2.xml</slide> +<slide>slides/internals/bytecode0.xml</slide> +<slide>slides/internals/bytecode½.xml</slide> +<slide>slides/internals/bytecode1.xml</slide> + +<slide>slides/internals/jumps.xml</slide> + +<!-- +AST +- Show AST for various control structures + +Opcodes +- Show AST for the same control structures +--> + +<slide>slides/internals/jumps-if.xml</slide> +<slide>slides/internals/jumps-if-else.xml</slide> + +<slide>slides/internals/rings.xml</slide> +<slide>slides/internals/jumps-for.xml</slide> +<slide>slides/internals/jumps-for-rewritten.xml</slide> +<slide>slides/internals/jumps-while.xml</slide> +<slide>slides/internals/jumps-do-while.xml</slide> +<slide>slides/internals/jumps-foreach.xml</slide> +<slide>slides/internals/jumps-complex.xml</slide> +<slide>slides/internals/loops.xml</slide> +<slide>slides/internals/jumps-complex-dot.xml</slide> + +<!-- +Try/Catch nonsense +- FASTCALL/FASTRET +<slide>slides/internals/catch.xml</slide> +<slide>slides/internals/jumps-try-catch.xml</slide> +--> + +<!-- +Dead code analysis +- Show how Xdebug does it through VLD +--> +<slide>slides/internals/deadcode.xml</slide> +<slide>slides/internals/deadcode-vld.xml</slide> + +<!-- +Path analysis +- Branch and Path + +<slide>slides/internals/branches.xml</slide> +<slide>slides/xdebug/vld-path-2-paths.xml</slide> +<slide>slides/xdebug/vld-path-4-code.xml</slide> +<slide>slides/xdebug/vld-path-4-output.xml</slide> + +<slide>slides/xdebug/vld-path-3-code.xml</slide> +<slide>slides/xdebug/vld-path-3-output.xml</slide> +<slide>slides/xdebug/vld-path-3-paths.xml</slide> +--> + +<!-- Conclusion + +Code -> Tokens -> AST -> opode + +Transformation of control structures + +Useful implementations + +--> +<slide>slides/internals/recap.xml</slide> +<slide>slides/internals/recap-content.xml</slide> + + + +<slide>slides/mongodb/questions.xml</slide> + +<slide>slides/mongodb/resources.xml</slide> + +</presentation> diff --git a/slides/xdebug/vld-path-2-paths.xml b/slides/xdebug/vld-path-2-paths.xml index bada25b..854c0e8 100644 --- a/slides/xdebug/vld-path-2-paths.xml +++ b/slides/xdebug/vld-path-2-paths.xml @@ -3,16 +3,7 @@ <image align="right" filename="vld-path-2-paths.png"/> <example> <![CDATA[ 1 <?php - 2 function loopy($i) - 3 { - 4 do - 5 { - 6 echo $i, ' '; - 7 - 8 } while( $i-- ); - 9 echo "\n"; - 10 } - 11 +… 12 function ifthenelse( $a, $b ) 13 { 14 if ($a) {