~ubuntu-branches/ubuntu/natty/python3.1/natty-security

« back to all changes in this revision

Viewing changes to Misc/NEWS~

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2010-07-06 16:52:42 UTC
  • mfrom: (1.2.1 upstream) (2.1.11 sid)
  • Revision ID: james.westby@ubuntu.com-20100706165242-2xv4i019r3et6c0j
Tags: 3.1.2+20100706-1ubuntu1
* Merge with Debian; remaining changes:
  - Regenerate the control file.
  - Add debian/patches/overwrite-semaphore-check for Lucid buildds.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
+++++++++++
 
2
Python News
 
3
+++++++++++
 
4
 
 
5
(editors: check NEWS.help for information about editing NEWS using ReST.)
 
6
 
 
7
What's New in Python 3.1.1?
 
8
===========================
 
9
 
 
10
*Release date: 2009-08-13*
 
11
 
 
12
Core and Builtins
 
13
-----------------
 
14
 
 
15
- Issue #6846: Fix bug where bytearray.pop() returns negative integers.
 
16
 
 
17
- Issue #6750: A text file opened with io.open() could duplicate its output
 
18
  when writing from multiple threads at the same time.
 
19
 
 
20
- Issue #6707: dir() on an uninitialized module caused a crash.
 
21
 
 
22
- Issue #6540: Fixed crash for bytearray.translate() with invalid parameters.
 
23
 
 
24
- Issue #6573: set.union() stopped processing inputs if an instance of self
 
25
  occurred in the argument chain.
 
26
 
 
27
- Issue #6070: On posix platforms import no longer copies the execute bit
 
28
  from the .py file to the .pyc file if it is set.
 
29
 
 
30
- Issue #6428: Since Python 3.0, the __bool__ method must return a bool
 
31
  object, and not an int.  Fix the corresponding error message, and the
 
32
  documentation.
 
33
 
 
34
- Issue #6347: Include inttypes.h as well as stdint.h in pyport.h.
 
35
  This fixes a build failure on HP-UX: int32_t and uint32_t are
 
36
  defined in inttypes.h instead of stdint.h on that platform.
 
37
 
 
38
- Issue #6373: Fixed a SystemError when encoding with the latin-1 codec and
 
39
  the 'surrogateescape' error handler, a string which contains unpaired
 
40
  surrogates.
 
41
 
 
42
C-API
 
43
-----
 
44
 
 
45
- Issue #6624: yArg_ParseTuple with "s" format when parsing argument with
 
46
  NUL: Bogus TypeError detail string.
 
47
 
 
48
- Issue #6405: Remove duplicate type declarations in descrobject.h.
 
49
 
 
50
- The code flags for old __future__ features are now available again.
 
51
 
 
52
Library
 
53
-------
 
54
 
 
55
- Issue #6888: pdb's alias command was broken when no arguments were given.
 
56
 
 
57
- Issue #6795: int(Decimal('nan')) now raises ValueError instead of
 
58
  returning NaN or raising InvalidContext.  Also, fix infinite recursion
 
59
  in long(Decimal('nan')).
 
60
 
 
61
- Issue #6850: Fix bug in Decimal._parse_format_specifier for formats
 
62
  with no type specifier.
 
63
 
 
64
- Issue #6239: ctypes.c_char_p return value must return bytes.
 
65
 
 
66
- Issue #6838: Use a list to accumulate the value instead of
 
67
  repeatedly concatenating strings in http.client's
 
68
  HTTPResponse._read_chunked providing a significant speed increase
 
69
  when downloading large files servend with a Transfer-Encoding of 'chunked'.
 
70
 
 
71
- Have importlib raise ImportError if None is found in sys.modules for a
 
72
  module.
 
73
 
 
74
- Issue #6794: Fix Decimal.compare_total and Decimal.compare_total_mag: NaN
 
75
  payloads are now ordered by integer value rather than lexicographically.
 
76
 
 
77
- Issue #6106: telnetlib.Telnet.process_rawq doesn't handle default WILL/WONT
 
78
  DO/DONT correctly.
 
79
 
 
80
- Issue #6126: Fixed pdb command-line usage.
 
81
 
 
82
- Issue #6629: Fix a data corruption issue in the new I/O library, which could
 
83
  occur when writing to a BufferedRandom object (e.g. a file opened in "rb+" or
 
84
  "wb+" mode) after having buffered a certain amount of data for reading. This
 
85
  bug was not present in the pure Python implementation.
 
86
 
 
87
- Issue #6622: Fix "local variable 'secret' referenced before
 
88
  assignment" bug in POP3.apop.
 
89
 
 
90
- Issue #6637: defaultdict.copy() did not work when the default factory
 
91
  was left unspecified.  Also, the eval/repr round-trip would fail when
 
92
  the default_factory was None.
 
93
 
 
94
- Issue #2715: Remove remnants of Carbon.File from binhex module.
 
95
 
 
96
- Issue #6595: The Decimal constructor now allows arbitrary Unicode
 
97
decimal digits in input, as recommended by the standard.  Previously
 
98
it was restricted to accepting [0-9].
 
99
 
 
100
- Issues #5155, #5313, #5331: multiprocessing.Process._bootstrap was
 
101
unconditionally calling "os.close(sys.stdin.fileno())" resulting in file
 
102
descriptor errors
 
103
 
 
104
- Issue #1424152: Fix for http.client, urllib.request to support SSL while
 
105
working through proxy. Original patch by Christopher Li, changes made by
 
106
Senthil Kumaran
 
107
 
 
108
- importlib.abc.PyLoader did not inherit from importlib.abc.ResourceLoader like
 
109
the documentation said it did even though the code in PyLoader relied on the
 
110
abstract method required by ResourceLoader.
 
111
 
 
112
- Issue #6431: Make Fraction type return NotImplemented when it doesn't
 
113
know how to handle a comparison without loss of precision.  Also add
 
114
correct handling of infinities and nans for comparisons with float.
 
115
 
 
116
- Issue #6415: Fixed warnings.warn segfault on bad formatted string.
 
117
 
 
118
- Issue #6358: The exit status of a command started with os.popen() was
 
119
reported differently than it did with python 2.x.
 
120
 
 
121
- Issue #6323: The pdb debugger did not exit when running a script with a
 
122
syntax error.
 
123
 
 
124
- Issue #3392: The subprocess communicate() method no longer fails in select()
 
125
  when file descriptors are large; communicate() now uses poll() when possible.
 
126
 
 
127
- Issue #6369: Fix an RLE decompression bug in the binhex module.
 
128
 
 
129
- Issue #6344: Fixed a crash of mmap.read() when passed a negative argument.
 
130
 
 
131
- Issue #4005: Fixed a crash of pydoc when there was a zip file present in
 
132
  sys.path.
 
133
 
 
134
Extension Modules
 
135
-----------------
 
136
 
 
137
- Issue #6848: Fix curses module build failure on OS X 10.6.
 
138
 
 
139
- Fix a segfault in expat.
 
140
 
 
141
- Issue #4509: array.array objects are no longer modified after an operation
 
142
  failing due to the resize restriction in-place when the object has exported
 
143
  buffers.
 
144
 
 
145
Build
 
146
-----
 
147
 
 
148
- Issue #6802: Fix build issues on MacOSX 10.6
 
149
 
 
150
- Issue 4601: 'make install' did not set the appropriate permissions on
 
151
directories.
 
152
 
 
153
- Issue 5390: Add uninstall icon independent of whether file
 
154
extensions are installed.
 
155
 
 
156
Documentation
 
157
-------------
 
158
 
 
159
- Issue #6556: Fixed the Distutils configuration files location explanation
 
160
  for Windows.
 
161
 
 
162
Test
 
163
----
 
164
 
 
165
- Fix a test in importlib.test.source.test_abc_loader that was incorrectly
 
166
testing when a .pyc file lacked an code object bytecode.
 
167
 
 
168
 
 
169
What's New in Python 3.1?
 
170
=========================
 
171
 
 
172
*Release date: 27-June-2009*
 
173
 
 
174
Core and Builtins
 
175
-----------------
 
176
 
 
177
- Issue #6334: Fix bug in range length calculation for ranges with
 
178
large arguments.
 
179
 
 
180
- Issue #6329: Fixed iteration for memoryview objects (it was being blocked
 
181
because it wasn't recognized as a sequence).
 
182
 
 
183
Library
 
184
-------
 
185
 
 
186
- Issue #6314: logging.basicConfig() performs extra checks on the "level"
 
187
argument.
 
188
 
 
189
- Issue #6274: Fixed possible file descriptors leak in subprocess.py
 
190
 
 
191
- Accessing io.StringIO.buffer now raises an AttributeError instead of
 
192
io.UnsupportedOperation.
 
193
 
 
194
- Issue #6271: mmap tried to close invalid file handle (-1) when anonymous.
 
195
(On Unix)
 
196
 
 
197
- Issue #1202: zipfile module would cause a struct.error when attempting to
 
198
store files with a CRC32 > 2**31-1.
 
199
 
 
200
Extension Modules
 
201
-----------------
 
202
 
 
203
- Issue #5590: Remove unused global variable in pyexpat extension.
 
204
 
 
205
 
 
206
What's New in Python 3.1 Release Candidate 2?
 
207
=============================================
 
208
 
 
209
*Release date: 13-June-2009*
 
210
 
 
211
Core and Builtins
 
212
-----------------
 
213
 
 
214
- Fixed SystemError triggered by "range([], 1, -1)".
 
