Source forge changes for mac vm 3.2.1, pending 3.2.1 Mac VM!

John M McIntosh johnmci at smalltalkconsulting.com
Wed Jan 9 07:20:58 UTC 2002


I've posted changes for the 3.2.1 Mac Final VM.
I also put the classic and mach-o carbon VM into the update stream to 
be placed on the servers in a day or so.

The changes for 3.2.1 are:

Mac VM 3.2.1 mach-o build for Carbon.
Jan 8th 2002

Still yet to do, in future versions.
Test drag and drop at startup time
Verify that file delete rename etc works on aliases, not the targets.
Verify that sound input works, seems flaky to me.

You might need these change sets to build a new VM or to use all the 
features of this VM with your image, hopefully these will get into 
the pending 3.2.x image.

Fixes and feature extensions.
AsyncFileFixFu...hName-JMM.1.cs	fix for async test method.
DragAndDropAtStart-JMM.5.cs		fix to enable drag and drop at startup

Needed to compile a VM with VMMaker
LargeFiles-JMM.3.cs			Enable large file support, files > 2GB

Needed to turn this feature on
MacLongFileName-JMM.5.cs		Enable long file names on the mac

The SUnit
MacLongFileNamesSUnits-JMM.3.cs	Test long file names and long 
directory names and large file support

Kinda optional features some people might need.
InternetConfiguration-JMM.5.cs	Allow internet configuration 
information access, internal plugin
UUID-JMM.3.cs				Allow UUID generation, internal plugin

You will need mach-o os-x bundle plugins to work with this VM. 
example -> mpeg3Plugin.bundle.
Old carbon non-bundled plugins will not work.

Note if you turn crash reporter on, then if the VM crashes a nice 
report should be generated in your log directory.  See the Apple 
documentation for a description of this feature, currently it is set 
in OS-X 10.1.x via the preferences window for the Console 
Application. If have a crash with this VM, please recreate and post 
the crash log (found in Users/foobar/Library/Logs/ to the Squeak 
mailing list so we can continue to make the VM fault tolerant.

Changes:

a) The ability to get back a UUID. This uses the hosting UUID generator if the
  hosting OS supports it and we have a primitive we can call. If not 
then we generate
  a type 4 version of a UUID (the random bits one).
(This requires a special change set)

b) Ability to start squeak on the mac by dragging multiple documents onto the
image, or drag and drop of stuff onto the running VM icon.
(This requires a special change set)

c) Usage of the Internet Configuration tool kit to supply information about
what the mac proxy is etc. etc.
(This requires a special change set)

d) Migrate file system to use 64 bits. This allows you to read/write and seek
with files > 2 GB. This includes a change to the VM to convert from/to long
long integers. It also allows the file system to actually deal with 2GB files,
the current file interface actually fails once the file exceeds 1GB.

e) For the carbon based Squeak VM we now support long file names 255
characters. Close both eyes and touch everywhere the mac VM deals with file
name paths and hope for the best (Actually we write an Sunit to ensure we've
not broken everything). This also includes the ability to put an image in a
long file name directory, but right now the image name must stay 
under 32 characters.

FilePlugin.c changes to support large integers.
FilePlugin.h changes
sq.h changes to support large files.
sqConfig.h changes to resolve some conflicts.
sqFilePluginBasicPrims.c  changes to support large files.
sqMacAsyncFilePrims.c changes to use fspec versus 255 file path.
sqMacDirectory.c changes to use hosting OS (OS-X) bsd create and 
delete directory
  and truncate. dir_look changes as part of the general rewrite.
sqMacDragAndDrop.c use new call to get path name from fsspec. Use 
fsspec more, and added
   interface code to setup drag and drop of items at application 
startup time. max document name
   goes to 1000 characters.
sqMacFileLogic.c Mostly rewrote!
sqMacSecurity.c use new file calls.
sqMacWindow.c
	increase size of vmpath, docpath, imagepath to 1000 chars, 
shortname to 255 characters.
	add logic for left/right modifier keys
	reworked LoadLibViaPath logic
	sqImageFileOpen uses fsspec versus 255 path name.
	sqImageFileStartLocation uses ffspec.
	bundle support for bundles

e2) interp.c supports get/put of large integers to long long integers.
e3) fixed fTruncate

Hint getting this to work was a pain. Think of 255 character folder 
names and nested aliases,
folder 1 refers to folder 2 which then refers to folder 1 again, just 
go down the path say 8 times,
then ask to create a file or directory!

f) Support to change the Mac screen resolution under Squeak control.

g) Fix to unload/load the scrap at startup time to ensure the clipboard is
correct when starting up the VM.

h) Uncouple the shift key and left/right shift keys on old extended keyboard.
Also add a call to get which keys are currently pressed on a USB keyboard or
the USB codes for an apple non-usb keyboard. (Note this isn't working 
quite yet under OS-X)

i) Changes to enable us to compile the VM under Apple's OS-X Project Builder
environments.

j) Some rewriting to ensure serial and midi support can be written as external
plugins.

k) Fiddling to get sound input to work under OS-X

l) Platform.exports changed macintosh to macintoshSqueak to avoid conflict.

m) Memory is allocated at 50MB at start, then will grow or shrink, 
verus previous carbon apps
  that did 1GB.

n) sqPlatformSpecific.h changes to support long file names and os-x 
posix file names

o) sqVirtualmachine.c & sqVirtualmachine.h
#if VM_PROXY_MINOR > 4
	VM->positive64BitIntegerFor = positive64BitIntegerFor;
	VM->positive64BitValueOf = positive64BitValueOf;
	VM->signed64BitIntegerFor = signed64BitIntegerFor;
	VM->signed64BitValueOf = signed64BitValueOf;
#endif

Beware this causes an interesting problem, if you compile plugins 
with VM_PROXY_MINOR now set to 5, then they will not work with older 
VMs. The solution is to define the VM_PROXY_MINOR in the plugin to 
the value that indicates what features it is using.

p) Changed to use ITimer logic as a 16ms lowres timer to improve performance

q) Changed to use single thread, no thread manager.

r) Changed to use lowres timer in checking for polling time to 
improve performance

s) It should have faster startup times.

t) It will hide the empty window at startup, then show the squeak 
window when required.

u) It has a different menu structure.

v) It does less I/O when navigating directories.

-- 
--
===========================================================================
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