| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
dynamic embedders of Python.
|
|
|
|
| |
member.
|
| |
|
|
|
|
| |
This fixes a problem that math.sqrt(-1) doesn't raise math.error.
|
| |
|
|
|
|
| |
public API from being exposed by simply including Python.h (as recommended).
|
|
|
|
| |
(Contributed by Greg Chapman.)
|
| |
|
|
|
|
|
| |
three recent optimizations. Aside from reducing code volume, it
increases readability.
|
|
|
|
| |
exposing _PyList_Extend().
|
|
|
|
|
| |
Add a new opcode, LIST_APPEND, and apply it to the code generation for
list comprehensions. Reduces the per-loop overhead by about a third.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
realloc(). This is achieved by tracking the overallocation size in a new
field and using that information to skip calls to realloc() whenever
possible.
* Simplified and tightened the amount of overallocation. For larger lists,
this overallocates by 1/8th (compared to the previous scheme which ranged
between 1/4th to 1/32nd over-allocation). For smaller lists (n<6), the
maximum overallocation is one byte (formerly it could be upto eight bytes).
This saves memory in applications with large numbers of small lists.
* Eliminated the NRESIZE macro in favor of a new, static list_resize function
that encapsulates the resizing logic. Coverting this back to macro would
give a small (under 1%) speed-up. This was too small to warrant the loss
of readability, maintainability, and de-coupling.
* Some functions using NRESIZE had grown unnecessarily complex in their
efforts to bend to the macro's calling pattern. With the new list_resize
function in place, those other functions could be simplified. That is
being saved for a separate patch.
* The ob_item==NULL check could be eliminated from the new list_resize
function. This would entail finding each piece of code that sets ob_item
to NULL and adding a new line to invalidate the overallocation tracking
field. Rather than impose a new requirement on other pieces of list code,
it was preferred to leave the NULL check in place and retain the benefits
of decoupling, maintainability and information hiding (only PyList_New()
and list_sort() need to know about the new field). This approach also
reduces the odds of breaking an extension module.
(Collaborative effort by Raymond Hettinger, Hye-Shik Chang, Tim Peters,
and Armin Rigo.)
|
|
|
|
|
| |
Remove the ability to use (from C) arbitrary objects supporting the
read buffer interface as the co_code member of code objects.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Remove BAD_EXEC_PROTOYPE (leftover from IRIX 4 demolition).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
semantics to include subtypes. Most concrete object APIs then had
a Py<type>_CheckExact() macro added to test for an object's type
not including subtypes.
The PyDict_CheckExact() macro wasn't created at that time, so I've added
it for API completeness/symmetry - even though nobody has complained
about its absence in the time since 2.2 was released.
Not a backport candidate.
|
| |
|
|
|
|
|
|
|
|
|
| |
with most other concrete object checks, but the docs weren't brought into
line.
PyList_CheckExact() was added at 2.2 but never documented.
backport candidate.
|
|
|
|
|
| |
about "characters", we assume something about C's char type (which is
an integral type).
|
|
|
|
|
|
| |
bit by checking the value of UCHAR_MAX in Include/Python.h. There was a
check in Objects/stringobject.c. Remove that. (Note that we don't define
UCHAR_MAX if it's not defined as the old test did.)
|
|
|
|
|
| |
SF feature request #801847.
Original patch is written by Sean Reifschneider.
|
|
|
|
|
| |
* Used the flag to optimize set.__contains__(), dict.__contains__(),
dict.__getitem__(), and list.__getitem__().
|
|
|
|
|
|
|
| |
than PySequence_Contains() and more clearly applicable to dicts.
Apply the new function in setobject.c where __contains__ checking is
ubiquitous.
|
|
|
|
|
|
|
| |
* Add more tests
* Refactor and neaten the code a bit.
* Rename union_update() to update().
* Improve the algorithms (making them a closer to sets.py).
|
|
|
|
|
|
|
|
| |
Also SF patch 843455.
This is a critical bugfix.
I'll backport to 2.3 maint, but not beyond that. The bugs this fixes
have been there since weakrefs were introduced.
|
|
|
|
| |
to pymactoolbox.h (where it should have been in the first place).
|
| |
|
|
|
|
| |
pre-carbon MacOS9 support.
|
| |
|
|
|
|
|
|
|
|
| |
* Install the unittests, docs, newsitem, include file, and makefile update.
* Exercise the new functions whereever sets.py was being used.
Includes the docs for libfuncs.tex. Separate docs for the types are
forthcoming.
|
|
|
|
| |
(same as commit of Sun Nov 2 to the release23-maint branch)
|
| |
|
|
|
|
|
| |
SF patch 825639
http://mail.python.org/pipermail/python-dev/2003-October/039445.html
|
|
|
|
| |
(From SF patch #810751)
|
|
|
|
| |
to handle situations like ``if (foo) Py_RETURN_NONE else ...``.
|
|
|
|
|
| |
order to prevent any unexpected surprises from someone using them in a
conditional without using curly braces (e.g., ``if (foo) Py_RETURN_TRUE``.
|
|
|
|
| |
the specified value. All three Py_INCREF the singleton and then return it.
|
| |
|
|
|
|
|
| |
useful for rapidly building argument tuples without having to invoke the
more sophisticated machinery of Py_BuildValue().
|
| |
|
|
|
|
| |
Fixes #603724. Will backport to 2.3.
|
|
|
|
|
|
| |
The embed2.diff patch solves the user's problem by exporting the missing
symbols from the Python core so Python can be embedded in another Cygwin
application (well, at lest vim).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
which still supports shared extensions. It takes advantage the latest
Cygwin binutils (i.e., 20030901-1) which can export symbols from
executables:
http://cygwin.com/ml/cygwin-announce/2003-09/msg00002.html
Additionally, it finally lays to rest the following mailing list
subthread:
http://mail.python.org/pipermail/python-list/2002-May/102500.html
I tested the patch under Red Hat Linux 8.0 too
|
| |
|
| |
|
| |
|