[pypy-commit] extradoc extradoc: Add my fosdem2015 talk (WIP)

rguillebert noreply at buildbot.pypy.org
Thu Jan 29 22:05:11 CET 2015


Author: Romain Guillebert <romain.py at gmail.com>
Branch: extradoc
Changeset: r5492:48a04232f5e5
Date: 2015-01-29 22:04 +0100
http://bitbucket.org/pypy/extradoc/changeset/48a04232f5e5/

Log:	Add my fosdem2015 talk (WIP)

diff --git a/talk/fosdem2015/Makefile b/talk/fosdem2015/Makefile
new file mode 100644
--- /dev/null
+++ b/talk/fosdem2015/Makefile
@@ -0,0 +1,18 @@
+# you can find rst2beamer.py here:
+# https://bitbucket.org/antocuni/env/raw/default/bin/rst2beamer.py
+
+# WARNING: to work, it needs this patch for docutils
+# https://sourceforge.net/tracker/?func=detail&atid=422032&aid=1459707&group_id=38414
+
+talk.pdf: talk.rst author.latex stylesheet.latex
+	python `which rst2beamer.py` --stylesheet=stylesheet.latex --documentoptions=14pt talk.rst talk.latex || exit
+	#/home/antocuni/.virtualenvs/rst2beamer/bin/python `which rst2beamer.py` --stylesheet=stylesheet.latex --documentoptions=14pt talk.rst talk.latex || exit
+	sed 's/\\date{}/\\input{author.latex}/' -i talk.latex || exit
+	#sed 's/\\maketitle/\\input{title.latex}/' -i talk.latex || exit
+	pdflatex talk.latex  || exit
+
+view: talk.pdf
+	evince talk.pdf &
+
+xpdf: talk.pdf
+	xpdf talk.pdf &
diff --git a/talk/fosdem2015/author.latex b/talk/fosdem2015/author.latex
new file mode 100644
--- /dev/null
+++ b/talk/fosdem2015/author.latex
@@ -0,0 +1,9 @@
+\definecolor{rrblitbackground}{rgb}{0.0, 0.0, 0.0}
+
+\title[PyPy and the future of the Python ecosystem]{PyPy and the future of the Python ecosystem}
+\author[rguillebert]
+{Romain Guillebert\\
+\includegraphics[width=80px]{../img/py-web-new.png}}
+
+\institute{Fosdem 2015}
+\date{January 31st, 2015}
diff --git a/talk/fosdem2015/beamerdefs.txt b/talk/fosdem2015/beamerdefs.txt
new file mode 100644
--- /dev/null
+++ b/talk/fosdem2015/beamerdefs.txt
@@ -0,0 +1,108 @@
+.. 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}
diff --git a/talk/fosdem2015/stylesheet.latex b/talk/fosdem2015/stylesheet.latex
new file mode 100644
--- /dev/null
+++ b/talk/fosdem2015/stylesheet.latex
@@ -0,0 +1,9 @@
+\setbeamercovered{transparent}
+\setbeamertemplate{navigation symbols}{}
+
+\definecolor{darkgreen}{rgb}{0, 0.5, 0.0}
+\newcommand{\docutilsrolegreen}[1]{\color{darkgreen}#1\normalcolor}
+\newcommand{\docutilsrolered}[1]{\color{red}#1\normalcolor}
+
+\newcommand{\green}[1]{\color{darkgreen}#1\normalcolor}
+\newcommand{\red}[1]{\color{red}#1\normalcolor}
diff --git a/talk/fosdem2015/talk.pdf b/talk/fosdem2015/talk.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..d82c099a9e525d280f1eb9a6182730411a0a206d
GIT binary patch

[cut]

diff --git a/talk/fosdem2015/talk.rst b/talk/fosdem2015/talk.rst
new file mode 100644
--- /dev/null
+++ b/talk/fosdem2015/talk.rst
@@ -0,0 +1,119 @@
+.. include:: beamerdefs.txt
+
+===========================================
+PyPy and the future of the Python ecosystem
+===========================================
+
+Intro
+-----
+
+* @rguillebert
+
+* PyPy contributor for 4 years
+
+* Library compatibility is one of my main interests
+
+  - Cython backend for PyPy
+
+  - NumPyPy
+
+  - PyMetabiosis
+
+* Hire me
+
+* How can we get better implementations ?
+
+* Without throwing away our language features and libraries
+
+Current situation (1/3)
+-----------------------
+
+* CPython is by far the most popular implementations
+
+    - Poor performance
+
+    - No way to use multiple cores in a single process
+
+* PyPy has a fairly small marketshare
+
+    - Better performance
+
+    - PyPy-STM is a work in progress
+
+* According to PyPI stats, other implementations are virtually unused
+
+Current situation (2/3)
+-----------------------
+
+* Go is pretty fast and is great at concurrency
+
+* Javascript is pretty fast
+
+* PHP is fast...
+
+Current situation (3/3)
+-----------------------
+
+* It's pretty hard to switch between implementations because of C extensions ()
+
+* C extensions are very useful but CPython can't evolve because of them
+
+* PyPy can evolve but has partial support of C extensions
+
+* CPython keeps its users captive with C extensions
+
+|pause|
+
+* More competition between implementations would benefit us
+
+Why can't other implementations implement the C API
+---------------------------------------------------
+
+* Libraries use more than the official API (Cython)
+
+* The official API makes assumptions on how the virtual machine is written
+
+    - For example, the C API assumes that the virtual machine uses naive reference counting as its garbage collector
+
+    - Naive reference counting is known for being inefficient and makes removing the GIL really hard (Python 1.4)
+
+* The C API itself is against performance and concurrency
+
+C APIs in other languages
+-------------------------
+
+Can we implement a similar API ?
+--------------------------------
+
+* Yes !
+
+* Not that many changes to the C API are required
+
+* It's even possible to do it in pure Python with CFFI
+
+* Designing it to make everyone happy is harder than to actually implement it
+
+* Making people port their extensions is hard
+
+* CPython would need to keep both APIs implement, at least for a while
+
+Where does PyPy fit in this ?
+-----------------------------
+
+* The most flexible implementation
+
+* Already fast
+
+* Can already interact with C code easily
+
+* PyPy-STM
+
+What about short term ?
+-----------------------
+
+* PyMetabiosis
+
+Thank you
+---------
+
+Questions ?
diff --git a/talk/scipyindia2014/talk.pdf b/talk/scipyindia2014/talk.pdf
index 4be849fc047dc21919a478732a2521894f5b01fc..5ed74a46ecdbe8247243ec67721e8309bbcc8fcf
GIT binary patch

[cut]

diff --git a/talk/scipyindia2014/talk.rst b/talk/scipyindia2014/talk.rst
--- a/talk/scipyindia2014/talk.rst
+++ b/talk/scipyindia2014/talk.rst
@@ -49,6 +49,16 @@
 
 * Tracing Just-In-Time compiler
 
+* Optimizes loops
+
+* Traces one iteration of a loop
+
+* Produces a linear trace of execution
+
+* Inlines almost everything
+
+* The trace is then optimized and compiled
+
 * Removes overhead
 
 Demo
@@ -166,6 +176,8 @@
 
 * Is used the same way as numba, but different performance characteristics
 
+* Needs a very recent version of PyPy
+
 JitPy
 -----
 
@@ -199,6 +211,15 @@
 
 * No more Global Interpreter Lock
 
+Takeaway
+--------
+
+* Get PyPy at pypy.org (or from your favorite distribution)
+
+* Try it
+
+* Give us feedback (good or bad)
+
 Thank You
 ---------
 


More information about the pypy-commit mailing list