Python is een object-georiŽnteerde programmeertaal waarmee simpele tot complexe platformonafhankelijke applicaties kunnen worden ontwikkeld. De ontwikkelaars van deze programmeertaal hebben enige tijd geleden twee release candidates uitgebracht, namelijk 3.0 rc1 en 2.6 rc2. De 3.0-serie is niet meer backwards compatible met de voorgaande versietakken omdat men de taal wil opschonen van oude code en enkele aanwezige ontwerpfouten wil herstellen. Versie 2.6 zal wel gedeeltelijk forward compatibility aan de 2.x-lijn toevoegen zodat programmeurs makkelijker hun applicaties naar Python 3.0 kunnen overzetten door alvast nieuwe functies te ondersteunen. De complete lijst met veranderingen voor Python 3.0 is op deze pagina na te lezen en voor de lijst van Python 2.6 kan je op deze pagina terecht. De lijsten met veranderingen voor deze release candidates zien er als volgt uit:
What's New in Python 3.0 release candidate 1
Core and Builtins:
- Issue #3827: memoryview lost its size attribute in favor of using len(view).
- Issue #3813: could not lanch python.exe via symbolic link on cygwin.
- Issue #3705: fix crash when given a non-ascii value on the command line for the "-c" and "-m" parameters. Now the behaviour is as expected under Linux, although under Windows it fails at a later point.
- Issue #3279: Importing site at interpreter was failing silently because the site module uses the open builtin which was not initialized at the time.
- Issue #3660: Corrected a reference leak in str.encode() when the encoder does not return a bytes object.
- Issue #3774: Added a few more checks in PyTokenizer_FindEncoding to handle error conditions.
- Issue #3594: Fix Parser/tokenizer.c:fp_setreadl() to open the file being tokenized by either a file path or file pointer for the benefit of PyTokenizer_FindEncoding().
- Issue #3696: Error parsing arguments on OpenBSD <= 4.4 and Cygwin. On these systems, the mbstowcs() function is slightly buggy and must be replaced with strlen() for the purpose of counting of number of wide characters needed to represent the multi-byte character string.
- Issue #3697: "Fatal Python error: Cannot recover from stack overflow" could be easily encountered under Windows in debug mode when exercising the recursion limit checking code, due to bogus handling of recursion limit when USE_STACKCHEK was enabled.
- Issue 3639: The _warnings module could segfault the interpreter when unexpected types were passed in as arguments.
- Issue #3712: The memoryview object had a reference leak and didn't support cyclic garbage collection.
- 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 #3611: An exception __context__ could be cleared in a complex pattern involving a __del__ method re-raising an exception.
- 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.
- Issue #3663: Py_None was decref'd when printing SyntaxErrors.
- Issue #3651: Fix various memory leaks when using the buffer interface, or when the "s#" code of PyArg_ParseTuple is given a bytes object.
- Issue #3657: Fix uninitialized memory read when pickling longs. Found by valgrind.
- Apply security patches from Apple.
- 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.
- Issue #3650: Fixed a reference leak in bytes.split('x').
- bytes(o) now tries to use o.__bytes__() before using fallbacks.
- 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).
- PyObject_Bytes and PyBytes_FromObject were added.
- Issue #3756: make re.escape() handle bytes as well as str.
- Issue #3800: fix filter() related bug in formatter.py.
- Issue #874900: fix behaviour of threading module after a fork.
- 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 #3660: fix a memory leak in the C accelerator of the pickle module.
- Issue #3160: the "bdist_wininst" distutils command didn't work.
- Issue #1658: tkinter changes dict size during iteration in both tkinter.BaseWidget and tkinter.scrolledtext.ScrolledText.
- The bsddb module (and therefore the dbm.bsd module) has been removed. It is now maintained outside of the standard library at http://www.jcea.es/programacion/pybsddb.htm.
- Issue 600362: Relocated parse_qs() and parse_qsl(), from the cgi module to the urlparse one. Added a DeprecationWarning in the old module, it will be deprecated in the future.
- Issue #3719: platform.architecture() fails if there are spaces in the path to the Python binary.
- Issue 3602: As part of the merge of r66135, make the parameters on warnings.catch_warnings() keyword-only. Also remove a DeprecationWarning.
- The deprecation warnings for the camelCase threading API names were removed.
- Issue #3110: multiprocessing fails to compiel on solaris 10 due to missing SEM_VALUE_MAX.
- Issue #3782: os.write() must not accept unicode strings.
- 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.
- bsddb code updated to version 4.7.3pre2. This code is the same than Python 2.6 one, since the intention is to keep an unified 2.x/3.x codebase. The Python code is automatically translated using "2to3". Please, do not update this code in Python 3.0 by hand. Update the 2.6 one and then do "2to3".
- The _bytesio and _stringio modules are now compiled into the python binary.
- Issue #3492 and #3790: Fixed the zlib module and zipimport module uses of mutable bytearray objects where they should have been using immutable bytes.
- Issue #3797: Fixed the dbm, marshal, mmap, ossaudiodev, & winreg modules to return bytes objects instead of bytearray objects.
- Fix Misc/gdbinit so it works.
- Issue #3812: Failed to build python if configure --without-threads.
- Issue #3791: Remove the bsddb module from the Windows installer, and the core bsddb library from the Windows build files.
What's New in Python 2.6 release candidate 2?
- Issue #3886: Possible integer overflows in the _hashopenssl module were closed.
- 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.
- Issue #3617: Include a licensing statement regarding the Microsoft C runtime in the Windows installer.
XKCD -- Python