- 17 Jan, 2001 40 commits
-
-
Andrew M. Kuchling authored
and remove support for it from setup.py
-
Guido van Rossum authored
- sort's docompare() calls RichCompare(Py_LT). - list_contains(), list_index(), listcount(), listremove() call RichCompare(Py_EQ). - Get rid of list_compare(), in favor of new list_richcompare(). The latter does some nice shortcuts, like when == or != is requested, it first compares the lengths for trivial accept/reject. Then it goes over the items until it finds an index where the items differe; then it does more shortcut magic to minimize the number of additional comparisons. - Aligned the comments for large struct initializers.
-
Neil Schemenauer authored
-
Neil Schemenauer authored
- get version number from sys.version_info
-
Fredrik Lundh authored
'verify' iff it's used by a test module...
-
Guido van Rossum authored
didn't import it. Also got rid of some inconsistent spaces inside parentheses in test_gzip.py.
-
Guido van Rossum authored
-
Guido van Rossum authored
-
Guido van Rossum authored
- Use the compare nesting level and in-progress dictionary properly in PyObject_RichCompare(). - Change the in-progress code to use static variables instead of globals (both the nesting level and the key for the thread dict were globals but have no reason to be globals; the key can even be a function-static variable in get_inprogress_dict()). - Rewrote try_rich_to_3way_compare() to benefit from the similarity of the three cases, making it table-driven. - In try_rich_to_3way_compare(), test for EQ before LT and GT. This turns out essential when comparing recursive UserList instances; with the old code, these would recurse into rich comparison three times for each nesting level up to NESTING_LIMIT/2, making the total number of calls in the order of 3**(NESTING_LIMIT/2)! NOTE: I'm not 100% comfortable with this. It works for the standard test suite (which compares a few trivial recursive data structures only), but I'm not sure that the in-progress dictionary is used properly by the rich comparison code. Jeremy suggested that maybe the operation should be included in the dict. Currently I presume that objects in the dict are equal unless proven otherwise, and I set the outcome for the rich comparison accordingly: true for operators EQ, LE, GE, and false for the other three. But Jeremy seems to think that there may be counter-examples where this doesn't do the right thing.
-
Andrew M. Kuchling authored
Check for the two possible headers for Expat, expat.h and xmlparse.h, and only compile the pyexpat module if one of them is found.
-
Andrew M. Kuchling authored
-
Andrew M. Kuchling authored
oversight in using self.compiler.library_dirs)
-
Ka-Ping Yee authored
-
Marc-André Lemburg authored
and replaces them with a new API verify(). As a result the regression suite will also perform its tests in optimization mode. Written by Marc-Andre Lemburg. Copyright assigned to Guido van Rossum.
-
Tim Peters authored
Not that Jack doesn't deserve them, but saying it so often cheapens the sentiment.
-
Andrew M. Kuchling authored
The final piece of this change... Strip down Setup.config.in and Setup.dist to the minimal sets required to get a working Python; setup.py will handle the rest
-
Andrew M. Kuchling authored
The final piece of this change... Run setup.py to build shared modules and to install them.
-
Marc-André Lemburg authored
-
Marc-André Lemburg authored
except that it always returns Unicode objects. A new C API PyObject_Unicode() is also provided. This closes patch #101664. Written by Marc-Andre Lemburg. Copyright assigned to Guido van Rossum.
-
Andrew M. Kuchling authored
* Uncomment the xreadlines module * The Tcl/Tk detection code doesn't need to worry about pre-8.0 versions * Fix some debugging changes (not running ar, a commented-out line)
-
Guido van Rossum authored
(I'm going to check in some more uses of rich comparisons, but the basic feature should be in place now.)
-
Guido van Rossum authored
-
Guido van Rossum authored
- Use PyObject_RichCompare*() where possible: when comparing keyword arguments, in _PyEval_SliceIndex(), and of course in cmp_outcome(). Unrelated stuff: - Removed all trailing whitespace. - Folded some long lines.
-
Guido van Rossum authored
- Get rid of float_cmp(). - Renamed Py_TPFLAGS_NEWSTYLENUMBER to Py_TPFLAGS_CHECKTYPES.
-
Guido van Rossum authored
- Get rid of long_cmp(). - Renamed Py_TPFLAGS_NEWSTYLENUMBER to Py_TPFLAGS_CHECKTYPES.
-
Guido van Rossum authored
- Get rid of int_cmp(). - Renamed Py_TPFLAGS_NEWSTYLENUMBER to Py_TPFLAGS_CHECKTYPES.
-
Guido van Rossum authored
- Renamed Py_TPFLAGS_NEWSTYLENUMBER to Py_TPFLAGS_CHECKTYPES. - Use PyObject_RichCompareBool() in PySequence_Contains().
-
Guido van Rossum authored
- Got rid of instance_cmp(); refactored instance_compare(). - Added instance_richcompare() which calls __lt__() etc. Some unrelated stuff mixed in: - Aligned comments in various large struct initializers. - Better test to avoid recursion if __coerce__ returns self as the first argument (this is an unrelated fix by Neil Schemenauer!). - Style nit: don't use Py_DECREF(Py_NotImplemented); use Py_DECREF(result) -- it just looks better. :-)
-
Andrew M. Kuchling authored
Tweak the configure script to build setup.cfg
-
Guido van Rossum authored
PyObject_RichCompare() and PyObject_RichCompareBool(). XXX Note: the code that checks for deeply nested rich comparisons is bogus -- it assumes the two objects are always identical, rather than using the same logic as PyObject_Compare(). I'll fix that later.
-
Andrew M. Kuchling authored
Check in the setup.py script, and the setup.cfg.in file, which handle compiling and installing as many extension modules as possible
-
Guido van Rossum authored
-
Guido van Rossum authored
- Removed the nb_add slot from the PyNumberMethods struct. - Renamed Py_TPFLAGS_NEWSTYLENUMBER to Py_TPFLAGS_CHECKTYPES. - Added typedef richcmpfunc. - Added tp_richcompare slot to PyTypeObject (replacing spare tp_xxx7). - Added APIs PyObject_RichCompare() and PyObject_RichCompareBool(). - Added rich comparison operators Py_LT through Py_GE.
-
Andrew M. Kuchling authored
sys.prefix + 'config/Makefile'. When building Python for the first time, these files aren't there, so the files from the build tree have to be used instead; this file adds an entry point for specifying that the build tree files should be used. (Perhaps 'set_python_build' should should be preceded with an underscore?)
-
Guido van Rossum authored
__getattr__() method, which clearly (like the other methods) was intended to pass the __getattr__() call on to the self.err object, mistakenly returned getattr(self, self.err) rather than getattr(self.err, attr). Since self.err is not a string, this always raises a TypeError. Apparently that doesn't bother for the one attribute for which __getattr__() is actually called ('__coerce__'), but it broke the rich comparisons stuff that I'm trying to get into shape, so I'm fixing this now. (I could also simply remove the __getattr__() method, but fixing it seems more in the spirit of what the ComparableException class is trying to do.)
-
Marc-André Lemburg authored
the test_charmapcodec test via the test package.
-
Guido van Rossum authored
-
Sjoerd Mullender authored
was never enabled.
-
Tim Peters authored
\t\t\t\t\treal code ##\t\t\t\t\tunused code \t\t\t\t\treal code via untabifying and shifting the real code left. Semantically the same but made the intent of the commented-out-in-column-0 unused code unclear. The exact same unused code appears to have gotten copied from file to file over the years.
-
Tim Peters authored
-