[squeak-dev] Squeak Carbon OS-X VM 3.8.19beta1U ships
damien.pollet at gmail.com
Wed Oct 29 14:54:02 UTC 2008
I'm adopting this VW for daily use, we'll see if it breaks :)
The only problem I had is it still doesn't contain the BitBlt plugin
which is needed for freetype fonts. What happened is the VM stopped
during launch (before displaying its window, hogging the cpu.
Can you ship future VMs with the additional plugins included (at least
BitBlt, and maybe Curl and AIO too would be useful) ?
On Wed, Oct 29, 2008 at 8:13 AM, stephane ducasse
<stephane.ducasse at free.fr> wrote:
> 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
> 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
>> 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
type less, do more [ | ] http://people.untyped.org/damien.pollet
More information about the Squeak-dev