diff options
author | Charles-François Natali <cf.natali@gmail.com> | 2013-12-16 11:02:42 (GMT) |
---|---|---|
committer | Charles-François Natali <cf.natali@gmail.com> | 2013-12-16 11:02:42 (GMT) |
commit | e68a3ce01c4d665b2bf62ecc917d496b4f5040c6 (patch) | |
tree | 0261064cb45955adbaaea0c196e89e40761077a1 | |
parent | 325a10277fd32c17788cdf11e3c4db2d648cbc33 (diff) | |
parent | 8a1d1e647eb133cb1687e183dc0aefa7e2f02fdb (diff) | |
download | cpython-e68a3ce01c4d665b2bf62ecc917d496b4f5040c6.zip cpython-e68a3ce01c4d665b2bf62ecc917d496b4f5040c6.tar.gz cpython-e68a3ce01c4d665b2bf62ecc917d496b4f5040c6.tar.bz2 |
Merge.
-rw-r--r-- | Lib/compileall.py | 3 | ||||
-rw-r--r-- | Lib/test/test_compileall.py | 23 | ||||
-rw-r--r-- | Misc/NEWS | 3 | ||||
-rw-r--r-- | Modules/_decimal/libmpdec/mpdecimal.c | 7 |
4 files changed, 32 insertions, 4 deletions
diff --git a/Lib/compileall.py b/Lib/compileall.py index d3cff6a..693eda9 100644 --- a/Lib/compileall.py +++ b/Lib/compileall.py @@ -228,7 +228,8 @@ def main(): 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 index fddb538..0505c52 100644 --- a/Lib/test/test_compileall.py +++ b/Lib/test/test_compileall.py @@ -177,6 +177,29 @@ class CommandLineTests(unittest.TestCase): 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 [ @@ -29,6 +29,9 @@ Core and Builtins 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 index 05fd04d..21d2222 100644 --- a/Modules/_decimal/libmpdec/mpdecimal.c +++ b/Modules/_decimal/libmpdec/mpdecimal.c @@ -4421,21 +4421,22 @@ mpd_qfma(mpd_t *result, const mpd_t *a, const mpd_t *b, const mpd_t *c, 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); + mpd_qadd(result, result, c, ctx, &workstatus); } - if (cc != c) mpd_del((mpd_t *)cc); + if (cc) mpd_del(cc); *status |= workstatus; } |