[pypy-svn] r42044 - pypy/extradoc/talk/rupy2007

fijal at codespeak.net fijal at codespeak.net
Sat Apr 14 12:48:06 CEST 2007


Author: fijal
Date: Sat Apr 14 12:48:06 2007
New Revision: 42044

Added:
   pypy/extradoc/talk/rupy2007/revised_talk.txt
Log:
Add a revised version of talk for not-that-python-fluent people


Added: pypy/extradoc/talk/rupy2007/revised_talk.txt
==============================================================================
--- (empty file)
+++ pypy/extradoc/talk/rupy2007/revised_talk.txt	Sat Apr 14 12:48:06 2007
@@ -0,0 +1,192 @@
+============================
+PyPy
+============================
+
+:Authors: Maciej Fijalkowski
+:Location: Adam Mickiewicz University
+:Date: 15.IV.2007
+
+Next 45 minutes
+=======================================
+
+* Quick intro and motivation, including
+  CPython problems
+
+* Introduction to features unique to PyPy,
+  including the JIT
+
+* A little talk about our plans
+
+What is PyPy?
+==============
+
+* PyPy is:
+* A Python interpreter
+* A very
+  flexible compiler framework (with some
+  features that are especially useful for
+  implementing interpreters)
+* An open source project (MIT license)
+* A STREP (''Specific Targeted REsearch
+  Project''), partially funded by the EU
+* A lot of fun!
+
+About the project
+====================
+
+* Distributed -- the 12 paid developers live in
+  6 countries, contributers from many more
+* Sprint driven development -- focussed week
+  long coding sessions, every ~6 weeks during
+  funding period
+* Extreme Programming practices: pair
+  programming, test-driven development
+
+Test tools
+===========
+
+* We use py.test, developed together with PyPy
+* distributed testing
+* easy to extend (testing docs, js snippets etc.)
+
+Compiler toolchain
+===================
+
+* Translates so called RPython
+  (restricted Python) to lower level language
+* Targets C, LLVM, CLI, JVM, JavaScript...
+* Can translate any program, but
+  is aimed at implementing interpreters
+
+RPython
+=========
+
+* Starts from living python objects, so
+  all dynamic tricks are allowed for initialization
+* Full implicit type inference
+* Like Java, but has at least
+  function pointers
+
+Motivation
+===========
+
+* PyPy grew out of a desire to modify/extend
+  the implementation of Python, for example to:
+* increase performance (psyco-style JIT
+  compilation, better garbage collectors)
+* add expressiveness (stackless-style
+  coroutines, logic programming, distribution)
+* ease porting (to new platforms like the
+  JVM or CLI or to low memory situations)
+
+Lofty goals, but first...
+===========================
+* CPython is a fine implementation of Python
+  but:
+* it's written in C, which makes porting to,
+  for example, the CLI hard
+* while psyco and stackless exist, they are
+  very hard to maintain as Python evolves
+* some implementation decisions are very
+  hard to change (e.g. refcounting)
+
+Things that make PyPy unique
+===============================
+
+* The Just-In-Time compiler (and the way it
+  has been made)
+* Transparent Proxies
+* Runtime modifiable Grammar
+* Thunk object space
+* JavaScript backend
+* Logic programming
+* whatever you imagine ...
+
+Just-In-Time compiler generator
+=================================
+
+* generates just in time compiler given
+  the interpreter source + few hints
+* applicable to any possible interpreter
+  (written in RPython)
+
+XXX (demo)
+
+Multiple object implementations
+================================
+
+* Every python-level object can have multiple
+  implementations
+* Examples are: String-key specialized dicts,
+  ropes, tree-based dicts
+
+XXX (rope nasty example)
+
+Transparent proxies
+====================
+
+* Built on top of multiple object implementations
+
+* Provides new implementation for each object
+
+* can access everything in transparent manner,
+  including such things like interpreter frames
+
+XXX www demo
+
+Distribution
+================
+
+* Built on top of transparent proxies
+* Can hide network layer
+* Copies only small chunks of data,
+  avoiding too much traffic
+* Still very experimental!
+
+XXX not sure about demo
+
+JavaScript backend
+===================
+
+* translates RPython to JavaScript
+
+* has built-in AJAX functionality,
+  which maps method calls to
+  JSON calls
+
+* can be tested on top of CPython
+  (common case in PyPy)
+
+XXX play1
+XXX demo
+
+Interpreter status
+==========================
+
+* We still use CPython :)
+
+* for some specific use cases,
+  we use PyPy when CPython is
+  incapable
+
+* It's very friendly platform
+  for experiments
+
+* Threads and extension modules
+  are not working
+
+Translation toolchain status
+=============================
+
+* Usefull
+* There is working python interpreter
+* prolog interpreter
+* JavaScript interpreter coming soon
+* Ruby? Perl?? (with JIT almost for free)
+
+What future holds
+====================
+
+* More JIT! (faster than C)
+* Extension modules
+* Holiday! (funding period ended in March)



More information about the Pypy-commit mailing list