mac carbon vm 3.8.11b1U posted to experimental

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

mac carbon vm 3.8.11b1U posted to experimental

johnmci
I've posted a mac carbon vm 3.8.11b1U for universal to

http:://www.smalltalkconsulting.com/squeak.html

follow links to idisk or FTP.

This VM is a result of a major cleaning done over the weekend where  
I  did:

a) Refactored removed old OS-9 code, always use carbon, etc, basic  
housekeeping chores that were put off for a few years.
b) Removed TARGET_API_MAC_CARBON,  IHAVENOHEAD
c) Made most variables static, procedures static where applicable.
d) Always use Unix file names, drop any HFS logic
e) Eradicate most usages of FSSpec, except for drop file logic (sigh)  
and a specialized use  in InternetConfig, and URL post/get
f) Reworked much of drag and drop logic to eradicate complaints from  
the 10.4u depreciated warnings monster....


Testers should ensure drag and drop works as expected from the  
finder, and Safari, also that starting the VM by cmd line,
by clicking on one or more images, or squeak documents, or drag and  
drop to squeak VM in finder works as expected, and or setting the  
plist.info  Also someone might confirm that the MacIntel box likes  
this VM, untested here on the island. I'll note I did poke a bit at  
the full screen logic for the MacIntel port, perhaps it works now?

I have a NPSqueak (the squeak browser plugin) but need some brave  
fellow to poke at it since it's been converted to unix file names
and refactored and greatly touched and untested in the area of URL  
GET and POST logic, let alone a zillion other areas.

Likely as time permits I am going to do a paranoid pass thru the Mac  
VM code to ensure bad return codes, improper values are
considered, trapped and give acceptable feedback and fprintfs to  
stderr. For the most part such checks are done, but I think the level of
paranoia was not high enough.  That and add the headless support, not  
sure why tho....

 From the readme notes:

3.8.11b1

                sqMacOpenGL..c
                sqMacOpenGLInfo.c
                sqMacDragDrop.c
                        don't bother with Gestalt, we now drag and drop exists on machines  
of os-x era.
                        convert to use FSRef
                        Use GetDragAttributes versus bounds in window.
                        Drop WaitNextEvent, dummy up event

                  sqMacUnixFileInterface.c
                        findImageFilterProc use get pathname and last path component to  
decide if file is image

                  sqMacUnixFileInterface.h
                  sqMacHostWindow.c
                        use QDLocalToGlobalRect in ioPositionOfWindow versus casting rect  
to point
                  sqMacHostWindow.h
                  sqMacInternetConfiguration.c
                        make FSRef when dealing with ICFileSpec
                        remove some copy pascal to c calls.
                  sqMacJoystickAndTablet.c
                  sqMacMIDI.c
                  sqMacSecurity.c
                  sqMacSerialPost.c
                  sqMacUUID.c
                  sqMacEncoding.c
                        Drop SetImageName()
                  sqMacEncoding.h
                  sqMacFileLogic.h
                  sqMacImageIO.c
                        drop calculateStartLocationForImage() logic
                  sqMacImageIO.h
                  sqMacMain.c
                        drop powerManager logic, not needed, cleanup of statics, cleanup  
for browser logic
                        cast data right for sprintf(data,"%X",myattr);
                  sqMacMain.h
                  sqMacMemory.c
                        removal of the os-9 swapfile logic
                      watch signed versus unsigned compares
                  sqMacTime.c
                  sqMacTime.h
                  sqMacUIAppleEvents.c
                        use gCurrentVMEncoding, versus system encoding for getting file names
                        drop logic for start of image offset os-9 feature
                        remove PBHSetVolSync()
                        drop LocalToGlobal, use fake mouse location
                   sqMacUIAppleEvents.h
                   sqMacUIClipBoard.c
                   sqmacUIClipBoard.h
                   sqMacUIConstants.h
                   sqMacUIEvents.h
                   sqMacUIEventsUniversal.c
                        remove tap power manager event loop callback
                        In MyWindowEventMouseHandler() put back in 10.2.8 versus 10.3.9 logic
                   sqMacUIMenuBar.h
                   sqMacUUIMenuBarUniversal.c
                   sqMacUnixCommandLineInterface.c
                   sqMacUnixExternalPrims.c
                   sqMacWindow.h
                   sqMacWindowUniversal.c
                        In ioSetFullScreenActual, use QDLocalToGlobalRect, versus casting  
to points
                        In copy124BitsTheHardWay little versus bit endian for making gworld

                   sqMacNSPluginUILogic.c
                        use QDSwapPort versus get/set port for performance reasons
                        In ioShowDisplayOnWindow avoid double get of windowPort
                        In recordMouseEvent use QDGlobalToLocalPoint
                    sqMacNSPlugin.c
                        Make windowActive = 1, not sure why this didn't fail in the past...
                        Alter GetTempFSSpec to return both fsspec and FSRef

3.8.10b16
                Update info.plists and xcode projects on SVN
               
                Drop #ifdefs for this below, we always compile on MACH now, versus  
CodeWarrior
                Certain end of CodeWarrior OS-9 Support.
                        #if defined (__APPLE__) && defined(__MACH__)
                        #if defined I_AM_CARBON_EVENT
                        #if defined MINIMALVM  (sorry Dan)
                sqMacOpenGL..c
                sqMacOpenGLInfo.c
                sqMacWindowPlugin.c
                sqMacImageIO.c
                sqMacMain.c
                sqMacMemory.c
                sqMacTime.c
                sqMacUIAppleEvents.c
                sqMacWindowsUniversal.c
                sqPlatformSpecific.c
                sqMacNSPlugin.c

                osExport.c
                        Export GetUIToLock api so we can callback from FFI on browser  
plugin UI thread.
                sqConfig.h
                        Remove #ifdefs above and references to Codewarrior 8
                sqmacMain.c
                        change logic to support Sophie Browser plugin SOPHIEVI change  
logic to get bundle by bundle id when a browser plugin so we can
                        get bundle info.plist for startup logic and when we ask for VM  
version info
                        remove the gThreadManager OS-9 cooperative thread logic

                sqMacUIAppleEvents.c
                        browser plugin VM should not Launch Squeak VM on double click.
         
                sqMacUIEventsUniversal.c
                        add getUIToLock() logic for Browser plugin support

                sqMacUnixExternalPrims.c
                        Browser plugin loading bundles support (for squeakland and Sophie)

                sqMacWindowUniversal.c
                        Fiddle with CGImageCreate  32 host endiness issues
                        Fix cursors data/mask on intel

                info.plist for Squeak VM Universal
               
                sqmacNSPluginUILogic.c
                        complete refactor of bits for Squeak browser plugin, put squeak VM  
stuff in seperate file

                sqMacNSPlugin.c
                        complete refactor of bits for Squeak browser plugin, move squeak  
stuff to other file.
                        Make work with unix file names


--
========================================================================
===
John M. McIntosh <[hidden email]> 1-800-477-2659
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
========================================================================
===