[IronPython] IronPython and file descriptors
Michael Foord
fuzzyman at voidspace.org.uk
Mon Dec 15 22:56:24 CET 2008
Dino Viehland wrote:
>
> (now I’ve replied to the correct thread…)
>
> Can you open a feature request on CodePlex? It's certainly an
> interesting idea to ponder and I'm leaning towards it but there's lots
> of details to be gotten right.
>
> Do you know if this needs to work w/ sockets as well? (There's also
> the question of can we make it work with sockets? :))
>
> There'll be a bunch of places we need to update (nt, socket, file,
> select, etc...) so I think it'll have to wait until 2.1 instead of
> coming in a minor update like 2.0.1.
>
Tom will have to comment on whether it is needed for sockets as well.
Not yet I guess. :-)
Tom created an issue on Codeplex - I've added a comment to that:
http://www.codeplex.com/IronPython/WorkItem/View.aspx?WorkItemId=20242
Michael
>
> *From:* users-bounces at lists.ironpython.com
> [mailto:users-bounces at lists.ironpython.com] *On Behalf Of *Michael Foord
> *Sent:* Monday, December 15, 2008 12:53 PM
> *To:* Discussion of IronPython
> *Subject:* Re: [IronPython] IronPython and file descriptors
>
> 2008/12/15 Dino Viehland <dinov at microsoft.com
> <mailto:dinov at microsoft.com>>
>
> Presumably CPython is linking against msvcrt and is using the C
> abstraction rather than calling the Win32 APIs which return handles
> directly.
>
> As Curt said the biggest problem for us is that .NET does not expose C
> file descriptors. Therefore we could fix this by P/Invoking out to
> msvcrt. For users on other platforms we'd need to either add support
> for their platform or hope that their handles == C runtime file
> descriptors. For something like fileno maybe this is ok because it's
> an interop point only - or are there any non-interop uses of fileno in
> the world?
>
> What do people think of this? This would be the 1st place where we
> would add a P/Invoke so I'd want to tread lightly and make sure this
> is really the right thing to do.
>
>
>
> Well, some way of doing this is needed if certain Python C extensions
> are to work with Ironclad. Perhaps a global or per engine setting that
> allows file handles to be associated with a C descriptor. Users of
> Ironclad could switch it on if they wished and take the consequences.
>
> Michael Foord
>
>
> -----Original Message-----
> From: users-bounces at lists.ironpython.com
> <mailto:users-bounces at lists.ironpython.com>
> [mailto:users-bounces at lists.ironpython.com
> <mailto:users-bounces at lists.ironpython.com>] On Behalf Of Slide
> Sent: Monday, December 15, 2008 10:21 AM
> To: Discussion of IronPython
> Subject: Re: [IronPython] IronPython and file descriptors
>
> On Mon, Dec 15, 2008 at 11:18 AM, Tom Wright
> <tom.wright at resolversystems.com
> <mailto:tom.wright at resolversystems.com>> wrote:
> > Agreed. It is certainly possible with some work to get a file
> descriptor and
> > pass it to C code.
> >
> > This is not the problem, however. Ironclad's aim (eventually) is
> to allow
> > *arbitrary* C extensions to work with Ironpython without
> changing the
> > extensions. Ctypes aim is to allow arbitrary C code to be run by
> python
> > (possibly in other python libraries which you really don't want
> to modify).
> >
> > In CPython .fileno() is a file descriptor and some modules use
> this fact
> > (specifically PIL) by passing file descriptors as integers into
> C code. I do
> > not know how one can make this code work in IronPython unless
> .fileno()
> > returns a file descriptor.
> >
> > The game here is not making a particular C library work with
> IronPython by
> > modifying this library but making as many libraries as possible
> work without
> > modification. Of course whether this is worthwhile depends on
> how many
> > libraries rely on this fact.
> >
> > Sorry - I hope this is a little clearer.
> >
> > Tom
>
>
> How does CPython get the file descriptor for fileno()? Does it just
> return the HANDLE on Windows?
>
> slide
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com <mailto:Users at lists.ironpython.com>
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com <mailto:Users at lists.ironpython.com>
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
>
>
>
> --
> http://www.ironpythoninaction.com/
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
--
http://www.ironpythoninaction.com/
http://www.voidspace.org.uk/blog
More information about the Ironpython-users
mailing list