[squeak-dev] A update to SystemTracer for getting back to 32 bits

David T. Lewis lewis at mail.msen.com
Mon Jan 12 21:01:56 UTC 2015


Hi Eliot,

You can use any 6504/6505 image. Just load the tracer from
http://www.squeaksource.com/SystemTracing or from SqueakMap.

To trace an existing 32-bit (format 6504 or 6505) image to 64-bit format:

SystemTracer64 writeImage: 'clone64.image'

To trace an 64-bit (format 68002) image to 32-bit format:

SystemTracer2 writeImage: 'clone32.image'

For a VM to run the 68002 image, you can use
http://www.squeakvm.org/unix/release/Squeak-4.10.2.2614_64bit-linux_x86_64.tar.gz
(although it would be better to compile a new one, because I've fixed a
couple things since then).

I did not think to try it earlier, but you might get the same symptoms if
you trace a 32-bit image into 32-bit format. I'm away and can't check it
now, but that might be an easier way to figure out what is going on.

Dave


> Hi Dave, give me detailed instructions on what to load (or preferably an
> image ready to go) and I'll fix this.
>
> Eliot (phone)
>
> On Jan 12, 2015, at 10:20 AM, "David T. Lewis" <lewis at mail.msen.com>
> wrote:
>
>>> On 12.01.2015, at 01:47, David T. Lewis <lewis at mail.msen.com> wrote:
>>>>
>>>> I made a minor update to the SystemTracer that allows it to convert a
>>>> 64-bit
>>>> image back to 32-bit format, and it worked perfectly with my working
>>>> Squeak
>>>> image that has been in 64-bit format for several months now.
>>>
>>> Nice!
>>>
>>>> The resulting 32-bit image must be opened first using an interpreter
>>>> VM,
>>>> after which it can be run normally with a Cog VM. Tracing should be
>>>> done
>>>> using an interpreter VM.
>>>
>>> Why is that?
>>
>> I have not yet figured out why it did not work with Cog. One possibility
>> is that the system is running a jitted method at the time of the trace,
>> and when the new 64-bit image wakes up in the interpreter VM, it is
>> still
>> in the middle of that method and the VM does not know what to do with
>> it.
>>
>> That said, I also tried tracing 64 back to 32 and then running the
>> traced
>> 32-bit image immediately in Cog. That also did not work, so it may be
>> that
>> there is some other issue involved. I am guessing that it might be
>> related
>> to the saved start of memory location in the image header, but this is
>> just a guess.
>>
>> Dave
>>
>>
>>
>




More information about the Squeak-dev mailing list