Author: Romain Guillebert <romain...@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 --------- _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit