Mac Carbon VM goes to 3.8.14b7

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Mac Carbon VM goes to 3.8.14b7

johnmci
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
========================================================================
===



Reply | Threaded
Open this post in threaded view
|

Re: Mac Carbon VM goes to 3.8.14b7

karl-8
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
> ===========================================================================
>
>
>
>
>
I'll put the VM up on the ftp. Raymond, could you build another mac
package ?
Karl