Which mac VM (was RE: String>>hash performance)

John M McIntosh squeak-dev at lists.squeakfoundation.org
Fri Sep 6 23:22:23 UTC 2002


On Thursday, September 5, 2002, at 08:30  PM, Richard A. O'Keefe wrote:

> John M McIntosh <johnmci at smalltalkconsulting.com>
> *very* helpfully wrote:
> 	In general the application used must have the largest version number,
> 	an internally assigned number that I typically increment for each VM
> 	distributed. In case of version number duplication then the  
> application
> 	with the latest creation date is used, if duplication then it's  
> usually
> 	the one you've last moved within the finder.  Ah, os-x might have some
> 	different opinions here.
>
> ....	
> 	IE do a custom search for file type is APPL and creator is 'FAST'
>
> I have
>     Date       'vers'        Name
>     2000.01.04 <<missing>>   Squeak VM 2.7 PPC
>     2000.08.28 2.8.0 Final 0 Squeak VM 2.8
>     2001.02.28 3.0.8 Alpha 8 Squeak 3.0Alpha8MT
>     2001.06.31 3.1.8 Alpha 0 Squeak 3.0     (the browser plugin)
>     2002.05.31 3.2.7 Beta  7 Squeak 3.2.7b6 Classic
>     2002.05.31 3.2.7 Beta  7 Squeak 3.2 VM  (a copy in a shared folder)
> 	
> The 'vers' resource doesn't seem to be helping MacOS 8.6 find the
> most recent version.

I see that. I did check my 3.0.8MT in my archive of shipped VM and  
found it's version 3.0.8
I''ve this note from apple (it's old)
Date Written: 11/27/90

Last reviewed: 6/14/93

We have several versions of a Macintosh application (standard,  
demonstration, student, and so on) and they all share the same type  
('APPL') and creator bytes. When we have all of the versions on a hard  
disk, double-clicking on a document launches the demonstration version  
rather than the full version. Is the system's application choice based  
on its date of creation, name, or other attribute? How can a user  
specify which of several versions s/he wishes to launch when  
double-clicking on a document? Alternatively, what can we as developers  
do to designate the standard version as the one to be launched if there  
are other versions on the disk?

Under System 6, the Finder adds information about the last application  
copied to a disk to the disk's Desktop file, and that application is  
used for opening documents with the appropriate creator type.

Under System 7, the Desktop Database maintains a list of the disk's  
applications, and when asked (via the call PBDTGetAPPL) specifically  
returns as the "preferred" application on a volume the one with the  
appropriate creator type and most recent creation date. Make certain  
that the desired application has the most recent creation date before  
users copy it to their hard drives. For more information about the  
Desktop Database under System 7, see the Finder Interface chapter of  
Inside Macintosh Volume VI.
--------------------

As you've notice what you are finding isn't following the rules for  
system 6.x or 7.x. But I do recall a bug report when I was building the  
browser plugin installer that fetching the application based on type  
from the desktop database would result in a array that 'should' be  
sorted in creation order. However a *bug* in the logic in some versions  
of os 8.x would return the list in the order you last moved/copied the  
application.

I'll point out personally I felt that os-9.x was 100% more stable than  
os 8.x and paying for the migration is well worth the expense just from  
the stability viewpoint, even if you don't migrate to os-x. os-9 is  
just way better...


>
> 	Then delete the ones you don't want to use.
>
> It's not clear to me that I don't want to use any of them.
> I had imagined that the browser plugin VM was different for a reason;
> not that I have any idea what the reason might be.

I believe they install a VM in the browser folder for completeness sake  
so you can run the image standalone or embedded in the browser using  
the browser plugin. But really it could go if you've another VM handy,  
unless of course someone wants to point out some security issue I'm not  
aware of with the Smalltalk code in the plugin image?

> If you want to see whether something works in an older Squeak,
> you _don't_ want to do your testing in a VM that might have some
> bugs fixed.  And of course, older VMs asked for less memory; on a
> 64MB machine it is surprising just how little you can have running
> at the same time as a Squeak 3.2 VM.

New VM need more memory to run because the image is bigger. You can  
adjust the memory down to as little as 1MB if you can find an image  
that fits within 500K or so, going with 10MB if you've an 6mb image is  
workable too. Might need to use resedit to adjust the minimum size. At  
one time it was 1000K but then I found that some versions of the mac OS  
would then stuff the VM into say a 4MB hole and attempt to run it. Then  
the user would be confused because the image wouldn't run, and "About  
this mac" seemed to imply lots of memory was available, but not a large  
contiguous block.

>
> I don't know how MacOS picks 'em, but it certainly isn't newness...
>
> Hokay, I've compressed all but the latest VM, so that I _can_ test with
> older VMs by uncompress followed by drag-and-drop.

This works fine too.

>
> Should something about this be in an installation guide somewhere?
> Should a new release image (or one derived from it) pop up a warning
> if run on an older VM?

It could, I'd check
Smalltalk vmVersion

that returns on newer VM's
'Squeak3.2gamma of 15 January 2002 [latest update: #4913] Squeak VM  
3.2.8b4'

For older VM it just returns the string
'Squeak3.2gamma of 15 January 2002 [latest update: #4913] '

But both are useful in deciding the age of the VM, I guess one could  
submit a change request /enh to have a check at start to match a 3.2 vm  
with a 3.2image etc... (higher version VM should run lower version  
number images).


Welll I was going to try 3.0.8mt with 3.2gamma4918 but found the image  
does a fatal walkback on startup
screen is blank, resizing shows the emergency evaluator up with

***system error handling failed***
Error: Bad BitBlt arg (Fraction?); proceed to convert.
Debugger class...

BitBlt(Object)>>error:
BitBlt>>copyBits

That's interesting, mmm I'm not sure we've talked about forward  
compatibility here, so don't expect a 3.2
image to run with a 3.0 VM.

--
======================================================================== 
===
John M. McIntosh <johnmci at smalltalkconsulting.com> 1-800-477-2659
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
======================================================================== 
===




More information about the Squeak-dev mailing list