Raymond Hettinger
cb3e580ebc
Optimize list.pop() for the common special case of popping off the end.
...
More than doubles its speed.
2004-02-13 18:36:31 +00:00
Raymond Hettinger
4bb9540dd6
* Optimized list appends and pops by making fewer calls the underlying system
...
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.)
2004-02-13 11:36:39 +00:00
Hye-Shik Chang
4a8d42f73f
We have cp932 support in standard distribution now. And there's now
...
no major codepages unsupported by Python, so remove the eg. case.
2004-02-13 07:14:13 +00:00
Fred Drake
61dafcb6ca
use existing test object instead of defining a new class
2004-02-12 19:30:17 +00:00
Fred Drake
ce3caf2e7a
minor markup improvements
2004-02-12 18:13:12 +00:00
Walter Dörwald
70a6b49821
Replace backticks with repr() or "%r"
...
From SF patch #852334 .
2004-02-12 17:35:32 +00:00
Michael W. Hudson
ecfeb7f095
This is my patch #876198 plus a NEWS entry and a header frob.
...
Remove the ability to use (from C) arbitrary objects supporting the
read buffer interface as the co_code member of code objects.
2004-02-12 15:28:27 +00:00
Fred Drake
e6ed33a6b3
fix minor markup error: \code{for} --> \keyword{for}
2004-02-12 14:35:18 +00:00
Raymond Hettinger
b1e5b50531
SF 895560: minor typo
2004-02-12 09:50:42 +00:00
Skip Montanaro
f3938fd029
need to initialize ob_type slot at run-time, at least on cygwin
2004-02-10 20:27:40 +00:00
Fred Drake
29f5933fcb
add support for \e to the {alltt} environment
2004-02-10 18:30:22 +00:00
Neal Norwitz
d311f1fb9b
SF #894428 , fix typo
2004-02-10 18:07:16 +00:00
Skip Montanaro
7befb9966e
remove support for missing ANSI C header files (limits.h, stddef.h, etc).
2004-02-10 16:50:21 +00:00
Skip Montanaro
05eb40128e
Fix indentation error in testGetServByName and rewrite loop to avoid clumsy
...
sentinel variable
2004-02-10 15:51:15 +00:00
Raymond Hettinger
029dba5a40
Make reversed() transparent with respect to length.
2004-02-10 09:33:39 +00:00
Raymond Hettinger
5cab2e3a88
Give itertools.repeat() a length method.
2004-02-10 09:25:40 +00:00
Fred Drake
27da291b2c
the \file macro is no longer a good example of where \e can't be used
2004-02-09 21:00:29 +00:00
Fred Drake
52feb81932
support \e in \file and \filenq; this is useful for Windows paths
2004-02-09 20:58:08 +00:00
Andrew M. Kuchling
fd0e494c98
Minor edits
2004-02-09 13:23:34 +00:00
Thomas Heller
8178a22e20
Documentation for PyDescr_NewClassMethod was missing - here's at least
...
the function prototype.
Already backported to release23-maint.
2004-02-09 10:47:11 +00:00
Raymond Hettinger
5de33786a9
SF patch #892821 : example for urllib2 has SyntaxError
...
(Contributed by George Yoshida.)
2004-02-08 20:25:01 +00:00
Raymond Hettinger
3fd977964a
Fix misspelled name.
2004-02-08 20:18:26 +00:00
Raymond Hettinger
7820554c2c
Fix typo
2004-02-08 20:05:40 +00:00
Raymond Hettinger
a72169871d
SF patch #884022 : dynamic execution profiling vs opcode prediction
...
(Contributed by Andrew I MacIntyre.)
disables opcode prediction when dynamic execution
profiling is in effect, so the profiling counters at
the top of the main interpreter loop in eval_frame()
are updated for each opcode.
2004-02-08 19:59:27 +00:00
Raymond Hettinger
ce9b4714ef
SF patch #880552 : Fix typo in usage message(prechm.py)
...
(Contributed by George Yoshida.)
* Also convert tabs to spaces.
2004-02-08 19:24:18 +00:00
Raymond Hettinger
b32e640489
SF patch #875689 : >100k alloc wasted on startup
...
(Contributed by Mike Pall.)
Make sure fill_free_list() is called only once rather than 106 times
when pre-allocating small ints.
2004-02-08 18:54:37 +00:00
Raymond Hettinger
4c9800d663
SF bug #892854 : typo in textwrap doc page
...
(Reported by Drew Perttula.)
2004-02-08 18:09:32 +00:00
Raymond Hettinger
3dc3484ac8
SF bug #892492 : Multiple close() for asyncore.dispatcher.
...
(Contributed by Alexey Klimkin.)
Don't keep the file descriptor after the channel is deleted.
2004-02-08 11:32:50 +00:00
Raymond Hettinger
204b000610
Revert improvement to list.append() checked in before it was ready.
2004-02-08 11:08:52 +00:00
Raymond Hettinger
06353f76be
Let reversed() work with itself.
2004-02-08 10:49:42 +00:00
Jim Fulton
8a1a594590
Fixed a bug in object.__reduce_ex__ (reduce_2) when using protocol
...
2. Failure to clear the error when attempts to get the __getstate__
attribute fail caused intermittent errors and odd behavior.
2004-02-08 04:21:26 +00:00
Raymond Hettinger
ee33b27ef0
Make deque.rotate() smarter. Beef-up related tests.
2004-02-08 04:05:26 +00:00
Barry Warsaw
3b6d025d9b
Patch #868499 , adds -T option for code coverage. The implementation is a
...
fairly simpleminded adaptation of Zope3's test.py -T flag.
I also changed some booleans to use True/False where appropriate.
2004-02-07 22:43:03 +00:00
Raymond Hettinger
5c5eb86347
* Incorporate Skip's suggestions for documentation (explain the word deque
...
comes from and show the differences from lists).
* Add a rotate() method.
2004-02-07 21:13:00 +00:00
Skip Montanaro
b31764837d
no longer support linux1 platform
2004-02-07 20:03:34 +00:00
Skip Montanaro
b23b7698cc
no longer support sunos4 platform
2004-02-07 20:01:11 +00:00
Skip Montanaro
db6080507d
Remove support for --without-universal-newlines (see PEP 11).
2004-02-07 13:53:46 +00:00
Skip Montanaro
f1afe6682c
Remove support for systems defining Py_PTHREAD_D[467] in
...
Python/thread_pthread.h.
2004-02-07 13:00:18 +00:00
Skip Montanaro
7e11a016e6
Remove HAVE_STRPTIME - no longer necessary with the pure Python version of
...
time.strptime().
2004-02-07 12:55:46 +00:00
Skip Montanaro
7209294112
a couple other sunos4 support items removed
2004-02-07 12:50:19 +00:00
Raymond Hettinger
ac093c6af0
Use collection.deque() instead of a list for a FIFO queue.
2004-02-07 03:19:10 +00:00
Raymond Hettinger
c058fd14a9
* Fix ref counting in extend() and extendleft().
...
* Let deques support reversed().
2004-02-07 02:45:22 +00:00
Raymond Hettinger
b5ba8d749d
Lists work better when popping from the right.
2004-02-07 02:16:24 +00:00
Raymond Hettinger
3ba85c2e8a
Have deques support high volume loads.
2004-02-06 19:04:56 +00:00
Raymond Hettinger
1dd8309246
SF patch #864059 : optimize eval_frame
...
Simplified version of Neal Norwitz's patch which adds gotos for
opcodes that set "why". This skips a number of tests where the
outcome of the tests are known in advance.
2004-02-06 18:32:33 +00:00
Walter Dörwald
7dcf9f89d3
Fix test failure message (from SF patch #885008 )
2004-02-06 18:30:31 +00:00
Hye-Shik Chang
0a83778572
Back rev 1.3 out per Raymond's request.
2004-02-06 04:40:56 +00:00
Fred Drake
228765b0e1
added notes about weakref changes
2004-02-06 04:15:22 +00:00
Hye-Shik Chang
d310f13cd2
Simple is better than complex.
2004-02-06 02:52:15 +00:00
Walter Dörwald
cd736e71a3
Fix reallocation bug in unicode.translate(): The code was comparing
...
characters instead of character pointers to determine space requirements.
2004-02-05 17:36:00 +00:00