[pypy-svn] r36143 - pypy/extradoc/planning/secprototype

arigo at codespeak.net arigo at codespeak.net
Thu Jan 4 12:18:33 CET 2007


Author: arigo
Date: Thu Jan  4 12:18:30 2007
New Revision: 36143

Modified:
   pypy/extradoc/planning/secprototype/talk.txt
Log:
Tweaks to the look of the talk.


Modified: pypy/extradoc/planning/secprototype/talk.txt
==============================================================================
--- pypy/extradoc/planning/secprototype/talk.txt	(original)
+++ pypy/extradoc/planning/secprototype/talk.txt	Thu Jan  4 12:18:30 2007
@@ -9,19 +9,20 @@
 
 :Authors: Samuele Pedroni, Armin Rigo
 :Date: 5th January 2007
-:Location: IBM, Zuerich
+:Location: IBM, Zürich
 
 Outline
 ==============
 
-Part 1
-------
-PyPy introduction and architecture overview
+*Part 1*
+
+  PyPy introduction and architecture overview
+
+*Part 2*
+
+  Architecture flexibility and hooks relevant
+  to security
 
-Part 2
-------
-Architecture flexibility and hooks relevant
-to security
 
 Part 1 - Architecture overview
 ================================
@@ -44,7 +45,7 @@
 Goals (i)
 ======================
 
-An Architecture for flexibility
+An architecture for flexibility
 
 - some decisions are invasive
   and fixed in CPython (e.g.
@@ -63,11 +64,8 @@
 
 - generate a psyco-like JIT
 
-(right now without a JIT
-we can be 2.3x-6x slower than
-CPython, depending on features
-etc, we can still improve on
-this too)
+currently: without a JIT, 2.3x-6x slower than
+CPython (depends on features); room for improvement
 
 Goals (iii)
 =======================
@@ -76,17 +74,20 @@
 
 - POSIX/C (like CPython)
 - .NET (like IronPython)
+- JVM (like Jython)
 - ...
 
 How
 =====================
 
-- Python interpreter written
+We have:
+
+- a Python interpreter written
   in Python, low-level details
   left out (30000 LOC)
-- a subset static enough
+- a language subset static enough
   to allow analysis (RPython)
-- translated to low-level targets
+- translated to low-level targets,
   filling in the details (C, .NET,
   ...)
 
@@ -128,7 +129,7 @@
 - library of all python types and operations on them 
 - encapsulates all knowledge about app-level objects 
 - is not concerned with control flow or bytecode 
-- e.g. enough control to implement lazy evaluation 
+- e.g. enough control to implement lazy evaluation (more later)
 
 Builtin and Fundamental Modules
 ===============================
@@ -144,8 +145,6 @@
 
 .. image:: arch-translation.png
    :align: center
-   :width: 500
-   :height: 500
 
 Translation Aspects
 ====================
@@ -159,6 +158,11 @@
 Part 2
 ===============
 
+.. empty, just to mark the transition
+
+Part 2
+===============
+
 Architecture flexibility and hooks relevant
 to security:
 
@@ -168,25 +172,31 @@
 Proxy Spaces
 =================
 
-- *Object spaces* implement all semantic operations
+- An object space implements all semantic operations
   of the language
 
 - Interface: one method per operation, e.g. ``add(x, y)``
 
-- It is possible to uniformly control all
-  operations by wrapping the *standard object
-  space* in a proxy space
+- we can uniformly control all
+  operations by wrapping the "standard object
+  space" in a proxy space
 
 Thunk Space
 =================
 
-- Provides lazy evaluation::
+- Provides lazy evaluation:
 
-    x = thunk(f, 42)
-    ...
-    print x+1    # f(42) only called here
+    +--------------------------------------------------+
+    |                                                  |
+    |    ``x = thunk(f, 42)``                          |
+    |                                                  |
+    |    ...                                           |
+    |                                                  |
+    |    ``print x + 1``  *# calls f(42)*              |
+    |                                                  |
+    +--------------------------------------------------+
 
-- The proxy *thunk space* generically implements the policy
+- The proxy **thunk space** generically implements the policy
   of forcing lazy objects before they are operated on
 
 Thunk Space (2)
@@ -205,16 +215,23 @@
 Taint Space
 =================
 
-- Provides tainted objects::
+- Provides tainted objects:
 
-    y = taint(x)
-    ...
-    z = y + 1
-    print untaint(z, expected_type)
+    +--------------------------------------------------+
+    |                                                  |
+    | ``y = taint(x)``                                 |
+    |                                                  |
+    | ...                                              |
+    |                                                  |
+    | ``z = y + 1``                                    |
+    |                                                  |
+    | ``print untaint(z, expected_type)``              |
+    |                                                  |
+    +--------------------------------------------------+
 
-- tainted objects are boxes around regular objects
+- tainted objects: boxes around regular objects
 
-- operations propagate taintedness (z above is tainted too)
+- operations propagate taintedness (``z`` above is tainted too)
 
 Taint Space (2)
 ==================
@@ -262,5 +279,6 @@
   for which we have no special framework support so far; also,
   Python is not suited to compile more than one module at a time)
 
+
 .. |bullet| unicode:: U+02022
-.. footer:: Samuele Pedroni, Armin Rigo, PyPy Team |bullet| IBM Zuerich |bullet| 5th January 2007
+.. footer:: Samuele Pedroni, Armin Rigo, PyPy Team |bullet| IBM Zürich |bullet| 5th January 2007 |bullet| ``http://codespeak.net/pypy``



More information about the Pypy-commit mailing list