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

Bruce ONeel beoneel at bluewin.ch
Wed Jan 9 15:53:34 UTC 2002


Hi,
	Thanks John!  The new VMs are up in the 3.2alpha directory.

cheers

bruce

John M McIntosh <johnmci at smalltalkconsulting.com> wrote:
> 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