Hi all,

I am doing some work on the IO system in the io_cleanups branch. I
just got a big change committed (not perfect, failing a handful of
tests that I need to track down), but I wanted to get some feedback on
my method before I waste any more time on it.

What the branch does (in part) is separate out the low-level details
(file descriptor, buffer) into a separate Handle PMC. FileHandle,
Socket, and Pipe PMCs are free to include a Handle as an attribute and
delegate to it. Handle is intended for internal use only and cannot be
instantated or meaningfully used from PIR. The benefit to this
approach, besides helping to encapsulate functionality that is shared
between other PMCs is that FileHandles, Sockets, and Pipes (and
anything else that uses this) should be closer to being properly
subclassable from PIR.

I'll try to post a better description of the current state of the
branch onto the wiki so people can get familiar with it if they want.

So, two questions that I would like input on:
1) Does this approach sound like a reasonable path forward?
2) Are there maybe any alternative approaches to resolving the
subclassing problem that I should consider?

Assuming this is a good approach, I would like to get some help:
1) Building parrot in the branch, and testing (once I get some
failures tracked down) to verify that this works on all platforms. I
changed some of the platform-specific code, so I need testing on Win32
and "portable" (non-unix) systems.
2) There are lots of opportunities now for cleanups, refactors, and
optimizations, and I will be happy to help new hackers get started on
this if they are interested. It should be a reasonably good way to get
started hacking Parrot (I know several people here at YAPC have
expressed interest in these kinds of opportunities).
3) start working on a merge so we can get this into trunk before 1.4 next month.

Thanks, let me know fthere are any questions or feedback.

--Andrew Whitworth
_______________________________________________
http://lists.parrot.org/mailman/listinfo/parrot-dev

Reply via email to