At 09:55 PM 7/14/2002 -0400, Josh Wilmes wrote:
>IMHO, there's no way to find out quite like trying to use it :)
>
>In my experiences with it thus far, it all seems to work fine.  Melvin has
>indicated that its API and internal structure may need some changes at
>some point, but the basic functionality does seem to be there today, at
>least enough for the moment.

It works for now. We need to make the IO PMC official, as in put it in the
PMC table, and implement a few methods in its vtable. Right now it is
an anonymous PMC with a null vtable.

Since I haven't tinkered with the IO code in months, I'm actually sort of
foggy on what needs to be done. I know the buffering layer does need
to be finished. I also have the net api ops to commit.

I think what IO needs is some discussion first. That is the main reason
I sort of stopped work on it. There were unanswered questions but
since December I think maybe some of those have been answered, such as
whether we are using real threads (yes), and could we fake async with
threads on platforms without an aio api.

We need to discuss/design:

1) Async support. The IO system needs to be asynchronous and re-entrant
at the core, whether by threads or by use of the platform's async support.
Other things like callbacks assume other features of Parrot to be finished,
like subs/methods.

2) Filters (or IO disciplines) - People have different opinions on what these
even mean. To me it means a "layer" that can be pushed onto an IO stack
that may filter or transform the data and/or perform opaque actions, while
representing the IO handle as a standard stream with a standard API.
Also think about how IO layers can be implemented completely in Parrot.

3) Discussion needs to be done on what Parrot IO in general will be.
What shall the Parrot IO API deliver as a contract? What flags, constants, etc.
do we use. Do we make our own "standardized" constants, or expose platform
specific constants, or both?

All of this needs to be outlined and documented before going too much further
on the IO subsystem, codewise, and I'm more than happy to let someone
else take the lead.

-Melvin


Reply via email to