• Issue #20510: Rewrote test_exit in
    test_sys to match existing comments, use modern unittest features,
    and use helpers from test.script_helper instead of using subprocess
    directly.  Patch by Gareth Rees.

  • Issue #20532: Tests which use
    _testcapi are now marked as CPython only.

  • Issue #19920: Added tests for
    TarFile.list().  Based on patch by Vajrasky Kok.

  • Issue #19990: Added tests for the
    imghdr module.  Based on patch by Claudiu Popa.

  • Issue #20474: Fix test_socket
    “unexpected success” failures on OS X 10.7+.

  • Issue #20605: Make test_socket
    getaddrinfo OS X segfault test more robust.



  • Issue #20743: Fix a reference leak
    in test_tcl.

Just two screenshots that show VLC decoding and drawing a trailer of Mr
and Mrs Smith (h264 avc1 and MPEG AAC) on my Nexus One:

Core and Builtins

  • Issue #20588: Make Python-ast.c C89

  • Issue #20437: Fixed 21 potential
    bugs when deleting objects references.

  • Issue #20538: UTF-7 incremental
    decoder produced inconsistant string when input was truncated in
    BASE64 section.

Current work

Python 3.3.5 RC2 更新内容如下:

Porting libraries


  • Issue #20635: Fixed
    grid_columnconfigure() and grid_rowconfigure() methods of Tkinter
    widgets to work in wantobjects=True mode.

  • Issue #19612: On Windows,
    subprocess.Popen.communicate() now ignores OSError(22, ‘Invalid
    argument’) when writing input data into stdin, whereas the process
    already exited.

  • Issue #6815: os.path.expandvars()
    now supports non-ASCII environment variables names and values.

  • Issue #17671: Fixed a crash when
    use non-initialized io.BufferedRWPair. Based on patch by Stephen Tu.

  • Issue #8478: Untokenizer.compat
    processes first token from iterator input. Patch based on lines from
    Georg Brandl, Eric Snow, and Gareth Rees.

  • Issue #20594: Avoid name clash with
    the libc function posix_close.

  • Issue #19856: shutil.move() failed
    to move a directory to other directory on Windows if source name
    ends with os.altsep.

  • Issue #14983: email.generator now
    always adds a line end after each MIME boundary marker, instead of
    doing so only when there is an epilogue.  This fixes an RFC
    compliance bug and solves an issue with signed MIME parts.

  • Issue #20540: Fix a performance
    regression (vs. Python 3.2) when layering a multiprocessing
    Connection over a TCP socket.  For small payloads, Nagle’s algorithm
    would introduce idle delays before the entire transmission of a

  • Issue #16983: the new email header
    parsing code will now decode encoded words that are (incorrectly)
    surrounded by quotes, and register a defect.

  • Issue #19772: email.generator no
    longer mutates the message object when doing a down-transform from
    8bit to 7bit CTEs.

  • Issue #18805: the netmask/hostmask
    parsing in ipaddress now more reliably filters out illegal values
    and correctly allows any valid prefix length.

  • Issue #17369: get_filename was
    raising an exception if the filename parameter’s RFC2231 encoding
    was broken in certain ways.  This was a regression relative to

  • Issue #20013: Some imap servers
    disconnect if the current mailbox is deleted, and imaplib did not
    handle that case gracefully.  Now it handles the ‘bye’ correctly.

  • Issue #19920: TarFile.list() no
    longer fails when outputs a listing containing non-encodable
    characters.  Based on patch by Vajrasky Kok.

  • Issue #20515: Fix NULL pointer
    dereference introduced by issue

  • Issue #19186: Restore namespacing
    of expat symbols inside the pyexpat module.

  • Issue #20426: When passing the
    re.DEBUG flag, re.compile() displays the debug output every time it
    is called, regardless of the compilation cache.

  • Issue #20368: The null character
    now correctly passed from Tcl to Python. Improved error handling in
    variables-related commands.

  • Issue #20435: Fix
    _pyio.StringIO.getvalue() to take into account newline translation

  • Issue #20288: fix handling of
    invalid numeric charrefs in HTMLParser.

  • Issue #20424: Python implementation
    of io.StringIO now supports lone surrogates.

  • Issue #19456: ntpath.join() now
    joins relative paths correctly when a drive is present.

  • Issue #19077:
    tempfile.TemporaryDirectory cleanup is now most likely successful
    when called during nulling out of modules during shutdown.
    Misleading exception no longer raised when resource warning is
    emitted during shutdown.

  • Issue #20367: Fix behavior of
    concurrent.futures.as_completed() for duplicate arguments.  Patch
    by Glenn Langford.

  • Issue #8260: The read(), readline()
    and readlines() methods of codecs.StreamReader returned incomplete
    data when were called after readline() or read(size).  Based on
    patch by Amaury Forgeot d’Arc.