215
 
 
216
- Issue #5924: On Windows, a large PYTHONPATH environment variable
 
217
(more than 255 characters) would be completely ignored.
 
218
 
 
219
- Issue #4547: When debugging a very large function, it was not always
 
220
possible to update the lineno attribute of the current frame.
 
221
 
 
222
- Issue #5330: C functions called with keyword arguments were not reported by
 
223
  the various profiling modules (profile, cProfile). Patch by Hagen Fürstenau.
 
224
 
 
225
Library
 
226
-------
 
227
 
 
228
- Issue #6438: Fixed distutils.cygwinccompiler.get_versions : the regular
 
229
expression string pattern was trying to match against a bytes returned by 
 
230
Popen. Tested under win32 to build the py-postgresql project.
 
231
 
 
232
- Issue #6258: Support AMD64 in bdist_msi.
 
233
 
 
234
- Issue #6195: fixed doctest to no longer try to read 'source' data from
 
235
binary files.
 
236
 
 
237
- Issue #5262: Fixed bug in next rollover time computation in
 
238
TimedRotatingFileHandler.
 
239
 
 
240
- Issue #6217: The C implementation of io.TextIOWrapper didn't include the
 
241
errors property.  Additionally, the errors and encoding properties of StringIO
 
242
are always None now.
 
243
 
 
244
- Issue #6137: The pickle module now translates module names when loading
 
245
or dumping pickles with a 2.x-compatible protocol, in order to make data
 
246
sharing and migration easier. This behaviour can be disabled using the
 
247
new `fix_imports` optional argument.
 
248
 
 
249
- Removed the ipaddr module.
 
250
 
 
251
- Issue #3613: base64.{encode,decode}string are now called
 
252
base64.{encode,decode}bytes which reflects what type they accept and return.
 
253
The old names are still there as deprecated aliases.
 
254
 
 
255
- Issue #5767: Remove sgmlop support from xmlrpc.client.
 
256
 
 
257
- Issue #6150: Fix test_unicode on wide-unicode builds.
 
258
 
 
259
- Issue #6149: Fix initialization of WeakValueDictionary objects from non-empty
 
260
parameters.
 
261
 
 
262
Windows
 
263
-------
 
264
 
 
265
- Issue #6221: Delete test registry key before running the test.
 
266
 
 
267
- Issue #6158: Package Sine-1000Hz-300ms.aif in MSI file.
 
268
 
 
269
C-API
 
270
-----
 
271
 
 
272
- Issue #5735: Python compiled with --with-pydebug should throw an
 
273
  ImportError when trying to import modules compiled without
 
274
  --with-pydebug, and vice-versa.
 
275
 
 
276
 
 
277
Build
 
278
-----
 
279
 
 
280
- Issue #6154: Make sure the intl library is added to LIBS if needed. Also
 
281
  added LIBS to OS X framework builds.
 
282
 
 
283
- Issue #5809: Specifying both --enable-framework and --enable-shared is
 
284
  an error. Configure now explicity tells you about this.
 
285
 
 
286
 
 
287
 
 
288
What's New in Python 3.1 release candidate 1?
 
289
=============================================
 
290
 
 
291
*Release date: 2009-05-30*
 
292
 
 
293
Core and Builtins
 
294
-----------------
 
295
 
 
296
- Issue #6097: Escape UTF-8 surrogates resulting from mbstocs conversion
 
297
  of the command line.
 
298
 
 
299
- Issue #6012: Add cleanup support to O& argument parsing.
 
300
 
 
301
- Issue #6089: Fixed str.format with certain invalid field specifiers
 
302
  that would raise SystemError.
 
303
 
 
304
- Issue #5982: staticmethod and classmethod now expose the wrapped
 
305
  function with __func__.
 
306
 
 
307
- Added support for multiple context managers in the same with-statement.
 
308
  Deprecated contextlib.nested() which is no longer needed.
 
309
 
 
310
- Issue #5829: complex("1e500") no longer raises OverflowError.  This
 
311
  makes it consistent with float("1e500") and interpretation of real
 
312
  and imaginary literals.
 
313
 
 
314
- Issue #3527: Removed Py_WIN_WIDE_FILENAMES which is not used any more.
 
315
 
 
316
- Issue #5994: the marshal module now has docstrings.
 
317
 
 
318
- Issue #5981: Fix three minor inf/nan issues in float.fromhex:
 
319
  (1) inf and nan strings with trailing whitespace were incorrectly
 
320
  rejected;  (2) parsing of strings representing infinities and nans
 
321
  was locale aware; and (3) the interpretation of fromhex('-nan')
 
322
  didn't match that of float('-nan').
 
323
 
 
324
Library
 
325
-------
 
326
 
 
327
- Issue #4859: Implement PEP 383 for pwd, spwd, and grp.
 
