Squeak crashes on MacOS on Intel Mac

John M McIntosh johnmci at smalltalkconsulting.com
Wed Apr 18 21:13:27 UTC 2007


On Apr 18, 2007, at 12:41 PM, efimov wrote:

> Hello, John.
>
> or my be, do you have native VM for Intel Mac? i suggest VM 3.7
> unix-mac is ok, but unfortunaly there are not this VM for Intel Mac
> in repository.

Can't help with unix macintel vm.


Did you try a mac carbon VM 3.8.15b6 VM from

ftp.smalltalkconsulting.com

and use the UnixOSProcessPlugin.4.0.1.bundle   ?


If you used 3.8.15b1 lets see well lots of changes for browser  
support, some fixes. Do you have a crash dump
from the 3.8.15b1 trial using UnixOSProcessPlugin.bundle 4.0.1?


3.8.16b5		Squeak3d logic did not swap bytes corrrectly for macintel.  
Add parm to config.h and compiler.

3.8.16b4		sqMacSecurity.c	Oops get external char [] wrong and why it  
crashes on strcpy...

3.8.16b3 	Changed SqueakBrowserUntrustedDirectory info.plist to  
SqueakUntrustedDirectory and added SqueakTrustedDirectory.
			
			sqMacMain.c		warning msg cleanup, add logic to get  
gSqueakTrustedDirectoryName

			sqMacSecurity.c	Rework how trusted directory is made, always make  
from info.plist entry, versus old unix hack.
							warning msg cleanup.
3.8.16b2
			sqMacUIEventsUniversal.c  Bug fix, optimized out stale screen  
flushing.
			experimental, pulled, had bug where asking for vmParm < 0 or >2 <  
1000 or 1201 or 1202
			would give uuid back, oops

3.8.15b8<<<>>>>browser plugin
			
			Fixed issue where when we go to setup the shared memory region the  
file name is not random enough, thus
			if timing is right you end up sharing the same shared memory  
region if you run Safari and FireFox at the
			same time. That gave one of our testers interesting visual side  
effects.

			Fixed window draw issue in Safari, would blank Safari window to  
white, then not redraw properly, have to follow os-9
			rules for updatewindow logic on a update window request.

			Update cursor logic so that moving out of the plugin window  
restores the cursor, moving back in
			sets the special squeak cursor.

			Don't pass activate or update events to the VM, activate is  
pointless, update is handled internally, we can draw
			the screen according to the clip area.

			Finally make pipe to VM non-blocking, if we get a EAGAIN, we try  
20 times then give up. This solves the issue when
			a person uses the Quit Button in the plugin and stops the VM from  
running. Of course the screen is not updated now
			but we still retain control of the cursor,keyboard  so you can  
reload the etoy application via the browser. Before Safari
			would lockup trying to send data to the non-existant VM.

3.8.16b1		Revision to 3.8.16 because of adding browser full screen  
support
		
			sqMacMain.c				on exit reset menu bar if was headless, browser,  
and went full screen
			
			sqMacNSPluginUILogic2.c	add helper methods for when in browser  
mode and gone full screen, also
									then ignore cmds from browser when in full screen mode.
			
			sqMacNSPluginUILogic2.h	header changes

			sqMacUIEvents.h			Add missing RunApplicationEventLoopWithSqueak  
declare

			sqMacUIEventsUniversal.c	When running full screen in browser mode,  
we need to consider application activation,
									deactivation, mouse cursor enter/leave,  
gSqueakBrowserMouseMappings versus
									gSqueakMouseMappings, screen flushing

			sqMacWindowUniversal.c	On going full screen we need to fix the  
menu bar, show the window, ensure window
									context is set correctly, send bits to the window, versus  
browser, flip squeak to
									the foreground, and ensure cursor sets go to the foreground  
versus the browser.
						
									On leaving full screen, we must flip to the browser, and  
hide the window.


3.8.15b8  	sqMacNSPluginUILogic2.c	Alter shared memory include 20  
more bytes to
									indicate a drawing request and the co-ordinates versus using  
the pipe.
			
			sqMacNSPluginUILogic2.h	structure added.
			
			sqMacUIEventsUniversal.c	Do not flush hidden squeak window,  
pointless when running in browser mode.

			sqMacWindowUniversal.c	Do not flush hidden squeak window,  
pointless when running in browser mode.
									Alter browser screen update logic, use shared memory to  
indicate a draw is
									needed and where. Later when we come back to draw the next  
frame, if the
									pending draw is not done yet, we wait 1 second in a phtread  
pause loop in 10 ms
									increments. This ensures we do not overrun the ability of  
