Mac VM source code (Croquet crash)

Josh Gargus schwa at fastmail.us
Thu Jun 16 12:27:30 UTC 2005


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




More information about the Squeak-dev mailing list