328
 
 
329
- smtplib 'login' and 'cram-md5' login are also fixed (see Issue #5259).
 
330
 
 
331
- Issue #6121: pydoc now ignores leading and trailing spaces in the
 
332
  argument to the 'help' function.
 
333
 
 
334
- Issue #6118: urllib.parse.quote_plus ignored the encoding and errors
 
335
  arguments for strings with a space in them.
 
336
 
 
337
- collections.namedtuple() was not working with the following field
 
338
  names:  cls, self, tuple, itemgetter, and property.
 
339
 
 
340
- In unittest, using a skipping decorator on a class is now equivalent to
 
341
  skipping every test on the class.  The ClassTestSuite class has been removed.
 
342
 
 
343
- Issue #6050: Don't fail extracting a directory from a zipfile if
 
344
  the directory already exists.
 
345
 
 
346
- Issue #1309352: fcntl now converts its third arguments to a C `long` rather
 
347
  than an int, which makes some operations possible under 64-bit Linux (e.g.
 
348
  DN_MULTISHOT with F_NOTIFY).
 
349
 
 
350
- Issue #5761: Add the name of the underlying file to the repr() of various
 
351
  IO objects.
 
352
 
 
353
- Issue #5259: smtplib plain auth login no longer gives a traceback.  Fix
 
354
  by Musashi Tamura, tests by Marcin Bachry.
 
355
 
 
356
- Issue #1983: Fix functions taking or returning a process identifier to use
 
357
  the dedicated C type ``pid_t`` instead of a C ``int``. Some platforms have
 
358
  a process identifier type wider than the standard C integer type.
 
359
 
 
360
- Issue #4066: smtplib.SMTP_SSL._get_socket now correctly returns the socket.
 
361
  Patch by Farhan Ahmad, test by Marcin Bachry.
 
362
 
 
363
- Issue #2116: Weak references and weak dictionaries now support copy()ing and
 
364
  deepcopy()ing.
 
365
 
 
366
- Issue #1655: Make imaplib IPv6-capable. Patch by Derek Morr.
 
367
 
 
368
- Issue #5918: Fix a crash in the parser module.
 
369
 
 
370
- Issue #1664: Make nntplib IPv6-capable. Patch by Derek Morr.
 
371
 
 
372
- Issue #5006: Better handling of unicode byte-order marks (BOM) in the io
 
373
  library. This means, for example, that opening an UTF-16 text file in
 
374
  append mode doesn't add a BOM at the end of the file if the file isn't
 
375
  empty.
 
376
 
 
377
- Issue #4050: inspect.findsource/getsource now raise an IOError if the 'source'
 
378
  file is a binary.  Patch by Brodie Rao, tests by Daniel Diniz.  This fix
 
379
  corrects a pydoc regression.
 
380
 
 
381
- Issue 5955: aifc's close method did not close the file it wrapped,
 
382
  now it does.  This also means getfp method now returns the real fp.
 
383
 
 
384
Installation
 
385
------------
 
386
 
 
387
- Issue #6047: fullinstall has been removed because Python 3's executable will
 
388
  now be known as python3.
 
389
 
 
390
- Lib/smtpd.py is no longer installed as a script.
 
391
 
 
392
Extension Modules
 
393
-----------------
 
394
 
 
395
- Issue #3061: Use wcsftime for time.strftime where available.
 
396
 
 
397
- Issue #4873: Fix resource leaks in error cases of pwd and grp.
 
398
 
 
399
- Issue #6093: Fix off-by-one error in locale.strxfrm.
 
400
 
 
401
- The _functools and _locale modules are now built into the libpython shared
 
402
  library instead of as extension modules.
 
403
 
 
404
Build
 
405
-----
 
406
 
 
407
- Issue #3585: Add pkg-config support. It creates a python-2.7.pc file
 
408
  and a python3.pc symlink in the $(LIBDIR)/pkgconfig directory. Patch by
 
409
  Clinton Roy.
 
410
 
 
411
Tests
 
412
-----
 
413
 
 
414
- Issue 5442: Tests for importlib were not properly skipping case-sensitivity
 
415
  tests on darwin even when the OS was installed on a case-sensitive
 
416
  filesystem. Also fixed tests that should not be run when
 
417
  sys.dont_write_bytecode is true.
 
418
 
 
419
 
 
420
What's New in Python 3.1 beta 1?
 
421
================================
 
422
 
 
423
*Release date: 2009-05-06*
 
424
 
 
425
Core and Builtins
 
426
-----------------
 
427
 
 
428
- Issue #5914: Add new C API function PyOS_string_to_double, and
 
429
  deprecate PyOS_ascii_strtod and PyOS_ascii_atof.
 
430
 
 
431
- Issue #3382: float.__format__, complex.__format__, and %-formatting
 
432
  no longer map 'F' to 'f'. Because of issue #5859 (below), this only
 
433
  affects nan -> NAN and inf -> INF.
 
434
 
 
435
- Issue #5799: ntpath (ie, os.path on Windows) fully supports UNC pathnames
 
436
  in all operations, including splitdrive, split, etc.  splitunc() now issues
 
437
  a PendingDeprecation warning.
 
438
 
 
439
- Issue #5920: For float.__format__, change the behavior with the
 
440
  empty presentation type (that is, not one of 'e', 'f', 'g', or 'n')
 
441
  to be like 'g' but with at least one decimal point and with a
 
442
  default precision of 12. Previously, the behavior the same but with
 
443
  a default precision of 6.  This more closely matches str(), and
 
444
  reduces surprises when adding alignment flags to the empty
 
445
  presentation type. This also affects the new complex.__format__ in
 
446
  the same way.
 
447
 
 
448
- Implement PEP 383, Non-decodable Bytes in System Character Interfaces.
 
449
 
 
450
- Issue #5890: in subclasses of 'property' the __doc__ attribute was
 
451
  shadowed by classtype's, even if it was None.  property now
 
452
  inserts the __doc__ into the subclass instance __dict__.
 
453
 
 
454
- Issue #4426: The UTF-7 decoder was too strict and didn't accept some legal
 
455
  sequences. Patch by Nick Barnes and Victor Stinner.
 
456
 
 
457
- Issue #3672: Reject surrogates in utf-8 codec; add surrogatepass error handler.
 
458
 
 
459
- Issue #5883: In the io module, the BufferedIOBase and TextIOBase ABCs have
 
460
  received a new method, detach().  detach() disconnects the underlying stream
 
461
  from the buffer or text IO and returns it.
 
462
 
 
463
- Issue #5859: Remove switch from '%f' to '%g'-style formatting for
 
464
  floats with absolute value over 1e50.  Also remove length
 
465
  restrictions for float formatting: '%.67f' % 12.34 and '%.120e' %
 
466
  12.34 no longer raise an exception.
 
467
 
 
468
- Issue #1588: Add complex.__format__. For example,
 
469
  format(complex(1, 2./3), '.5') now produces a sensible result.
 
470
 
 
471
- Issue #5864: Fix empty format code formatting for floats so that it
 
472
  never gives more than the requested number of significant digits.
 
473
 
 
474
- Issue #5793: Rationalize isdigit / isalpha / tolower, etc. Includes
 
475
  new Py_ISDIGIT / Py_ISALPHA / Py_TOLOWER, etc. in pctypes.h.
 
476
 
 
477
- Issue #5835: Deprecate PyOS_ascii_formatd.
 
478
 
 
479
- Issue #4971: Fix titlecase for characters that are their own
 
480
  titlecase, but not their own uppercase.
 
481
 
 
482
- Issue #5283: Setting __class__ in __del__ caused a segfault.
 
483
 
 
484
- Issue #5816: complex(repr(z)) now recovers z exactly, even when
 
485
  z involves nans, infs or negative zeros.
 
486
 
 
487
- Issue #3166: Make int -> float conversions correctly rounded.
 
488
 
 
489
- Issue #1869 (and many duplicates): make round(x, n) correctly
 
490
  rounded for a float x, by using the decimal <-> binary conversions
 
491
  from Python/dtoa.c.  As a consequence, (e.g.) round(x, 2) now
 
492
  consistently agrees with format(x, '.2f').
 
493
 
 
494
- Issue #5787: object.__getattribute__(some_type, "__bases__") segfaulted on
 
495
  some builtin types.
 
496
 
 
497
- Issue #5772: format(1e100, '<') produces '1e+100', not '1.0e+100'.
 
498
 
 
499
- Issue #5515: str.format() type 'n' combined with commas and leading
 
500
  zeros no longer gives odd results with ints and floats.
 
501
 
 
502
- Implement PEP 378, Format Specifier for Thousands Separator, for
 
503
  floats.
 
504
 
 
505
- The str function switches to exponential notation at
 
506
  1e11, not 1e12.  This avoids printing 13 significant digits in
 
507
  situations where only 12 of them are correct.  Example problem
 
508
  value: str(1e11 + 0.5).  (This minor issue has existed in 2.x for a
 
509
  long time.)
 
510
 
 
511
- Issue #1580: On most platforms, use a 'short' float repr: for a
 
512
  finite float x, repr(x) now outputs a string based on the shortest
 
513
  sequence of decimal digits that rounds to x.  Previous behaviour was
 
514
  to output 17 significant digits and then strip trailing zeros.
 
515
  Another minor difference is that the new repr switches to
 
516
  exponential notation at 1e16 instead of the previous 1e17; this
 
517
  avoids misleading output in some cases.
 
518
 
 
519
  There's a new sys attribute sys.float_repr_style, which takes
 
520
  the value 'short' to indicate that we're using short float repr,
 
521
  and 'legacy' if the short float repr isn't available for one
 
522
  reason or another.
 
523
 
 
524
  The float repr change involves incorporating David Gay's 'perfect
 
525
  rounding' code into the Python core (it's in Python/dtoa.c).  As a
 
526
  secondary consequence, all string-to-float and float-to-string
 
527
  conversions (including all float formatting operations) will be
 
528
  correctly rounded on these platforms.
 
529
 
 
530
  See issue 1580 discussions for details of platforms for which
 
531
  this change does not apply.
 
532
 
 
533
- Issue #5759: float() didn't call __float__ on str subclasses.
 
534
 
 
535
- The string.maketrans() function is deprecated; there is a new static method
 
536
  maketrans() on the bytes and bytearray classes.  This removes confusion about
 
537
  the types string.maketrans() is supposed to work with, and mirrors the
 
538
  methods available on the str class.
 
539
 
 
540
- Issue #2170: refactored xml.dom.minidom.normalize, increasing both
 
541
  its clarity and its speed.
 
542
 
 
543
- Issue #1113244: Py_XINCREF, Py_DECREF, Py_XDECREF: Add `do { ... } while (0)'
 
544
  to avoid compiler warnings.
 
545
 
 
546
- Issue #3739: The unicode-internal encoder now reports the number of characters
 
547
  consumed like any other encoder (instead of the number of bytes).
 
548
 
 
549
Installation
 
550
------------
 
551
 
 
552
- Issue #5756: Install idle and pydoc with a 3 suffix.
 
553
 
 
554
Library
 
555
-------
 
556
 
 
557
- Issue #5311: bdist_msi can now build packages that do not depend on a
 
558
  specific Python version.
 
559
 
 
560
- Issue #5150: IDLE's format menu now has an option to strip trailing
 
561
  whitespace.
 
562
 
 
563
- Issue #5940: distutils.command.build_clib.check_library_list was not doing
 
564
  the right type checkings anymore.
 
565
 
 
566
- Issue #4875: On win32, ctypes.util.find_library does no longer
 
567
  return directories.
 
568
 
 
569
- Issue #5142: Add the ability to skip modules while stepping to pdb.
 
570
 
 
571
- Issue #1309567: Fix linecache behavior of stripping subdirectories when
 
572
  looking for files given by a relative filename.
 
573
 
 
574
- Issue #5923: Update the ``turtle`` module to version 1.1, add two new
 
575
  turtle demos in Demo/turtle.
 
576
 
 
577
- Issue #5692: In :class:`zipfile.Zipfile`, fix wrong path calculation when
 
578
  extracting a file to the root directory.
 
579
 
 
580
- Issue #5913: os.listdir() should fail for empty path on windows.
 
581
 
 
582
- Issue #5084: unpickling now interns the attribute names of pickled objects,
 
583
  saving memory and avoiding growth in size of subsequent pickles. Proposal
 
584
  and original patch by Jake McGuire.
 
585
 
 
586
- The json module now works exclusively with str and not bytes.
 
587
 
 
588
- Issue #3959: The ipaddr module has been added to the standard library.
 
589
  Contributed by Google.
 
590
 
 
591
- Issue #3002: ``shutil.copyfile()`` and ``shutil.copytree()`` now raise an
 
592
  error when a named pipe is encountered, rather than blocking infinitely.
 
593
 
 
594
- Issue #5857: tokenize.tokenize() now returns named tuples.
 
595
 
 
596
- Issue #4305: ctypes should now build again on mipsel-linux-gnu
 
597
 
 
598
- Issue #1734234: Massively speedup ``unicodedata.normalize()`` when the
 
599
  string is already in normalized form, by performing a quick check beforehand.
 
600
  Original patch by Rauli Ruohonen.
 
601
 
 
602
- Issue #5853: calling a function of the mimetypes module from several threads
 
603
  at once could hit the recursion limit if the mimetypes database hadn't been
 
604
  initialized before.
 
605
 
 
606
- Issue #5854: Updated __all__ to include some missing names and remove some
 
607
  names which should not be exported.
 
608
 
 
609
- Issue #3102:  All global symbols that the _ctypes extension defines
 
610
  are now prefixed with 'Py' or '_ctypes'.
 
611
 
 
612
- Issue #5041: ctypes does now allow pickling wide character.
 
613
 
 
614
- Issue #5812: For the two-argument form of the Fraction constructor,
 
615
  Fraction(m, n), m and n are permitted to be arbitrary Rational
 
616
  instances.
 
617
 
 
618
- Issue #5812: Fraction('1e6') is valid: more generally, any string
 
619
  that's valid for float() is now valid for Fraction(), with the
 
620
  exception of strings representing NaNs and infinities.
 
