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
|