the browser to draw frames

3.8.15b7		Was test version, not widely distributed.

3.8.15b6		sqMacUIEventsUniversal.c 	add logic to swap global to local  
on mouse point on demand.

			sqMacNSPluginUILogic2.c	add logic to avoid swapping local mouse  
point from browser
									to global and back

			npsqueak.c (3.8.15b1)		remove aio logic, remove 10.4 only  
CGimageFromImageRect
									cleanup, test on safari and firefox for proper rendering and  
clipping
									when scrolled and placed in arbitrary frame.

3.8.15b5
			squeakBrowser-info.plist 	add SqueakDebug parm (1) debug msgs, (0)  
no debug msgs

			npsqueak.c		streamline context usage a bit, make local var versus  
on structure
							add logic to print msgs based on info.plist

			sqMacMain.c		Add SqueakDebug parm (1) debug msgs, (0) no debug msgs
							debug messages for browser interface, and module loading
							Add SqueakQuitOnQuitAppleEvent, true if we should quit  
immediately if
							operating system sends us quit msg, as a result of logout.  
Normally false.

			sqMacUIAppleEvents.c	If you logout we get a quit apple event msg,  
normally we ignore,
							unless SqueakQuitOnQuitAppleEvent is set.

			sqMacUIEventsUniversal.c  If the user picks edit menu, item one,  
actually check to see if
							the string is "Quit do not save", if so then quit, otherwise  
pass revised menu
							choice to Smalltalk.

			sqMacUnixExternalPrims.c	Look to SqueakDebug for msg printing

		
			sqMacWindowUniversal.c	Look to SqueakDebug for msg printing, mind  
file does not print any msgs yet
						
3.8.15b4	
			sqMacUnixFileInterface.c
				Memory leak issue,  PathToFileViaFSRef  was not freeing mutable  
string.
					Free nav services dialog, cleanup  that routine a bit more. 			
			sqMacEncoding.c
				Memory leak issue, SetImageNameViaCFString not freeing  
imageNameString

			sqMacMain.c
				Add cocoInterfaceForTilda to invoke cocoa interface properly for  
tilda resolving, to avoid
				msg in console log about forgetting to free nsstring.
			
			sqMacNSPluginUILogic2.c
				Ensure SharedBrowserBitMapContextRef is freed early in process of  
rebuilding to minimize
				race conditions.

			sqMacWindowUniversal.c
				In ioShowDisplayOnWindow be a bit more paranoid if drawing  
surface exists.
				In copy124BitsTheHardWay, cleanup a bit because of a bug Bert  
found where in a browser
				headless app the virtual window size is changed. however the  
original code asks the hidden
				window what it's size is after being resized, but the VM has  
already see the new size, so 				copy124BitsTheHardWay is using stale  
information, and we're hosed. Really we want to
				use information from the ioShowDisplayOnWindow about the drawing  
size, and ignore what
				size the window is because that's not important.

3.8.15b3 		
			sqMacUnixFileInterface.c
				If you passed in an bad file path, say with incorrect encoding,  
then in convertChars
				we would try to convert to UTF8, that would fail, but no check so  
code to do the
				normalization would crash the VM

			Cursor support change for Impara. Need the ability to change the  
cursor back to normal cursor
			when we exit the window, or the application. Then when we re-enter  
the application or window
			it should flip back to the cursor that was being used by Squeak  
when we exited.

			sqMacHostWindow.c
				
				Add CreateMouseTrackingRegion() logic, add call in closeWindow to  
ReleaseMouseTrackingRegion
				In ioSizeOfWindowSetxy call back to reset tracking region size.
			
			sqMacHostWindow.h
				Add windowTrackingRef to window descriptor block

			sqMacMain.c
				Version number, and uuid change

			sqMacUIEventsUniversal.c
				When we setup events for window call logic to start mouse region  
tracking
				Add mouse enter/leave logic
				On application activate/deactivate need to set squeak cursor or  
initcursor
				Add kEventWindowResizeCompleted to trigger rebuild of mouse  
tracking region
				Add kEventMouseEntered and kEventMouseExited to handle cursor change
		

				BUG FIX, deal with mouse move and button state, if you had an  
apple super mouse
				you would have noticed if the mouse button was down, and you  
moved the scroll wheel
				it would think the mouse when up, because we forgot to return  
cached mouse button state. Oops.
				BUG was introduced in 3.8.12.b7

			SqMacWindowUniversal.c
				Add logic to remember cursor on cursor change and set flag if  
squeak had change cursor.


3.8.15b2		had limited release



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





More information about the Squeak-dev mailing list