[squeak-dev] Squeak Carbon OS-X VM 3.8.19beta1U ships

stephane ducasse stephane.ducasse at free.fr
Wed Oct 29 07:13:18 UTC 2008


On Oct 29, 2008, at 2:31 AM, John M McIntosh wrote:

> This VM has a number of fundamental changes and can be found
> via ftp or my idisk at  http://www.smalltalkconsulting.com/squeak.html
>
> (a) I have changed how image files are read.
>
> Users should verify the VM still will load and work with their  
> current images on their current systems. I have tested with macintel  
> on 10.5.x and powerpc on 10.4.x but have NOT tested on a 10.3.x  
> powerpc system, if some 10.3.x user could do that it would be  
> appreciated.
>
> (b) I no longer cwd (change working directory) at startup time to  
> the VM directory, and I added a change so if the image name is for  
> example Squeak.image we attempt to find that in the VM directory.  
> This change *should* enable the ablility to launch a VM and image  
> and startup file from a command line using relative file paths,  
> versus having to give absolute paths.

cool thanks I will try that.!

>
>
> Users are welcome to test and confirm this feature works as expected  
> with relative and absolute paths for the image and startup file.
>
> Memory allocation background:
>
> In the past we have read the image file into a pre-allocated chunk  
> of memory allocated via mmap, now I have changed to a more  
> complicated but faster method of reading which then allows us to  
> someday depending on your VM to avoid re-swizzling pointers for an  
> image that is launched on a unix, windows, or iPhone since all oops  
> should start on the 500MB boundary.
>
> What happens is we mmap the image file with copy on write mmap into  
> a segment of memory starting at a real address of 500MB  
> (500*1024*1024), the next virtual memory page follow the size of the  
> file then is anonymously mmap upto the maximum memory size choosen  
> for the implmentation. In this case we allocate 512MB of memory  
> which is a settable option in the info.plist.
>
> Because of mmap differences between operating systems, and versions  
> of operating systems I cannot say if this will work on your  
> favourite device, but it does seem to work on os-x 10.4 & 10.5 for  
> powerpc and macintel, plus on iPhone 2.x.
>
> Post loading we check to see if the memory start location is the  
> same as the memory start location when the image was saved. If not  
> then we adjust all oops pointers by the difference in addresses. If  
> the saved image was at the 500MB boundary then we do not need to  
> walk all the oops to swizzle pointers, this saves some CPU cycle and  
> becomes important on slow devices like the iPhone, or when we want  
> to use Squeak as a scripting engine and expect really fast startup.
>
> --
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> John M. McIntosh <johnmci at smalltalkconsulting.com>
> Corporate Smalltalk Consulting Ltd.  http:// 
> www.smalltalkconsulting.com
> = 
> = 
> = 
> = 
> = 
> ======================================================================
>
>
>
>
>




More information about the Squeak-dev mailing list