[Vm-dev] Help neede merging a pull request (was: Cog + Pi + OSProcess)

David T. Lewis lewis at mail.msen.com
Tue Jul 19 22:57:16 UTC 2016

I recently made an update to fix X11 display reopening for Cog/Spur.
I put the change into my dtlewis290 branch on github, and issued a
pull request to merge it into Cog:


I think that the next step is for someone to merge it into the Cog
branch. But this is the first time I've committed something here, and
I don't want to cause any problems. I would appreciate if someone
(Eliot?) could take a look at this and hit the "Merge pull request"
button if you think it looks ok.



On Mon, Jul 18, 2016 at 12:10:05AM -0400, David T. Lewis wrote:
> On Sun, Jul 17, 2016 at 12:52:21PM -0400, David T. Lewis wrote:
> >  
> > On Wed, Jun 08, 2016 at 11:42:57AM -0700, tim Rowledge wrote:
> > > 
> > > I finally got a moment to look at this - not that I really have much clue about the whole unix process thing - and it appears that something is odd with the compiled code in the plugin.
> > > 
> > > My test is very simple - run the UnixProcess class>listDirectory example. It exits with a segfault and the forkAndExec??? method as the last thing on the stack.
> > > 
> > > I build a debug vm (and had some fun with asserts and the ARM fp offset in the process, all fixed now) and??? it doesn???t fail. I???ve tried compiling the plugin with varying levels of optimisation, since we???ve fairly regularly seen problems there, and even at -O0 it fails. So debug -> OK, no-debug -> boom. Nice.
> > > 
> > > Ideas?
> > >
> > 
> > Hi Tim,
> > 
> > It looks like the oscog branch of OSPP is broken. I tried OSProcess on
> > my new Raspberry Pi, and it fails as you describe. I recompiled using
> > source from my unaltered main branch of the plugin, and it works fine.
> > 
> > A quick fix is to just copy the generated source from the interpreter VM
> > (src/plugins/UnixOSProcessPlugin/UnixOSProcessPlugin.c) and use it in your
> > Spur VM build.
> > 
> > #forkSqueak is still broken (no display opens for the child Squeak) but
> > that seems to be a problem elsewhere in the platforms code. It used to work
> > in Cog, but I have not hunted down the regression.
> >
> Well here is a milestone. I just made my first git pull request to fix the
> broken #forkSqueak problem so that "UnixProcess forkSqueak" will open a
> forked child Squeak with a new X11 display window:
>   https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/29/commits/6b40d654651f279419951d0117880c32a3594132
> And I think that my memory was probably failing me. After looking through
> the changes history, I don't think this ever worked in Cog. But it should
> work now :-)
> So with this patch, and if you also use the trunk OSProcessPlugin instead of
> the oscog version, then you should have a reasonably functional OSProcess and
> CommandShell on your Raspberry Pi.
> Best of all, the OSProcess and CommandShell unit tests will once again
> entertain you with lots of child process Squeak windows opening and closing
> all over your screen.
> Dave

More information about the Vm-dev mailing list