[Vm-dev] Return a value from the image to the VM

Rob Rothwell r.j.rothwell at gmail.com
Thu Nov 26 13:18:38 UTC 2009

On Thu, Nov 26, 2009 at 12:18 AM, John M McIntosh <
johnmci at smalltalkconsulting.com> wrote:

> PS, in general I don't recommend doing the cross file reference to
> osErrorCode and have the
> linker do the right thing, because.
> (a) some platforms make better memory references if globals are static.
> (b) some platforms use the global VM Foo memory structure so you can't
> refer to osErrorCode directly it's  foo->osErrorCode
> So by having getOsErrorCode()  hides where the value really comes from.
> However technically if one was wanting to ensure there is no external
> references to interp.c you would
> alter sqVirtualMachine.h and add a set/get api for the Error code then use
> interpreterProxy-> to access
> the data.  However that's a bit more work than required for a one-off
> solution.

I think I might have to figure this out for this "one-off" solution!

My setOSErrorCode "works" when I start the image up by dragging the image
onto the executable in Windows XP, or at least the primitive appears to

However, when I test the whole point of the exercise by running a batch file
with something like:

start /wait squeak.exe working.image
echo %errorlevel%

Interpreter>>setOSErrorCode (my new primitive) fails!

So...starting from Windows works; starting from a DOS-box fails.  Seems like
a memory management thing to me?

It's been a long time, but does anyone try to debug this sort of thing with
an actual debugger?  Throw an INT 9 in there and watch what happens?  I
might have an old copy of Turbo Debugger somewhere...

Thanks again.  I'll try to figure out how to use interpreterProxy and see
what happens...


> On 2009-11-25, at 9:01 PM, Rob Rothwell wrote:
> > Then, of course, all I want to do is something like:
> >
> > int ioExit(void)
> > {
> >   inCleanExit = 1;
> >   exit(osErrorCode);
> >   /* avoid the warnings here */
> >   return 0;
> >
> > in sqWin32Window.c...
> --
> ===========================================================================
> John M. McIntosh <johnmci at smalltalkconsulting.com>   Twitter:
>  squeaker68882
> Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
> ===========================================================================
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20091126/8f9f2fc9/attachment.htm

More information about the Vm-dev mailing list