This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author NeilGirdhar
Recipients Joshua.Landau, NeilGirdhar, SilentGhost, r.david.murray
Date 2015-01-25.22:20:36
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1422224436.78.0.642507960776.issue23316@psf.upfronthosting.co.za>
In-reply-to
Content
I assume this is the problem:

>>> dis.dis('f(*a(), b=b())')
  1           0 LOAD_NAME                0 (f)
              3 LOAD_NAME                1 (a)
              6 CALL_FUNCTION            0 (0 positional, 0 keyword pair)
              9 LOAD_CONST               0 ('b')
             12 LOAD_NAME                2 (b)
             15 CALL_FUNCTION            0 (0 positional, 0 keyword pair)
             18 CALL_FUNCTION_VAR      256 (0 positional, 1 keyword pair)
             21 RETURN_VALUE

— looks fine.

>>> dis.dis('f(b=b(), *a())')
  1           0 LOAD_NAME                0 (f)
              3 LOAD_NAME                1 (a)
              6 CALL_FUNCTION            0 (0 positional, 0 keyword pair)
              9 LOAD_CONST               0 ('b')
             12 LOAD_NAME                2 (b)
             15 CALL_FUNCTION            0 (0 positional, 0 keyword pair)
             18 CALL_FUNCTION_VAR      256 (0 positional, 1 keyword pair)
             21 RETURN_VALUE

Joshua, we could make function calls take:

x lists
y dictionaries
one optional list
z dictionaries

but we as well do all the merging in advance:

one optional list
one optional dictionary
one optional list
one optional dictionary

which is representable in three bits, but four is easier to decode I think.
History
Date User Action Args
2015-01-25 22:20:36NeilGirdharsetrecipients: + NeilGirdhar, r.david.murray, SilentGhost, Joshua.Landau
2015-01-25 22:20:36NeilGirdharsetmessageid: <1422224436.78.0.642507960776.issue23316@psf.upfronthosting.co.za>
2015-01-25 22:20:36NeilGirdharlinkissue23316 messages
2015-01-25 22:20:36NeilGirdharcreate