[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
execute!
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...
Rob
>
>
> 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