GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — cpython/Misc/NEWS at v3.1.3 · python/cpython

Expand file tree

/

NEWS

Copy path
More file actions
More file actions

Latest commit

 

History

History
History
2898 lines (1931 loc) · 107 KB
/

NEWS

Copy path

File metadata and controls

2898 lines (1931 loc) · 107 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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 3.1.3?
===========================
*Release date: 2010-11-27*
Core and Builtins
-----------------
- Issue #10391: Don't dereference invalid memory in error messages in the ast
module.
Library
-------
- Issue #10459: Update CJK character names to Unicode 5.1.
- Issue #10092: Properly reset locale in calendar.Locale*Calendar classes.
- 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: urllib.request 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 two NameErrors 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 #1682942: configparser supports alternative option/value delimiters.
Build
-----
- Backport r83399 to allow test_distutils to pass on installed versions.
- Issue #1303434: Generate ZIP file containing all PDBs (already done for rc1).
- Stop packaging versioncheck tool (already done for rc1).
- Accept Oracle Berkeley DB 4.8, 5.0 and 5.1 as backend for the dbm extension.
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 3.1.3 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 #5437: A preallocated MemoryError instance should not hold traceback
data (including local variables caught in the stack trace) alive infinitely.
- Issue #10077: Fix logging of site module errors at startup.
- Issue #10186: Fix the SyntaxError caret when the offset is equal to the length
of the offending line.
- Issue #9713, #10114: Parser functions (eg. PyParser_ASTFromFile) expects
filenames encoded to the filesystem encoding with surrogateescape error
handler (to support undecodable bytes), instead of UTF-8 in strict mode.
- Issue #10006: type.__abstractmethods__ now raises an AttributeError. As a
result metaclasses can now be ABCs (see #9533).
- Issue #9997: Don't let the name "top" have special significance in scope
resolution.
- Issue #9930: Remove bogus subtype check that was causing (e.g.)
float.__rdiv__(2.0, 3) to return NotImplemented instead of the
expected 1.5.
- Issue #9804: ascii() now always represents unicode surrogate pairs as
a single ``\UXXXXXXXX``, regardless of whether the character is printable
or not. Also, the "backslashreplace" error handler now joins surrogate
pairs into a single character on UCS-2 builds.
- Issue #9797: pystate.c wrongly assumed that zero couldn't be a valid
thread-local storage key.
- Issue #9737: Fix a crash when trying to delete a slice or an item from
a memoryview object.
- Issue #7415: PyUnicode_FromEncodedObject() now uses the new buffer API
properly. Patch by Stefan Behnel.
- Restore GIL in nis_cat in case of error.
- Issue #9712: Fix tokenize on identifiers that start with non-ascii names.
- Issue #9688: __basicsize__ and __itemsize__ must be accessed as Py_ssize_t.
- Issue #5319: Print an error if flushing stdout fails at interpreter
shutdown.
- Issue #8814: function annotations (the ``__annotations__`` attribute)
are now included in the set of attributes copied by default by
functools.wraps and functools.update_wrapper. Patch by Terrence Cole.
- Issue #83755: Implicit set-to-frozenset conversion was not thread-safe.
- 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 #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.
- 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 #6543: Write the traceback in the terminal encoding instead of utf-8.
Fix the encoding of the modules filename. Patch written by Amaury Forgeot
d'Arc.
- Issue #9058: Remove assertions about INT_MAX in UnicodeDecodeError.
- 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 str.format(), raise a ValueError when indexes to arguments are too
large.
- Issue #8766: Initialize _warnings module before importing the first module.
Fix a crash if an empty directory called "encodings" exists in sys.path.
- PyObject_Dump() encodes unicode objects to utf8 with backslashreplace
(instead of strict) error handler to escape surrogates
- Issue #8124: PySys_WriteStdout() and PySys_WriteStderr() don't execute
indirectly Python signal handlers anymore because mywrite() ignores
exceptions (KeyboardInterrupt)
- Issue #8092: Fix PyUnicode_EncodeUTF8() to support error handler producing
unicode string (eg. backslashreplace)
- Issue #8014: Setting a T_UINT or T_PYSSIZET attribute of an object with
PyMemberDefs could produce an internal error; raise TypeError instead.
- Issue #8417: Raise an OverflowError when an integer larger than sys.maxsize is
passed to bytes or bytearray.
- Issue #8329: Don't return the same lists from select.select when no fds are
changed.
- Raise a TypeError when trying to delete a T_STRING_INPLACE struct member.
- Issue #8226: sys.setfilesystemencoding() raises a LookupError if the encoding
is unknown
- Issue #1583863: An str subclass can now override the __str__ method
- Issue #7072: isspace(0xa0) is true on Mac OS X
C-API
-----
- Issue #9834: Don't segfault in PySequence_GetSlice, PySequence_SetSlice, or
PySequence_DelSlice when the object doesn't have any mapping operations
defined.
- 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 #5111: IPv6 Host in the Header is wrapped inside [ ]. Patch by Chandru.
- Issue #4471: Properly shutdown socket in IMAP.shutdown(). Patch by
Lorenzo M. Catucci.
- Fix IMAP.login() to work properly.
- 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.
- The keyword only restriction for the places argument in
unittest.TestCase.assert[Not]AlmostEqual methods has been removed.
- 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 #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.
- #7761: telnetlib.interact failures on Windows fixed.
- Issue #5117: Case normalization was needed on ntpath.relpath(). And
fixed root directory issue on posixpath.relpath(). (Ported working fixes
from ntpath)
- Issue #10041: The signature of optional arguments in socket.makefile()
didn't match that of io.open(), and they also didn't get forwarded
properly to TextIOWrapper in text mode. Patch by Kai Zhu.
- 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 #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 #8980: Fixed a failure in distutils.command check that was shadowed
by an environment that does not have docutils. Patch by Arfrever.
- 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 #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 #9853: Fix the signature of SSLSocket.recvfrom() and
SSLSocket.sendto() to match the corresponding socket methods.
- 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 #9826: OrderedDict.__repr__ can now handle self-referential
values: d['x'] = d.
- 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 #6656: fix locale.format_string to handle escaped percents
and mappings.
- Issue #1100562: Fix deep-copying of objects derived from the list and
dict types. Patch by Michele Orrù and Björn Lindqvist.
- Issue #9753: Fixed socket.dup, which did not always work correctly
on Windows.
- Issue #1868: Eliminate subtle timing issues in thread-local objects by
getting rid of the cached copy of thread-local attribute dictionary.
- 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 #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 #9605: posix.getlogin() decodes the username with file filesystem
encoding and surrogateescape error handler. Patch written by David Watson.
- Issue #9603: posix.ttyname() and posix.ctermid() decode the terminal name
using the filesystem encoding and surrogateescape error handler. Patch
written by David Watson.
- 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 #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.
- 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 #8447: Make distutils.sysconfig follow symlinks in the path to
the interpreter executable. This fixes a failure of test_httpservers
on OS X.
- 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 #7909: Do not touch paths with the special prefixes ``\\.\``
or ``\\?\`` in ntpath.normpath().
- 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 #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 #8230: Fix Lib/test/sortperf.py.
- Issue #7395: Fix tracebacks in pstats interactive browser.
- 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 #9354: Provide getsockopt() in asyncore's file_wrapper.
- Issue #9448: Fix a leak of OS resources (mutexes or semaphores) when
re-initializing a buffered IO object by calling its ``__init__`` method.
- 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 #3704: http.cookiejar was not properly handling URLs with a / in the
parameters.
- 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 #9323: Fixed a bug in trace.py that resulted in loosing the
name of the script being traced. Patch by Eli Bendersky.
- Issue #9282: Fixed --listfuncs option of trace.py. Thanks Eli
Bendersky for the patch.
- Issue #1555570: email no longer inserts extra blank lines when a \r\n
combo crosses an 8192 byte boundary.
- Issue #9243: Fix sndhdr module and add unit tests, contributed by James Lee.
- Issue #9137: Fix issue in MutableMapping.update, which incorrectly
treated keyword arguments called 'self' or 'other' specially.
- 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 #9130: Fix validation of relative imports in parser module.
- Issue #9128: Fix validation of class decorators in parser module.
- Issue #5468: urlencode to handle bytes type and other encodings in its query
parameter. Patch by Dan Mahn.
- 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 #6589: cleanup asyncore.socket_map in case smtpd.SMTPServer constructor
raises an exception.
- Issue #9075: In the ssl module, remove the setting of a ``debug`` flag
on an OpenSSL structure.
- Issue #8682: The ssl module now temporary increments the reference count of
a socket object got through ``PyWeakref_GetObject``, so as to avoid possible
deallocation while the object is still being used.
- Issue #1368368: FancyURLOpener class changed to throw an Exception on wrong
password instead of presenting an interactive prompt. Older behavior can be
obtained by passing retry=True to http_error_xxx methods of FancyURLOpener.
- Issue #8203: Fix IDLE Credits dialog: view_file() uses its encoding argument.
- Issue #8720: fix regression caused by fix for #4050 by making getsourcefile
smart enough to find source files in the linecache.
- Issue #5610: feedparser no longer eats extra characters at the end of
a body part if the body part ends with a \r\n.
- Fix codecs.escape_encode to return the correct consumed size.
- Issue #8897: Fix sunau module, use bytes to write the header. Patch written
by Thomas Jollans.
- Issue #6470: Drop UNC prefix in FixTk.
- Issue #4768: base64 encoded email body parts were incorrectly stored as
binary strings. They are now correctly converted to strings.
- Issue #8833: tarfile created hard link entries with a size field != 0 by
mistake.
- Charset.body_encode now correctly handles base64 encoding by encoding
with the output_charset before calling base64mime.encode. Passes the
tests from 2.x issue #1368247.
- Issue #7150: Raise OverflowError if the result of adding or subtracting
timedelta from date or datetime falls outside of the MINYEAR:MAXYEAR range.
- Issue #4769: Fix main() function of the base64 module, use sys.stdin.buffer
and sys.stdout.buffer (instead of sys.stdin and sys.stdout) to use the bytes
API
- Issue #6662: Fix parsing of malformatted charref (&#bad;), patch written by
Fredrik Håård
- 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 #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 #8774: tabnanny uses the encoding cookie (#coding:...) to use the
correct encoding
- Issue #7507: Quote "!" in pipes.quote(); it is special to some shells.
- Issue #8663: distutils.log emulates backslashreplace error handler. Fix
compilation in a non-ASCII directory if stdout encoding is ASCII (eg. if
stdout is not a TTY).
- Issue #1285086: Speed up urllib.parse functions: quote, quote_from_bytes,
unquote, unquote_to_bytes.
- Issue #8688: Distutils now recalculates MANIFEST everytime.
- Issue #5099: subprocess.Popen.__del__ no longer references global objects
to prevent issues during interpreter shutdown.
- Issue #8681: Make the zlib module's error messages more informative when
the zlib itself doesn't give any detailed explanation.
- Issue #8674: Fixed a number of incorrect or undefined-behaviour-inducing
overflow checks in the audioop module.
- 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.
- Issue #7472: Fixed typo in email.encoders module; messages using ISO-2022
character sets will now consistently use a Content-Transfer-Encoding of
7bit rather than sometimes being marked as 8bit.
- 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 MacOS X 10.6.
- 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 #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 #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: Fixed http HEAD request when the transfer encoding is chunked.
It should correctly return an empty response now.
- Issue #8549: Fix compiling the _ssl extension under AIX. Patch by
Sridhar Ratnakumar.
- Issue #8391: os.execvpe() and os.getenv() supports unicode with surrogates
and bytes strings for environment keys and values, and use
sys.getfilesystemencoding() instead of sys.getdefautltencoding()
- 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 #8524: When creating an SSL socket, the timeout value of the
original socket wasn't retained (instead, a socket with a positive timeout
would be turned into a non-blocking SSL socket).
- 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 #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 #8468: bz2.BZ2File() accepts str with surrogates and bytes filenames
- Issue #8496: make mailcap.lookup() always return a list, rather than an
iterator. Patch by Gregory Nofi.
- Issue #8195: Fix a crash in sqlite Connection.create_collation() if the
collation name contains a surrogate character.
- 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 #4814: timeout parameter is now applied also for connections resulting
from PORT/EPRT commands.
- Issue #3817: ftplib.FTP.abort() method now considers 225 a valid response
code as stated in RFC-959 at chapter 5.4.
- Issue #8394: _ctypes.dlopen() accepts bytes, bytearray and str with
surrogates.
- Issue #7606: XML-RPC traceback stored in X-traceback is now encoded to ASCII
using backslashreplace error handler
- Issue #5277: Fix quote counting when parsing RFC 2231 encoded parameters.
- Issue #8383: pickle and pickletools use surrogatepass error handler when
encoding unicode as utf8 to support lone surrogates and stay compatible with
Python 2.x and 3.0
- Issue #8179: Fix macpath.realpath() on a non-existing path.
- Issue #8139: ossaudiodev didn't initialize its types properly, therefore
some methods (such as oss_mixer_device.fileno()) were not available.
Initial patch by Bertrand Janin.
- Issue #7512: shutil.copystat() could raise an OSError when the filesystem
didn't support chflags() (for example ZFS under FreeBSD). The error is
now silenced.
- Issue #3890, #8222: Fix recv() and recv_into() on non-blocking SSL sockets.
Also, enable the SSL_MODE_AUTO_RETRY flag on SSL sockets, so that blocking
reads and writes are always retried by OpenSSL itself.
- Issue #6716/2: Backslash-replace error output in compilall.
Extension Modules
-----------------
- Issue #6317: Now winsound.PlaySound can accept non ascii filename.
- 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.
- Issue #4835: make PyLong_FromSocket_t() and PyLong_AsSocket_t() private
to the socket module, and fix the width of socket descriptors to be
correctly detected under 64-bit Windows.
- Issue #665761: ``functools.reduce()`` will no longer mask exceptions
other than ``TypeError`` raised by the iterator argument.
- Issue #9570: Use PEP 383 decoding in os.mknod and os.mkfifo.
- 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 #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 #7384: If the system readline library is linked against
ncurses, do not link the readline module against ncursesw. The
additional restriction of linking the readline and curses modules
against the same curses library is currently not enabled.
- Issue #8973: Add __all__ to struct module; this ensures that
help(struct) includes documentation for the struct.Struct class.
- Issue #2810: Fix cases where the Windows registry API returns
ERROR_MORE_DATA, requiring a re-try in order to get the complete result.
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 #6244: Allow detect_tkinter to look for Tcl/Tk 8.6.
- 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 #3928: os.mknod() now available in Solaris, also.
- Issue #6716: Quote -x arguments of compileall in MSI installer.
Exclude 2to3 tests from compileall.
- Issue #1628484: The Makefile doesn't ignore the CFLAGS environment
variable anymore. It also forwards the LDFLAGS settings to the linker
when building a shared library.
- 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 #3699: Fix test_bigaddrspace and extend it to test bytestrings
as well as unicode strings. Initial patch by Sandro Tosi.
- Issue #9628: fix runtests.sh -x option so more than one test can be excluded.
- Issue #9894: Do not hardcode ENOENT in test_subprocess.
- Issue #9315: Added tests for the trace module. Patch by Eli Bendersky.
- Issue #7564: Skip test_ioctl if another process is attached to /dev/tty.
- Issue #8857: Provide a test case for socket.getaddrinfo.
- 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 #9251: test_threaded_import didn't fail when run through regrtest
if the import lock was disabled.
- Issue #7449: Skip test_socketserver if threading support is disabled
- Issue #8672: Add a zlib test ensuring that an incomplete stream can be
handled by a decompressor object without errors (it returns incomplete
uncompressed data).
- Issue #8629: Disable some test_ssl tests, since they give different
results with OpenSSL 1.0.0 and higher.
- Issue #8533: regrtest uses backslashreplace error handler for stdout to avoid
UnicodeEncodeError (write non-ASCII character to stdout using ASCII encoding)
- Issue #8576: Remove use of find_unused_port() in test_smtplib and
test_multiprocessing. Patch by Paul Moore.
- Issue #8531: Skip test_ascii_formatd if ctypes module is missing
- Issue #3864: Skip three test_signal tests on freebsd6 because they fail
if any thread was previously started, most likely due to a platform bug.
- Issue #8193: Fix test_zlib failure with zlib 1.2.4.
- 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 #9255: Document that the 'test' package is meant for interal Python use
only.
- Issue #7829: Document in dis that bytecode is an implementation detail.
Tools/Demos
-----------
- Issue #7287: Demo/imputil/knee.py was removed.
What's New in Python 3.1.2?
===========================
*Release date: 2010-03-20*
Core and Builtins
-----------------
- Issue #7173: Generator finalization could invalidate sys.exc_info().
Library
-------
- Issue #2698: The --compiler ignored was ignored for distutils' build_ext.
- Issue #4961: Inconsistent/wrong result of askyesno function in tkMessageBox
with Tcl/Tk-8.5.
- Issue #7356: ctypes.util: Make parsing of ldconfig output independent of
the locale.
What's New in Python 3.1.2 release candidate 1?
===============================================
*Release date: 2010-03-06*
Core and Builtins
-----------------
- Issue #7544: Preallocate thread memory before creating the thread to avoid
a fatal error in low memory condition.
- Issue #7820: The parser tokenizer restores all bytes in the right if
the BOM check fails.
- Handle errors from looking up __prepare__ correctly.
- Issue #5939: Add additional runtime checking to ensure a valid capsule
in Modules/_ctypes/callproc.c.
- Issue #7309: Fix unchecked attribute access when converting
UnicodeEncodeError, UnicodeDecodeError, and UnicodeTranslateError to
strings.
- Issue #6902: Fix problem with built-in types format incorrectly with
0 padding.
- Issue #7988: Fix default alignment to be right aligned for
complex.__format__. Now it matches other numeric types.
- Issue #7385: Fix a crash in `MemoryView_FromObject` when
`PyObject_GetBuffer` fails. Patch by Florent Xicluna.
- Issue #7788: Fix an interpreter crash produced by deleting a list
slice with very large step value.
- Issue #7561: Operations on empty bytearrays (such as `int(bytearray())`)
could crash in many places because of the PyByteArray_AS_STRING() macro
returning NULL. The macro now returns a statically allocated empty
string instead.
- Issue #7632: Fix various str -> float conversion bugs present in 2.7
alpha 2, including: (1) a serious 'wrong output' bug that could
occur for long (> 40 digit) input strings, (2) a crash in dtoa.c
that occurred in debug builds when parsing certain long numeric
strings corresponding to subnormal values, (3) a memory leak for
some values large enough to cause overflow, and (4) a number of
flaws that could lead to incorrectly rounded results.
- Issue #7604: Deleting an unset slotted attribute did not raise an
AttributeError.
- Issue #7466: segmentation fault when the garbage collector is called
in the middle of populating a tuple. Patch by Florent Xicluna.
- Issue #7419: setlocale() could crash the interpreter on Windows when called
with invalid values.
- Issue #6077: On Windows, files opened with tempfile.TemporaryFile in "wt+"
mode would appear truncated on the first '0x1a' byte (aka. Ctrl+Z).
- Issue #7085: Fix crash when importing some extensions in a thread
on MacOSX 10.6.
- Issue #7298: fixes for range and reversed(range(...)). Iteration
over range(a, b, c) incorrectly gave an empty iterator when a, b and
c fit in C long but the length of the range did not. Also fix
several cases where reversed(range(a, b, c)) gave wrong results, and
fix a refleak for reversed(range(a, b, c)) with large arguments.
- Issue #7244: itertools.izip_longest() no longer ignores exceptions
raised during the formation of an output tuple.
- Issue #3297: On wide unicode builds, do not split unicode characters into
surrogates.
- Issue #1722344: threading._shutdown() is now called in Py_Finalize(), which
fixes the problem of some exceptions being thrown at shutdown when the
interpreter is killed. Patch by Adam Olsen.
- Issue #7065: Fix a crash in bytes.maketrans and bytearray.maketrans when
using byte values greater than 127. Patch by Derk Drukker.
- Issue #7019: Raise ValueError when unmarshalling bad long data, instead
of producing internally inconsistent Python longs.
- Issue #6990: Fix threading.local subclasses leaving old state around
after a reference cycle GC which could be recycled by new locals.
- Issue #6846: Fix bug where bytearray.pop() returns negative integers.
- Issue #6750: A text file opened with io.open() could duplicate its output
when writing from multiple threads at the same time.
Library
-------
- Issue #7154: urllib.request can now detect the proxy settings on OSX 10.6
(as long as the user didn't specify 'automatic proxy configuration').
- Issue #8412: os.system() now accepts bytes, bytearray and str with
surrogates.
- Issue #4282: Fix the main function of the profile module for a non-ASCII
script, open the file in binary mode and not in text mode with the default
(utf8) encoding.
- Issue #7774: Set sys.executable to an empty string if argv[0] has been set to
an non existent program name and Python is unable to retrieve the real
program name
- Issue #6509: fix re.sub to work properly when the pattern, the string, and
the replacement were all bytes. Patch by Antoine Pitrou.
- Issue #1054943: Fix unicodedata.normalize('NFC', text) for the Public Review
Issue #29
View remainder of file in raw view
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.