621
 
 
622
- Issue #5734: BufferedRWPair was poorly tested and had several glaring
 
623
  bugs. Patch by Brian Quinlan.
 
624
 
 
625
- Issue #1161031: fix readwrite select flag handling: POLLPRI now
 
626
  results in a handle_expt_event call, not handle_read_event, and POLLERR
 
627
  and POLLNVAL now call handle_close, not handle_expt_event.  Also,
 
628
  dispatcher now has an 'ignore_log_types' attribute for suppressing
 
629
  log messages, which is set to 'warning' by default.
 
630
 
 
631
- Issue #2703: SimpleXMLRPCDispatcher.__init__: Provide default values for
 
632
  new arguments introduced in 2.5.
 
633
 
 
634
- Issue #5828 (Invalid behavior of unicode.lower): Fixed bogus logic in
 
635
  makeunicodedata.py and regenerated the Unicode database (This fixes
 
636
  u'\u1d79'.lower() == '\x00').
 
637
 
 
638
Extension Modules
 
639
-----------------
 
640
 
 
641
- Issue #5881: Remove old undocumented compatibility interfaces in hashlib and
 
642
  pwd.
 
643
 
 
644
- Issue #5463: In struct module, remove deprecated float coercion
 
645
  for integer type codes: struct.pack('L', 0.3) should now raise
 
646
  an error.  The _PY_STRUCT_FLOAT_COERCE constant has been removed.
 
647
  The version number has been bumped to 0.3.
 
648
 
 
649
- Issue #5359: Readd the Berkley-DB detection code to allow _dbm be built
 
650
  using Berkley-DB.
 
651
 
 
652
Tests
 
653
-----
 
654
 
 
655
- Issue #5354: New test support function import_fresh_module() makes
 
656
  it easy to import both normal and optimised versions of modules.
 
657
  test_heapq and test_warnings have been adjusted to use it, tests for
 
658
  other modules with both C and Python implementations in the stdlib
 
659
  can be adjusted to use it over time.
 
660
 
 
661
- Issue #5837: Certain sequences of calls to set() and unset() for
 
662
  support.EnvironmentVarGuard objects restored the environment variables
 
663
  incorrectly on __exit__.
 
664
 
 
665
C-API
 
666
-----
 
667
 
 
668
- Issue #5630: A replacement PyCObject API, PyCapsule, has been added.
 
669
 
 
670
 
 
671
What's New in Python 3.1 alpha 2?
 
672
=================================
 
673
 
 
674
*Release date: 2009-4-4*
 
675
 
 
676
Core and Builtins
 
677
-----------------
 
678
 
 
679
- Implement PEP 378, Format Specifier for Thousands Separator, for
 
680
  integers.
 
681
 
 
682
- Issue #5666: Py_BuildValue's 'c' code should create byte strings.
 
683
 
 
684
- Issue #5499: The 'c' code for argument parsing functions now only accepts a
 
685
  byte, and the 'C' code only accepts a unicode character.
 
686
 
 
687
- Fix a problem in PyErr_NormalizeException that leads to "undetected errors"
 
688
  when hitting the recursion limit under certain circumstances.
 
689
 
 
690
- Issue #1665206: Remove the last eager import in _warnings.c and make it lazy.
 
691
 
 
692
- Fix a segfault when running test_exceptions with coverage, caused by
 
693
  insufficient checks in accessors of Exception.__context__.
 
694
 
 
695
- Issue #5604: non-ASCII characters in module name passed to
 
696
  imp.find_module() were converted to UTF-8 while the path is
 
697
  converted to the default filesystem encoding, causing nonsense.
 
698
 
 
699
- Issue #5126: str.isprintable() returned False for space characters.
 
700
 
 
701
- Issue #4865: On MacOSX /Library/Python/2.7/site-packages is added to
 
702
  the end sys.path, for compatibility with the system install of Python.
 
703
 
 
704
- Issue #4688: Add a heuristic so that tuples and dicts containing only
 
705
  untrackable objects are not tracked by the garbage collector. This can
 
706
  reduce the size of collections and therefore the garbage collection overhead
 
707
  on long-running programs, depending on their particular use of datatypes.
 
708
 
 
709
- Issue #5512: Rewrite PyLong long division algorithm (x_divrem) to
 
710
  improve its performance.  Long divisions and remainder operations
 
711
  are now between 50% and 150% faster.
 
712
 
 
713
- Issue #4258: Make it possible to use base 2**30 instead of base
 
714
  2**15 for the internal representation of integers, for performance
 
715
  reasons.  Base 2**30 is enabled by default on 64-bit machines.  Add
 
716
  --enable-big-digits option to configure, which overrides the
 
717
  default.  Add sys.int_info structseq to provide information about
 
718
  the internal format.
 
719
 
 
720
- Issue #4474: PyUnicode_FromWideChar now converts characters outside
 
721
  the BMP to surrogate pairs, on systems with sizeof(wchar_t) == 4
 
722
  and sizeof(Py_UNICODE) == 2.
 
723
 
 
724
- Issue #5237: Allow auto-numbered fields in str.format(). For
 
725
  example: '{} {}'.format(1, 2) == '1 2'.
 
726
 
 
727
- Issue #5392: when a very low recursion limit was set, the interpreter would
 
728
  abort with a fatal error after the recursion limit was hit twice.
 
729
 
 
730
- Issue #3845: In PyRun_SimpleFileExFlags avoid invalid memory access with
 
731
  short file names.
 
732
 
 
733
Library
 
734
-------
 
735
 
 
736
- Issue #2625: added missing items() call to the for loop in
 
737
  mailbox.MH.get_message().
 
738
 
 
739
- Issue #5640: Fix _multibytecodec so that CJK codecs don't repeat
 
740
  error substitutions from non-strict codec error callbacks in
 
741
  incrementalencoder and StreamWriter.
 
742
 
 
743
- Issue #5656: Fix the coverage reporting when running the test suite with
 
744
  the -T argument.
 
745
 
 
746
- Issue #5647: MutableSet.__iand__() no longer mutates self during iteration.
 
747
 
 
748
- Issue #5624: Fix the _winreg module name still used in several modules.
 
749
 
 
750
- Issue #5628: Fix io.TextIOWrapper.read() with a unreadable buffer.
 
751
 
 
752
- Issue #5619: Multiprocessing children disobey the debug flag and causes
 
753
  popups on windows buildbots. Patch applied to work around this issue.
 
754
 
 
755
- Issue #5400: Added patch for multiprocessing on netbsd compilation/support
 
756
 
 
757
- Issue #5387: Fixed mmap.move crash by integer overflow.
 
758
 
 
759
- Issue #5261: Patch multiprocessing's semaphore.c to support context
 
760
  manager use: "with multiprocessing.Lock()" works now.
 
761
 
 
762
- Issue #5236: Change time.strptime() to only take strings. Didn't work with
 
763
  bytes already but the failure was non-obvious.
 
764
 
 
765
- Issue #5177: Multiprocessing's SocketListener class now uses
 
766
  socket.SO_REUSEADDR on all connections so that the user no longer needs
 
767
  to wait 120 seconds for the socket to expire.
 
768
 
 
769
- Issue #5595: Fix UnboundedLocalError in ntpath.ismount().
 
770
 
 
771
- Issue #1174606: Calling read() without arguments of an unbounded file
 
772
  (typically /dev/zero under Unix) could crash the interpreter.
 
773
 
 
774
- The max_buffer_size arguments of io.BufferedWriter, io.BufferedRWPair, and
 
775
  io.BufferedRandom have been deprecated for removal in Python 3.2.
 
776
 
 
777
- Issue #5068: Fixed the tarfile._BZ2Proxy.read() method that would loop
 
778
  forever on incomplete input. That caused tarfile.open() to hang when used
 
779
  with mode 'r' or 'r:bz2' and a fileobj argument that contained no data or
 
780
  partial bzip2 compressed data.
 
781
 
 
782
- Issue #2110: Add support for thousands separator and 'n' type
 
783
  specifier to Decimal.__format__
 
784
 
 
785
- Fix Decimal.__format__ bug that swapped the meanings of the '<' and
 
786
  '>' alignment characters.
 
787
 
 
788
- The error detection code in FileIO.close() could fail to reflect the `errno`
 
789
  value, and report it as -1 instead.
 
790
 
 
791
- Issue #5016: FileIO.seekable() could return False if the file position
 
792
  was negative when truncated to a C int. Patch by Victor Stinner.
 
793
 
 
794
Extension Modules
 
795
-----------------
 
796
 
 
797
- Issue #5391: mmap now deals exclusively with bytes.
 
798
 
 
799
- Issue #5463: In struct module, remove deprecated overflow wrapping
 
800
  when packing an integer: struct.pack('=L', -1) now raises
 
801
  struct.error instead of returning b'\xff\xff\xff\xff'.  The
 
802
  _PY_STRUCT_RANGE_CHECKING and _PY_STRUCT_OVERFLOW_MASKING constants
 
803
  have been removed from the struct module.
 
804
 
 
805
 
 
806
What's New in Python 3.1 alpha 1
 
807
================================
 
808
 
 
809
*Release date: 2009-03-07*
 
810
 
 
811
Core and Builtins
 
812
-----------------
 
813
 
 
814
- The io module has been reimplemented in C for speed.
 
815
 
 
816
- Give dict views an informative __repr__.
 
817
 
 
818
- Issue #5247: Improve error message when unknown format codes are
 
819
  used when using str.format() with str, int, and float arguments.
 
