On Tue, Jan 02, 2001 at 06:19:14PM -0500, Tim Peters wrote: > Neil, my platform doesn't even *have* a "make": are you saying the test > passes for you when you run regrtest.py? Yes. Isn't checking in code without running regrtest a capital offence? :) > Lang Ref 2.1.3 (Comparisons) says you can compare them, and > guarantees they won't compare equal, but doesn't define it beyond that. Okay, I'll use == rather than cmp(). When I was working on the coercion patch I found cmp() useful. I guess it shouldn't be in the standard test suite, especially since Jython may implement things differently. [Neil] > or, do you think that the results from cmp() should be clamped > between -1 and 1? [Tim] > Not that either <wink>; cmp() isn't documented that way. > > They're "bizarre" simply because they're not what Python returns! They do on my box: Python 2.0 (#19, Nov 21 2000, 18:13:04) [GCC 2.95.2 20000220 (Debian GNU/Linux)] on linux2 Type "copyright", "credits" or "license" for more information. >>> cmp(1, None) -78 I guess MS uses a different strcmp than GNU. Do you mind trying the attached C code? I get "-78" as output. I should have thought a little more before checking in the patch. -78 is quite obviously a machine/library dependent thing. [Tim again] > One of us is missing something obvious here <wink>. I don't know about that. The implementation of coercion and comparison is not simple. I've been studying it for some time now and I obviously still don't know what the hell is going on. AFAICT, the problem is that instances without a comparison method can compare larger or smaller than numbers depending on where in memory the objects are stored. Neil #include <stdio.h> #include <string.h> int main() { printf("%d\n", strcmp("", "None")); }
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4