Some work must also be done to improve handling of the aspect ratio and
rendering performance.


  • Issue #20778: Fix modulefinder to
    work with bytecode-only modules.

  • Issue #20791: copy.copy() now
    doesn’t make a copy when the input is a bytes object.  Initial patch
    by Peter Otten.

  • Issue #20621: Fixes a zipimport bug
    introduced in 3.3.4 that could cause spurious crashes or
    SystemErrors when importing modules or packages from a zip file.
     The change causing the problem was reverted.

  • Issue #20404: io.TextIOWrapper (and
    hence the open() builtin) now uses the internal codec marking system
    added for issue #19619 to throw
    LookupError for known non-text encodings at stream construction
    time. The existing output type checks remain in place to deal with
    unmarked third party codecs.

Graphical User Interface

Core and Builtins

  • Issue #20731: Properly position in
    source code files even if they are opened in text mode. Patch by
    Serhiy Storchaka.

  • Issue #19619: str.encode,
    bytes.decode and bytearray.decode now use an internal API to throw
    LookupError for known non-text encodings, rather than attempting the
    encoding or decoding operation and then throwing a TypeError for an
    unexpected output type. (The latter mechanism remains in place for
    third party non-text encodings)

After two months of work, VLC media player is working quite well on
Android based systems. The project still requires a lot of work before
any release but we now know that running VLC media player on Android is


  • Issue #20406: Use Python
    application icons for Idle window title bars. Patch mostly by Serhiy

  • Update the python.gif icon for the Idle classbrowser and pathbowser
    from the old green snake to the new new blue and yellow snakes.

  • Issue #17721: Remove non-functional
    configuration dialog help button until we make it actually gives
    some help when clicked. Patch by Guilherme Simões.

Audio output


  • Issue #20488: Importlib is no
    longer an implementation of import, it’s theimplementation.

Video output

Python 3.3.5 正式发布,相对于 Python 3.3.5 RC2 没有太大改变。

A lot of people are asking about the status of VLC media player on
Android. We usually answered that we are working on it. Now that some
good progresses has been done, lets look at the current status of VLC
media player for Android.


  • Issue #20535: PYTHONWARNING no
    longer affects the run_tests.py script. Patch by Arfrever Frehtes
    Taifersar Arahesis.

Python 3.3.5 RC1 更新内容如下

As a conclusion, you can notice that VLC media player on Android is
working quite well. Anyway we are not ready to release a version until
some months because we want something stable and nice to use. Be
patient, we are working on it, even if this job is only done on our free


  • Issue #20221: Removed conflicting
    (or circular) hypot definition when compiled with VS 2010 or above.
     Initial patch by Tabrez Mohammed.

  • Issue #20609: Restored the ability
    to build 64-bit Windows binaries on 32-bit Windows, which was broken
    by the change in issue #19788.


At the moment VLC media player was mainly tested in the Android
emulator, on a Nexus One, a Nexus S and an HTC Desire. As soon as we
have a beta version we will ask every people who want to test the
application to test it and to report any issue they encounter. This way
we will be able to validate VLC media player on different phones and

VLC media player is relying on a set of libraries for a lot of functions
like decoding, encoding, getting meta-datas (id3 tags), …

Current status

A first audio output module was developed by Dominique Martinet (alias
Asmadeus). This module was based on OpenSL ES which is quit convenient
and efficient but OPENSL ES is only available on Android 2.3. This is
the reason why we decided to write a new audio output module that might
work on any Android devices regardless of the version.

As you saw in the screenshots, the GUI was only made to help us testing
both the audio and video output modules. Before any beta version, we
must create a nice GUI that allows users to select the right media or
stream to play. We will work on this task as soon as the audio and video
output work well.

For this reason, I (Rémi Duraffort, alias ivoire) am developing a second
audio output module for every Android versions. The work is barely
started so we cannot show you any video at the moment.

澳门新葡萄京官网注册 1

澳门新葡萄京官网注册 2

The video output developed by Adrien Maglo (alias Magsoft) is now able
to output video directly into an OpenGL surface. This is the second
video output module created by Adrien for VLC on Android. This second
version is able to run on any version of Android and not only
Gingerbread (2.3) but is a bit less efficient. This trade of is very
important because few phones and tablets are running Android Gingerbread
at the moment.

To enable these functionalities we must port the underlying libraries to
Android based devices. This work is not began yet but as for now we
already have a lot of libraries (like FFmpeg )
that allows us to decode many formats like: mpeg, h264, mp4 or ogg. So
this task does not have priority.

As said before, the next goal is to finish the audio output module to
handle audio correctly. This module requires some work to be able to
output audio for any Android version.

We are currently mainly working on two parts: the video output and the
audio output. These two modules are needed by VLC to render decoded
images on the screen and to output sound.

澳门新葡萄京官网注册 3


Audio output

I will write another article when some interesting news about VLC and
Android come out.

To be done
Improving the Video output

The last task is to improve VLC media player performance by optimizing
it for the devices it will run on. Every Android devices uses ARM
processors which imply some specific optimizations that are currently
not activated. Some devices also provide ARM NEON instructions that VLC
can use to speedup decoding.

The video output must be improved to handle some specials cases like the
rotation of the device or the power saving mode (and many more).