820
 
 
821
- Issue #5249: time.strftime returned malformed string when format string
 
822
  contained non ascii character on windows.
 
823
 
 
824
- Issue #4626: compile(), exec(), and eval() ignore the coding cookie if the
 
825
  source has already been decoded into str.
 
826
 
 
827
- Issue #5186: Reduce hash collisions for objects with no __hash__ method by
 
828
  rotating the object pointer by 4 bits to the right.
 
829
 
 
830
- Issue #4575: Fix Py_IS_INFINITY macro to work correctly on x87 FPUs:
 
831
  it now forces its argument to double before testing for infinity.
 
832
 
 
833
- Issue #5137: Make len() correctly raise a TypeError when a __len__ method
 
834
  returns a non-number type.
 
835
 
 
836
- Issue #5182: Removed memoryview.__str__.
 
837
 
 
838
- Issue #1717: Removed builtin cmp() function, dropped tp_compare
 
839
  slot, the C API functions PyObject_Compare and PyUnicode_Compare and
 
840
  the type definition cmpfunc.  The tp_compare slot has been renamed
 
841
  to tp_reserved, and is reserved for future usage.
 
842
 
 
843
- Issue #1242657: the __len__() and __length_hint__() calls in several tools
 
844
  were suppressing all exceptions.  These include list() and bytearray().
 
845
 
 
846
- Issue #4707: round(x, n) now returns an integer if x is an integer.
 
847
  Previously it returned a float.
 
848
 
 
849
- Issue #4753: By enabling a configure option named '--with-computed-gotos'
 
850
  on compilers that support it (notably: gcc, SunPro, icc), the bytecode
 
851
  evaluation loop is compiled with a new dispatch mechanism which gives
 
852
  speedups of up to 20%, depending on the system, on various benchmarks.
 
853
 
 
854
- Issue #4874: Most builtin decoders now reject unicode input.
 
855
 
 
856
- Issue #4842: Don't allow trailing 'L' when constructing an integer
 
857
  from a string.
 
858
 
 
859
- Issue #4991: os.fdopen now raises an OSError for invalid file descriptors.
 
860
 
 
861
- Issue #4838: When a module is deallocated, free the memory backing the
 
862
  optional module state data.
 
863
 
 
864
- Issue #4910: Rename nb_long slot to nb_reserved, and change its
 
865
  type to (void *).
 
866
 
 
867
- Issue #4935: The overflow checking code in the expandtabs() method common
 
868
  to str, bytes and bytearray could be optimized away by the compiler, letting
 
869
  the interpreter segfault instead of raising an error.
 
870
 
 
871
- Issue #3720: Fix a crash when an iterator modifies its class and removes its
 
872
  __next__ method.
 
873
 
 
874
- Issue #4910: Builtin int() function and PyNumber_Long/PyNumber_Int API
 
875
  function no longer attempt to call the __long__ slot to convert an object
 
876
  to an integer.  Only the __int__ and __trunc__ slots are examined.
 
877
 
 
878
- Issue #4893: Use NT threading on CE.
 
879
 
 
880
- Issue #4915: Port sysmodule to Windows CE.
 
881
 
 
882
- Issue #4868: utf-8, utf-16 and latin1 decoding are now 2x to 4x faster. The
 
883
  common cases are optimized thanks to a dedicated fast path and a moderate
 
884
  amount of loop unrolling.
 
885
 
 
886
- Issue #4074: Change the criteria for doing a full garbage collection (i.e.
 
887
  collecting the oldest generation) so that allocating lots of objects without
 
888
  destroying them does not show quadratic performance. Based on a proposal by
 
889
  Martin von Löwis at
 
890
  http://mail.python.org/pipermail/python-dev/2008-June/080579.html.
 
891
 
 
892
- Issue #4604: Some objects of the I/O library could still be used after
 
893
  having been closed (for instance, a read() call could return some
 
894
  previously buffered data). Patch by Dmitry Vasiliev.
 
895
 
 
896
- Issue #4705: Fix the -u ("unbuffered binary stdout and stderr") command-line
 
897
  flag to work properly. Furthermore, when specifying -u, the text stdout
 
898
  and stderr streams have line-by-line buffering enabled (the default being
 
899
  to buffer arbitrary chunks of data).
 
900
 
 
901
- The internal table, _PyLong_DigitValue, is now an array of unsigned chars
 
