Rocco Caputo wrote:
> Re: Writing the subsystems together.
>
> I think you misunderstand the other message's intent.  The main loop,
> the interpreter, and I/O, are three separate subsystems.  I think
> everyone agrees with you that they should be interchangeable, but
> their public interfaces are sufficiently intertwined that they should
> be designed, at least at their borders, as a complete system.
>
>
> >In the other way around, what matters to the design of the file i/o
> >subsystem is exactly the same thing: whether it will or won't be using
> >blocking syscalls. I believe after the decision of whether we will or not
> >allow blocking (I think most of us go for no blocking..., but see my
remark
> >about portability above), the file i/o subsystem MUST be designed in a
> >complete modular fashion.
>
> I think this is where vtables come in.  If perl itself were to use
> them, each subsystem could plug itself in at link time.  It may even
> be possible to defer subsystem plug-ins until their language-level
> interfaces are used.
>
> I've also experimented with plug-in subsystems at the Perl module
> level in the poe2 project.  Its resource management scheme might be
> a useful springboard for pluggable Perl subsystems.  poe2's resource
> manager is at <http://poe.perl.org/poe2/POE.pm>.  The rest of the
> project is in the same directory, including current tarball of the
> entire tree.
>
>
> >That's actually something I'd like to say about this ``subsystem''-based
> >design of perl6. For it to be successful, it's imperative that all the
> >modules
> >don't know about each other, so that it's possible to replace a subsystem
> >completely for another that supplies the same interfaces, as it should be
> >possible to use a subsystem in another program, for example, it should
> >be possible to use the async i/o subsystem in a C application (through
the
> >low-level interface), linking it directly to the application, without the
> >necessity to link the whole perl runtime to the application.
> >
> >At least, that's what I think. What's your opinion?
>
> If you mean that subsystems need to understand each others' public
> interfaces and nothing more, then I agree.  Otherwise, how would one
> subsystem call another if it didn't know what to call?
>
> Subsystems should stand alone wherever possible, but I think isolating
> them from Perl data types would make little sense.  Why create a great
> data manipulation library only to rewrite it in every subsystem?
>
> -- Rocco Caputo / [EMAIL PROTECTED] / poe.perl.org / poe.sourceforge.net
>
>
>


I'm sorry I didn't express myself OK..., but we're in violent agreement.
Please read my previous post to the perl6-internals mail-list, entitled

    ``Modular subsystem design (was Re: Speaking of signals...)''

Your ``pluggable'' idea is just what I was looking for. To me, that's what
perl6 needs to be.

Branden

Reply via email to