[pypy-svn] r52188 - in pypy/extradoc/talk/sfi2008: . demo

fijal at codespeak.net fijal at codespeak.net
Wed Mar 5 12:52:08 CET 2008


Author: fijal
Date: Wed Mar  5 12:52:06 2008
New Revision: 52188

Added:
   pypy/extradoc/talk/sfi2008/demo/infinite_rec_1.py   (contents, props changed)
   pypy/extradoc/talk/sfi2008/demo/infinite_rec_2.py   (contents, props changed)
   pypy/extradoc/talk/sfi2008/demo/infinite_rec_4.py   (contents, props changed)
   pypy/extradoc/talk/sfi2008/demo/infinite_rec_5.py   (contents, props changed)
Modified:
   pypy/extradoc/talk/sfi2008/talk.txt
Log:
* clarify
* add infinite_rec demos


Added: pypy/extradoc/talk/sfi2008/demo/infinite_rec_1.py
==============================================================================
--- (empty file)
+++ pypy/extradoc/talk/sfi2008/demo/infinite_rec_1.py	Wed Mar  5 12:52:06 2008
@@ -0,0 +1,11 @@
+
+# http://python.org/sf/1202533
+
+import new, operator
+
+class A:
+    pass
+A.__mul__ = new.instancemethod(operator.mul, None, A)
+
+if __name__ == '__main__':
+    A()*2   # segfault: infinite recursion in C

Added: pypy/extradoc/talk/sfi2008/demo/infinite_rec_2.py
==============================================================================
--- (empty file)
+++ pypy/extradoc/talk/sfi2008/demo/infinite_rec_2.py	Wed Mar  5 12:52:06 2008
@@ -0,0 +1,10 @@
+
+# http://python.org/sf/1202533
+
+class A(str):
+    __get__ = getattr
+
+if __name__ == '__main__':
+    a = A('a')
+    A.a = a
+    a.a   # segfault: infinite recursion in C

Added: pypy/extradoc/talk/sfi2008/demo/infinite_rec_4.py
==============================================================================
--- (empty file)
+++ pypy/extradoc/talk/sfi2008/demo/infinite_rec_4.py	Wed Mar  5 12:52:06 2008
@@ -0,0 +1,7 @@
+
+# http://python.org/sf/1202533
+
+if __name__ == '__main__':
+    lst = [apply]
+    lst.append(lst)
+    apply(*lst)      # segfault: infinite recursion in C

Added: pypy/extradoc/talk/sfi2008/demo/infinite_rec_5.py
==============================================================================
--- (empty file)
+++ pypy/extradoc/talk/sfi2008/demo/infinite_rec_5.py	Wed Mar  5 12:52:06 2008
@@ -0,0 +1,10 @@
+
+# http://python.org/sf/1267884
+
+import types
+
+class C:
+    __str__ = types.InstanceType.__str__
+
+if __name__ == '__main__':
+    str(C())   # segfault: infinite recursion in C

Modified: pypy/extradoc/talk/sfi2008/talk.txt
==============================================================================
--- pypy/extradoc/talk/sfi2008/talk.txt	(original)
+++ pypy/extradoc/talk/sfi2008/talk.txt	Wed Mar  5 12:52:06 2008
@@ -27,7 +27,7 @@
 
 * Use a high-level language
 
-* Use a statically analyzable language
+* Use a statically analyzable implementation language
 
 * Have a flexible compiler toolchain to do part of the job for you
 
@@ -82,8 +82,6 @@
 * CPython includes some stack checks in the source, but they don't catch every
   case
 
-XXX segfault example
-
 * We include it automatically so all cases are guaranteed to be covered
 
 Another example of static analysis of interpreter source



More information about the Pypy-commit mailing list