[Cuis-dev] Dynamic recompilation when platform changes?

Juan Vuletich juan at jvuletich.org
Mon Mar 9 07:43:46 PDT 2020


On 3/7/2020 3:48 PM, Phil B via Cuis-dev wrote:
> This has been in the back of my mind for a while and some recent posts 
> about Sista getting closer to being ready for prime time got me 
> thinking about it again.  Some of the performance optimizations buried 
> deep in Cuis/Squeak are from a time when the VM was much slower than 
> it is today.  From time to time, I've thought about starting to go 
> through and identifying which primitives get called purely for 
> performance reasons vs. things that actually need to be done in the VM 
> and seeing if the original decisions still hold.  The thing that talks 
> me out of it is that while X may indeed be more performant today on 
> 64-bit x86 in a spur VM, it may not be on 32-bit ARM in a stack VM.
>
> Another related issue is that there are approaches I will take when 
> I'm on an x86 desktop that I'll go in a completely different direction 
> on with an ARM SBC, primarily due to performance and memory differences.
>
> So what I'm wondering is if there is any interest in having a class 
> method whose implementors are called on startup only when one of the 
> major platform variables (platform/architecture/VM type) changes?  Of 
> course, I can do this in a #startUp method.  I just wanted to see if 
> there's any wider interest in this at an image level before I go off 
> and roll my own thing.

Hi Phil,

I think it makes sense to do this in the base image. Also, check that 
there is code that checks for a change in endianess, and fixes the byte 
order of some objects if required. All this kind of stuff should be in a 
single place, I think.

Thanks,

-- 
Juan Vuletich
www.cuis-smalltalk.org
https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev
https://github.com/jvuletich
https://www.linkedin.com/in/juan-vuletich-75611b3
@JuanVuletich



More information about the Cuis-dev mailing list