Mac VM source code (Croquet crash)

Josh Gargus schwa at fastmail.us
Thu Jun 16 20:24:46 UTC 2005


On Jun 16, 2005, at 1:47 PM, John M McIntosh wrote:

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

Great, thanks.

>
> For the source code.
>
>     A.    Visit http://subversion.tigris.org/ to understand SVN,  
> and I suspect install SVN on your machine.
>

Used it at my last job.  Thanks for the pointer to the client.

>         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

Great!  I guess my head was stuck in the distant distant past where  
you went to a different place for each platform's source.

Thanks,
Josh


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