[pypy-commit] extradoc extradoc: Draft

arigo noreply at buildbot.pypy.org
Wed Oct 15 19:06:21 CEST 2014


Author: Armin Rigo <arigo at tunes.org>
Branch: extradoc
Changeset: r5432:4e83de5ed358
Date: 2014-10-15 19:05 +0200
http://bitbucket.org/pypy/extradoc/changeset/4e83de5ed358/

Log:	Draft

diff --git a/talk/pyconpl-2014/Makefile b/talk/pyconpl-2014/Makefile
new file mode 100644
--- /dev/null
+++ b/talk/pyconpl-2014/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 --output-encoding=utf8 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/pyconpl-2014/author.latex b/talk/pyconpl-2014/author.latex
new file mode 100644
--- /dev/null
+++ b/talk/pyconpl-2014/author.latex
@@ -0,0 +1,9 @@
+\definecolor{rrblitbackground}{rgb}{0.0, 0.0, 0.0}
+
+\title[PyPy]{PyPy}
+\author[arigo, fijal]
+{Armin Rigo, Maciej Fijałkovski\\
+\includegraphics[width=80px]{../img/py-web-new.png}}
+
+\institute{PyCon PL}
+\date{October 2014}
diff --git a/talk/pyconpl-2014/beamerdefs.txt b/talk/pyconpl-2014/beamerdefs.txt
new file mode 100644
--- /dev/null
+++ b/talk/pyconpl-2014/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/pyconpl-2014/speed.png b/talk/pyconpl-2014/speed.png
new file mode 100644
index 0000000000000000000000000000000000000000..33fe20ac9d81ddbd3ced48f52f9717693dc15518
GIT binary patch

[cut]

diff --git a/talk/pyconpl-2014/stylesheet.latex b/talk/pyconpl-2014/stylesheet.latex
new file mode 100644
--- /dev/null
+++ b/talk/pyconpl-2014/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/pyconpl-2014/talk.rst b/talk/pyconpl-2014/talk.rst
new file mode 100644
--- /dev/null
+++ b/talk/pyconpl-2014/talk.rst
@@ -0,0 +1,250 @@
+.. include:: beamerdefs.txt
+
+================================
+PyPy
+================================
+
+Who We Are
+----------
+
+* Maciej Fijałkovski
+
+* Armin Rigo
+
+* PyPy developers for a long time
+
+* baroquesoftware
+
+What is PyPy?
+--------------
+
+* Python interpreter, alternative to CPython
+
+* Supports Python 2.7 and (beta) Python 3.2/3.3
+
+* Compatible and generally much faster (JIT)
+
+Benchmarks
+--------------------------------
+
+.. image:: speed.png
+   :scale: 44%
+
+Demo
+--------------------------------
+
+
+Recent developments
+--------------------------------
+
+Between PyPy 2.0 (May 2013) and PyPy 2.4 (now):
+
+.
+
+* All kinds of speed improvements for all kinds of programs
+
+  - JIT improvements, incremental GC (garbage collector),
+    specific Python corners improved, ...
+
+* Support for ARM in addition to x86
+
+  - Thanks to the Raspberry-Pi foundation
+
+* Python 3 support 
+
+  - py3k, in addition to Python 2.7
+
+* Numpy more complete (but still not done)
+
+  - also, no scipy
+
+Recent developments (2)
+--------------------------------
+
+* CFFI
+
+  - C Foreign Function Interface
+
+* STM
+
+  - Software Transactional Memory
+
+CFFI
+-----
+
+- Python <-> C interfacing done right
+
+  * existing shared libraries
+
+  * custom C code
+
+- Inspired by LuaJIT's FFI
+
+- Alternative to the CPython Extension API, ctypes, Cython, etc.
+
+- Fast-ish on CPython, super-fast on PyPy, Jython support in the future
+
+STM
+----------------------
+
+- See later
+
+Status
+-----------------------------
+
+- Python code "just works"
+
+  * generally much faster than with CPython
+
+- C code: improving support
+
+  * cpyext: tries to load CPython C extension modules, slowly
+
+  * CFFI: the future
+
+  * cppyy for C++
+
+  * A very small native PyPy C API for embedding
+
+- Lots of CFFI modules around:
+
+  * pygame_cffi, psycopg2cffi, lxml...
+
+Fundraising Campaign
+---------------------
+
+- py3k: 52'000 $ of 105'000 $ (50%)
+
+- numpy: 48'000 $ of 60'000 $ (80%)
+
+- STM, 1st call: 25'000 $
+
+- STM, 2nd call: 16'000 $ of 80'000 $ (20%)
+
+- Thanks to all donors!
+
+Commercial support
+------------------
+
+- We offer commercial support for PyPy
+
+- Consultancy and training
+
+- Performance issues for open- or closed-source programs, porting,
+  improving support in parts of the Python or non-Python interpreters,
+  etc.
+
+- http://baroquesoftware.com
+
+PyPy and RPython
+---------------------------
+
+* PyPy is an interpreter/JIT-compiled for Python
+
+* PyPy is written in RPython
+
+* RPython is a language for writing interpreters:
+  it provides GC-for-free, JIT-for-free, etc.
+
+* Ideal for writing VMs for dynamic languages
+
+More PyPy-Powered Languages
+----------------------------
+
+- Topaz: implementing Ruby
+
+  * most of the language implemented
+
+  * "definitely faster than MRI"
+
+  * https://github.com/topazproject/topaz
+
+- HippyVM: implementing PHP
+
+  * ~7x faster than standard PHP
+
+  * comparable speed as HHVM
+
+  * http://hippyvm.com/
+
+- And more
+
+Work in Progress: STM
+---------------------
+
+- Software Transactional Memory
+
+- Solving the GIL problem
+
+  * GIL = Global Interpreter Lock
+
+- Without bringing the threads and locks mess
+
+- Preliminary versions of pypy-jit-stm available
+
+STM (2)
+-------
+
+- STM = Free Threading done right
+
+  * with some overhead: 30-40% so far
+
+- Done at the level of RPython
+
+- The interpreter author doesn't have to worry
+  about adding tons of locks
+  
+  - that's us
+
+- The user *can* if he likes, but doesn't have to either
+
+  - that's you ``:-)``
+
+STM (3)
+-------
+
+- Works "like a GIL" but runs optimistically in parallel
+
+- A few bytecodes from thread A run on core 1
+
+- A few bytecodes from thread B run on core 2
+
+- If there is no conflict, we're happy
+
+- If there is a conflict, one of the two aborts and retries
+
+- Same effect as transactions in databases
+
+STM (4)
+-------
+
+- Threading made simpler for the user
+
+- It is generally efficient with *very coarse locks*
+
+  * no fine-grained locking needed
+
+- Easy to convert a number of existing single-threaded programs
+
+  * start multiple threads, run blocks of code in each
+
+  * use a single lock around everything
+
+  * normally, you win absolutely nothing
+
+  * but STM can (try to) *execute the blocks in parallel* anyway
+
+STM (Demo)
+----------
+
+
+Contacts, Q&A
+--------------
+
+- http://pypy.org
+
+- http://morepypy.blogspot.com/
+
+- ``#pypy`` at freenode.net
+
+- Any question?


More information about the pypy-commit mailing list