Repository navigation
Expand file tree
/
Copy pathNEWS
More file actions
6798 lines (4541 loc) · 250 KB
/
Copy pathNEWS
File metadata and controls
6798 lines (4541 loc) · 250 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
+++++++++++
Python News
+++++++++++
What's New in Python 2.7.1?
===========================
*Release date: 2010-11-27*
Library
-------
- Issue #10092: Properly reset locale in calendar.Locale*Calendar classes.
- Issue #10459: Update CJK character names to Unicode 5.2.
- Issue #6098: Don't claim DOM level 3 conformance in minidom.
- Issue #5762: Fix AttributeError raised by ``xml.dom.minidom`` when an empty
XML namespace attribute is encountered.
- Issue #1710703: Write structures for an empty ZIP archive when a ZipFile is
created in modes 'a' or 'w' and then closed without adding any files. Raise
BadZipfile (rather than IOError) when opening small non-ZIP files.
- Issue #4493: urllib2 adds '/' in front of path components which does not
start with '/. Common behavior exhibited by browsers and other clients.
- Issue #6378: idle.bat now runs with the appropriate Python version rather than
the system default. Patch by Sridhar Ratnakumar.
- Issue #10407: Fix one NameError in distutils.
- Issue #10198: fix duplicate header written to wave files when writeframes()
is called without data.
- Issue #10467: Fix BytesIO.readinto() after seeking into a position after the
end of the file.
- Issue #5111: IPv6 Host in the Header is wrapped inside [ ]. Patch by Chandru.
Build
-----
- Backport r83399 to allow test_distutils to pass on installed versions.
- Issue #1303434: Generate ZIP file containing all PDBs.
Tests
-----
- Issue #9424: Replace deprecated assert* methods in the Python test suite.
Documentation
-------------
- Issue #10299: List the built-in functions in a table in functions.rst.
What's New in Python 2.7.1 release candidate 1?
===============================================
*Release date: 2010-11-13*
Core and Builtins
-----------------
- Issue #10221: dict.pop(k) now has a key error message that includes the
missing key (same message d[k] returns for missing keys).
- Issue #10125: Don't segfault when the iterator passed to
``file.writelines()`` closes the file.
- Issue #10186: Fix the SyntaxError caret when the offset is equal to the
length of the offending line.
- Issue #9997: Don't let the name "top" have special significance in scope
resolution.
- Issue #9862: Compensate for broken PIPE_BUF in AIX by hard coding
its value as the default 512 when compiling on AIX.
- Issue #9675: CObject use is marked as a Py3k warning, not a deprecation
warning.
- Issue #10068: Global objects which have reference cycles with their module's
dict are now cleared again. This causes issue #7140 to appear again.
- Issue #9869: Make long() and PyNumber_Long return something of type
long for a class whose __long__ method returns a plain int. This
fixes an interpreter crash when initializing an instance of a long
subclass from an object whose __long__ method returns a plain int.
- Issue #10006: type.__abstractmethods__ now raises an AttributeError.
- Issue #9797: pystate.c wrongly assumed that zero couldn't be a valid
thread-local storage key.
- Issue #4947: The write() method of sys.stdout and sys.stderr uses their
encoding and errors attributes instead of using utf-8 in strict mode, to get
the same behaviour than the print statement.
- Issue #9737: Fix a crash when trying to delete a slice or an item from
a memoryview object.
- Restore GIL in nis_cat in case of error.
- Issue #9688: __basicsize__ and __itemsize__ must be accessed as Py_ssize_t.
- Issue #8530: Prevent stringlib fastsearch from reading beyond the front
of an array.
- Issue #83755: Implicit set-to-frozenset conversion was not thread-safe.
- Issue #9416: Fix some issues with complex formatting where the
output with no type specifier failed to match the str output:
- format(complex(-0.0, 2.0), '-') omitted the real part from the output,
- format(complex(0.0, 2.0), '-') included a sign and parentheses.
- Issue #7616: Fix copying of overlapping memoryview slices with the Intel
compiler.
Library
-------
- Issue 9926: Wrapped TestSuite subclass does not get __call__ executed
- Issue #4471: Properly shutdown socket in IMAP.shutdown(). Patch by
Lorenzo M. Catucci.
- Issue #10126: Fix distutils' test_build when Python was built with
--enable-shared.
- Fix typo in one sdist option (medata-check).
- Issue #9199: Fix incorrect use of distutils.cmd.Command.announce.
- Issue #1718574: Fix options that were supposed to accept arguments but did
not in build_clib.
- Issue #9281: Prevent race condition with mkdir in distutils. Patch by
Arfrever.
- Issue #10229: Fix caching error in gettext.
- Issue #10252: Close file objects in a timely manner in distutils code and
tests. Patch by Brian Brazil, completed by Éric Araujo.
- Issue #10311: The signal module now restores errno before returning from
its low-level signal handler. Patch by Hallvard B Furuseth.
- Issue #10038: json.loads() on str should always return unicode (regression
from Python 2.6). Patch by Walter Dörwald.
- Issue #120176: Wrapped TestSuite subclass does not get __call__ executed.
- Issue #6706: asyncore accept() method no longer raises
EWOULDBLOCK/ECONNABORTED on incomplete connection attempt but returns None
instead.
- Issue #10266: uu.decode didn't close in_file explicitly when it was given
as a filename. Patch by Brian Brazil.
- Issue #10246: uu.encode didn't close file objects explicitly when filenames
were given to it. Patch by Brian Brazil.
- Issue #10253: FileIO leaks a file descriptor when trying to open a file
for append that isn't seekable. Patch by Brian Brazil.
- Issue #6105: json.dumps now respects OrderedDict's iteration order.
- Issue #9295: Fix a crash under Windows when calling close() on a file
object with custom buffering from two threads at once.
- Issue #5027: The standard ``xml`` namespace is now understood by
xml.sax.saxutils.XMLGenerator as being bound to
http://www.w3.org/XML/1998/namespace. Patch by Troy J. Farrell.
- Issue #10163: Skip unreadable registry keys during mimetypes
initialization.
- Issue #5117: Fixed root directory related issue on posixpath.relpath() and
ntpath.relpath().
- Issue 9409: Fix the regex to match all kind of filenames, for interactive
debugging in doctests.
- Issue #6612: Fix site and sysconfig to catch os.getcwd() error, eg. if the
current directory was deleted. Patch written by W. Trevor King.
- Issue #10045: Improved performance when writing after seeking past the
end of the "file" in cStringIO.
- Issue #9948: Fixed problem of losing filename case information.
- Issue #9437: Fix building C extensions with non-default LDFLAGS.
- Issue #9759: GzipFile now raises ValueError when an operation is attempted
after the file is closed. Patch by Jeffrey Finkelstein.
- Issue #9042: Fix interaction of custom translation classes and caching in
gettext.
- Issue #9065: tarfile no longer uses "root" as the default for the uname and
gname field.
- Issue #1050268: parseaddr now correctly quotes double quote and backslash
characters that appear inside quoted strings in email addresses.
- Issue #10004: quoprimime no longer generates a traceback when confronted
with invalid characters after '=' in a Q-encoded word.
- Issue #9950: Fix socket.sendall() crash or misbehaviour when a signal is
received. Now sendall() properly calls signal handlers if necessary,
and retries sending if these returned successfully, including on sockets
with a timeout.
- Issue #9947: logging: Fixed locking bug in stopListening.
- Issue #9945: logging: Fixed locking bugs in addHandler/removeHandler.
- Issue #9936: Fixed executable lines' search in the trace module.
- Issue #9928: Properly initialize the types exported by the bz2 module.
- Issue #9854: The default read() implementation in io.RawIOBase now
handles non-blocking readinto() returning None correctly.
- Issue #9729: Fix the signature of SSLSocket.recvfrom() and
SSLSocket.sendto() to match the corresponding socket methods. Also,
fix various SSLSocket methods to raise socket.error rather than an
unhelpful TypeError when called on an unconnected socket. Original patch
by Andrew Bennetts.
- Issue #9826: OrderedDict.__repr__ can now handle self-referential
values: d['x'] = d.
- Issue #767645: Set os.path.supports_unicode_filenames to True on Mac OS X.
- Issue #9837: The read() method of ZipExtFile objects (as returned by
ZipFile.open()) could return more bytes than requested.
- Issue #9825: removed __del__ from the definition of collections.OrderedDict.
This prevents user-created self-referencing ordered dictionaries from
becoming permanently uncollectable GC garbage. The downside is that
removing __del__ means that the internal doubly-linked list has to wait for
GC collection rather than freeing memory immediately when the refcnt drops
to zero.
- Issue #9816: random.Random.jumpahead(n) did not produce a sufficiently
different internal state for small values of n. Fixed by salting the
value.
- Issue #9792: In case of connection failure, socket.create_connection()
would swallow the exception and raise a new one, making it impossible
to fetch the original errno, or to filter timeout errors. Now the
original error is re-raised.
- Issue #9758: When fcntl.ioctl() was called with mutable_flag set to True,
and the passed buffer was exactly 1024 bytes long, the buffer wouldn't
be updated back after the system call. Original patch by Brian Brazil.
- Issue #1100562: Fix deep-copying of objects derived from the list and
dict types. Patch by Michele Orrù and Björn Lindqvist.
- Issue #7005: Fixed output of None values for RawConfigParser.write and
ConfigParser.write.
- Issue #808164: Fixed socket.close to avoid references to globals, to
avoid issues when socket.close is called from a __del__ method.
- Issue #2986: difflib.SequenceMatcher gets a new parameter, autojunk, which
can be set to False to turn off the previously undocumented 'popularity'
heuristic. Patch by Terry Reedy and Eli Bendersky
- Issue #8797: urllib2 does a retry for Basic Authentication failure instead of
falling into recursion.
- Issue #1194222: email.utils.parsedate now returns RFC2822 compliant four
character years even if the message contains RFC822 two character years.
- Issue #8750: Fixed MutableSet's methods to correctly handle
reflexive operations, namely x -= x and x ^= x.
- Issue #9129: smtpd.py is vulnerable to DoS attacks deriving from missing
error handling when accepting a new connection.
- Issue #658749: asyncore's connect() method now correctly interprets winsock
errors.
- Issue #9501: Fixed logging regressions in cleanup code.
- Issue #9214: Set operations on KeysView or ItemsView in the collections
module now correctly return a set. (Patch by Eli Bendersky.)
- Issue #9617: Signals received during a low-level write operation aren't
ignored by the buffered IO layer anymore.
- Issue #2521: Use weakrefs on for caching in the abc module, so that classes
are not held onto after they are deleted elsewhere.
- Issue #9626: the view methods for collections.OrderedDict() were returning
the unordered versions inherited from dict. Those methods are now
overridden to provide ordered views.
- Issue #8688: MANIFEST files created by distutils now include a magic
comment indicating they are generated. Manually maintained MANIFESTs
without this marker will not be overwritten or removed.
- Issue #7467: when reading a file from a ZIP archive, its CRC is checked
and a BadZipfile error is raised if it doesn't match (as used to be the
case in Python 2.5 and earlier).
- Issue #9550: a BufferedReader could issue an additional read when the
original read request had been satisfied, which could block indefinitely
when the underlying raw IO channel was e.g. a socket. Report and original
patch by Jason V. Miller.
- Issue #9551: Don't raise TypeError when setting the value to None for
SafeConfigParser instances constructed with allow_no_value == True.
- Issue #6915: Under Windows, os.listdir() didn't release the Global
Interpreter Lock around all system calls. Original patch by Ryan Kelly.
- Issue #3757: thread-local objects now support cyclic garbage collection.
Thread-local objects involved in reference cycles will be deallocated
timely by the cyclic GC, even if the underlying thread is still running.
- Issue #6231: Fix xml.etree.ElementInclude to include the tail of the
current node.
- Issue #6869: Fix a refcount problem in the _ctypes extension.
- Issue5504 - ctypes should now work with systems where mmap can't be
PROT_WRITE and PROT_EXEC.
- Fix Issue8280 - urllib2's Request method will remove fragements in the url.
This is how it is supposed to work, wget and curl do the same. Previous
behavior was wrong.
- Issue #2944: asyncore doesn't handle connection refused correctly.
- Issue #3196: email header decoding is now forgiving if an RFC2047
encoded word encoded in base64 is lacking padding.
- Issue #9444: Argparse now uses the first element of prefix_chars as
the option character for the added 'h/help' option if prefix_chars
does not contain a '-', instead of raising an error.
- Issue #9354: Provide getsockopt() in asyncore's file_wrapper.
- Issue #9428: Fix running scripts with the profile/cProfile modules from
the command line.
- Issue #7781: Fix restricting stats by entry counts in the pstats
interactive browser.
- Issue #9209: Do not crash in the pstats interactive browser on invalid
regular expressions.
- Issue #7372: Fix pstats regression when stripping paths from profile
data generated with the profile module.
- Issue #4108: In urllib.robotparser, if there are multiple 'User-agent: *'
entries, consider the first one.
- Issue #8397: Raise an error when attempting to mix iteration and regular
reads on a BZ2File object, rather than returning incorrect results.
- Issue #5294: Fix the behavior of pdb's "continue" command when called
in the top-level debugged frame.
- Issue #5727: Restore the ability to use readline when calling into pdb
in doctests.
- Issue #6719: In pdb, do not stop somewhere in the encodings machinery
if the source file to be debugged is in a non-builtin encoding.
- Issue #8048: Prevent doctests from failing when sys.displayhook has
been reassigned.
- Issue #8015: In pdb, do not crash when an empty line is entered as
a breakpoint command.
- Issue #9448: Fix a leak of OS resources (mutexes or semaphores) when
re-initializing a buffered IO object by calling its ``__init__`` method.
- Issue #7909: Do not touch paths with the special prefixes ``\\.\``
or ``\\?\`` in ntpath.normpath().
- Issue #5146: Handle UID THREAD command correctly in imaplib.
- Issue #5147: Fix the header generated for cookie files written by
http.cookiejar.MozillaCookieJar.
- Issue #8198: In pydoc, output all help text to the correct stream
when sys.stdout is reassigned.
- Issue #7395: Fix tracebacks in pstats interactive browser.
- Issue #8230: Fix Lib/test/sortperf.py.
- Issue #1713: Fix os.path.ismount(), which returned true for symbolic links
across devices.
- Issue #8826: Properly load old-style "expires" attribute in http.cookies.
- Issue #1690103: Fix initial namespace for code run with trace.main().
- Issue #8471: In doctest, properly reset the output stream to an empty
string when Unicode was previously output.
- Issue #8620: when a Cmd is fed input that reaches EOF without a final
newline, it no longer truncates the last character of the last command line.
- Issue #6213: Implement getstate() and setstate() methods of utf-8-sig and
utf-16 incremental encoders.
- Issue #7113: Speed up loading in ConfigParser. Patch by Łukasz Langa.
- Issue #3704: cookielib was not properly handling URLs with a / in the
parameters.
- Issue #9032: XML-RPC client retries the request on EPIPE error. The EPIPE
error occurs when the server closes the socket and the client sends a big
XML-RPC request.
- Issue #5542: Remove special logic that closes HTTPConnection socket on EPIPE.
- Issue #4629: getopt raises an error if an argument ends with = whereas getopt
doesn't except a value (eg. --help= is rejected if getopt uses ['help='] long
options).
- Issue #7895: platform.mac_ver() no longer crashes after calling os.fork()
- Issue #5395: array.fromfile() would raise a spurious EOFError when an
I/O error occurred. Now an IOError is raised instead. Patch by chuck
(Jan Hosang).
- Issue #7646: The fnmatch pattern cache no longer grows without bound.
- Issue #9136: Fix 'dictionary changed size during iteration'
RuntimeError produced when profiling the decimal module. This was
due to a dangerous iteration over 'locals()' in Context.__init__.
- Fix extreme speed issue in Decimal.pow when the base is an exact
power of 10 and the exponent is tiny (for example,
Decimal(10) ** Decimal('1e-999999999')).
- Issue #9161: Fix regression in optparse's acceptance of unicode
strings in add_option calls.
- Issue #9130: Fix validation of relative imports in parser module.
- Issue #9128: Fix validation of class decorators in parser module.
- Issue #9164: Ensure sysconfig handles dupblice archs while building on OSX
- Issue #9315: Fix for the trace module to record correct class name
for tracing methods.
Extension Modules
-----------------
- Issue #9054: Fix a crash occurring when using the pyexpat module
with expat version 2.0.1.
- Issue #10003: Allow handling of SIGBREAK on Windows. Fixes a regression
introduced by issue #9324.
- Issue #8734: Avoid crash in msvcrt.get_osfhandle() when an invalid file
descriptor is provided. Patch by Pascal Chambon.
- Issue #7736: Release the GIL around calls to opendir() and closedir()
in the posix module. Patch by Marcin Bachry.
- As a result of issue #2521, the _weakref module is now compiled into the
interpreter by default.
- Issue #9324: Add parameter validation to signal.signal on Windows in order
to prevent crashes.
- Issue #9526: Remove some outdated (int) casts that were preventing
the array module from working correctly with arrays of more than
2**31 elements.
- Fix memory leak in ssl._ssl._test_decode_cert.
- Issue #8065: Fix memory leak in readline module (from failure to
free the result of history_get_history_state()).
- Issue #9450: Fix memory leak in readline.replace_history_item and
readline.remove_history_item for readline version >= 5.0.
- Issue #8105: Validate file descriptor passed to mmap.mmap on Windows.
- Issue #1019882: Fix IndexError when loading certain hotshot stats.
- Issue #9422: Fix memory leak when re-initializing a struct.Struct object.
- Issue #7900: The getgroups(2) system call on MacOSX behaves rather oddly
compared to other unix systems. In particular, os.getgroups() does
not reflect any changes made using os.setgroups() but basicly always
returns the same information as the id command.
os.getgroups() can now return more than 16 groups on MacOSX.
- Issue #9277: Fix bug in struct.pack for bools in standard mode
(e.g., struct.pack('>?')): if conversion to bool raised an exception
then that exception wasn't properly propagated on machines where
char is unsigned.
- Issue #7567: Don't call `setupterm' twice.
Tools/Demos
-----------
- Issue #7287: Demo/imputil/knee.py was removed.
- Issue #9188: The gdb extension now handles correctly narrow (UCS2) as well
as wide (UCS4) unicode builds for both the host interpreter (embedded
inside gdb) and the interpreter under test.
Build
-----
- Issue #8852: Allow the socket module to build on OpenSolaris.
- Issue #10054: Some platforms provide uintptr_t in inttypes.h. Patch by
Akira Kitada.
- Issue #10055: Make json C89-compliant in UCS4 mode.
- Issue #1633863: Don't ignore $CC under AIX.
- Issue #9810: Compile bzip2 source files in python's project file
directly. It used to be built with bzip2's makefile.
- Issue #941346: Improve the build process under AIX and allow Python to
be built as a shared library. Patch by Sébastien Sablé.
- Issue #4026: Make the fcntl extension build under AIX. Patch by Sébastien
Sablé.
- Issue #3101: Helper functions _add_one_to_index_C() and
_add_one_to_index_F() become _Py_add_one_to_index_C() and
_Py_add_one_to_index_F(), respectively.
- Issue #9700: define HAVE_BROKEN_POSIX_SEMAPHORES under AIX 6.x. Patch by
Sébastien Sablé.
- Issue #9280: Make sharedinstall depend on sharedmods.
- Issue #9275: The OSX installer once again installs links to binaries in
``/usr/local/bin``.
- Issue #9392: A framework build on OSX will once again use a versioned name
of the ``2to3`` tool, that is you can use ``2to3-2.7`` to select the Python
2.7 edition of 2to3.
- Issue #9701: The MacOSX installer can patch the shell profile to ensure that
the "bin" directory inside the framework is on the shell's search path. This
feature now also supports the ZSH shell.
- Issue #7473: avoid link errors when building a framework with a different
set of architectures than the one that is currently installed.
Tests
-----
- Issue #9978: Wait until subprocess completes initialization. (Win32KillTests
in test_os)
- Issue #9894: Do not hardcode ENOENT in test_subprocess.
- Issue #9323: Make test.regrtest.__file__ absolute, this was not always the
case when running profile or trace, for example.
- Issue #9315: Added tests for the trace module. Patch by Eli Bendersky.
- Strengthen test_unicode with explicit type checking for assertEqual tests.
- Issue #8857: Provide a test case for socket.getaddrinfo.
- Issue #7564: Skip test_ioctl if another process is attached to /dev/tty.
- Issue #8433: Fix test_curses failure with newer versions of ncurses.
- Issue #9496: Provide a test suite for the rlcompleter module. Patch by
Michele Orrù.
- Issue #8605: Skip test_gdb if Python is compiled with optimizations.
- Issue #9568: Fix test_urllib2_localnet on OS X 10.3.
Documentation
-------------
- Issue #9817: Add expat COPYING file; add expat, libffi and expat licenses
to Doc/license.rst.
- Issue #9524: Document that two CTRL* signals are meant for use only
with os.kill.
- Issue #9255: Document that the 'test' package is for internal Python use
only.
- Issue #7829: Document in dis that bytecode is an implementation detail.
What's New in Python 2.7?
=========================
*Release date: 2010-07-03*
Core and Builtins
-----------------
- Prevent assignment to set literals.
Library
-------
- Issue #1868: Eliminate subtle timing issues in thread-local objects by
getting rid of the cached copy of thread-local attribute dictionary.
- Issue #9125: Add recognition of 'except ... as ...' syntax to parser module.
Extension Modules
-----------------
- Issue #7673: Fix security vulnerability (CVE-2010-2089) in the audioop module,
ensure that the input string length is a multiple of the frame size.
- Issue #9075: In the ssl module, remove the setting of a ``debug`` flag
on an OpenSSL structure.
What's New in Python 2.7 release candidate 2?
=============================================
*Release date: 2010-06-20*
Core and Builtins
-----------------
- Issue #9058: Remove assertions about INT_MAX in UnicodeDecodeError.
- Issue #8202: Previous change to ``sys.argv[0]`` handling for -m command line
option reverted due to unintended side effects on handling of ``sys.path``.
See tracker issue for details.
- Issue #8941: decoding big endian UTF-32 data in UCS-2 builds could crash
the interpreter with characters outside the Basic Multilingual Plane
(higher than 0x10000).
- In the unicode/str.format(), raise a ValueError when indexes to arguments are
too large.
Build
-----
- Issue #8854: Fix finding Visual Studio 2008 on Windows x64.
Library
-------
- Issue #6589: cleanup asyncore.socket_map in case smtpd.SMTPServer constructor
raises an exception.
- Issue #8959: fix regression caused by using unmodified libffi
library on Windows. ctypes does now again check the stack before
and after calling foreign functions.
- Issue #8720: fix regression caused by fix for #4050 by making getsourcefile
smart enough to find source files in the linecache.
- Issue #8986: math.erfc was incorrectly raising OverflowError for
values between -27.3 and -30.0 on some platforms.
- Issue #8924: logging: Improved error handling for Unicode in exception text.
- Issue #8948: cleanup functions and class / module setups and teardowns are
now honored in unittest debug methods.
Documentation
-------------
- Issues #8909: Added the size of the bitmap used in the installer created by
distutils' bdist_wininst. Patch by Anatoly Techtonik.
Misc
----
- Issue #8362: Add maintainers.rst: list of module maintainers
What's New in Python 2.7 Release Candidate 1?
=============================================
*Release date: 2010-06-05*
Core and Builtins
-----------------
- Issue #8271: during the decoding of an invalid UTF-8 byte sequence, only the
start byte and the continuation byte(s) are now considered invalid, instead
of the number of bytes specified by the start byte.
E.g.: '\xf1\x80AB'.decode('utf-8', 'replace') now returns u'\ufffdAB' and
replaces with U+FFFD only the start byte ('\xf1') and the continuation byte
('\x80') even if '\xf1' is the start byte of a 4-bytes sequence.
Previous versions returned a single u'\ufffd'.
- Issue #8627: Remove bogus "Overriding __cmp__ blocks inheritance of
__hash__ in 3.x" warning. Also fix "XXX undetected error" that
arises from the "Overriding __eq__ blocks inheritance ..." warning
when turned into an exception: in this case the exception simply
gets ignored.
- Issue #8748: Fix two issues with comparisons between complex and integer
objects. (1) The comparison could incorrectly return True in some cases
(2**53+1 == complex(2**53) == 2**53), breaking transivity of equality.
(2) The comparison raised an OverflowError for large integers, leading
to unpredictable exceptions when combining integers and complex objects
in sets or dicts.
- Issue #5211: Implicit coercion for the complex type is now completely
removed. (Coercion for arithmetic operations was already removed in 2.7
alpha 4, but coercion for rich comparisons was accidentally left in.)
- Issue #3798: Write sys.exit() message to sys.stderr to use stderr encoding
and error handler, instead of writing to the C stderr file in utf-8
- Issue #7902: When using explicit relative import syntax, don't try implicit
relative import semantics.
- Issue #7079: Fix a possible crash when closing a file object while using it
from another thread. Patch by Daniel Stutzbach.
- Issue #8868: Fix that ensures that python scripts have access to the
Window Server again in a framework build on MacOSX 10.5 or earlier.
C-API
-----
- Issue #5753: A new C API function, :cfunc:`PySys_SetArgvEx`, allows embedders
of the interpreter to set sys.argv without also modifying sys.path. This
helps fix `CVE-2008-5983
<http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-5983>`_.
Library
-------
- Issue #8302: SkipTest in unittest.TestCase.setUpClass or setUpModule is now
reported as a skip rather than an error.
- Issue #8351: Excessively large diffs due to
unittest.TestCase.assertSequenceEqual are no longer included in failure
reports.
- Issue #8899: time.struct_time now has class and atribute docstrings.
- Issue #4487: email now accepts as charset aliases all codec aliases
accepted by the codecs module.
- Issue #6470: Drop UNC prefix in FixTk.
- Issue #5610: feedparser no longer eats extra characters at the end of
a body part if the body part ends with a \r\n.
- Issue #8833: tarfile created hard link entries with a size field != 0 by
mistake.
- Issue #1368247: set_charset (and therefore MIMEText) now automatically
encodes a unicode _payload to the output_charset.
- Issue #7150: Raise OverflowError if the result of adding or subtracting
timedelta from date or datetime falls outside of the MINYEAR:MAXYEAR range.
- Issue #6662: Fix parsing of malformatted charref (&#bad;), patch written by
Fredrik Håård
- Issue #8016: Add the CP858 codec.
- Issue #3924: Ignore cookies with invalid "version" field in cookielib.
- Issue #6268: Fix seek() method of codecs.open(), don't read or write the BOM
twice after seek(0). Fix also reset() method of codecs, UTF-16, UTF-32 and
StreamWriter classes.
- Issue #5640: Fix Shift-JIS incremental encoder for error handlers different
than 'strict'.
- Issue #8782: Add a trailing newline in linecache.updatecache to the last line
of files without one.
- Issue #8729: Return NotImplemented from ``collections.Mapping.__eq__()`` when
comparing to a non-mapping.
- Issue #8759: Fix user paths in sysconfig for posix and os2 schemes.
- Issue #1285086: Speed up ``urllib.quote()`` and urllib.unquote for simple
cases.
- Issue #8688: Distutils now recalculates MANIFEST everytime.
- Issue #5099: The ``__del__()`` method of ``subprocess.Popen`` (and the methods
it calls) referenced global objects, causing errors to pop up during
interpreter shutdown.
Extension Modules
-----------------
- Issue #7384: If the system readline library is linked against ncurses,
the curses module must be linked against ncurses as well. Otherwise it
is not safe to load both the readline and curses modules in an application.
- Issue #2810: Fix cases where the Windows registry API returns
ERROR_MORE_DATA, requiring a re-try in order to get the complete result.
- Issue #8674: Fixed a number of incorrect or undefined-behaviour-inducing
overflow checks in the ``audioop`` module.
Tests
-----
- Issue #8889: test_support.transient_internet rewritten so that the new
checks also work on FreeBSD, which lacks EAI_NODATA.
- Issue #8835: test_support.transient_internet() catches gaierror(EAI_NONAME)
and gaierror(EAI_NODATA)
- Issue #7449: Skip test_socketserver if threading support is disabled
- On darwin, ``test_site`` assumed that a framework build was being used,
leading to a failure where four directories were expected for site-packages
instead of two in a non-framework build.
Build
-----
- Display installer warning that Windows 2000 won't be supported in future
releases.
- Issues #1759169, #8864: Drop _XOPEN_SOURCE on Solaris, define it for
multiprocessing only.
Tools/Demos
-----------
- Issue #5464: Implement plural forms in msgfmt.py.
What's New in Python 2.7 beta 2?
================================
*Release date: 2010-05-08*
Core and Builtins
-----------------
- Run Clang 2.7's static analyzer for ``Objects/`` and ``Python/``.
- Issue #1533: Fix inconsistency in range function argument processing: any
non-float non-integer argument is now converted to an integer (if possible)
using its __int__ method. Previously, only small arguments were treated this
way; larger arguments (those whose __int__ was outside the range of a C long)
would produce a TypeError.
- Issue #8202: ``sys.argv[0]`` is now set to '-m' instead of '-c' when searching
for the module file to be executed with the -m command line option.
- Issue #7319: When -Q is used, do not silence DeprecationWarning.
- Issue #7332: Remove the 16KB stack-based buffer in
``PyMarshal_ReadLastObjectFromFile``, which doesn't bring any noticeable
benefit compared to the dynamic memory allocation fallback. Patch by
Charles-François Natali.
- Issue #8417: Raise an OverflowError when an integer larger than sys.maxsize is
passed to bytearray.
- Issue #7072: ``isspace(0xa0)`` is true on Mac OS X.
- Issue #8404: Fix set operations on dictionary views.
- Issue #8084: PEP 370 now conforms to system conventions for framework builds
on MacOS X. That is, ``python setup.py install --user`` will install into
``~/Library/Python/2.7`` instead of ``~/.local``.
Library
-------
- Issue #8681: Make the zlib module's error messages more informative when the
zlib itself doesn't give any detailed explanation.
- Issue #8571: Fix an internal error when compressing or decompressing a chunk
larger than 1GB with the zlib module's compressor and decompressor objects.
- Issue #8573: asyncore ``_strerror()`` function might throw ValueError.
- Issue #8483: asyncore.dispatcher's __getattr__ method produced confusing error
messages when accessing undefined class attributes because of the cheap
inheritance with the underlying socket object. The cheap inheritance has been
deprecated.
- Issue #4265: ``shutil.copyfile()`` was leaking file descriptors when disk
fills. Patch by Tres Seaver.
- Issue #7755: Use an unencumbered audio file for tests.
- Issue #8621: ``uuid.uuid4()`` returned the same sequence of values in the
parent and any children created using ``os.fork`` on Mac OS X 10.6.
- Issue #8313: ``traceback.format_exception_only()`` encodes unicode message to
ASCII with backslashreplace error handler if ``str(value)`` failed.
- Issue #8567: Fix precedence of signals in Decimal module: when a Decimal
operation raises multiple signals and more than one of those signals is
trapped, the specification determines the order in which the signals should be
handled. In many cases this order wasn't being followed, leading to the wrong
Python exception being raised.
- Issue #7865: The close() method of :mod:`io` objects should not swallow
exceptions raised by the implicit flush(). Also ensure that calling close()
several times is supported. Patch by Pascal Chambon.
- Issue #8576: logging updated to remove usage of find_unused_port().
- Issue #4687: Fix accuracy of garbage collection runtimes displayed with
gc.DEBUG_STATS.
- Issue #8354: The siginterrupt setting is now preserved for all signals, not
just SIGCHLD.
- Issue #7192: ``webbrowser.get("firefox")`` now works on Mac OS X, as does
``webbrowser.get("safari")``.
- Issue #8577: ``distutils.sysconfig.get_python_inc()`` now makes a difference
between the build dir and the source dir when looking for "python.h" or
"Include".
- Issue #8464: tarfile no longer creates files with execute permissions set when
mode="w|" is used.
- Issue #7834: Fix connect() of Bluetooth L2CAP sockets with recent versions of
the Linux kernel. Patch by Yaniv Aknin.
- Issue #6312: Fix http HEAD request when the transfer encoding is chunked. It
should correctly return an empty response now.
- Issue #7490: To facilitate sharing of doctests between 2.x and 3.x test
suites, the ``IGNORE_EXCEPTION_DETAIL`` directive now also ignores the module
location of the raised exception. Based on initial patch by Lennart Regebro.
- Issue #8086: In :func:`ssl.DER_cert_to_PEM_cert()`, fix missing newline before
the certificate footer. Patch by Kyle VanderBeek.
- Issue #8546: Reject None given as the buffering argument to ``_pyio.open()``.
- Issue #8549: Fix compiling the _ssl extension under AIX. Patch by Sridhar
Ratnakumar.
- Issue #6656: Fix locale.format_string to handle escaped percents and mappings.
- Issue #2302: Fix a race condition in SocketServer.BaseServer.shutdown, where
the method could block indefinitely if called just before the event loop
started running. This also fixes the occasional freezes witnessed in
test_httpservers.
- Issue #5103: SSL handshake would ignore the socket timeout and block
indefinitely if the other end didn't respond.
- The do_handshake() method of SSL objects now adjusts the blocking mode of the
SSL structure if necessary (as other methods already do).
- Issue #7507: Quote "!" in pipes.quote(); it is special to some shells.
- Issue #5238: Calling makefile() on an SSL object would prevent the underlying
socket from being closed until all objects get truely destroyed.
- Issue #7943: Fix circular reference created when instantiating an SSL socket.
Initial patch by Péter Szabó.
- Issue #8451: Syslog module now uses basename(sys.argv[0]) instead of the
string "python" as the *ident*. openlog() arguments are all optional and
keywords.
- Issue #8108: Fix the unwrap() method of SSL objects when the socket has a
non-infinite timeout. Also make that method friendlier with applications
wanting to continue using the socket in clear-text mode, by disabling
OpenSSL's internal readahead. Thanks to Darryl Miles for guidance.
- Issue #8484: Load all ciphers and digest algorithms when initializing the _ssl
extension, such that verification of some SSL certificates doesn't fail
because of an "unknown algorithm".
- Issue #8437: Fix test_gdb failures, patch written by Dave Malcolm