summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Repaired a fatal compiler error in the debug build: it's not clear whatTim Peters2002-08-041-1/+1
| | | | this was trying to assert, but the name it referenced didn't exist.
* Squash compiler wng about signed-vs-unsigned mismatch.Tim Peters2002-08-041-1/+1
|
* Sped the usual case for sorting by calling PyObject_RichCompareBoolTim Peters2002-08-041-10/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | directly when no comparison function is specified. This saves a layer of function call on every compare then. Measured speedups: i 2**i *sort \sort /sort 3sort +sort %sort ~sort =sort !sort 15 32768 12.5% 0.0% 0.0% 100.0% 0.0% 50.0% 100.0% 100.0% -50.0% 16 65536 8.7% 0.0% 0.0% 0.0% 0.0% 0.0% 12.5% 0.0% 0.0% 17 131072 8.0% 25.0% 0.0% 25.0% 0.0% 14.3% 5.9% 0.0% 0.0% 18 262144 6.3% -10.0% 12.5% 11.1% 0.0% 6.3% 5.6% 12.5% 0.0% 19 524288 5.3% 5.9% 0.0% 5.6% 0.0% 5.9% 5.4% 0.0% 2.9% 20 1048576 5.3% 2.9% 2.9% 5.1% 2.8% 1.3% 5.9% 2.9% 4.2% The best indicators are those that take significant time (larger i), and where sort doesn't do very few compares (so *sort and ~sort benefit most reliably). The large numbers are due to roundoff noise combined with platform variability; e.g., the 14.3% speedup for %sort at i=17 reflects a printed elapsed time of 0.18 seconds falling to 0.17, but a change in the last digit isn't really meaningful (indeed, if it really took 0.175 seconds, one electron having a lazy nanosecond could shift it to either value <wink>). Similarly the 25% at 3sort i=17 was a meaningless change from 0.05 to 0.04. However, almost all the "meaningless changes" were in the same direction, which is good. The before-and-after times for *sort are clearest: before after 0.18 0.16 0.25 0.23 0.54 0.50 1.18 1.11 2.57 2.44 5.58 5.30
* Patch #534304: Implement phase 1 of PEP 263.Martin v. Löwis2002-08-0413-31/+656
|
* Add encoding declaration.Martin v. Löwis2002-08-042-1/+2
|
* Add encoding declaration.Martin v. Löwis2002-08-042-0/+2
|
* Remove a syntax error in the example, spotted by Walter Hofman.Steve Holden2002-08-041-1/+1
|
* Always link libpython.so with LIBS. Fixes #589422.Martin v. Löwis2002-08-042-9/+13
|
* Add trace_frame. Fixes #534864. Backported to 2.2.Martin v. Löwis2002-08-041-0/+38
|
* Add recursion counter for pickling. Fixes #576084.Martin v. Löwis2002-08-041-0/+9
| | | | | 2.2 bugfix candidate (may cause RuntimeError for applications that currently work fine).
* OS/2 EMX now supportedAndrew MacIntyre2002-08-041-0/+2
|
* I don't know what's going on with this test, but the last change fromTim Peters2002-08-041-1/+1
| | | | | Piers obviously couldn't have passed on any platform. Fiddling it so it works (for a meaning of "works" no stronger than "doesn't fail" <wink>).
* SF patch #578297:Andrew MacIntyre2002-08-044-19/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Change the parser and compiler to use PyMalloc. Only the files implementing processes that will request memory allocations small enough for PyMalloc to be a win have been changed, which are:- - Python/compile.c - Parser/acceler.c - Parser/node.c - Parser/parsetok.c This augments the aggressive overallocation strategy implemented by Tim Peters in PyNode_AddChild() [Parser/node.c], in reducing the impact of platform malloc()/realloc()/free() corner case behaviour. Such corner cases are known to be triggered by test_longexp and test_import. Jeremy Hylton, in accepting this patch, recommended this as a bugfix candidate for 2.2. While the changes to Python/compile.c and Parser/node.c backport easily (and could go in), the changes to Parser/acceler.c and Parser/parsetok.c require other not insignificant changes as a result of the differences in the memory APIs between 2.3 and 2.2, which I'm not in a position to work through at the moment. This is a pity, as the Parser/parsetok.c changes are the most important after the Parser/node.c changes, due to the size of the memory requests involved and their frequency.
* - comment improvementAndrew MacIntyre2002-08-041-1/+25
| | | | - implement viable library search routine for EMX
* add parameter missing following Jeremy's compiler class refactoringAndrew MacIntyre2002-08-041-1/+1
|
* Add two remindersAndrew M. Kuchling2002-08-041-0/+4
|
* Document that --enable-shared puts PIC objects into the static libpython.Martin v. Löwis2002-08-031-1/+7
| | | | Fixes #589429.
* Mkdirs() failed when provided with unix pathnames. Fixed.Jack Jansen2002-08-031-1/+1
|
* _siftup(): __le__ is now the only comparison operator used on arrayTim Peters2002-08-031-1/+1
| | | | elements.
* Document new heapreplace() function.Tim Peters2002-08-031-0/+9
|
* Document new heapify() function.Tim Peters2002-08-031-5/+12
|
* Revert last checkin. Man, that was stupid.Michael W. Hudson2002-08-031-1/+1
|
* Another fix for:Michael W. Hudson2002-08-031-1/+1
| | | | | | [ 589427 ] standard include paths on command line _ssl still got /usr/include on the command line.
* revert to version 1.2Piers Lauder2002-08-031-5/+6
|
* Added new heapreplace(heap, item) function, to pop (and return) theTim Peters2002-08-032-3/+20
| | | | | currently-smallest value, and add item, in one gulp. See the second N-Best algorithm in the test suite for a natural use.
* Large code rearrangement to use better algorithms, in the sense of needingTim Peters2002-08-031-39/+79
| | | | | | | | | | | | substantially fewer array-element compares. This is best practice as of Kntuh Volume 3 Ed 2, and the code is actually simpler this way (although the key idea may be counter-intuitive at first glance! breaking out of a loop early loses when it costs more to try to get out early than getting out early saves). Also added a comment block explaining the difference and giving some real counts; demonstrating that heapify() is more efficient than repeated heappush(); and emphasizing the obvious point thatlist.sort() is more efficient if what you really want to do is sort.
* SF bug 590366: Small typo in listsort:ParseTupleTim Peters2002-08-031-1/+1
| | | | The PyArg_ParseTuple() error string still said "msort". Changed to "sort".
* Remove cut 'n paste silliness.Tim Peters2002-08-031-2/+0
|
* Minor fiddling, including a simple class to implement a heap iteratorTim Peters2002-08-032-10/+23
| | | | | in the test file. I have docs for heapq.heapify ready to check in, but Jack appears to have left behind a stale lock in the Doc/lib directory.
* Added an icon for .pyw files.Jack Jansen2002-08-022-0/+15
|
* An icon for .pyw files. Yes, it's lousy, I know....Jack Jansen2002-08-021-0/+0
|
* Augment credits.Guido van Rossum2002-08-021-1/+1
|
* Hmm! I thought I checked this in before! Oh well.Tim Peters2002-08-022-10/+48
| | | | | | | | | | | | Added new heapify() function, which transforms an arbitrary list into a heap in linear time; that's a fundamental tool for using heaps in real life <wink>. Added heapyify() test. Added a "less naive" N-best algorithm to the test suite, and noted that this could actually go much faster (building on heapify()) if we had max-heaps instead of min-heaps (the iterative method is appropriate when all the data isn't known in advance, but when it is known in advance the tradeoffs get murkier).
* Build the IDE last, as it may fail because of waste missing.Jack Jansen2002-08-021-1/+1
|
* Added a lot more information on framework builds, the various .app's,Jack Jansen2002-08-021-2/+87
| | | | etc. Still not enough, probably, but better than what we had.
* Updated for the new path to Python.app.Jack Jansen2002-08-021-1/+1
|
* When building the IDE check that waste is available, to forestallJack Jansen2002-08-021-0/+5
| | | | surprises later (the IDE won't work without waste).
* Add a PEP-263-style encoding turd^H^H^H^Hdeclaration, because there'sGuido van Rossum2002-08-021-0/+2
| | | | a c-cedilla in one of the docstrings.
* Fix ref(), proxy() docstrings, based on comments from David Abrahams.Fred Drake2002-08-021-3/+4
|
* heappop(): Added comments; simplified and sped the code.Tim Peters2002-08-021-21/+19
|
* Minor markup changes.Fred Drake2002-08-021-3/+4
|
* heappop(): Use "while True" instead of "while 1".Tim Peters2002-08-021-1/+1
|
* check_invariant(): Use the same child->parent "formula" used by heapq.py.Tim Peters2002-08-021-2/+2
|
* Don't use true division where int division was intended. For that matter,Tim Peters2002-08-022-2/+2
| | | | don't use division at all.
* Add a comment showing how one of the macros should be used.Fred Drake2002-08-021-0/+1
|
* Adding the heap queue algorithm, per discussion in python-dev lastGuido van Rossum2002-08-021-0/+48
| | | | week.
* Add heapq module docs to the dependency information.Fred Drake2002-08-021-0/+1
|
* Adding the heap queue algorithm, per discussion in python-dev lastGuido van Rossum2002-08-021-0/+4
| | | | week.
* Add docs for heapq.py.Guido van Rossum2002-08-022-0/+165
|
* indicate that 'b' is added to the mode flag if not givenSkip Montanaro2002-08-021-2/+2
|