902
  instead of ints (reducing its size from 4 to 8 times thereby reducing
 
903
  Python's overall memory).
 
904
 
 
905
- Issue #1180193: When importing a module from a .pyc (or .pyo) file with
 
906
  an existing .py counterpart, override the co_filename attributes of all
 
907
  code objects if the original filename is obsolete (which can happen if the
 
908
  file has been renamed, moved, or if it is accessed through different paths).
 
909
  Patch by Ziga Seilnacht and Jean-Paul Calderone.
 
910
 
 
911
- Issue #4580: Fix slicing of memoryviews when the item size is greater than
 
912
  one byte. Also fixes the meaning of len() so that it returns the number of
 
913
  items, rather than the size in bytes.
 
914
 
 
915
- Issue #4075: Use OutputDebugStringW in Py_FatalError.
 
916
 
 
917
- Issue #4747: When the terminal does not use utf-8, executing a script with
 
918
  non-ascii characters in its name could fail with a "SyntaxError: None" error.
 
919
 
 
920
- Issue #4797: IOError.filename was not set when _fileio.FileIO failed to open
 
921
  file with `bytes' filename on Windows.
 
922
 
 
923
- Issue #3680: Reference cycles created through a dict, set or deque iterator
 
924
  did not get collected.
 
925
 
 
926
- Issue #4701: PyObject_Hash now implicitly calls PyType_Ready on types
 
927
  where the tp_hash and tp_dict slots are both NULL.
 
928
 
 
929
- Issue #4759: None is now allowed as the first argument of
 
930
  bytearray.translate().  It was always allowed for bytes.translate().
 
931
 
 
932
- Added test case to ensure attempts to read from a file opened for writing
 
933
  fail.
 
934
 
 
935
- Issue #3106: Speedup some comparisons (str/str and int/int).
 
936
 
 
937
- Issue #2183: Simplify and optimize bytecode for list, dict and set
 
938
  comprehensions. Original patch for list comprehensions by Neal Norwitz.
 
939
 
 
940
- Issue #2467: gc.DEBUG_STATS reported invalid elapsed times. Also, always
 
941
  print elapsed times, not only when some objects are uncollectable /
 
942
  unreachable. Original patch by Neil Schemenauer.
 
943
 
 
944
- Issue #3439: Add a bit_length method to int.
 
945
 
 
946
- Issue #2173: When getting device encoding, check that return value of
 
947
  nl_langinfo is not the empty string.  This was causing silent build
 
948
  failures on OS X.
 
949
 
 
950
- Issue #4597: Fixed several opcodes that weren't always propagating
 
951
  exceptions.
 
952
 
 
953
- Issue #4589: Fixed exception handling when the __exit__ function of a
 
954
  context manager returns a value that cannot be converted to a bool.
 
955
 
 
956
- Issue #4445: Replace "sizeof(PyBytesObject)" with
 
957
  "offsetof(PyBytesObject, ob_sval) + 1" when allocating memory for
 
958
  bytes instances.  On a typical machine this saves 3 bytes of memory
 
959
  (on average) per allocation of a bytes instance.
 
960
 
 
961
- Issue #4533: File read operation was dreadfully slow due to a slowly
 
962
  growing read buffer. Fixed by using the same growth rate algorithm as
 
963
  Python 2.x.
 
964
 
 
965
- Issue #4509: Various issues surrounding resize of bytearray objects to
 
966
  which there are buffer exports (e.g. memoryview instances).
 
967
 
 
968
- Issue #4233: Changed semantic of ``_fileio.FileIO``'s ``close()``
 
969
  method on file objects with closefd=False. The file descriptor is still
 
970
  kept open but the file object behaves like a closed file. The ``FileIO``
 
971
  object also got a new readonly attribute ``closefd``.
 
972
 
 
973
- Issue #4569: Interpreter crash when mutating a memoryview with an item size
 
974
  larger than 1.
 
975
 
 
976
- Issue #4748: Lambda generators no longer return a value.
 
977
 
 
978
- The re.sub(), re.subn() and re.split() functions now accept a flags parameter.
 
979
 
 
980
- Issue #5108: Handle %s like %S, %R and %A in PyUnicode_FromFormatV(): Call
 
981
  PyUnicode_DecodeUTF8() once, remember the result and output it in a second
 
982
  step. This avoids problems with counting UTF-8 bytes that ignores the effect
 
983
  of using the replace error handler in PyUnicode_DecodeUTF8().
 
984
 
 
985
Library
 
986
-------
 
987
 
 
988
- Issue #6163: Fixed HP-UX runtime library dir options in
 
989
  distutils.unixcompiler. Initial patch by Sridhar Ratnakumar and
 
990
  Michael Haubenwallner.
 
991
 
 
992
- Issue #6545: Removed assert statements in distutils.Extension, so the 
 
993
  behavior is similar when used with -O.
 
994
 
 
995
- Issue #6459: distutils.command.build_ext.get_export_symbols now uses the 
 
996
  "PyInit" prefix, rather than "init". 
 
997
 
 
998
- Issue #6433: fixed issues with multiprocessing.pool.map hanging on empty list
 
999
 
 
1000
- Issue #6455: Fixed test_build_ext under win32. 
 
1001
 
 
1002
- Issue #6413: Fixed the log level in distutils.dist for announce.
 
1003
 
 
1004
- Issue #6403: Fixed package path usage in build_ext.
 
1005
 
 
1006
- Issue #6365: Distutils build_ext inplace mode was copying the compiled 
 
1007
  extension in a subdirectory if the extension name had dots.
 
1008
 
 
1009
- Issue #6287: Added the license field in Distutils documentation.
 
1010
 
 
1011
- Issue #6263: Fixed syntax error in distutils.cygwincompiler.
 
1012
 
 
1013
- Issue #5201: distutils.sysconfig.parse_makefile() now understands `$$`
 
1014
  in Makefiles. This prevents compile errors when using syntax like:
 
1015
  `LDFLAGS='-rpath=\$$LIB:/some/other/path'`. Patch by Floris Bruynooghe.
 
1016
 
 
1017
- Issue #6131: test_modulefinder leaked when run after test_distutils.
 
1018
  Patch by Hirokazu Yamamoto.
 
1019
 
 
1020
- Issue #6048: Now Distutils uses the tarfile module in archive_util.
 
1021
 
 
1022
- Issue #6062: In distutils, fixed the package option of build_ext. Feedback
 
1023
  and tests on pywin32 by Tim Golden.
 
1024
 
 
1025
- Issue #6053: Fixed distutils tests on win32. patch by Hirokazu Yamamoto.
 
1026
 
 
1027
- Issue #6046: Fixed the library extension when distutils build_ext is used
 
1028
  inplace. Initial patch by Roumen Petrov.
 
1029
 
 
1030
- Issue #6041: Now distutils `sdist` and `register` commands use `check` as a
 
1031
  subcommand.
 
1032
 
 
1033
- Issue #6022: a test file was created in the current working directory by
 
1034
  test_get_outputs in Distutils.
 
1035
 
 
1036
- Issue #5977: distutils build_ext.get_outputs was not taking into account the
 
1037
  inplace option. Initial patch by kxroberto.
 
1038
 
 
1039
- Issue #5984: distutils.command.build_ext.check_extensions_list checks were broken
 
1040
  for old-style extensions.
 
1041
 
 
1042
- Issue #5976: Fixed Distutils test_check_environ.
 
1043
 
 
1044
- Issue #5941: Distutils build_clib command was not working anymore because
 
1045
  of an incomplete costumization of the archiver command. Added ARFLAGS in the
 
1046
  Makefile besides AR and make Distutils use it. Original patch by David
 
1047
  Cournapeau.
 
1048
 
 
1049
- Issue #2245: aifc now skips chunk types it doesn't recognize, per spec.
 
1050
 
 
1051
- Issue #5874: distutils.tests.test_config_cmd is not locale-sensitive
 
1052
  anymore.
 
1053
 
 
1054
- Issue #5810: Fixed Distutils test_build_scripts so it uses
 
1055
  sysconfig.get_config_vars.
 
1056
 
 
1057
- Issue #4951: Fixed failure in test_httpservers.
 
1058
 
 
1059
- Issue #5795: Fixed test_distutils failure on Debian ppc.
 
1060
 
 
1061
- Issue #5607: fixed Distutils test_get_platform for Mac OS X fat binaries.
 
1062
 
 
1063
- Issue #5741: don't disallow "%%" (which is an escape for "%") when setting
 
1064
  a value in SafeConfigParser.
 
1065
 
 
1066
- Issue #5732: added a new command in Distutils: check.
 
1067
 
 
1068
- Issue #5731: Distutils bdist_wininst no longer worked on non-Windows
 
1069
  platforms. Initial patch by Paul Moore.
 
1070
 
 
1071
- Issue #5095: Added bdist_msi to the list of bdist supported formats.
 
1072
  Initial fix by Steven Bethard.
 
1073
 
 
1074
- Issue #1491431: Fixed distutils.filelist.glob_to_re for edge cases.
 
1075
  Initial fix by Wayne Davison.
 
1076
 
 
1077
- Issue #5694: removed spurious test output in Distutils (test_clean).
 
1078
 
 
1079
- Issue #1326077: fix the formatting of SyntaxErrors by the traceback module.
 
1080
 
 
1081
- Issue #1665206 (partially): Move imports in cgitb to the top of the module
 
1082
  instead of performing them in functions. Helps prevent import deadlocking in
 
1083
  threads.
 
1084
 
 
1085
- Issue #2522: locale.format now checks its first argument to ensure it has
 
1086
  been passed only one pattern, avoiding mysterious errors where it appeared
 
1087
  that it was failing to do localization.
 
1088
 
 
1089
- Issue #5583: Added optional Extensions in Distutils. Initial patch by Georg
 
1090
  Brandl.
 
1091
 
 
1092
- Issue #1222: locale.format() bug when the thousands separator is a space
 
1093
  character.
 
1094
 
 
1095
- Issue #5472: Fixed distutils.test_util tear down. Original patch by
 
1096
  Tim Golden.
 
1097
 
 
1098
- collections.deque() objects now have a read-only attribute called maxlen.
 
1099
 
 
1100
- Issue #2638: Show a window constructed with tkSimpleDialog.Dialog only after
 
1101
  it is has been populated and properly configured in order to prevent
 
1102
  window flashing.
 
1103
 
 
1104
- Issue #4792: Prevent a segfault in _tkinter by using the
 
1105
  guaranteed to be safe interp argument given to the PythonCmd in place of
 
1106
  the Tcl interpreter taken from a PythonCmd_ClientData.
 
1107
 
 
1108
- Issue #5193: Guarantee that tkinter.Text.search returns a string.
 
1109
 
 
1110
- Issue #5394: removed > 2.3 syntax from distutils.msvc9compiler.
 
1111
  Original patch by Akira Kitada.
 
1112
 
 
1113
- Issue #5334: array.fromfile() failed to insert values when EOFError was raised.
 
1114
 
 
1115
- Issue #5385: Fixed mmap crash after resize failure on windows.
 
1116
 
 
1117
- Issue #5179: Fixed subprocess handle leak on failure on windows.
 
1118
 
 
1119
- PEP 372:  Added collections.OrderedDict().
 
1120
 
 
1121
- The _asdict() for method for namedtuples now returns an OrderedDict().
 
1122
 
 
1123
- configparser now defaults to using an ordered dictionary.
 
1124
 
 
1125
- Issue #5401: Fixed a performance problem in mimetypes when ``from mimetypes
 
1126
  import guess_extension`` was used.
 
1127
 
 
1128
- Issue #1733986: Fixed mmap crash in accessing elements of second map object
 
1129
  with same tagname but larger size than first map. (Windows)
 
1130
 
 
1131
- Issue #5386: mmap.write_byte didn't check map size, so it could cause buffer
 
1132
  overrun.
 
1133
 
 
1134
- Issue #1533164: Installed but not listed *.pyo was breaking Distutils
 
1135
  bdist_rpm command.
 
1136
 
 
1137
- Issue #5378: added --quiet option to Distutils bdist_rpm command.
 
1138
 
 
1139
- Issue #5052: make Distutils compatible with 2.3 again.
 
1140
 
 
1141
- Issue #5316: Fixed buildbot failures introduced by multiple inheritance
 
1142
  in Distutils tests.
 
1143
 
 
1144
- Issue #5287: Add exception handling around findCaller() call to help out
 
1145
  IronPython.
 
1146
 
 
1147
- Issue #5282: Fixed mmap resize on 32bit windows and unix. When offset > 0,
 
1148
  The file was resized to wrong size.
 
1149
 
 
1150
- Issue #5292: Fixed mmap crash on its boundary access m[len(m)].
 
1151
 
 
1152
- Issue #2279: distutils.sdist.add_defaults now add files
 
1153
  from the package_data and the data_files metadata.
 
1154
 
 
1155
- Issue #5257: refactored all tests in distutils, so they use
 
1156
  support.TempdirManager, to avoid writing in the tests directory.
 
1157
 
 
1158
- Issue #4524: distutils build_script command failed with --with-suffix=3.
 
1159
  Initial patch by Amaury Forgeot d'Arc.
 
1160
 
 
1161
- Issue #2461: added tests for distutils.util
 
1162
 
 
1163
- Issue #4998: The memory saving effect of __slots__ had been lost on Fractions
 
1164
  which inherited from numbers.py which did not have __slots__ defined.  The
 
1165
  numbers hierarchy now has its own __slots__ declarations.
 
1166
 
 
1167
- Issue #4631: Fix urlopen() result when an HTTP response uses chunked
 
1168
  encoding.
 
1169
 
 
1170
- Issue #5203: Fixed ctypes segfaults when passing a unicode string to a
 
1171
  function without argtypes (only occurs if HAVE_USABLE_WCHAR_T is false).
 
1172
 
 
1173
- Issue #3386: distutils.sysconfig.get_python_lib prefix argument was ignored
 
1174
  under NT and OS2. Patch by Philip Jenvey.
 
1175
 
 
1176
- Issue #5128: Make compileall properly inspect bytecode to determine if needs
 
1177
  to be recreated. This avoids a timing hole thanks to the old reliance on the
 
1178
  ctime of the files involved.
 
1179
 
 
1180
- Issue #5122: Synchronize tk load failure check to prevent a potential
 
1181
  deadlock.
 
1182
 
 
1183
- Issue #1818: collections.namedtuple() now supports a keyword argument
 
1184
  'rename' which lets invalid fieldnames be automatically converted to
 
1185
  positional names in the form, _1, _2, ...
 
1186
 
 
1187
- Issue #4890: Handle empty text search pattern in Tkinter.Text.search.
 
1188
 
 
1189
- Issue #4512 (part 2): Promote ``ZipImporter._get_filename()`` to be a
 
1190
  public documented method ``ZipImporter.get_filename()``.
 
1191
 
 
1192
- Issue #4195: The ``runpy`` module (and the ``-m`` switch) now support
 
1193
  the execution of packages by looking for and executing a ``__main__``
 
1194
  submodule when a package name is supplied. Initial patch by Andi
 
1195
  Vajda.
 
1196
 
 
1197
- Issue #1731706: Call Tcl_ConditionFinalize for Tcl_Conditions that will
 
1198
  not be used again (this requires Tcl/Tk 8.3.1), also fix a memory leak in
 
1199
  Tkapp_Call when calling from a thread different than the one that created
 
1200
  the Tcl interpreter. Patch by Robert Hancock.
 
1201
 
 
1202
- Issue #4285: Change sys.version_info to be a named tuple. Patch by
 
1203
  Ross Light.
 
1204
 
 
1205
- Issue #1520877: Now distutils.sysconfig reads $AR from the
 
1206
  environment/Makefile. Patch by Douglas Greiman.
 
1207
 
 
1208
- Issue #1276768: The verbose option was not used in the code of
 
1209
  distutils.file_util and distutils.dir_util.
 
1210
 
 
1211
- Issue #5132: Fixed trouble building extensions under Solaris with
 
1212
  --enabled-shared activated. Initial patch by Dave Peterson.
 
1213
 
 
1214
- Issue #1581476: Always use the Tcl global namespace when calling into Tcl.
 
1215
 
 
1216
- The shelve module now defaults to pickle protocol 3.
 
1217
 
 
1218
- Fix a bug in the trace module where a bytes object from co_lnotab had its
 
1219
  items being passed through ord().
 
1220
 
 
1221
- Issue #2047: shutil.move() could believe that its destination path was
 
1222
  inside its source path if it began with the same letters (e.g. "src" vs.
 
1223
  "src.new").
 
1224
 
 
1225
- Added the ttk module. See issue #2983: Ttk support for Tkinter.
 
1226
 
 
1227
- Removed isSequenceType(), isMappingType, and isNumberType() from the
 
1228
  operator module; use the abstract base classes instead.  Also removed
 
1229
  the repeat() function; use mul() instead.
 
1230
 
 
1231
- Issue #5021:  doctest.testfile() did not create __name__ and
 
1232
  collections.namedtuple() relied on __name__ being defined.
 
1233
 
 
1234
- Backport importlib from Python 3.1. Only the import_module() function has
 
1235
  been backported to help facilitate transitions from 2.7 to 3.1.
 
1236
 
 
1237
- Issue #1885: distutils. When running sdist with --formats=tar,gztar
 
1238
  the tar file was overriden by the gztar one.
 
1239
 
 
1240
- Issue #4863: distutils.mwerkscompiler has been removed.
 
1241
 
 
1242
- Added a new itertools functions:  combinations_with_replacement()
 
1243
  and compress().
 
1244
 
 
1245
- Issue #5032:  added a step argument to itertools.count() and
 
1246
  allowed non-integer arguments.
 
1247
 
 
1248
- Fix and properly document the multiprocessing module's logging
 
1249
  support, expose the internal levels and provide proper usage
 
1250
  examples.
 
1251
 
 
1252
- Issue #1672332: fix unpickling of subnormal floats, which was
 
1253
  producing a ValueError on some platforms.
 
1254
 
 
1255
- Issue #3881: Help Tcl to load even when started through the
 
1256
  unreadable local symlink to "Program Files" on Vista.
 
1257
 
 
1258
- Issue #4710: Extract directories properly in the zipfile module;
 
1259
  allow adding directories to a zipfile.
 
1260
 
 
1261
- Issue #3807: _multiprocessing build fails when configure is passed
 
1262
  --without-threads argument. When this occurs, _multiprocessing will
 
1263
  be disabled, and not compiled.
 
1264
 
 
1265
- Issue #5008: When a file is opened in append mode with the new IO library,
 
1266
  do an explicit seek to the end of file (so that e.g. tell() returns the
 
1267
  file size rather than 0). This is consistent with the behaviour of the
 
1268
  traditional 2.x file object.
 
1269
 
 
1270
- Issue #5013: Fixed a bug in FileHandler which occurred when the delay
 
1271
  parameter was set.
 
1272
 
 
1273
- Issue #4842: Always append a trailing 'L' when pickling longs using
 
1274
  pickle protocol 0.  When reading, the 'L' is optional.
 
1275
 
 
1276
- Add the importlib package.
 
1277
 
 
1278
- Issue #4301: Patch the logging module to add processName support, remove
 
1279
  _check_logger_class from multiprocessing.
 
1280
 
 
1281
- Issue #3325: Remove python2.x try: except: imports for old cPickle from
 
1282
  multiprocessing.
 
1283
 
 
1284
- Issue #4959: inspect.formatargspec now works for keyword only arguments
 
1285
  without defaults.
 
1286
 
 
1287
- Issue #3321: _multiprocessing.Connection() doesn't check handle; added checks
 
1288
  for *nix machines for negative handles and large int handles. Without this check
 
1289
  it is possible to segfault the interpreter.
 
1290
 
 
1291
- Issue #4449: AssertionError in mp_benchmarks.py, caused by an underlying issue
 
1292
  in sharedctypes.py.
 
1293
 
 
1294
- Issue #1225107: inspect.isclass() returned True for instances with a custom
 
1295
  __getattr__.
 
1296
 
 
1297
- Issue #3826 and #4791: The socket module now closes the underlying socket
 
1298
  appropriately when it is being used via socket.makefile() objects
 
1299
  rather than delaying the close by waiting for garbage collection to do it.
 
1300
 
 
1301
- Issue #1696199:  Add collections.Counter() for rapid and convenient
 
1302
  counting.
 
1303
 
 
1304
- Issue #3860: GzipFile and BZ2File now support the context manager protocol.
 
1305
 
 
1306
- Issue #4867: Fixed a crash in ctypes when passing a string to a
 
1307
  function without defining argtypes.
 
1308
 
 
1309
- Issue #4272: Add an optional argument to the GzipFile constructor to override
 
1310
  the timestamp in the gzip stream. The default value remains the current time.
 
1311
  The information can be used by e.g. gunzip when decompressing. Patch by
 
1312
  Jacques Frechet.
 
1313
 
 
1314
- Restore Python 2.3 compatibility for decimal.py.
 
1315
 
 
1316
- Issue #3638: Remove functions from _tkinter module level that depend on
 
1317
  TkappObject to work with multiple threads.
 
1318
 
 
1319
- Issue #4718: Adapt the wsgiref package so that it actually works with
 
1320
  Python 3.x, in accordance with the `official amendments of the spec
 
1321
  <http://www.wsgi.org/wsgi/Amendments_1.0>`_.
 
1322
 
 
1323
- Issue #4796: Added Decimal.from_float() and Context.create_decimal_from_float()
 
1324
  to the decimal module.
 
1325
 
 
1326
- Fractions.from_float() no longer loses precision for integers too big to
 
1327
  cast as floats.
 
1328
 
 
1329
- Issue #4812: add missing underscore prefix to some internal-use-only
 
1330
  constants in the decimal module.  (Dec_0 becomes _Dec_0, etc.)
 
1331
 
 
1332
- Issue #4790: The nsmallest() and nlargest() functions in the heapq module
 
1333
  did unnecessary work in the common case where no key function was specified.
 
1334
 
 
1335
- Issue #4795: inspect.isgeneratorfunction() returns False instead of None when
 
1336
  the function is not a generator.
 
1337
 
 
1338
- Issue #4702: Throwing a DistutilsPlatformError instead of IOError in case
 
1339
  no MSVC compiler is found under Windows. Original patch by Philip Jenvey.
 
1340
 
 
1341
- Issue #4646: distutils was choking on empty options arg in the setup
 
1342
  function. Original patch by Thomas Heller.
 
1343
 
 
1344
- Issue #3767: Convert Tk object to string in tkColorChooser.
 
1345
 
 
1346
- Issue #3248: Allow placing ScrolledText in a PanedWindow.
 
1347
 
 
1348
- Issue #4444: Allow assertRaises() to be used as a context handler, so that
 
1349
  the code under test can be written inline if more practical.
 
1350
 
 
1351
- Issue #4739: Add pydoc help topics for symbols, so that e.g. help('@')
 
1352
  works as expected in the interactive environment.
 
1353
 
 
1354
- Issue #4756: zipfile.is_zipfile() now supports file-like objects. Patch by
 
1355
  Gabriel Genellina.
 
1356
 
 
1357
- Issue #4574: reading an UTF16-encoded text file crashes if \r on 64-char
 
1358
  boundary.
 
1359
 
 
1360
- Issue #4223: inspect.getsource() will now correctly display source code
 
1361
  for packages loaded via zipimport (or any other conformant PEP 302
 
1362
  loader). Original patch by Alexander Belopolsky.
 
1363
 
 
1364
- Issue #4201: pdb can now access and display source code loaded via
 
1365
  zipimport (or any other conformant PEP 302 loader). Original patch by
 
1366
  Alexander Belopolsky.
 
1367
 
 
1368
- Issue #4197: doctests in modules loaded via zipimport (or any other PEP
 
1369
  302 conformant loader) will now work correctly in most cases (they
 
1370
  are still subject to the constraints that exist for all code running
 
1371
  from inside a module loaded via a PEP 302 loader and attempting to
 
1372
  perform IO operations based on __file__). Original patch by
 
