[Patches] [ python-Patches-574214 ] Dis.py to use dictionary membership test

noreply@sourceforge.net noreply@sourceforge.net
Wed, 26 Jun 2002 21:15:28 -0700


Patches item #574214, was opened at 2002-06-26 13:48
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=305470&aid=574214&group_id=5470

Category: Library (Lib)
Group: Python 2.3
>Status: Closed
>Resolution: Wont Fix
Priority: 5
Submitted By: Raymond Hettinger (rhettinger)
Assigned to: Raymond Hettinger (rhettinger)
Summary: Dis.py to use dictionary membership test

Initial Comment:
Replaced linear search with hash lookup in dis.py  
Membership testing now works at O(1) instead of O
(n).

Neal, would you give the second review?

----------------------------------------------------------------------

>Comment By: Raymond Hettinger (rhettinger)
Date: 2002-06-26 23:15

Message:
Logged In: YES 
user_id=80475

Thanks for the reviews.
Leaving the code untouched.
Closing the patch.

----------------------------------------------------------------------

Comment By: Tim Peters (tim_one)
Date: 2002-06-26 22:08

Message:
Logged In: YES 
user_id=31435

The code is fine, but it's harder to imagine there's an 
application that cares about ths speed of these lookups 
than it is to imagine there's an application depending on 
them being lists.  Note that "harder" is a relative term:  in 
an absolute sense, it's very hard to imagine either.

----------------------------------------------------------------------

Comment By: Neal Norwitz (nnorwitz)
Date: 2002-06-26 21:14

Message:
Logged In: YES 
user_id=33168

The code looks correct, however, I'm not sure it's worth
making the change.  Part of the problem is these attributes
are doc'ed to be sequences (libdis.tex).  Also most of these
are very short.  I don't suspect the change would affect
many programs (either in speed improvements or backwards
compatibility problems).  This change doesn't affect
pychecker since I removed the dependancy on the dis module.
 At one time, this change could have affected pychecker, I
don't remember.  It could affect other apps.

Here's a slightly different view to get an idea of the list
sizes.  These are from pychecker's code, so they may not be
correct, but should be close:

_HAS_NAME = (90, 91, 95, 96, 97, 98, 101, 105, 107, 108, 116,)
_HAS_LOCAL = (124, 125, 126,)
_HAS_CONST = (100,)
_HAS_COMPARE = (106,)
_HAS_JREL = (110, 111, 112, 114, 120, 121, 122,)
_HAS_JABS = (113, 119,)

If this change were made, you would need to update the
libdis.tex as well as NEWS.
I think a PythonLab'er should probably review further.



----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=305470&aid=574214&group_id=5470