Mac Carbon VM goes to 3.8.14b7
John M McIntosh
johnmci at smalltalkconsulting.com
Tue Dec 12 19:14:43 UTC 2006
I've published a new Macintosh Carbon Universal (powerpc/macintel) VM
3.8.14b7.
This VM is posted to my idisk or FTP site found via
http://www.smalltalkconsulting.com/squeak.html
I'll note currently the published version on ftp.squeak.org is
3.8.12b4, if someone in the web/server/ftp group could update the mac
3.9 distribution that would be great, perhaps in 24/48 hours just in
case someone has issues with the VM.
Since the 3.8.12b4 release the work done has included more info.plist
entries to control mouse button mapping, headless support, and
thanks to funding from ViewPoint Research a complete rewrite of the
browser plugin logic to launch a VM as a sub-process of the browser
using roughly the same logic as the X11 unix browser plugin/VM
interface.
As noted earlier the printJob plugin changes to 1.4 to suport
CGContext drawing with EPS support, and the FreeType 2 Plugin
was recompiled to support G3 powerpc machines.
Changes since 3.8.12b4 are listed below:
Mac VM 3.8.14 mach-o build for Carbon, Sophie, Exupery, (Safari &
Firefox browsers) and Croquet.
Support for Croquet, support for Safari, support for TK4/Sophie,
support for Multiple Windows/Ffenestri, full GC instrumentation,
configurable quartz flush drawing, MacIntel Machines, mappable mouse
buttons, Safari and Firefox browser support and finally Exupery
interfaces. Plugins include support for
April 24th, 2006 (3.8.12b4)
June 5th, 2006 (3.8.12b5)
Sept xth, 2006 (3.8.12b5)
Sept 22th, 2006 (3.8.12b7)
Sept 25th, 2006 (3.8.13b1)
Oct 13th, 2006 (3.8.13b3
Oct 16th 2006 (3.8.13b4)
Nov 10th, 2006 (3.8.14b2)
Nov 16th, 2006 (3.8.14b3)
Nov 21th, 2006 (3.8.14b5)
Nov 23th, 2006 (3.8.14b6)
Dec 12th, 2006 (3.8.14b7)
Still yet to do, in future versions -> Verify that file delete rename
etc works on aliases, not the targets. (Yawn, someday)
Pre OS-X users should read about OS-9 packages in the 3.2.4 change
notes.
3.8.14b7 sqMacMain.c Add signal handler on SIGSEGV, dump all stacks.
3.8.14b6 More browser changes
sqMacSecurity Alter logic to accept plist.info entry for
untrustedDirectory.
info.plist Add mouse button logic for browser events, uses
SqueakBrowserMouseNoneButton1
etc. Also add SqueakBrowserUnTrustedDirectory which is
~/Library/Preferences/Squeak/Internet/My Squeak/
sqMacMain.c Add logic to parse new entries (as above) from info.plist
sqMacUIEventsUniversal On figuring out MouseModifierStateCarbon,
consider if it's a browser event,
if so then use SqueakBrowserMouseNoneButton1 entries, versus
SqueakMouseNoneButton1
3.8.14b5 Alter browser logic
npsqueak.c add some more debugging prints
sqMacMain.c change version number and UUID
sqMacNSPluginUILogic2.c More debug printing, also get correct mouse
and modifer key state when we
have a keystroke event.
sqMacUIEventsUniversal.c Get browser mouse position via remembering
fake carbon events to avoid
doing the get/setPort and GetMousePoint() 1984 logic. Add the
checkBrowserForHeartBeat
logic which checks every 6.66 seconds if the parent process (the
browser) is running, if not then
we ask the VM to quit. This suggestion by Juergen Gmeiner ensures
the VM does not become an
orphaned process if the browser crashes.
3.8.14b4 had limited release.
3.8.14b3 sqMacWIndowUnversial.c Ensure window is created when non-
headless and not running under the browser
typo in check prevent squeak from showing the window when running
standalone for 3.8.14b2.
sqMacMain.c Check processsor status at startup, if non-headless
and LSBackgroundOnly is true, then
switch process to foreground.
info.plist rest LSBackgroundOnly to false, from true, to avoid
Dock display issue. People
wanting true headless app need then to alter info.plist
revert bitBlt>copyLoop changes, introduced drawing problems, look
at fixing later, or never as time permits
3.8.14b2 Fixes for browser support
3.8.14b1 New browser support on os-x mac/macintel for safari and
firefox.
This logic now follows the example set by the unix plugin, where we
run the VM headless and talk to the browser plugin stub via a two-
way pipe to
enable fetching data via a URL, drawing the screen, and setting the
cursor.
Thanks to Viewpoint Research for funding this effort.
This VM had limited distribution.
sqMacOpenGL.c - remove BROWSERPLUGIN
sqMacUnixFileInterface.c - needed include for sqUnixCharConv.h
sqMacHostWindow.c - remove BROWSERPLUGIN
sqMacMain.c - remove BROWSERPLUGIN, add browser pipe logic,
rearrange startup to handle startup with out window for
browser support.
sqMacMemory.c - remove BROWSERPLUGIN
sqMacTime.c - remove BROWSERPLUGIN
sqMacUIAppleEvents.c - remove BROWSERPLUGIN
sqMacUIEventsUniversal.c - remove BROWSERPLUGIN, expose some
internals so new browser
support code can call or access.
sqMacUnixCommandLineInterface.c - add headfull cmd for browser testing
sqMacUnixExernalPrims.c - remove BROWSERPLUGIN
sqMacWIndowUnversial.c - remove BROWSERPLUGIN, changes for browser
support,
assume window is hidden which is different from being headless.
sqNamedPrims.h - remove BROWSERPLUGIN
sqPlatformSpecific.h - remove BROWSERPLUGIN, add URL_FETCH
npSqueak - Directory, add plugin for browser into source tree
sqMacNSPLuginUILogic2.c - new file to replace sqmacNSPluginUILogic.c
sqMacNSPLuginUILogic2.h - new file to replace sqmacNSPluginUILogic2.c
3.8.13.b4 Headless support
sqMacMain.c
headless, set background to false if not headless.
alter uuid returned to signify which VM this is
info.plist
swap buttons to ensure cmd/opt of trackpad is right
Add LSBackgroundOnly to yes i
sqMacEventsUniversal.c
headless support
sqMacUnixCommandLineInterface.c
headless parm -headless added
sqMacWindowUniversal.c
headless support
platforms/Cross/plugins/ExuperyPLugin created
3.8.13.b4, b5, b6, b7
Had limited distribution to test new button modification logic
3.8.13.b3
bitBlt>copyLoop changes, normally it prefetchs the next byte for
barrel shifting 64 bits when copying from
one form to another, and a dirty secret and old bug is that it
reads one word past the end of the Form
when it processes the last word in the Form. However when you use
surfaces where the surface is
allocated elsewhere not in object space and in fact say the
allocated form is 2MB and the vm memory
system makes the frame past the 2MB range non-readable, why then
you die on a read protection failure.
So alter the loop to consider if it's preload and the last line we
don't do the pre-fetch because that could
cause a read failure.
3.8.13.b2
Exupery support, via plugin and changes in the VM for Mac Intel,
use merged VMMaker-Exupery change set
3.8.13.b1
Exupery support, via plugin and changes in the VM for Mac Intel.
http://minnow.cc.gatech.edu/squeak/5672
3.8.12.b7 sqMacUIEventsUniversal.c
rewrite MouseModifierStateCarbon() So that we use information in
info.plist to map buttons left to right
1, 2, 3 into red, yellow, blue. Thus on a scroll mouse the
buttons read left to right 1, 3, 2 red,blue,yellow
as the mac classic behavior. SqueakMouseCmd is when cmd key is
donwn, Option, for option/alt key, and
Control for control key. This then gives you full control over what
the mouse button to red/yellow/blue is.
<key>SqueakMouseNoneButton1</key>
<integer>1</integer>
<key>SqueakMouseNoneButton2</key>
<integer>3</integer>
<key>SqueakMouseNoneButton3</key>
<integer>2</integer>
<key>SqueakMouseCmdButton1</key>
<integer>2</integer>
<key>SqueakMouseCmdButton2</key>
<integer>3</integer>
<key>SqueakMouseCmdButton3</key>
<integer>2</integer>
<key>SqueakMouseOptionButton1</key>
<integer>3</integer>
<key>SqueakMouseOptionButton2</key>
<integer>3</integer>
<key>SqueakMouseOptionButton3</key>
<integer>2</integer>
<key>SqueakMouseControlButton1</key>
<integer>1</integer>
<key>SqueakMouseControlButton2</key>
<integer>3</integer>
<key>SqueakMouseControlButton3</key>
<integer>2</integer>
3.8.12b6
sqMacUIEventsUniversal.c
First trial at button mapping, not widely distributed and
completely changed by 3.8.12b7
3.8.12b5
sqMacUnixExternalPrims.c
Ensure frameworks get loaded out of application resources, then
system area. Before
we only looked in system area which was wrong if you want to
override framework.
I'll note we can't load from plugin folder for system frameworks,
does not see to work,
if first path not found it resolve to system area.
--
========================================================================
===
John M. McIntosh <johnmci at smalltalkconsulting.com>
Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com
========================================================================
===
More information about the Squeak-dev
mailing list
|