I think my point is that if you switch which dialect of C you're compiling
with, such marshalling issues could (potentially) go away.
Again, I'm naïve here. I've not made it my business to write native libraries
for Python. Just one, and that was years ago.
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Curt Hagenlocher
Sent: Wednesday, October 17, 2007 3:22 PM
To: Discussion of IronPython
Subject: Re: [IronPython] [python] Re: Announcement: Project to getsomeCPython
C extensions running under IronPython
On 10/17/07, Joe Mason <[EMAIL PROTECTED]> wrote:
On 10/17/07, Keith J. Farmer <[EMAIL PROTECTED]> wrote:
> Forgive my non-C-ness (it's been a long time since I wrote a native module
> for Python), but aren't you now buying into a major re-implementation of all
> the native Python standard library into C#?
Couldn't the C/C# API just use IronPython objects and methods to
"implement" the Python standard library?
Yes, that would be the idea.
I think it's best when thinking about the architecture to have a specific
example to refer to. With that in mind, I'm going to repeat some code I wrote
earlier in the thread (with a few modifications).
PyObject * ReverseSequence(PyObject * self, PyObject * args)
{
PyObject * columns;
if (!PyArg_ParseTuple(args, "O", &columns))
{
return NULL;
}
if (!PySequence_Check(columns))
{
PyErr_SetString(PyExc_ValueError, "must be a sequence");
return NULL;
}
int length = PySequence_Length(columns);
PyObject * result = PyTuple_New(length);
for (int i = 0; i < length; i++)
{
PyObject * value = PySequence_GetItem(sequence, i);
// Don't remember if I need to INCREF value
PySequence_SetItem(result, length - i - 1, value);
}
return result;
}
Obviously, this isn't a "real-world" example, but it does show a few
requirements for the compatibility layer.
1) The code expects a sequence. What kind of data should we be allowed to pass
to it from IronPython?
2) The code returns a "tuple". How will this tuple be translated into a CLR
object for consumption by IronPython?
--
Curt Hagenlocher
[EMAIL PROTECTED]
___
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com