1. Pypy
  2. Untitled project
  3. extradoc

Commits

Maciej Fijalkowski  committed 3a007c1

my talk

  • Participants
  • Parent commits d5a8d28
  • Branches extradoc

Comments (0)

Files changed (5)

File talk/pyconza2013/php/Makefile

View file
+
+
+view: talk.pdf
+	evince talk.pdf
+
+talk.pdf: talk.tex
+	pdflatex talk.tex
+
+talk.tex: talk.rst
+	rst2beamer --stylesheet=stylesheet.latex --documentoptions=14pt --input-encoding=utf8 --output-encoding=utf8 --overlaybullets=false $< > talk.tex
+
+clean:
+	rm talk1.tex talk.tex talk.pdf

File talk/pyconza2013/php/beamerdefs.txt

View file
+.. colors
+.. ===========================
+
+.. role:: green
+.. role:: red
+
+
+.. general useful commands
+.. ===========================
+
+.. |pause| raw:: latex
+
+   \pause
+
+.. |small| raw:: latex
+
+   {\small
+
+.. |end_small| raw:: latex
+
+   }
+
+.. |scriptsize| raw:: latex
+
+   {\scriptsize
+
+.. |end_scriptsize| raw:: latex
+
+   }
+
+.. |strike<| raw:: latex
+
+   \sout{
+
+.. closed bracket
+.. ===========================
+
+.. |>| raw:: latex
+
+   }
+
+
+.. example block
+.. ===========================
+
+.. |example<| raw:: latex
+
+   \begin{exampleblock}{
+
+
+.. |end_example| raw:: latex
+
+   \end{exampleblock}
+
+
+
+.. alert block
+.. ===========================
+
+.. |alert<| raw:: latex
+
+   \begin{alertblock}{
+
+
+.. |end_alert| raw:: latex
+
+   \end{alertblock}
+
+
+
+.. columns
+.. ===========================
+
+.. |column1| raw:: latex
+
+   \begin{columns}
+      \begin{column}{0.45\textwidth}
+
+.. |column2| raw:: latex
+
+      \end{column}
+      \begin{column}{0.45\textwidth}
+
+
+.. |end_columns| raw:: latex
+
+      \end{column}
+   \end{columns}
+
+
+
+.. |snake| image:: ../../img/py-web-new.png
+           :scale: 15%
+           
+
+
+.. nested blocks
+.. ===========================
+
+.. |nested| raw:: latex
+
+   \begin{columns}
+      \begin{column}{0.85\textwidth}
+
+.. |end_nested| raw:: latex
+
+      \end{column}
+   \end{columns}

File talk/pyconza2013/php/stylesheet.latex

View file
+\usetheme{Warsaw}
+\usecolortheme{whale}
+\setbeamercovered{transparent}
+\definecolor{darkgreen}{rgb}{0, 0.5, 0.0}
+\newcommand{\docutilsrolegreen}[1]{\color{darkgreen}#1\normalcolor}
+\newcommand{\docutilsrolered}[1]{\color{red}#1\normalcolor}
+\addtobeamertemplate{block begin}{}{\setlength{\parskip}{35pt plus 1pt minus 1pt}}
+
+\newcommand{\green}[1]{\color{darkgreen}#1\normalcolor}
+\newcommand{\red}[1]{\color{red}#1\normalcolor}

File talk/pyconza2013/php/talk.pdf

Binary file added.

File talk/pyconza2013/php/talk.rst

View file
+
+.. include:: beamerdefs.txt
+
+.. raw:: latex
+
+   \title{PHP interpreter using PyPy technology}
+   \author[fijal]{Maciej Fijałkowski}
+
+   \institute{PyCon ZA 2013}
+   \date{4th October 2013}
+
+   \maketitle
+
+introduction
+------------
+
+* me - Maciej Fijałkowski, PyPy core developer
+
+* technology - PyPy
+
+* project - PHP interpreter
+
+Wait, what???!!!1
+-----------------
+
+* PHP - by far the most popular language on the web
+
+* PyPy - proven technology for speeding up Python
+
+* examples who can gain: wikipedia, facebook, wordpress....
+
+Current landscape
+-----------------
+
+* Zend - a simple, bytecode-based interpreter
+
+* HipHop - PHP to C++ compiler, facebook project
+
+* HHVM - successor to HipHop, JIT-based, also facebook
+
+Current benchmarks landscape
+----------------------------
+
+* benchmarks are hard
+
+* a set I've seen is mostly numeric or language shootout
+
+* not very representative
+
+* HipHop is 2-4x faster than Zend, HHVM 40% faster than hiphop
+
+* no real-world PHP benchmark suite (a la speed.pypy.org)
+
+PyPy
+----
+
+* fast interpreter for a python language
+
+* but also, a toolchain for constructing interpreters
+
+* comes with a just-in-time compiler
+
+More about PyPy
+---------------
+
+* implementation language of PyPy is RPython
+
+* RPython is a subset of Python
+
+* RPython can be compiled statically to C
+
+|pause|
+
+* ... but also can have just in time compiler generated for
+
+More about RPython
+------------------
+
+* a great language for writing interpreters
+
+|pause|
+
+* a horrible language with tons of tricks
+
+* great results in good enough time
+
+* http://tratt.net/laurie/blog/entries/fast_enough_vms_in_fast_enough_time
+
+Introducing hippy
+-----------------
+
+* PHP interpreter written in RPython
+
+* bug-to-bug compatible with Zend
+
+* interpreter + just in time compiler (for free)
+
+* preliminary study sponsored by facebook
+
+* good preliminary performance results
+
+PHP is hard
+-----------
+
+* crazy standard library
+
+|pause|
+
+* function calls by name
+
+* ``*args`` equivalent, ``apply`` equivalent, etc.
+
+* crazy reference semantics
+
+* copy-on-write and refcounting
+
+\.\.\. but getting it fast is easier
+------------------------------------
+
+* we **do** have a JIT as soon as we write an interpreter
+
+* PyPy has really good technology
+
+Basic construction
+------------------
+
+* interpreter loop
+
+* standard library
+
+|pause|
+
+* typical stuff
+
+Web server integration
+----------------------
+
+* PHP is very request based with throwing out all the data in between
+
+* we want to persist as much as possible
+
+* various optimizations possible
+
+We're hiring
+------------
+
+* want to work on something obscure and challenging?
+
+* with smart people?
+
+* talk to me or Armin
+
+Q&A
+---
+
+* any questions?
+
+* fijall at gmail
+
+* http://baroquesoftware.com