13 Build and C API Changes

Some of the changes to Python's build process and to the C API are:

  • Three new convenience macros were added for common return values from extension functions: Py_RETURN_NONE, Py_RETURN_TRUE, and Py_RETURN_FALSE. (Contributed by Brett Cannon.)

  • Another new macro, Py_CLEAR(obj), decreases the reference count of obj and sets obj to the null pointer. (Contributed by Jim Fulton.)

  • A new function, PyTuple_Pack(N, obj1, obj2, ..., objN), constructs tuples from a variable length argument list of Python objects. (Contributed by Raymond Hettinger.)

  • A new function, PyDict_Contains(d, k), implements fast dictionary lookups without masking exceptions raised during the look-up process. (Contributed by Raymond Hettinger.)

  • The Py_IS_NAN(X) macro returns 1 if its float or double argument X is a NaN. (Contributed by Tim Peters.)

  • C code can avoid unnecessary locking by using the new PyEval_ThreadsInitialized() function to tell if any thread operations have been performed. If this function returns false, no lock operations are needed. (Contributed by Nick Coghlan.)

  • A new function, PyArg_VaParseTupleAndKeywords(), is the same as PyArg_ParseTupleAndKeywords() but takes a va_list instead of a number of arguments. (Contributed by Greg Chapman.)

  • A new method flag, METH_COEXISTS, allows a function defined in slots to co-exist with a PyCFunction having the same name. This can halve the access time for a method such as set.__contains__(). (Contributed by Raymond Hettinger.)

  • Python can now be built with additional profiling for the interpreter itself, intended as an aid to people developing the Python core. Providing ---enable-profiling to the configure script will let you profile the interpreter with gprof, and providing the ---with-tsc switch enables profiling using the Pentium's Time-Stamp-Counter register. Note that the ---with-tsc switch is slightly misnamed, because the profiling feature also works on the PowerPC platform, though that processor architecture doesn't call that register ``the TSC register''. (Contributed by Jeremy Hylton.)

  • The tracebackobject type has been renamed to PyTracebackObject.

13.1 Port-Specific Changes

  • The Windows port now builds under MSVC++ 7.1 as well as version 6. (Contributed by Martin von Loewis.)

See About this document... for information on suggesting changes.
Document provided by Web Master Resources and hosted at Speedy Domain Registration Company