Author: Tyler Wade <[email protected]>
Branch:
Changeset: r64751:bcac3e99fa6f
Date: 2013-04-28 04:55 -0500
http://bitbucket.org/pypy/pypy/changeset/bcac3e99fa6f/
Log: Make changing sys.flag.optimize in pyinteractive.py cleaner
diff --git a/pypy/bin/pyinteractive.py b/pypy/bin/pyinteractive.py
--- a/pypy/bin/pyinteractive.py
+++ b/pypy/bin/pyinteractive.py
@@ -90,19 +90,19 @@
space = option.make_objspace(config)
- if interactiveconfig.optimize:
- flags_w = space.sys.get('flags').getitems_copy()
- #change optimize flag's value
- import pdb; pdb.set_trace()
- flags_w[6] = space.wrap(2)
- w_flags = type(space.sys.get('flags'))(flags_w)
- w_flags.user_setup(space, space.sys.get('flags').w__class__)
- space.sys.w_dict.setitem(space.wrap('flags'), w_flags)
-
space._starttime = starttime
space.setitem(space.sys.w_dict, space.wrap('executable'),
space.wrap(argv[0]))
+ if interactiveconfig.optimize:
+ flags_w = space.sys.get('flags').getitems_copy()
+ #change the optimize flag's value
+ flags_w[6] = space.wrap(2)
+ space.appexec([space.wrap(flags_w)], """(flags):
+ import sys
+ sys.flags = type(sys.flags)(flags)
+ """)
+
# call pypy_find_stdlib: the side-effect is that it sets sys.prefix and
# sys.exec_prefix
executable = argv[0]
diff --git a/pypy/interpreter/astcompiler/test/test_compiler.py
b/pypy/interpreter/astcompiler/test/test_compiler.py
--- a/pypy/interpreter/astcompiler/test/test_compiler.py
+++ b/pypy/interpreter/astcompiler/test/test_compiler.py
@@ -852,9 +852,11 @@
w_saved_flags = space.sys.get('flags')
flags_w = space.sys.get('flags').getitems_copy()
flags_w[6] = space.wrap(1)
- w_flags = type(space.sys.get('flags'))(flags_w)
- w_flags.user_setup(space, w_saved_flags.w__class__)
- space.sys.w_dict.setitem(space.wrap('flags'), w_flags)
+ space.appexec([space.wrap(flags_w)], """(flags):
+ import sys
+ sys.flags = type(sys.flags)(flags)
+ """)
+
try:
self.run(source)
finally:
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit