Repository navigation
Expand file tree
/
Copy pathNEWS
More file actions
3744 lines (2499 loc) · 132 KB
/
Copy pathNEWS
File metadata and controls
3744 lines (2499 loc) · 132 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
+++++++++++
(editors: check NEWS.help for information about editing NEWS using ReST.)
What's New in Python 2.6.2
==========================
*Release date: 14-Apr-2009*
What's New in Python 2.6.2 rc 1
===============================
*Release date: 06-Apr-2009*
Core and Builtins
-----------------
- xrange() is now registered as a Sequence.
- Fix a problem in PyErr_NormalizeException that leads to "undetected errors"
when hitting the recursion limit under certain circumstances.
- Issue #1665206: Remove the last eager import in _warnings.c and make it lazy.
- Issue #4034: Fix weird attribute error messages of the traceback object. (As
a result traceback.__members__ no longer exists.)
- Issue #5247: Improve error message when unknown format codes are
used when using str.format() with str, unicode, long, int, and
float arguments.
- Running Python with the -3 option now also warns about classic division
for ints and longs.
- Issue #5013: Fixed a bug in FileHandler which occurred when the delay
parameter was set.
- Issue 1242657: the __len__() and __length_hint__() calls in several tools
were suppressing all exceptions. These include list(), filter(), map(),
zip(), and bytearray().
- Issue #4935: The overflow checking code in the expandtabs() method common
to str, bytes and bytearray could be optimized away by the compiler, letting
the interpreter segfault instead of raising an error.
- Issue #4915: Port sysmodule to Windows CE.
- Issue #1180193: When importing a module from a .pyc (or .pyo) file with
an existing .py counterpart, override the co_filename attributes of all
code objects if the original filename is obsolete (which can happen if the
file has been renamed, moved, or if it is accessed through different paths).
Patch by Ziga Seilnacht and Jean-Paul Calderone.
- Issue #4075: Use OutputDebugStringW in Py_FatalError.
- Issue #4797: IOError.filename was not set when _fileio.FileIO failed to open
file with `str' filename on Windows.
- Issue #3680: Reference cycles created through a dict, set or deque iterator
did not get collected.
- Issue #4701: PyObject_Hash now implicitly calls PyType_Ready on types
where the tp_hash and tp_dict slots are both NULL.
- Issue #4764: With io.open, IOError.filename is set when trying to open a
directory on POSIX systems.
- Issue #4764: IOError.filename is set when trying to open a directory on POSIX
systems.
- Issue #4759: None is now allowed as the first argument of
bytearray.translate(). It was always allowed for bytes.translate().
- Issue #4759: fix a segfault for bytearray.translate(x, None).
- Added test case to ensure attempts to read from a file opened for writing
fail.
- Issue #4597: Fixed several opcodes that weren't always propagating
exceptions.
- Issue #2467: gc.DEBUG_STATS reported invalid elapsed times. Also, always
print elapsed times, not only when some objects are uncollectable /
unreachable. Original patch by Neil Schemenauer.
- Issue #4589: Fixed exception handling when the __exit__ function of a
context manager returns a value that cannot be converted to a bool.
- Issue #4233: Changed semantic of ``_fileio.FileIO``'s ``close()``
method on file objects with closefd=False. The file descriptor is still
kept open but the file object behaves like a closed file. The ``FileIO``
object also got a new readonly attribute ``closefd``.
- Issue #3689: The list reversed iterator now supports __length_hint__
instead of __len__. Behavior now matches other reversed iterators.
- Issue #4509: Various issues surrounding resize of bytearray objects to
which there are buffer exports.
- Issue #3845: In PyRun_SimpleFileExFlags avoid invalid memory access with
short file names.
- Issue #5705: os.setuid() would not accept values > 2**31-1 but pwd.getpwnam()
returned them on 64bit platforms.
Library
-------
- Issue #5741: don't disallow "%%" (which is an escape for "%") when setting
a value in SafeConfigParser.
- Issue #5731: Distutils bdist_wininst no longer worked on non-Windows
platforms. Initial patch by Paul Moore.
- Issue #1491431: Fixed distutils.filelist.glob_to_re for edge cases.
Initial fix by Wayne Davison.
- Issue 5471: Fix os.path.expanduser() for $HOME set to '/'.
- Issue 1726172: fix IndexError in the case of and empty response in ftplib.
- In Pdb, prevent the reassignment of __builtin__._ by sys.displayhook on
printing out values.
- Issue #4572: added SEEK_* symbolic constants to io module.
- Issue #1665206 (partially): Move imports in cgitb to the top of the module
instead of performing them in functions. Helps prevent import deadlocking in
threads.
- Issue #5647: MutableSet.__iand__() no longer mutates self during iteration.
- Actually make the SimpleXMLRPCServer CGI handler work.
- Issue #2522: locale.format now checks its first argument to ensure it has
been passed only one pattern, avoiding mysterious errors where it appeared
that it was failing to do localization.
- Issue 2625: added missing iteritems() call to the for loop in
mailbox.MH.get_message().
- Issue #5647: MutableSet.__iand__() no longer mutates self during iteration.
- Issue #5619: Multiprocessing children disobey the debug flag and causes
popups on windows buildbots. Patch applied to work around this issue.
- Issue #5632: Thread.ident was None for the main thread and threads not
created with the threading module.
- Issue #5400: Added patch for multiprocessing on netbsd compilation/support
- Fix and properly document the multiprocessing module's logging
support, expose the internal levels and provide proper usage
examples.
- Issue #5387: Fixed mmap.move crash by integer overflow.
- Issue #5261: Patch multiprocessing's semaphore.c to support context
manager use: "with multiprocessing.Lock()" works now.
- Issue #5177: Multiprocessing's SocketListener class now uses
socket.SO_REUSEADDR on all connections so that the user no longer needs
to wait 120 seconds for the socket to expire.
- Adjusted _tkinter to compile without warnings when WITH_THREAD is not
defined (part of issue #5035).
- Issue #5561: Removed the sys.version_info shortcuts from platform's
python_version() and python_version_tuple() since they produced different
output compared to previous Python versions.
- Issue #5068: Fixed the tarfile._BZ2Proxy.read() method that would loop
forever on incomplete input. That caused tarfile.open() to hang when used
with mode 'r' or 'r:bz2' and a fileobj argument that contained no data or
partial bzip2 compressed data.
- Issue #5536: urllib.urlretrieve makes sure to close the file it's writing to
even if an exception occurs.
- Fix Decimal.__format__ bug that swapped the meanings of the '<' and
'>' alignment characters.
- Issue #1222: locale.format() bug when the thousands separator is a space
character.
- Issue #4792: Prevent a segfault in _tkinter by using the
guaranteed to be safe interp argument given to the PythonCmd in place of
the Tcl interpreter taken from a PythonCmd_ClientData.
- Issue #5193: Guarantee that Tkinter.Text.search returns a string.
- Issue #5385: Fixed mmap crash after resize failure on windows.
- Issue #5179: Fixed subprocess handle leak on failure on windows.
- Issue #4308: httplib.IncompleteRead's repr doesn't include all of the data
all ready received.
- Issue #5401: Fixed a performance problem in mimetypes when ``from mimetypes
import guess_extension`` was used.
- Issue #1733986: Fixed mmap crash in accessing elements of second map object
with same tagname but larger size than first map. (Windows)
- Issue #5386: mmap.write_byte didn't check map size, so it could cause buffer
overrun.
- Issue #5292: Fixed mmap crash on its boundary access m[len(m)].
- Issue #5282: Fixed mmap resize on 32bit windows and unix. When offset > 0,
The file was resized to wrong size.
- Issue #5287: Add exception handling around findCaller() call in logging to
help out IronPython.
- Issue #4524: distutils build_script command failed with --with-suffix=3.
Initial patch by Amaury Forgeot d'Arc.
- Issue #4998: The memory saving effect of __slots__ had been lost on Fractions
which inherited from numbers.py which did not have __slots__ defined. The
numbers hierarchy now has its own __slots__ declarations.
- Issue #5203: Fixed ctypes segfaults when passing a unicode string to a
function without argtypes (only occurs if HAVE_USABLE_WCHAR_T is false).
- Issue #3321: _multiprocessing.Connection() doesn't check handle; added checks
for *nix machines for negative handles and large int handles. Without this
check it is possible to segfault the interpreter.
- Issue #4449: AssertionError in mp_benchmarks.py, caused by an underlying
issue in sharedctypes.py.
- Issue #3386: distutils.sysconfig.get_python_lib prefix argument was ignored
under NT and OS2. Patch by Philip Jenvey.
- Issue #4890: Handle empty text search pattern in Tkinter.Text.search.
- Issue #5170: Fixed Unicode output bug in logging and added test case.
This is a regression which did not occur in 2.5.
- Partial fix to issue #1731706: memory leak in Tkapp_Call when calling
from a thread different than the one that created the Tcl interpreter.
Patch by Robert Hancock.
- Issue #5132: Fixed trouble building extensions under Solaris with
--enabled-shared activated. Initial patch by Dave Peterson.
- Issue #1581476: Always use the Tcl global namespace when calling into Tcl.
- Issue #2047: shutil.move() could believe that its destination path was
inside its source path if it began with the same letters (e.g. "src" vs.
"src.new").
- Issue 4920: Fixed .next() vs .__next__() issues in the ABCs for
Iterator and MutableSet.
- Issue 5021: doctest.testfile() did not create __name__ and
collections.namedtuple() relied on __name__ being defined.
- Issue #3881: Help Tcl to load even when started through the
unreadable local symlink to "Program Files" on Vista.
- Issue #4710: Extract directories properly in the zipfile module;
allow adding directories to a zipfile.
- Issue #5008: When a file is opened in append mode with the new IO library,
do an explicit seek to the end of file (so that e.g. tell() returns the
file size rather than 0). This is consistent with the behaviour of the
traditional 2.x file object.
- Issue #3997: zipfiles generated with more than 65536 files could not be
opened with other applications.
- Issue 4816: itertools.combinations() and itertools.product were raising
a ValueError for values of *r* larger than the input iterable. They now
correctly return an empty iterator.
- Fractions.from_float() no longer loses precision for integers too big to
cast as floats.
- Issue 4790: The nsmallest() and nlargest() functions in the heapq module
did unnecessary work in the common case where no key function was specified.
- Issue #3767: Convert Tk object to string in tkColorChooser.
- Issue #3248: Allow placing ScrolledText in a PanedWindow.
- Issue #3954: Fix a potential SystemError in _hotshot.logreader error
handling.
- Issue #4574: fix a crash in io.IncrementalNewlineDecoder when a carriage
return encodes to more than one byte in the source encoding (e.g. UTF-16)
and gets split on a chunk boundary.
- Issue #4223: inspect.getsource() will now correctly display source code
for packages loaded via zipimport (or any other conformant PEP 302
loader). Original patch by Alexander Belopolsky.
- Issue #4201: pdb can now access and display source code loaded via
zipimport (or any other conformant PEP 302 loader). Original patch by
Alexander Belopolsky.
- Issue #4197: doctests in modules loaded via zipimport (or any other PEP
302 conformant loader) will now work correctly in most cases (they
are still subject to the constraints that exist for all code running
from inside a module loaded via a PEP 302 loader and attempting to
perform IO operations based on __file__). Original patch by
Alexander Belopolsky.
- Issues #4082 and #4512: Add runpy support to zipimport in a manner that
allows backporting to maintenance branches. Original patch by
Alexander Belopolsky.
- Issue #4616: TarFile.utime(): Restore directory times on Windows.
- Issue #4483: _dbm module now builds on systems with gdbm & gdbm_compat
libs.
- FileIO's mode attribute now always includes ``"b"``.
- Issue #4861: ctypes.util.find_library(): Robustify. Fix library detection on
biarch systems. Try to rely on ldconfig only, without using objdump and gcc.
- Issue #2703: SimpleXMLRPCDispatcher.__init__: Provide default values for
new arguments introduced in 2.5.
- Issue #1885: distutils. When running sdist with --formats=tar,gztar
the tar file was overriden by the gztar one.
- Registered Decimal as a numbers.Number so that isinstance(d, Number) works.
- Issue #1672332: fix unpickling of subnormal floats, which was
producing a ValueError on some platforms.
- Restore Python 2.3 compatibility for decimal.py.
- Issue #1702551: distutils sdist was not excluding VCS directories under
Windows. Inital solution by Guy Dalberto.
- Issue #4812: add missing underscore prefix to some internal-use-only
constants in the decimal module. (Dec_0 becomes _Dec_0, etc.)
- Issue #4795: inspect.isgeneratorfunction() returns False instead of None when
the function is not a generator.
- Issue #4702: Throwing a DistutilsPlatformError instead of IOError in case
no MSVC compiler is found under Windows. Original patch by Philip Jenvey.
- Issue #4739: Add pydoc help topics for symbols, so that e.g. help('@')
works as expected in the interactive environment.
- Issue #4756: zipfile.is_zipfile() now supports file-like objects. Patch by
Gabriel Genellina.
- Issue #4646: distutils was choking on empty options arg in the setup
function. Original patch by Thomas Heller.
- Issue #4400: .pypirc default generated file was broken in distutils.
- Issue #4736: io.BufferedRWPair's closed property now functions properly.
- Issue #3954: Fix a potential SystemError in _hotshot.logreader error
handling.
- Issue #4163: Use unicode-friendly word splitting in the textwrap functions
when given an unicode string.
- Issue #4616: TarFile.utime(): Restore directory times on Windows.
- Issue #4084: Fix max, min, max_mag and min_mag Decimal methods to
give correct results in the case where one argument is a quiet NaN
and the other is a finite number that requires rounding.
- Issue #1030250: Distutils created directories even when run with the
--dry-run option.
- Issue #4483: _dbm module now builds on systems with gdbm & gdbm_compat
libs.
- Issue #4529: fix the parser module's validation of try-except-finally
statements.
- Issue #4458: getopt.gnu_getopt() now recognizes a single "-" as an argument,
not a malformed option.
- Added the subprocess.check_output() convenience function to get output
from a subprocess on success or raise an exception on error.
- Issue #1055234: cgi.parse_header(): Fixed parsing of header parameters to
support unusual filenames (such as those containing semi-colons) in
Content-Disposition headers.
- Issue #4730: Fixed the cPickle module to handle correctly astral characters
when protocol 0 is used.
- Issue #16278952: plat-mac/videoreader.py now correctly imports MediaDescr
- Issue #1737832 : plat-mac/EasyDialog.py no longer uses the broken aepack
module.
- Issue #1149804: macostools.mkdirs now even works when another process
creates one of the needed subdirectories.
Tools/Demos
-----------
- Issue #4677: add two list comprehension tests to pybench.
Extension Modules
-----------------
- Issue #4301: Patch the logging module to add processName support, remove
_check_logger_class from multiprocessing.
- Issue #1040026: Fix os.times result on systems where HZ is incorrect.
- Issue #4397: Fix occasional test_socket failure on OS X.
- Issue #4279: Fix build of parsermodule under Cygwin.
- Issue #4051: Prevent conflict of UNICODE macros in cPickle.
- Issue #4228: Pack negative values the same way as 2.4 in struct's L format.
- Issue #1040026: Fix os.times result on systems where HZ is incorrect.
- Issues #3167, #3682: Fix test_math failures for log, log10 on Solaris,
OpenBSD.
Build
-----
- Link the shared python library with $(MODLIBS).
- Issue #5134: Silence compiler warnings when compiling sqlite with VC++.
- Issue #4494: Fix build with Py_NO_ENABLE_SHARED on Windows.
- Issue #4895: Use _strdup on Windows CE.
- Issue #4472: "configure --enable-shared" now works on OSX
- Issues #4728 and #4060: WORDS_BIGEDIAN is now correct in Universal builds.
C-API
-----
- Issue #4720: The format for PyArg_ParseTupleAndKeywords can begin with '|'.
- Issue #3632: from the gdb debugger, the 'pyo' macro can now be called when
the GIL is released, or owned by another thread.
Tests
-----
- Issue #5635: Fix running test_sys with tracing enabled.
- regrtest no longer treats ImportError as equivalent to SkipTest. Imports
that should cause a test to be skipped are now done using import_module
from test support, which does the conversion.
- Issue #5083: New 'gui' resource for regrtest.
What's New in Python 2.6.1
==========================
*Release date: 04-Dec-2008*
Core and Builtins
-----------------
- Issue #3996: On Windows, the PyOS_CheckStack function would cause the
interpreter to abort ("Fatal Python error: Could not reset the stack!")
instead of throwing a MemoryError.
- Issue #4367: Python would segfault during compiling when the unicodedata
module couldn't be imported and \N escapes were present.
- Issue #4348: Some bytearray methods returned that didn't cause any change to
the bytearray, returned the same bytearray instead of a copy.
- Issue #4317: Fixed a crash in the imageop.rgb2rgb8() function.
- Issue #4230: If ``__getattr__`` is a descriptor, it now functions correctly.
- Issue #4048: The parser module now correctly validates relative imports.
- Issue #4225: ``from __future__ import unicode_literals`` didn't work in an
exec statement.
- Issue #4176: Fixed a crash when pickling an object which ``__reduce__``
method does not return iterators for the 4th and 5th items.
- Issue #4209: Enabling unicode_literals and the print_function in the same
__future__ import didn't work.
- On windows, os.chdir given unicode was not working if GetCurrentDirectoryW
returned a path longer than MAX_PATH. (But It's doubtful this code path is
really executed because I cannot move to such directory on win2k)
- Issue #4069: When set.remove(element) is used with a set element, the element
is temporarily replaced with an equivalent frozenset. But the eventual
KeyError would always report the empty frozenset([]) as the missing key. Now
it correctly refers to the initial element.
- Fixed C99 style comments in several files. Python is now C89 compatible
again.
Library
-------
- Issue #3741: DISTUTILS_USE_SDK set causes msvc9compiler.py to raise an
exception.
- Issue #4363: The uuid.uuid1() and uuid.uuid4() functions now work even if
the ctypes module is not present.
- Issue #4116: Resolve member name conflict in ScrolledCanvas.__init__.
- Issue #3774: Fixed an error when create a Tkinter menu item without command
and then remove it.
- Fixed a modulefinder crash on certain relative imports.
- Issue #4150: Pdb's "up" command now works for generator frames in post-mortem
debugging.
- Issue #4092: Return ArgInfo as promised in the documentation from
inspect.getargvalues.
- Issue #3935: Properly support list subclasses in bisect's C implementation.
- Issue #4014: Don't claim that Python has an Alpha release status, in addition
to claiming it is Mature.
Build
-----
- Issue #4389: Add icon to the uninstall entry in "add-and-remove-programs".
- Issue #4289: Remove Cancel button from AdvancedDlg.
- Issue #1656675: Register a drop handler for .py* files on Windows.
- Issue #4120: Exclude manifest from extension modules in VS2008.
- Issue #4091: Install pythonxy.dll in system32 again.
- Issue #4018: Disable "for me" installations on Vista.
- Issue #3758: Add ``patchcheck`` build target to .PHONY.
- Issue #4204: Fixed module build errors on FreeBSD 4.
C-API
-----
- Issue #4122: On Windows, fix a compilation error when using the
Py_UNICODE_ISSPACE macro in an extension module.
Extension Modules
-----------------
- Issue #4365: Add crtassem.h constants to the msvcrt module.
- Issue #4396: The parser module now correctly validates the with statement.
What's New in Python 2.6 final
==============================
*Release date: 01-Oct-2008*
Core and Builtins
-----------------
- Issue #3967: Fixed a crash in the count() and find() methods of string-like
objects, when the "start" parameter is a huge value.
- Issue #3965: Fixed a crash on Windows when open() is given an invalid
filename or mode, and the filename is a unicode string.
- Bug #3951: Py_USING_MEMORY_DEBUGGER should not be enabled by default.
Library
-------
- Issue #3965: Allow repeated calls to turtle.Screen, by making it a
true singleton object.
- Issue #3895: It was possible to crash the interpreter when an external timer
was used with cProfile that returned an object that could not be converted
into a float.
- Issue #3950: Made turtle respect scale factors.
- Issue #3547: Fixed ctypes structures bitfields of varying integer
sizes.
- Issue #3879: A regression in urllib.getproxies_enviroment was fixed.
- Issue #3863: Disabled a unit test of fork being called from a thread
when running on platforms known to exhibit OS bugs when attempting that.
Build
-----
- Bug #3989: Package the 2to3 script (as 2to3.py) in the Windows
installer.
- Bug #3887: Package x64 version of CRT for AMD64 Windows binaries.
What's New in Python 2.6 release candidate 2?
=============================================
*Release date: 17-Sep-2008*
Core and Builtins
-----------------
Extension Modules
-----------------
- Security Issue #2: imageop did not validate arguments correctly and could
segfault as a result.
- Issue #3886: Possible integer overflows in the _hashopenssl module were
closed.
Tools/Demos
-----------
- Issue #3850: recursion tests in Misc/find_recursion_limit.py can raise
AttributeError instead of RuntimeError, depending in which C API call
exactly the recursion limit is exceeded. Consequently, both exception types
are caught and silenced.
Build
-----
- Issue #3617: Include a licensing statement regarding the Microsoft
C runtime in the Windows installer.
What's New in Python 2.6 release candidate 1?
=============================================
*Release date: 12-Sep-2008*
Core and Builtins
-----------------
- Issue #3642: Suppress warning in obmalloc when size_t is larger than uint.
- Issue #3743: In a few places, PY_FORMAT_SIZE_T was incorrectly used with
PyString_FromFormat or PyErr_Format to display size_t values. The macro
PY_FORMAT_SIZE_T is designed to select the correct format for the OS
``printf`` function, whereas PyString_FromFormat has an independent
implementation and uses "%zd" on all platforms for size_t values.
This makes a difference on win64, where ``printf`` needs "%Id" to display
64bit values.
- Issue #3634: _weakref.ref(Exception).__init__() gave invalid return value on
error.
- Issue #3777: long() applied to a float object now always return a long
object; previously an int would be returned for small values. the __long__
method is allowed to return either an int or a long, but the behaviour of
float objects should not change to respect backward compatibility.
- Issue #3751: str.rpartition would perform a left-partition when called with
a unicode argument.
- Issue #3683: Fix compilation when --without-threads is given.
- Issue #3668: Fix a memory leak with the "s*" argument parser in
PyArg_ParseTuple and friends, which occurred when the argument for "s*"
was correctly parsed but parsing of subsequent arguments failed.
- Issue #2534: speed up isinstance() and issubclass() by 50-70%, so as to
match Python 2.5 speed despite the __instancecheck__ / __subclasscheck__
mechanism. In the process, fix a bug where isinstance() and issubclass(),
when given a tuple of classes as second argument, were looking up
__instancecheck__ / __subclasscheck__ on the tuple rather than on each
type object.
- Fix crashes on memory allocation failure found with failmalloc.
- Fix memory leaks found with valgrind and update suppressions file.
- Fix compiler warnings in opt mode which would lead to invalid memory reads.
- Fix problem using wrong name in decimal module reported by pychecker.
- Silenced another compiler warning about a used but not defined
function 'stringlib_contains_obj'.
- Added warnings on the use of ``__getslice__``, ``__setslice__``, or
``__delslice__``.
- Issue #3678: Correctly pass LDFLAGS and LDLAST to the linker on shared
library targets in the Makefile.
- Issue #1204: The configure script now tests for additional libraries
that may be required when linking against readline. This fixes issues
with x86_64 builds on some platforms (a few Linux flavors and OpenBSD).
C-API
-----
- Aliased PyObject_Bytes to PyObject_Str.
Library
-------
- Issue #3640: Pickling a list or a dict uses less local variables, to reduce
stack usage in the case of deeply nested objects.
- Issue #3629: Fix sre "bytecode" validator for an end case.
- Issue #3811: The Unicode database was updated to 5.1.
- Issue #3781: Further warnings.catch_warnings() cleanup to prevent
silent misbehaviour when a single instance is nested in multiple
with statements, or when the methods are invoked in the wrong order.
- Issue #3809: Fixed spurious 'test.blah' file left behind by test_logging.
- Issue #3781: Clean up the API for warnings.catch_warnings() by having it
return a list or None rather than a custom object.
- Issue #1638033: Cookie.Morsel gained the httponly attribute.
- Issue #3535: zipfile couldn't read some zip files larger than 2GB.
- Issue #3776: Deprecate the bsddb package for removal in 3.0.
- Issue #3762: platform.architecture() fails if python is lanched via
its symbolic link.
- Issue #3772: Fixed regression problem in StreamHandler.emit().
- Issue 600362: Relocated parse_qs() and parse_qsl(), from the cgi module
to the urlparse one. Added a PendingDeprecationWarning in the old
module, it will be deprecated in the future.
- Issue #2562: Fix distutils PKG-INFO writing logic to allow having
non-ascii characters and Unicode in setup.py meta-data.
- Issue #3726: Allow spaces in separators in logging configuration files.
- Issue #3719: platform.architecture() fails if there are spaces in the
path to the Python binary.
- Issue 3602: Moved test.test_support.catch_warning() to
warnings.catch_warnings() along with some API cleanup. Expanding the tests
for catch_warnings() also led to an improvement in the raising of a
DeprecationWarning related to warnings.warn_explicit().
- The deprecation warnings for the old camelCase threading API were removed.
- logging: fixed lack of use of encoding attribute specified on a stream.
- Silenced a trivial compiler warning in the sqlite module.
- Fixed two format strings in the _collections module.
- Issue #3703: _fileio.FileIO gave unhelpful error message when trying to open a
directory.
- Issue #3708: os.urandom no longer goes into an infinite loop when passed a
non-integer floating point number.
- Issue #3110: multiprocessing fails to compiel on solaris 10 due to missing
SEM_VALUE_MAX.
Extension Modules
-----------------
- Issue #2975: When compiling several extension modules with Visual Studio 2008
from the same python interpreter, some environment variables would grow
without limit.
- Issue #3643: Added a few more checks to _testcapi to prevent segfaults by
exploitation of poor argument checking.
- sqlite3: Changed docstring of iterdump() to mark method as "Non-standard".
- Issue #3103: Reduced globals symbols used by sqlite3 module and made sure all
remaining ones have "pysqlite_" prefix.
- Issue #3846: Release the GIL during sqlite3_prepare calls. This improves
concurrent access to the same SQLite database from multiple
threads/processes.
Tests
-----
- Issue #3781: Add test.test_support.check_warnings() as a convenience
wrapper for warnings.catch_warnings() that makes it easier to check
that expected warning messages are being reported.
- Issue #3796: Some tests functions were not enabled in test_float.
- Issue #3768: Move test_py3kwarn over to the new API for catch_warnings().
Build
-----
- Issue #3833: Use a different upgrade code for Win64 installers.
- Issue #2271: Set SecureCustomProperties so that installation will properly
use the TARGETDIR even for unprivileged users.
- Allow passing the MSI file name to merge.py.
- Issue #3758: Rename the 'check' target to 'patchcheck' so as to not clash
with GNU build target guidelines.
What's New in Python 2.6 beta 3?
================================
*Release date: 20-Aug-2008*
Core and Builtins
-----------------
- Issue #1878: Remove Py_TPFLAGS_HAVE_VERSION_TAG from
Py_TPFLAGS_DEFAULT when not building the core. This means 3rd party
extensions do not automatically benefit from the class attribute
cache; they will have to explicitly add Py_TPFLAGS_HAVE_VERSION_TAG
to their tp_flags field if they care. This is a backwards
compatibility feature; in 3.0, all types will use the cache by
default.
- Keyword arguments can now follow starred arguments. (``f(a, *args,
keyword=23)`` is now valid syntax.)
- ctypes function pointers that are COM methods have a boolean True
value again.
- Issue #3139: Make buffer-interface thread-safe wrt. PyArg_ParseTuple,
by denying s# to parse objects that have a releasebuffer procedure,
and introducing s*.
- Issue #3537: Fix an assertion failure when an empty but presized dict
object was stored in the freelist.
- Issue #1481296: Make long(float('nan')) and int(float('nan')) raise
ValueError consistently across platforms.
- Issue #3479: On platforms where sizeof(int) is smaller than sizeof(long)
(64bit Unix, for example), unichr() would truncate its argument and return
u'\x00' for unichr(2**32). Now it properly raises an OverflowError.
- Apply security patches from Apple.
- Issue #2542: Now that issubclass() may call arbitrary code, ensure that
PyErr_ExceptionMatches returns 0 when an exception occurs there.
- Issue #1819: function calls with several named parameters are now on
average 35% faster (as measured by pybench).
- Issue #2378: An unexpected UnboundLocalError or NameError could appear when
the python debugger steps into a class statement: the free variables (local
variables defined in an outer scope) would be deleted from the outer scope.
- Issue #2620: Overflow checking when allocating or reallocating memory
was not always being done properly in some python types and extension
modules. PyMem_MALLOC, PyMem_REALLOC, PyMem_NEW and PyMem_RESIZE have
all been updated to perform better checks and places in the code that
would previously leak memory on the error path when such an allocation
failed have been fixed.
Library
-------
- Issue #3612: Added some missing basic types in ctypes.wintypes.
- The methods ``is_in_tuple()``, ``is_vararg()``, and ``is_keywordarg()`` of
symtable.Symbol have been deprecated for removal in 3.0 and the next release.
- Issue #2234: distutils failed for some versions of the cygwin compiler. The
version reported by these tools does not necessarily follow the python
version numbering scheme, so the module is less strict when parsing it.
- Issue #2235: Added Py3k warnings for types which will become unhashable
under the stricter __hash__ inheritance rules in 3.0. Several types
which did not meet the rules for hash invariants and were already
unhashable in 3.0 have now been explicitly flagged as unhashable in
2.6 as well (collections.Mapping, collections.Set, unittest.TestSuite,
xml.dom.minidom.NamedNodeMap, numbers.Number, UserList.UserList)
- Update __all__ for cookielib, csv, os, urllib2, and weakref to include things
imported into the module but exposed as part of the module's API.
- Remove an unneeded import of abc.ABCMeta from 'inspect'.
- Remove unneeded imports of 'sys' and 'warnings' from 'io'.
- Remove unneeded imports of 'warnings' from shelve, filecmp, and dummy_thread.
- Issue #3575: Incremental decoder's decode function now takes bytearray
by using 's*' instead of 't#'.
- Issue #2222: Fixed reference leak when occured os.rename()
fails unicode conversion on 2nd parameter. (windows only)
- Issue 2464. urllib2 now supports a malformation in the URL received
in a redirect.
- Silence the DeprecationWarning raised when importing mimetools in
BaseHTTPServer, cgi (and rfc822), httplib.
- Issue #2776: fixed small issue when handling an URL with double slash
after a 302 response in the case of not going through a proxy.
- Issue #2676: in the email package, content-type parsing was hanging on
pathological input because of quadratic or exponential behaviour of a
regular expression.
- Issue #3476: binary buffered reading through the new "io" library is now
thread-safe.
- Silence the DeprecationWarning of rfc822 when it is imported by mimetools
since mimetools itself is deprecated. Because modules are cached, all
subsequent imports of rfc822 will not raise a visible DeprecationWarning.
- Issue #3134: shutil referenced undefined WindowsError symbol.
- Issue #1342811: Fix leak in Tkinter.Menu.delete. Commands associated to
menu entries were not deleted.
- Copied the implementation of reduce() to _functools.reduce() to have a
version that did not raise a DeprecationWarning under -3.
- Issue #3205: When iterating over a BZ2File fails allocating memory, raise
a MemoryError rather than silently stop the iteration.
- Issue #3487: sre "bytecode" validator. Passing invalid "re-bytecode"
to _sre.compile() will now be rejected. This should not affect anybody
since the re.compile() function never generates invalid re-bytecode.
- Issue #3436: Make csv.DictReader's fieldnames attribute a property so that
upon first access it can be automatically initialized from the csv file if
it wasn't initialized during instantiation.
- Issue #2338: Create imp.reload() to help with transitioning to Python 3.0 as
the reload() built-in has been removed.
- Changed code in the following modules/packages to remove warnings raised
while running under the ``-3`` flag: aifc, asynchat, asyncore, bdb, bsddb,
ConfigParser, cookielib, csv, difflib, distutils, DocXMLRPCServer, email,
filecmp, fileinput, inspect, logging, modulefinder, pdb, pickle, profile,
pstats, pydoc, re, rlcompleter, SimpleXMLRPCServer, shelve, socket,
subprocess, sqlite3, tarfile, Tkinter, test.test_support, textwrap,
threading, tokenize, traceback, urlparse, wsgiref, xml, xmlrpclib.
- Issue #3039: Fix tarfile.TarFileCompat.writestr() which always
raised an AttributeError.
- Issue #2523: Fix quadratic behaviour when read()ing a binary file without
asking for a specific length. This problem only affected files opened
using the new "io" module, not the built-in open() function.
- Issue #3449: Update decimal module to use most recent specification
(v. 1.68) and tests (v. 2.58) from IBM.
- Issue 3437: Bug fix in robotparser parsing of Allow: lines.
- Issue 1592: Improve error reporting when operations are attempted
on a closed shelf.
- Deprecate the "ast" parser function aliases.
- Issue #3120: On 64-bit Windows the subprocess module was truncating handles.
- Issue #3303: Fix a crash in locale.strcoll() when calling it with
invalid arguments.
- Issue #3302: Fix several crashes when calling locale's gettext functions
with None arguments.
- Issue #3389: Allow resolving dotted names for handlers in logging
configuration files.
- Deprecate the sunaudio module for removal in Python 3.0.
- Issue #3394: zipfile.writestr sets external attributes when passed a
file name rather than a ZipInfo instance, so files are extracted with
mode 0600 rather than 000 under Unix.
- Issue #1857: subprocess.Popen.poll gained an additional _deadstate keyword
argument in python 2.5, this broke code that subclassed Popen to include its