| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
(Contributed by George Yoshida.)
|
|
|
|
| |
Added support for the copy module.
|
| |
|
|
|
|
| |
Reduces loop overhead by an additional 10%.
|
|
|
|
|
|
|
| |
(Spotted by Michael Hudson.)
* Now that "selflen" is no longer inside a loop, it should not be a
register variable.
|
|
|
|
|
| |
Makes it more likely that all loop operations are in the cache
at the same time.
|
|
|
|
|
| |
and a function call resulting in a 15% reduction of total loop overhead
(as measured by timeit.Timer('pass')).
|
|
|
|
|
| |
three recent optimizations. Aside from reducing code volume, it
increases readability.
|
|
|
|
|
|
|
| |
donated by Kevin Ollivier. This is now the default downloader.
- Added a watcher mechanism, whereby downloaders and unpackers (and,
later builders) can give status feedback to the user. When running
pimp as a command line tool in verbose mode print this output.
|
|
|
|
|
|
|
| |
worth it to in-line the call to PyIter_Next().
Saves another 15% on most list operations that acceptable a general
iterable argument (such as the list constructor).
|
|
|
|
| |
exposing _PyList_Extend().
|
|
|
|
|
|
|
|
| |
avoids creating an intermediate tuple for iterable arguments other than
lists or tuples.
In other words, a+=b no longer requires extra memory when b is not a
list or tuple. The list and tuple cases are unchanged.
|
| |
|
| |
|
| |
|
|
|
|
| |
SF bug #678265.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for xrange and list objects).
* list.__reversed__ now checks the length of the sequence object before
calling PyList_GET_ITEM() because the mutable could have changed length.
* all three implementations are now tranparent with respect to length and
maintain the invariant len(it) == len(list(it)) even when the underlying
sequence mutates.
* __builtin__.reversed() now frees the underlying sequence as soon
as the iterator is exhausted.
* the code paths were rearranged so that the most common paths
do not require a jump.
|
|
|
|
| |
was academic and it was potentially confusing to use.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Replace sprintf message with a constant message string -- this error
message ran on every invocation except straight deletions but it was
only needed when the rhs was not iterable. The message was also
out-of-date and did not reflect that iterable arguments were allowed.
* For inner loops that do not make ref count adjustments, use memmove()
for fast copying and better readability.
* For inner loops that do make ref count adjustments, speed them up by
factoring out the constant structure reference and using vitem[] instead.
|
|
|
|
| |
(Submitted by George Yoshida)
|
|
|
|
|
|
|
|
|
|
| |
* Defer error handling for wrong number of arguments to the
unpack_iterable() function. Cuts the code size almost in half.
* Replace function calls to PyList_Size() and PyTuple_Size() with
their smaller and faster macro counterparts.
* Move the constant structure references outside of the inner loops.
|
|
|
|
|
|
|
|
|
| |
Side-effects were deemed unnecessary and were causing problems at shutdown
time when threads were catching exceptions at start time and then triggering
exceptions trying to call currentThread() after gc'ed. Masked the initial
exception which was deemed bad.
Fixes bug #754449 .
|
|
|
|
| |
longer needed.
|
|
|
|
|
|
|
| |
The writelines() method now accepts any iterable argument and writes
the lines one at a time rather than using ''.join(lines) followed by
a single write. Results in considerable memory savings and makes the
method suitable for use with generator expressions.
|
|
|
|
|
|
|
| |
The writelines() method now accepts any iterable argument and writes
the lines one at a time rather than using ''.join(lines) followed by
a single write. Results in considerable memory savings and makes
the method suitable for use with generator expressions.
|
|
|
|
|
|
|
|
|
|
|
|
| |
M ClassBrowser.py
M ColorDelegator.py
M EditorWindow.py
M NEWS.txt
M PyShell.py
M TreeWidget.py
M config-highlight.def
M configDialog.py
M configHandler.py
|
| |
|
|
|
|
|
|
| |
and list.extend(). Factoring the inner loops to remove the constant
structure references and fixed offsets gives speedups ranging from
20% to 30%.
|
|
|
|
| |
the code by grouping common cases together.
|
|
|
|
|
|
|
|
| |
* Using addition instead of substraction on array indices allows the
compiler to use a fast addressing mode. Saves about 10%.
* Using PyTuple_GET_ITEM and PyList_SET_ITEM is about 7% faster than
PySequenceFast_GET_ITEM which has to make a list check on every pass.
|
| |
|
|
|
|
|
|
| |
Since it is known ahead of time that UTC and GMT always have no DST adjustment
then just set the isdst value to 0 even if tzname[0] == tzname[1] .
Fixes bug #897817 .
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
| |
(Championed by Bob Ippolito.)
The update() method for mappings now accepts all the same argument forms
as the dict() constructor. This includes item lists and/or keyword
arguments.
|
| |
|
|
|
|
|
| |
is too expensive on FreeBSD's KSE threading infrastructure and
even test_threadedimport fails on default setting.
|
|
|
|
|
| |
* reverse order of files on the command line in pickle2db.py to make it
symmetrical with db2pickle.py in the two-arg case (src, then dest)
|
| |
|
| |
|
|
|
|
| |
documentation as well as the source code.
|
|
|
|
|
|
|
|
|
|
| |
are within proper boundaries as specified in the docs.
This can break possible code (datetime module needed changing, for instance)
that uses 0 for values that need to be greater 1 or greater (month, day, and
day of year).
Fixes bug #897625.
|
|
|
|
|
|
|
| |
__getitem__() and __setitem__().
Simplifies the API, reduces the code size, adds flexibility, and makes
deques work with bisect.bisect(), random.shuffle(), and random.sample().
|
|
|
|
|
| |
and add flag comments to ceval.c and main.c alerting people to the coupling
between pystack and the layout of those files.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
* Add doctests for the examples in the library reference.
* Add two methods, left() and right(), modeled after deques in C++ STL.
* Apply the new method to asynchat.py.
* Add comparison operators to make deques more substitutable for lists.
* Replace the LookupErrors with IndexErrors to more closely match lists.
|
|
|
|
| |
- Allow easy access to the PackMan homepage, for even more databases.
|