Mac VM source code (Croquet crash)

John M McIntosh johnmci at smalltalkconsulting.com
Thu Jun 16 18:47:02 UTC 2005


This is a known problem, I thought I had pushed the fix out,  
apparently not, sorry.
I will build a 3.8.8b3 VM and distribute later tonight.

For the source code.

     A.    Visit http://subversion.tigris.org/ to understand SVN, and  
I suspect install SVN on your machine.
         You should visit
             http://www.lachoseinteractive.net/en/community/ 
subversion/svnx/download/
         to get the client gui &
             http://homepage.mac.com/martinott/
         to get the SVN binaries
         Checkout a working copy of the squeak/trunk, either via the  
GUI tool, or from a terminal session go to the directory
         you want to build in, then enter svn co http:// 
squeak.hpl.hp.com/svn/squeak/trunk svnSqueakTree

The follow the readme in the the 'mac os' tree developer  
documentation folder.
This should allow you to build a 3.8.8b3 mac carbon VM.


On 16-Jun-05, at 5:27 AM, Josh Gargus wrote:

> Where can the source code for the Mac releases be found?
>
> I'm crashing in Croquet with any VM I have that is newer than  
> 3.7.5b3.  This happens as soon as I open a TeapotMorph - bang!  The  
> image disappears.  The console logs the following error:
>
> deprecated -- do not use -- and then delete me
>
> 104714468 TeapotMorph>render
> 104714284 [] in TeapotMorph>drawOn:
> 104714008 BlockContext>on:do:
> 104714100 [] in TeapotMorph>drawOn:
> 104713916 BlockContext>ensure:
> 104713704 [] in TeapotMorph>drawOn:
> 104713796 [] in BlockContext>newProcess
>
> The 'deprecated -- do not use -- and then delete me' does not  
> appear in the image, so I assume that it's somewhere in the VM  
> source code.  Any ideas?
>
> Thanks,
> Josh
>
>
> On Jun 15, 2005, at 11:20 PM, John M McIntosh wrote:
>
>
>> I've migrated the netscape plugin NPSqueak.bundle from 3.7.5b1 to  
>> 3.8.8b3.
>>
>> This change covers a lot of ground, however it should fix:
>>
>> a) crashes from time to time in draw logic
>> b) faster updating and more CPU time to Squeak when it is busy.
>> c) a million other things since  3.7.5b1 to 3.8.8b3 changes cover  
>> lots, see below.
>>
>> Find a beta version at
>>
>> http://homepage.mac.com/johnmci/FileSharing.html
>>
>> experimental:BrowserPlugin directory
>> NPSqueak.bundle.zip
>>
>> You should unzip the plugin and replace the NPSqueak.bundle found in
>> /Application/SqueakLand/Squeak/Internet/
>>
>> with the new version, then restart your browser and run some tests.
>>
>> 3.8.8b3     sqMacNSPlugin.c     Alter screen updates to 60 per  
>> seconds, wait on each event for 15 milliseconds to give Squeak  
>> time to update screen.
>>
>> 3.8.8b2            Revisions to the 32/64bit memory access to  
>> improve VM performance
>>                 sqMacEncoding.c,            Fix bug reported by  
>> Stephan B. Wessels swessels at cox.net, crash on Tiger if  
>> squeak.image is in resource folder
>>                 sqMacJoystickAndTablet.c    More rewrites by Bert.
>>                 sqPlatformSpecific.h        Add undefs for  
>> dispatchFunctionPointer, dispatchFunctionPointerOnin
>>                 sqMacUIAppleEvents.c        Fix issue with window  
>> title not showing long image name on drag & drop image
>>                 sqMacMain.c                Fix issue with window  
>> title not showing long image name on image selection from dialog  
>> prompt.
>>                 sqMacUnixCommandLineInterface.c    New, enable  
>> command line functions and environment variables.
>>                      -help                 print this help  
>> message, then exit                    -memory <size>[mk]    use  
>> fixed heap size (added to image size)
>>                      -pathenc <enc>        set encoding for  
>> pathnames (default: UTF-8)
>>                     or as environment variables
>>                     SQUEAK_IMAGE, SQUEAK_MEMORY, SQUEAK_PATHENC
>>
>>
>> 3.8.8b1            Not released to general public
>>                 sqMacAsyncFilePrims.c        (void*) for  
>> ioLoadFunction
>>                 sqMacDragDrop.c            (void*) for ioLoadFunction
>>                 sqMacHostWindow.c        (void*) for ioLoadFunction
>>                 sqMacJoystickAndTablet.c    minor changes
>>                 sqMacSecurity.c            (void*) for ioLoadFunction
>>                 sqUnixSoundMacOSXJMM.c    add static to var to  
>> avoid compiler warning
>>                 sqMacExternalPrims.c        (void*) for various  
>> module interfacing
>>                 sqMacWindows.c            (void*) for ioLoadFunction
>>
>>
>> 3.8.7b7            Revised and altered os-x joystick support based  
>> on changes by Bert
>>                 Move towards 32/64bit VM logic by using latest VM  
>> Maker
>>                 sqMacExternalPrims.c        (void *) usage
>>                 sqMacFileLogic.c            (void *) usage
>>
>> 3.8.7b6            Added Dominique Dutoit hitoro at easynet.be  
>> changes for os-x joystick support.
>>
>> 3.8.7b5            Fix logic to allow you to start VM from command  
>> line, changed
>>                 sqMacFileLogic.c makeHFSFromPosixPath added to  
>> convert posix cmd line path names to HFS
>>                 sqMacMain.c    add logic to call cmd line parser
>>                 sqMacUnixCommandLineInterface.c    new file logic  
>> to parse cmd line
>>                 sqMacUnixCommandLineInterface.h
>>                 sqMacWindow.c        minor changes to correct  
>> compiler errors
>>
>> 3.8.7b4/b3        Limited release for testing
>>
>> 3.8.7b2            sqUIEvents.c changed keyUp/keyDown to supply  
>> mac virtual keycode versus unicode, added new parm to keyChar to  
>> supply UTF-32 Unicode.
>>                 As per Andreas request for Tweak.
>>
>> 3.8.7b1            sqUIEvents.c changed keyUp/keyDown logic to  
>> match Windows pattern, key repeat becomes keyDown/keyDown/keyUp
>>
>> 3.8.6b6            sqMacMIDI.c add #def so I can compile under  
>> code warrior os-9 again
>>                 sqMacEncoding.c, sqMacEncoding.h  Minor changes so  
>> I can compile user code warrior os-9 again
>>                 sqMacUnixInterfaceSound.c  Fix problem with empty  
>> buffer being full of junk under certain conditions, that causes a  
>> sharp sound  bite.
>>
>> 3.8.6b5            Change to JMM & AR GC instrumentation patch,  
>> collect a few less statistics. Also change carbon VM to use Unix/ 
>> Quartz sound driver
>>                 which interfaces to Core Audio stuff.
>>
>> 3.8.6b4            Ensure VMMaker 3.8b2 - the VM code classes and  
>> tools for building a working vm for Squeak version  > 3.8-6461. is  
>> incorporated.
>>                 Add Andreas's GC improvement changes for
>>                 * primitiveIsYoung: This answers the question  
>> whether an object currently lives in young or in old space.
>>
>>                 * primitiveIsRoot: Answers the question whether  
>> any given object is currently a root for young space.
>>
>>                 * primitiveRootTable: Answers a snapshot of the  
>> current root table. Useful to examine the roots table if the  
>> analysis requires complex other operations during which the root  
>> table might be modified itself. Note that since this primitive can  
>> cause GC there is a small chance that it will give an inaccurate  
>> answer.
>>
>>                 * primitiveRootTableAt: Answers a single element  
>> of the root table (by one-based index). This primitive can be used  
>> to quickly scan the root table for certain objects.
>>
>>                 * primitiveSetGCSemaphore: Indicates a semaphore  
>> (index) to be signaled whenever a garbage collection occurs. I can  
>> see at least two uses uses for the GC semaphore: running cleanup  
>> actions (for example after full GCs occured) and dynamic parameter  
>> tuning for the GC algorithm itself.
>>
>>                 Add John's changes for
>>
>>                 Smalltalk setGCBiasToGrowGCLimit: 16*1024*1024.  
>> "Set growth limit before full GC to 16MB"
>>
>>                 Smalltalk setGCBiasToGrow: 1.
>>                 Set bias to grow upto GCLimit, this can avoid a  
>> problem where we attempt to avoid growing but results in thousands  
>> of incremental GC events as
>>                 we approach a knee in a curve of space used versus  
>> the growth/compaction decision.
>>
>>
>> 3.8.6b3            Add in logic for become: to fix issues with  
>> changes to become: logic.
>>
>> 3.8.6b2            sqMacWindow.c  reduce number of lock/unlock  
>> pixel events and flush no more than 91 fps, with flush check every  
>> 1/50 or 1/60 and 1/5 of a second. this
>>                 shaves another 50% off making drawing pixels 1.3%  
>> of the time originally taken.
>>
>> 3.8.6b1            sqMacWindow.c, sqUIEvents.c, changed logic to  
>> flush screen every 125 fps, this makes pixel level drawing  
>> complete in 2% of the time originally taken.
>>
>>
>> 3.8.5b1            Fix issue with gnuify. The offical gnu header  
>> file used a different #ifdef for the foo register than an altered  
>> gnu header file I was using for
>>                 many years. This resulted in slower performance,  
>> which is fixed in 3.8.5
>> 3.8.4b3            Support for GC statistical data and change to  
>> how memory is allocated and tenured.
>>                     Additional statistical information from the GC  
>> routines
>>                     Additional primitives to set GC semaphore, and  
>> to force a tenure
>>
>>                 Change to make forward logic to look for "foo  
>> become: foo" and cause a prim failure.
>>                 Earlier version of 3.8.4 where distributed to  
>> Ffenstri testers.
>>
>>                 sqMacHostWindow        Change calls to move and  
>> size window to use GUILocker callbacks to avoid VM crash.
>>                 sqMacWIndow.c        Alter 1/2/4 bit support to  
>> pass in bit size of target window, then copy is more efficient.
>>
>>
>> 3.8.3b3            Support for Host menus and windows. Also added  
>> back 1bit (B/W) and 2bit & 4bit color as requested by Dan Ingalls  
>> for os-x
>>
>>                 Earlier versions of 3.8.0/1/2/3 were distributed  
>> to the TK4 team, not the public.
>>
>>                 sq.h  Added events, EventTypeMenu, EventTypeWindow  
>> to handle menu and window events generated by the Host OS
>>                     and placed on the Squeak Event Queue to be  
>> read by EventSensor
>>
>>                 sqGnu.h Switch to the current file used by Ian  
>> for  Unix, versus older modified copy.
>>                 sqMacExternalPrims.c    Cleanup of warning message
>>                 sqMacImageIO.c        When you set the image name,  
>> we set the title on window 1.
>>                 sqMacMain.c            Do not create the main  
>> window until we actually use it.
>>                 sqMacNSPlugin.c        Always refer to window 1,  
>> not sure what it means to have other windows in the plugin yet...
>>                 sqMacUIEvents.c        OS-9
>>                                     Pass cmd-key menu activity up
>>                                     Pass update event bounding box  
>> window events up
>>                                     Pass window activate events up
>>                                     Pass menu interaction activity up
>>                                     Pass window events,  
>> resize,zoom,close,move,inconize up
>>
>>                                     OS-X
>>                                     Same as above
>>                                     getUIToLock needs to  
>> ReleaseEvent on the passed in event for GC reasons
>>                 sqMacUIMenuBar.c        disable edit menu at  
>> start, if later we find it enabled, don't touch, otherwise handle  
>> os-9 DA issues.
>>                 sqmacWindow.c        sqShowWindow now gets a  
>> windowIndex parm.
>>                                     ioShowDisplayOnWindow is  
>> added, with logic to build main window at first draw time,
>>                                     also fix some boundary checks,  
>> and provide support (again) for 1/2/4 bit color under os-x
>>                                     ioHasDisplayDepth() will  
>> return true for 1/2/4/8/16/32 bit color
>>
>>
>>
>> 3.7.5b3            OpenGL fix by Bert.
>>                 Open Squeak3D.log in the currently directory, not  
>> the root volume, also ensured this works in os9.
>>
>>                 sqMacNSPlugin.c    Alter memory check at startup  
>> to ensure we see all 512MB, not a default of 30MB
>>                 sqMacUIMenuBar.c    Don't hide menubar if squeak  
>> screen is full screen on secondary screen.
>>                 sqMacWindow.c    When you open in full screen  
>> mode, then revert, ensure the screen is resized rationally.
>>                                 Also remember screen size and  
>> location when going into full screen so revert is sane.
>>
>> --
>> ===================================================================== 
>> ======
>> John M. McIntosh <johnmci at smalltalkconsulting.com> 1-800-477-2659
>> Corporate Smalltalk Consulting Ltd.  http:// 
>> www.smalltalkconsulting.com
>> ===================================================================== 
>> ======
>>
>>
>>
>>
>
>
>

--
======================================================================== 
===
John M. McIntosh <johnmci at smalltalkconsulting.com> 1-800-477-2659
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
======================================================================== 
===




More information about the Squeak-dev mailing list