[IronPython] pyc limitation of 13 arguments for a function

Tony Meyer tony.meyer at gmail.com
Tue Aug 3 04:45:32 CEST 2010


Hi,

I'm trying to use the 'pyc' tool with this code:

"""
def func(a, b, c, d, e, f, g, h, i, j, k, l, m, n=None):
    print "Hello world"

def main():
    func(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13) # works
#    func(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14) # fails.

if __name__ == "__main__":
    main()
"""

Calling func() (or any function) with up to 13 arguments works fine.
As soon as it's called with 14 or more arguments, pyc fails with:

"""
Z:\>"c:\Programs\IronPython 2.7\ipy.exe" "c:\Programs\IronPython
2.7\Tools\Scripts\pyc.py" /main:freezetest.py
Input Files:
Output:
        freezetest
Target:
        ConsoleApplication
Platform:
        ILOnly
Machine:
        I386
Compiling...
Traceback (most recent call last):
  File "c:\Programs\IronPython 2.7\Tools\Scripts\pyc.py", line 159, in <module>
  File "c:\Programs\IronPython 2.7\Tools\Scripts\pyc.py", line 151, in Main
SystemError: Unable to make a reference to a transient module from a
non-transient module.
"""

IronPython 2.6.1 does the same thing.

Is this a known limitation?  I couldn't find any mention of it with a
quick search (and searching for the actual error message gave me
barely anything).

(Obviously I can work around this, since it's rather ugly to have a
14+ argument function anyway, but I came across it in a quick script I
was building).

Thanks,
Tony



More information about the Ironpython-users mailing list