[SciPy-dev] Problem solved ---- Sorry!
eric
eric at scipy.org
Wed Jan 30 12:58:59 EST 2002
Hey Andreas,
> I calld inline with arguments taht were not used in the code...
> That caused the error .... :-(
>
> Bug or feature? :-)
The way weave is written, it views the C code as a continuation of the Python code, not really a function call, so the same variables are used in both. There might be a way around it. It would incur an efficiency hit, though I think very small. A bigger issue is that it could be confusing. For example:
a,b,c,d,e = 1,1,1,1,1
code = """
return_val = Py::new_reference_to(Py::Int(a+b+c+d));
"""
weave.inline(code,['a','b','c','d'])
weave.inline(code,['b','c','d','e'])
In the second version, are the argument names substituted positionally or by name? If we go with positional, then the idea of the C/C++ code being a continuation of the python code is "broken", and this becomes more of a function call.
Of course the current behavior was confusing to you, so maybe it is 6 one way and half a dozen the other... :)
Eventually, I'd like to remove the need to specify the argument list. This would require some C/C++ parsing of the code string to find the necessary arguments.
If your interested in more of a function calling approach, for now, take a look at weave.ext_tools. It builds extension functions that are called in the "normal" way.
see ya,
eric
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scipy-dev/attachments/20020130/4c699791/attachment.html>
More information about the SciPy-Dev
mailing list