1373
  Alexander Belopolsky.
 
1374
 
 
1375
- Issues #4082 and #4512: Add runpy support to zipimport in a manner that
 
1376
  allows backporting to maintenance branches. Original patch by
 
1377
  Alexander Belopolsky.
 
1378
 
 
1379
- Issue #4163: textwrap module: allow word splitting on a hyphen preceded by
 
1380
  a non-ASCII letter.
 
1381
 
 
1382
- Issue #4616: TarFile.utime(): Restore directory times on Windows.
 
1383
 
 
1384
- Issue #4021: tokenize.detect_encoding() now raises a SyntaxError when the
 
1385
  codec cannot be found.  This is for compatibility with the builtin behavior.
 
1386
 
 
1387
- Issue #4084: Fix max, min, max_mag and min_mag Decimal methods to
 
1388
  give correct results in the case where one argument is a quiet NaN
 
1389
  and the other is a finite number that requires rounding.
 
1390
 
 
1391
- Issue #4483: _dbm module now builds on systems with gdbm & gdbm_compat
 
1392
  libs.
 
1393
 
 
1394
- Added the subprocess.check_call_output() convenience function to get output
 
1395
  from a subprocess on success or raise an exception on error.
 
1396
 
 
1397
- Issue #1055234: cgi.parse_header(): Fixed parsing of header parameters to
 
