[mochikit] Re: Possible bug in MochiKit.Base.compare

2010-11-25 Thread Fredrik Blomqvist
Some more input regarding comparisons. Found this in the Python 3
changelog: 
http://docs.python.org/release/3.0.1/whatsnew/3.0.html#ordering-comparisons
Essentially they've decided to tighten the rules, making all the
examples I listed above throw a: TypeError: unorderable types:
exception.

Regards
// Fredrik Blomqvist

On Oct 28, 2:42 pm, Fredrik fblomqv...@gmail.com wrote:
 similarly you also have:

 # compare(0, '')
 == 0

 # compare(0, [])
 == 0

 .. But, equivalence is one thing, defining meaningful ordering is
 more difficult.

 A quick take in Python gives this table (didn't check the standard):
 -- '' == []
 False
  ''  []
 False
  ''  []
 True
  0  ''
 True
  0  ''
 False
  0  []
 True
  0  []

 False
 

 At least the above defines an ordering, where JavaScript returns false
 for any ordering of 0, [] and '' for example.
 More thoughts?

 Regards
 // Fredrik

 On Oct 28, 7:00 am, Per Cederberg p...@percederberg.net wrote:







  While writing some MochiKit tests, I stumbled upon the following:

  # compare(, [])
    == 0

  #  == []
    == true

  Seems like the JavaScript type coercion is used inside compare():

      compare: function (a, b) {
          if (a == b) {
              return 0;
          }
          ...

  But perhaps that was just a mistake? It seems to be at odds with the
  idea of a safe compare function... If nobody is terribly dependent
  on this I'll fix it for 1.5. But please verify this if you are
  extensive users of compare().

  Cheers,

  /Per

-- 
You received this message because you are subscribed to the Google Groups 
MochiKit group.
To post to this group, send email to mochi...@googlegroups.com.
To unsubscribe from this group, send email to 
mochikit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/mochikit?hl=en.



[mochikit] Re: Possible bug in MochiKit.Base.compare

2010-10-28 Thread Fredrik
similarly you also have:

# compare(0, '')
== 0

# compare(0, [])
== 0

.. But, equivalence is one thing, defining meaningful ordering is
more difficult.

A quick take in Python gives this table (didn't check the standard):
--
 '' == []
False
 ''  []
False
 ''  []
True
 0  ''
True
 0  ''
False
 0  []
True
 0  []
False


At least the above defines an ordering, where JavaScript returns false
for any ordering of 0, [] and '' for example.
More thoughts?

Regards
// Fredrik

On Oct 28, 7:00 am, Per Cederberg p...@percederberg.net wrote:
 While writing some MochiKit tests, I stumbled upon the following:

 # compare(, [])
   == 0

 #  == []
   == true

 Seems like the JavaScript type coercion is used inside compare():

     compare: function (a, b) {
         if (a == b) {
             return 0;
         }
         ...

 But perhaps that was just a mistake? It seems to be at odds with the
 idea of a safe compare function... If nobody is terribly dependent
 on this I'll fix it for 1.5. But please verify this if you are
 extensive users of compare().

 Cheers,

 /Per

-- 
You received this message because you are subscribed to the Google Groups 
MochiKit group.
To post to this group, send email to mochi...@googlegroups.com.
To unsubscribe from this group, send email to 
mochikit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/mochikit?hl=en.