pending mac os-x browser plugin 3.8.8b3

John M McIntosh johnmci at smalltalkconsulting.com
Thu Jun 16 04:20:09 UTC 2005


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