1398
  support unusual filenames (such as those containing semi-colons) in
 
1399
  Content-Disposition headers.
 
1400
 
 
1401
- Issue #4384: Added logging integration with warnings module using
 
1402
  captureWarnings(). This change includes a NullHandler which does nothing;
 
1403
  it will be of use to library developers who want to avoid the "No handlers
 
1404
  could be found for logger XXX" message which can appear if the library user
 
1405
  doesn't configure logging.
 
1406
 
 
1407
- Issue #3741: DISTUTILS_USE_SDK set causes msvc9compiler.py to raise an
 
1408
  exception.
 
1409
 
 
1410
- Issue #4529: fix the parser module's validation of try-except-finally
 
1411
  statements.
 
1412
 
 
1413
- Issue #4458: getopt.gnu_getopt() now recognizes a single "-" as an argument,
 
1414
  not a malformed option.
 
1415
 
 
1416
- Added the subprocess.check_output() convenience function to get output
 
1417
  from a subprocess on success or raise an exception on error.
 
1418
 
 
1419
- Issue #4542: On Windows, binascii.crc32 still accepted str as binary input;
 
1420
  the corresponding tests now pass.
 
1421
 
 
1422
- Issue #4537: webbrowser.UnixBrowser would fail to open the browser because
 
1423
  it was calling the wrong open() function.
 
1424
 
 
1425
- Issue #1055234: cgi.parse_header(): Fixed parsing of header parameters to
 
1426
  support unusual filenames (such as those containing semi-colons) in
 
1427
  Content-Disposition headers.
 
1428
 
 
1429
- Issue #4861: ctypes.util.find_library(): Robustify. Fix library detection on
 
1430
  biarch systems. Try to rely on ldconfig only, without using objdump and gcc.
 
1431
 
 
1432
- Issue #5104: The socket module now raises OverflowError when 16-bit port and
 
1433
  protocol numbers are supplied outside the allowed 0-65536 range on bind()
 
1434
  and getservbyport().
 
1435
 
 
1436
- Windows locale mapping updated to Vista.
 
1437
 
 
1438
Tools/Demos
 
1439
-----------
 
1440
 
 
1441
- Issue #4704: remove use of cmp() in pybench, bump its version number to 2.1,
 
1442
  and make it 2.6-compatible.
 
1443
 
 
1444
- Ttk demos added in Demo/tkinter/ttk/
 
1445
 
 
1446
- Issue #4677: add two list comprehension tests to pybench.
 
1447
 
 
1448
 
 
1449
Build
 
1450
-----
 
1451
 
 
1452
- Issue #6094: Build correctly with Subversion 1.7.
 
1453
 
 
1454
- Issue #5847: Remove -n switch on "Edit with IDLE" menu item.
 
1455
 
 
1456
- Issue #5726: Make Modules/ld_so_aix return the actual exit code of the
 
1457
  linker, rather than always exit successfully. Patch by Floris Bruynooghe.
 
1458
 
 
1459
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
 
1460
  the order that backends for the dbm extension are checked.
 
1461
 
 
1462
- Link the shared python library with $(MODLIBS).
 
1463
 
 
1464
- Issue #5134: Silence compiler warnings when compiling sqlite with VC++.
 
1465
 
 
1466
- Issue #4494: Fix build with Py_NO_ENABLE_SHARED on Windows.
 
1467
 
 
1468
- Issue #4895: Use _strdup on Windows CE.
 
1469
 
 
1470
- Issue #4472: "configure --enable-shared" now works on OSX
 
1471
 
 
1472
- Issues #4728 and #4060: WORDS_BIGEDIAN is now correct in Universal builds.
 
1473
 
 
1474
- Issue #4389: Add icon to the uninstall entry in "add-and-remove-programs".
 
1475
 
 
1476
- Issue #4289: Remove Cancel button from AdvancedDlg.
 
1477
 
 
1478
- Issue #1656675: Register a drop handler for .py* files on Windows.
 
1479
 
 
1480
- Issue #4120: Exclude manifest from extension modules in VS2008.
 
1481
 
 
1482
- Issue #4091: Install pythonxy.dll in system32 again.
 
1483
 
 
1484
- Issue #4018: Disable "for me" installations on Vista.
 
1485
 
 
1486
- Issue #3758: Add ``patchcheck`` build target to .PHONY.
 
1487
 
 
1488
- Issue #4204: Fixed module build errors on FreeBSD 4.
 
1489
 
 
1490
 
 
1491
- Issue #6801 : symmetric_difference_update also accepts |.
 
1492
  Thanks to Carl Chenet. 
 
1493
 
 
1494
C-API
 
1495
-----
 
1496
 
 
1497
- Issue #5175: PyLong_AsUnsignedLongLong now raises OverflowError
 
1498
  for negative arguments.  Previously, it raised TypeError.
 
1499
 
 
1500
- Issue #4720: The format for PyArg_ParseTupleAndKeywords can begin with '|'.
 
1501
 
 
1502
- Issue #3632: from the gdb debugger, the 'pyo' macro can now be called when
 
1503
  the GIL is released, or owned by another thread.
 
1504
 
 
1505
- Issue #4122: On Windows, fix a compilation error when using the
 
1506
  Py_UNICODE_ISSPACE macro in an extension module.
 
1507
 
 
1508
 
 
1509
Extension Modules
 
1510
-----------------
 
1511
 
 
1512
- Issue #3745: Fix hashlib to always reject unicode and non buffer-api
 
1513
  supporting objects as input no matter how it was compiled (built in
 
1514
  implementations or external openssl library).
 
1515
 
 
1516
- Issue #4397: Fix occasional test_socket failure on OS X.
 
1517
 
 
1518
- Issue #4279: Fix build of parsermodule under Cygwin.
 
1519
 
 
1520
- Issue #4751: hashlib now releases the GIL when hashing large buffers
 
1521
  (with a hardwired threshold of 2048 bytes), allowing better parallelization
 
1522
  on multi-CPU systems. Contributed by Lukas Lueg (ebfe) and Victor Stinner.
 
1523
 
 
1524
- Issue #4051: Prevent conflict of UNICODE macros in cPickle.
 
1525
 
 
1526
- Issue #4738: Each zlib object now has a separate lock, allowing to compress
 
1527
  or decompress several streams at once on multi-CPU systems. Also, the GIL
 
1528
  is now released when computing the CRC of a large buffer. Patch by ebfe.
 
1529
 
 
1530
- Issue #4228: Pack negative values the same way as 2.4 in struct's L format.
 
1531
 
 
1532
- Issue #1040026: Fix os.times result on systems where HZ is incorrect.
 
1533
 
 
1534
- Issues #3167, #3682: Fix test_math failures for log, log10 on Solaris,
 
1535
  OpenBSD.
 
1536
 
 
1537
- Issue #4583: array.array would not always prohibit resizing when a buffer
 
1538
  has been exported, resulting in an interpreter crash when accessing the
 
1539
  buffer.
 
1540
 
 
1541
 
 
1542
- Issue #5228: Make functools.partial objects can now be pickled.
 
1543
 
 
1544
Tests
 
1545
-----
 
1546
 
 
1547
- Issue #5450: Moved tests involving loading tk from Lib/test/test_tcl to
 
1548
  Lib/tkinter/test/test_tkinter/test_loadtk. With this, these tests demonstrate
 
1549
  the same behaviour as test_ttkguionly (and now also test_tk) which is to
 
1550
  skip the tests if DISPLAY is defined but can't be used.
 
1551
 
 
1552
- regrtest no longer treats ImportError as equivalent to SkipTest.  Imports
 
1553
  that should cause a test to be skipped are now done using import_module
 
1554
  from test support, which does the conversion.
 
1555
 
 
1556
- Issue #5083: New 'gui' resource for regrtest.
 
1557
 
 
1558
 
 
1559
Docs
 
1560
----
 
1561
 
 
1562
 
 
1563
**(For information about older versions, consult the HISTORY file.)**