Never mind!

I had an error in my batch file!  I wasn't running my newly created VM!

It works.

Now just need to work on improving the command line parsing...

Rob

On Thu, Nov 26, 2009 at 8:18 AM, Rob Rothwell <r.j.rothwell@gmail.com> wrote:
On Thu, Nov 26, 2009 at 12:18 AM, John M McIntosh <johnmci@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@smalltalkconsulting.com>   Twitter:  squeaker68882
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
===========================================================================