[Python-checkins] cpython (merge 3.3 -> 3.3): Merge.

charles-francois.natali python-checkins at python.org
Mon Dec 16 13:50:48 CET 2013


http://hg.python.org/cpython/rev/6f19eda86277
changeset:   87981:6f19eda86277
branch:      3.3
parent:      87979:06122a4ecd37
parent:      87973:6afad4f29249
user:        Charles-François Natali <cf.natali at gmail.com>
date:        Mon Dec 16 12:02:42 2013 +0100
summary:
  Merge.

files:
  Lib/compileall.py                     |   3 +-
  Lib/test/test_compileall.py           |  23 +++++++++++++++
  Misc/NEWS                             |   3 +
  Modules/_decimal/libmpdec/mpdecimal.c |  11 +++---
  4 files changed, 34 insertions(+), 6 deletions(-)


diff --git a/Lib/compileall.py b/Lib/compileall.py
--- a/Lib/compileall.py
+++ b/Lib/compileall.py
@@ -228,7 +228,8 @@
                         success = False
             return success
         else:
-            return compile_path(legacy=args.legacy)
+            return compile_path(legacy=args.legacy, force=args.force,
+                                quiet=args.quiet)
     except KeyboardInterrupt:
         print("\n[interrupted]")
         return False
diff --git a/Lib/test/test_compileall.py b/Lib/test/test_compileall.py
--- a/Lib/test/test_compileall.py
+++ b/Lib/test/test_compileall.py
@@ -177,6 +177,29 @@
         self.assertNotCompiled(self.initfn)
         self.assertNotCompiled(self.barfn)
 
+    def test_no_args_respects_force_flag(self):
+        bazfn = script_helper.make_script(self.directory, 'baz', '')
+        self.assertRunOK(PYTHONPATH=self.directory)
+        pycpath = imp.cache_from_source(bazfn)
+        # Set atime/mtime backward to avoid file timestamp resolution issues
+        os.utime(pycpath, (time.time()-60,)*2)
+        mtime = os.stat(pycpath).st_mtime
+        # Without force, no recompilation
+        self.assertRunOK(PYTHONPATH=self.directory)
+        mtime2 = os.stat(pycpath).st_mtime
+        self.assertEqual(mtime, mtime2)
+        # Now force it.
+        self.assertRunOK('-f', PYTHONPATH=self.directory)
+        mtime2 = os.stat(pycpath).st_mtime
+        self.assertNotEqual(mtime, mtime2)
+
+    def test_no_args_respects_quiet_flag(self):
+        script_helper.make_script(self.directory, 'baz', '')
+        noisy = self.assertRunOK(PYTHONPATH=self.directory)
+        self.assertIn(b'Listing ', noisy)
+        quiet = self.assertRunOK('-q', PYTHONPATH=self.directory)
+        self.assertNotIn(b'Listing ', quiet)
+
     # Ensure that the default behavior of compileall's CLI is to create
     # PEP 3147 pyc/pyo files.
     for name, ext, switch in [
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -29,6 +29,9 @@
 Library
 -------
 
+- Issue #19532: python -m compileall with no filename/directory arguments now
+  respects the -f and -q flags instead of ignoring them.
+
 - Issue #19623: Fixed writing to unseekable files in the aifc module.
 
 - Issue #17919: select.poll.register() again works with poll.POLLNVAL on AIX.
diff --git a/Modules/_decimal/libmpdec/mpdecimal.c b/Modules/_decimal/libmpdec/mpdecimal.c
--- a/Modules/_decimal/libmpdec/mpdecimal.c
+++ b/Modules/_decimal/libmpdec/mpdecimal.c
@@ -4421,21 +4421,22 @@
          const mpd_context_t *ctx, uint32_t *status)
 {
     uint32_t workstatus = 0;
-    const mpd_t *cc = c;
+    mpd_t *cc = NULL;
 
     if (result == c) {
         if ((cc = mpd_qncopy(c)) == NULL) {
             mpd_seterror(result, MPD_Malloc_error, status);
             return;
         }
+        c = cc;
     }
 
     _mpd_qmul(result, a, b, ctx, &workstatus);
     if (!(workstatus&MPD_Invalid_operation)) {
-        mpd_qadd(result, result, cc, ctx, &workstatus);
-    }
-
-    if (cc != c) mpd_del((mpd_t *)cc);
+        mpd_qadd(result, result, c, ctx, &workstatus);
+    }
+
+    if (cc) mpd_del(cc);
     *status |= workstatus;
 }
 

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list