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
|