[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