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