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
|