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 <[hidden email]> Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ======================================================================== === |
John M McIntosh skrev:
> 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 <[hidden email]> > Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com > =========================================================================== > > > > > package ? Karl |
Free forum by Nabble | Edit this page |