On 5 January 2011 04:12, David T. Lewis <lewis@mail.msen.com> wrote:
On Tue, Jan 04, 2011 at 08:03:42PM -0300, Esteban Lorenzano wrote:
ah... I think (if I understood well) the real problem is that OSProcess were implementing it's own aio things and now it is relying (correctly) in AioPlugin... so, before that, it wasn't important if AioPlugin was present, and now it is (btw... UnixOSProcessPlugin don't really need AioPlugin, it switches to an ugly but necessary polling when absent)
Cheers, Esteban
Yes, that's right. The first version of OSProcess (from 1999) had OSProcess and the OSProcessPlugin. Over time, it grew and I split it into packages. Now CommandShell and OSProcess are the image side packages, and OSProcessPlugin, AioPlugin, and XDisplayControlPlugin provide the VM plugin support. All of it is written in Smalltalk, including the plugins.
Originally, CommandShell was part of OSProcess. And originally, AioPlugin and XDisplayPlugin were part of OSProcessPlugin.
CommandShell uses OSProcess (but loads and runs without it). OSProcess uses mainly OSProcessPlugin, but also AioPlugin if available. OSProcess also uses XDisplayControlPlugin when running on X11, expecially to support #forkSqueak.
The X window system is separate from the operating system, therefore the XDisplayControlPlugin is separate from the OSProcessPlugin. The aio functions are separate from the operating system (they are part of Ian's Unix support code, but not OS functions per se), so the AioPlugin is also separate from the OSProcessPlugin.
What i have learned , that AioPlugin should be included in VM, so osprocess plugin will use more elegant way of working :)
At the higher level, things that relate directly to operating system functions and to the representation of OS processes are part of OSProcess. Things that relate to the pipes, unix shell syntax, file name globbing, command line parsing, and shell window display are part of CommandShell.
yes, but it is much nicer to use asynchronous IO for speaking with those pipes etc, than synchronous, because VM don't needs to be (b)locked each time.
Dave
-- Best regards, Igor Stasenko AKA sig.