Hi Scott,
The reason is that the compiler takes these constants and inlines them
into various code in
the image. Thus, these can't be changed without retranslating the
interpreter.
The size of these arrays are now variables and the 'arrays' are dynamically allocated.
'Interp.c' was searched for these constants and replaced with variables, so I hope this approach is as good as retranslating the interpreter with new arrays size.
Unless, of course, these constants are used and hard coded into other thingies. Maybe that's the reason why it's so hard to modularise Squeak ?
While I was searching for these constants, I felt quite itchy when I saw arrays initialised from 1 instead of 0. But I know it's wise to leave it alone ;-)
So far, I have no troubles playing my FreeCell with this configurable VM, as long as I do not use a small array for atCache and a big array for methodCache. It also survives Macro Benchmarks, no crashing.
While I get hold of you, what's the status of the integration between your and Scott's enhancements to the VM ? Please keep up with the good work.
Thanks for your help, I appreciated it.
Cheers,
PhiHo.
-----Original Message----- From: Scott A Crosby [mailto:crosby@qwes.math.cmu.edu] Sent: Sunday, March 31, 2002 10:33 PM To: PhiHo Hoang Cc: 'Squeak List' Subject: RE: Fixed limits in the image. (was Re: ...)
On Sun, 31 Mar 2002, PhiHo Hoang wrote:
Hi Scott, Hi John, Hi Dan,
Thanks for your enlightments. At John's suggestion and to give
Scott
a toy to play in his optimisation effort, I made it configurable from the initialisation file 'SqM.ini' the following parameters:
It was found that the VM will crash at different places as _AT_CACHE_SIZE_ is reduced.
Higher _METHOD_CACHE_SIZE_ and lower _AT_CACHE_SIZE_ tend to crash the
VM.
The reason is that the compiler takes these constants and inlines them into various code in the image. Thus, these can't be changed without retranslating the interpreter.
I responded to your post because I thought it wise to elaborate on what I knew and see if anyone else knew anything.
Scott