|
From: John M M. <jo...@us...> - 2004-09-02 23:07:33
|
Update of /cvsroot/squeak/squeak/platforms/Mac OS/vm/Documentation In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19720/squeak/platforms/Mac OS/vm/Documentation Added Files: 3.7.5 Release Notes.rtf Log Message: 3.7.5b1 update --- NEW FILE: 3.7.5 Release Notes.rtf --- {\rtf1\mac\ansicpg10000\cocoartf102 {\fonttbl\f0\fnil\fcharset77 Geneva;\f1\fswiss\fcharset77 Helvetica;\f2\fnil\fcharset77 Monaco; \f3\fnil\fcharset77 LucidaGrande;} {\colortbl;\red255\green255\blue255;\red137\green19\blue21;\red26\green26\blue255;} \margl1440\margr1440\vieww17300\viewh12720\viewkind0 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f0\fs24 \cf0 Mac VM 3.7.5 mach-o build for Carbon, and build for Classic. Support for Croquet, support for Safari, pending support for TK4\ Aug 31th, 2004 (3.7.5b1)\ \ Still yet to do, in future versions -> Verify that file delete rename etc works on aliases, not the targets. (Yawn, someday)\ \ Pre OS-X users should read about OS-9 packages in the 3.2.4 change notes.\ \ 3.7.4 seems a fine VM, from what people tell me, but now we've 3.7.5...\ \ 3.7.5b1 Released to fix issues with 16bit to 32bit display color mapping\ \ Cleanup of compiler warning message.\ sqMacAsyncFilePrims.c, sqMacOpenGL.c, sqMacDragDrop.c, sqMacDirectory.c, \ sqMacInternetConfiguration.c, sqMacJoystickAndtablet.c, sqMacMIDI.c, sqMacSecurity.c,\ sqMacSerialPort.c, sqMacNetwork.c, sqMacSound.c, sqMacUUID.c, sqMacEnconding.c,\ sqMacFileLogic.c, sqMacImageIO.c, sqMacMain.c, sqMacMemory.c, sqMacNSPlugin.c,\ sqMacTime.c, sqMacUIAppleEvents.c, sqMacUIClipBoard.c, sqPlatformSpecific.h\ \ sqMacUIEvents.c\ Prework for multiple window support, use event supplied window versus stWindow. \ Change os-9 behavior to bring window to front swallow click\ Change os-x behavior to bring window to front swallow click\ \ sqMacWindow.c\ Prework for multiple window support, use getSTWindow() call versus stWindow. \ Use lookup table to properly map 5bit color space to 8bit color space. Some crummy code was introduced in 3.6.1b3\ which did a poor job of color space transformation (16->32bit).\ \ sqMacExternalPrims.c\ Alter load logic to use kCFURLPOSIXPathStyle path name versus hfs path name. \ Alter load logic for frameworks to look in User, Network, Local, System domains for framework,\ before we would only look in the System domain. This allows frameworks at the user domain scope.\ \ Cleanup of squeak window references pending multiple window support\ \ 3.7.4b3 Released to fix issues in Netscape plugin code\ FIX PROBLEM that triggers image read failure on G5 machines. This prevents image from running on G5 machines.\ Problem shows up as browser crash or failure to start squeakland project.\ \ 3.7.4b2 Released to fix issues in Netscape plugin code\ Do not start timers until later in the image start, this prevents failure if image doesn't load\ Support failureURL and imageName embed html tags\ \ 3.7.4b1 primitive Function Pointer goes into method cache logic, better lookup times.\ Force Interrupt Check logic in VM to fix most/all? issues with tight loops and keyboard interrupt logic.\ more sanity checks in displayBitsOfLeftTopRightBottom\ cleanup of flushExternalPrimitiveOf\ cleanup of oopFromChunk\ refactor pop then push to pop:thenPush:\ lookupMethodInDictionary refactor to make one loop looking, versus perhaps two.\ mark/sweep logic or type, versus adding type (or is correct math)\ dispatchFunctionPointer logic\ rework primitiveScanCharacters logic\ add parm to VMparms to set interruptChecksEveryNms\ Fix bug in primitiveYield\ \ LargeIntegersPlugin add normalization logic\ \ ZipPlugin added primitiveUpdateAdler32 primitive\ \ 3.7.3b4 Numerous changes for Unicode file name support, and proper support for keyup/keydown on os-x. \ \ sqVirtualMachine.c VM_PROXY_MINOR set to 6 to support isArray = isArray;\ \ interp.c New VMMaker code update, major change is to use dispatchFunctionPointerOnin logic to dispatch \ primitive calls, versus going via a jumptable/case statement. Also Tim reviewed the usage of the \ millisecond clock and improved things so we don't need to check the clock on every prim call. This \ makes the RISC and other platforms faster. However it only has minor effect on the os-x carbon VM \ because of how the cheap millisecond clock is implemented.\ \ sqMacDirectory.c Change dir_Lookup // HFS+ imposes Unicode2.1 decomposed UTF-8 encoding on all path elements\ Per request from \f1 Tetsuya HAYASHI <{\field{\*\fldinst{HYPERLINK "mailto:te...@st..."}}{\fldrslt te...@st...}}>\ \ sqMacEncoding.c Alter SetVMPath() \f0 per request from \f1 Tetsuya HAYASHI , \ add support for \f2\fs20 \CocoaLigature0 \ \cf2 "ShiftJIS"\cf0 kCFStringEncodingShiftJIS\ \f1\fs24 \CocoaLigature1 \ sqMacFileLogic.c Alter makeFSSpec(), get kCFStringNormalizationFormD path name\ Alter PathToFile(), get kCFStringNormalizationFormKC path name\ Alter QuicklyMakePath() get kCFStringNormalizationFormKC path name\ New routine unicode2NativePascalString()\ Alter makeOSXPath, get kCFStringNormalizationFormKD path name \f0 \ Alter resolveLongName, get kCFStringNormalizationFormKC path name\ Alter FSMakeFSSpecCompat(), call \f1 unicode2NativePascalString to normalize path name \f0 \ \ sqMacMemory.c Allow browser plugin to allocate 512MB of VM space for image under os-x. \ \ sqMacUIAppleEvents.c Use CFStringGetSystemEncoding versus suggested plist.info suggestion because the encoding info is quite right yet at\ this point in the startup time.\ \ sqMacUIEvents.c Key Up is now reported as an event when the key is released. Earlier os-x carbon VMs would report the key up after the\ keystroke was processed by Text Services, which was incorrect. We also deal with Key repeat correctly and don't send\ another key down event. This change has made it possible to properly support Morphic games where key up/down state is\ important to game interaction. \ \ sqMacWindow.c Fix crash in ShowWindow(). This was due to a pthread race condition between the UI thread and interp.c. \ Fixed by using UI callback to handle the show screen call. Would show up as a crash before window appeared.\ \ 3.7.3bx Earlier versions of 3.7.3 were released to confirm the file changes for Japanese users worked correctly, and to \ confirm that the keyUp logic changes worked as desired.\ \ 3.7.2b1 Changes for NPSqueak to fix issues with full screen mode under Safari 1.2 (V125) \ Usage of VMMaker3-7b2 to build interp.c\ Unicode values now come up from the classic VM versus the historical (1984) keycode values, this makes Tweak work.\ \ 3.7.1b2 \ JPEG READER WRITER\ usage of Apple '-fast' uncovered a source code issue, initialization routines for internal jpeg plugin were not returning true or false, before this was kinda of considered as true. But when compiled with -fast it's zero, meaning the inialization failed, but that is bogus.\ \ 3.7.1b1\ Use of "-fast" apple gcc 3.3 compiler option, improves sends by significant %\ \f1 On EventKeyUp/EventKeyDown you get the UniCode On EventKeyChar you get the UniCode->MacRoman translated character.\ Broke high bit ascii macroman in 3.7.0bx.\ For multi-byte character input you get EventKeyDown/EventKeyChar/EventKeyUp for each unicode character coming from the input sequence.\ \f0 \ 3.7.0b2 \ \f1 a) You can alter the application's Info.plist by setting the SqueakEncodingType using the ICANA readable names\ \ macintosh - >macRoman \ UTF-8 -> UTF-8\ \ b) Support for sqSocketListenOnPortBacklogSizeInterface, which allows you to specify the interface to use for the listen should work both for os-x and os-9.\ c) Usage of VMMaker3-7a2.\ d) Special change sets: make primitive point x/y internal, and slightly faster activate.\ \f0 \ 3.7.0b1 \ \f1 Changes for the "m17n" package fromTetsuya HAYASHI <{\field{\*\fldinst{HYPERLINK "mailto:te...@st..."}}{\fldrslt te...@st...}}> so one can type Kanji characters.\ \ \f0 3.6.1b7 \ SqMacWindow.c Fix for new rending code when used with 2.8 or earlier images, mouse clicks reported in wrong place\ \ 3.6.1b6\ SqMacWindow.c Enable 8bit all modes of 8 bit rendering\ \ 3.6.1b5\ SqMacWindow.c Enable 8bit support for 8->8 8->16 8->32 \ \ 3.6.1b4\ SqMacWindow.c Fix issues with title bar height calculation, was using the wrong window region to do this. Also failed \ for full screen usage. Tinkered a bit with ioDisplay moving bytes, now do <=32 bytes directly. \ 3.6.1b3\ SqMacWindow.c Alter logic to allow for 16->32 and 32->16 mapping using direct copy logic. Workaround for \ os-x 10.3.0 copybits bug. Released for limited testing. Awaiting real fix from Apple.\ \ 3.6.1b2\ SqMacWindow.c Alter to use unix direct port bit copy versus copybits to get around a crash caused by a bug\ in os-x 10.3.0 copybits. Released for limited testing\ \ 3.6.0b2\ Build from about to be offical 3.6.0 VM, Balloon & VM Maker source.\ Added in \ ArraysToGlobalStruct-JMM.1.cs\ ?3.7 Status unknown, but makes better interp.c interpreter loop code (silly optimizer).\ FasterCopyLoop-JMM.4.cs\ FasterCopyLoopPart2-JMM.2.cs\ ?3.7 Status unknown, but makes drawing 20%+ faster due to better PowerPC code optimizations\ FasterLookupMethod-JMM.1.cs\ ?3.7 Status unknown, but makes method lookup a bit faster. \ MakePrimPointXInternal-JMM.1.cs\ ?3.7 Status unknown, but makes point x/y access faster.\ \ SlightlyFasterActivate-JMM.3.cs\ Rolled into 3.7\ \ You need 3.5.3b1 for Safari plugin support\ \ 3.5.3b1 (browser plugin)\ Fixed issues with IE drawing and crashs related to screen updating in non-thread safe IE.\ \ 3.5.2b6\ Fixed issues with plugin discovery for netscape plugin \ 3.5.2b5\ Fixed primitive dispatch to use gnuified jump table. \ \ 3.5.2b4 \ Fix issue with race on open doc events and squeak VM Thread for drag and drop support when starting squeak\ For os-x expose primitivePluginBrowserReady, not the rest of the URL browser primitives, they don't work in Safari\ For system attribute 1003 return powerpc versus PowerPC to match unix VM\ Start timers later in the VM startup logic, after reading the image, versus before.\ sqMacNSPlugin.c - Look for Squeak folder in User, local, Network, System domains versus just User.\ sqMacTime.c - Use old delay logic (1ms accurate), versus aioPoll (10ms accurate).\ sqMacUIEvents.c - Only create PowerManagerDefeatTimer tick routine if power manager tapping is required which is only os-9 anyways.\ sqMacUIMenuBar.c - Draw menu bar later in startup, after we change it, save 200+ms\ BitBltPlugin.c - alphaSourceBlendBits16 Use table lookup which is 90% faster\ - copyLoopNoSource, roll constants into register versus recalculating.\ \ 3.5.2b2 \ Fix applescript document handling logic to prevent overrunning the drag/drop logic via the command line open cmd by using a spin loop\ to ensure Squeak has sufficent time to read the file name. \ \ 3.5.2b1 \ Changed the bitBlt copyloop logic to use locals in safe places, versus globals. This improves drawing by 5%.\ Major change is usage of GCC 3.3, versus GCC 2.95.x This increases send/second by about 8%.\ \ \ 3.5.1b5 Added some more user changeable attributes, and changed some window behaviour when floating\ OS-x Version only \ SqueakWindowHasTitle - (Yes/No) yes if window should get title.\ SqueakFloatingWindowGetsFocus (Yes/No) yes if window should allow click and type if floating.\ SqueakMaxHeapSize - (Number) set to 512K, max size for os-x memory heap. Note changing this to 1GB may or may not cause a \ core dump depending on where os-x allocates the memory segment above or below the 2GB boundary. \ \ sqMacUIEvents.c - set keyboard focus to floating window if required, do not hide floating window when we go to full screen mode.\ sqMacWindows.c - watch out for memory leak when we free the color table. \ \ 3.5.1b4 Please note the major changes to network code in 3.5.1b2\ a)Added options SqueakWindowType & SqueakWIndowAttributes to info.plist. The SqueakWindowType of 6 is the standard document window, a type of 8 is the floating utility window. The attributes control with window attributes and behavior according to\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f1 \cf3 \ul \ulc3 http://developer.apple.com/techpubs/macosx/Carbon/HumanInterfaceToolbox/WindowManager/Window_Manager/wind_mgr_ref/constant_2.html#//apple_ref/c/tdef/WindowAttributes\ &\cf0 \ulnone \ \cf3 \ul http://developer.apple.com/techpubs/macosx/Carbon/HumanInterfaceToolbox/WindowManager/Window_Manager/wind_mgr_ref/constant_1.html#//apple_ref/doc/c_ref/WindowClass\cf0 \ulnone \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f0 \cf0 b) Sockets are not valid if the network is not initialized. \ c) The os-9 vm can return the open file error in the vm attribute data 1202\ d) MyWindowEventMouseHandler was leaking region handles.\ e) Support for primitiveClosureValue, primitiveClosureValueWithArgs, primitiveExecuteMethod\ f) when rootTableCount goes > 2400 then allocationCount gets allocationsBetweenGCs + 1 \ g) BitBlt Alpha Blending has changed\ h) Added primitiveWrite24BmpLine\ i) The guard if statement for primitiveSerialPortRead was flawed, noted the buffer overflow, but then proceeded, versus returning. \ \ 3.5.1b3 \ a) Fix, Stephane Ducasse <du...@ia...> pointed out that using a virtual desktop we had a crash in ioSetFullScreen. This \ was due to a pthread race condition between the UI thread and interp.c. Fixed by using UI callback to handle fullscreen window/move/resize.\ \ 3.5.1b2\ a) Switch to aio.h logic and unix socket logic! This is a MAJOR change!!!!\ \ b) Call aioPoll (select()) to cause process wait versus old pthread logic. This follows in the footsteps of the unix port. You should verify that \ cpu time when squeak is idle is not affected in a dreadful manner.\ c) Fix, if you call does this directory exists on a file now you will get an error which will signal that the directory does not exist. This ensures\ the FileDirectory test suite works. \ d) Fix, if you quit the browser plugin, check the status of the pthread_cancel before attempting the pthread_join\ \ 3.5.1b1 limited distribution\ \ 3.5.0b4 \ a) os-x exposed an issue with EToyPeerToPeer support. It seems under os-x we get the connect, data, close so fast on lans that by the \ time we get around to asking for the remote IP address the connection is closed, and our open transport call fails. We change SqMacNetwork.c to \ return the IP address discovered at connect time in this case. Under os-9 we never saw this behavior because we suspect the network activity \ was slower and more serialized. \ \ 3.5.0b3 (Safari support)\ \ a) The plugin logic was changed to support Safari and better support os-x. This required building a CFM stub to load the mach-o compiled\ NSPLugin. The mach-o plugin now uses a pthread for the interp.c loop. This gives much better performance and user UI feedback. \ b) The GC logic was carefully reworked to optimize the assembler on the ppc. This gave us upwards of a 30-50% improvement, since \ incremental GC is going on all the time, this change actually has a effect you can see say in the solitaire example where we save 10%. \ c) sqMacNetwork.c was modified, first change in many years. The remote address and port number are requested as an async operation. \ The operation times out after a few milliseconds. This was never a problem in os-9. Now it seems there is an issue sometimes for DHCP clients\ on os-x. There the operation can timeout and return 0 as the address or port. We changed the call to do a sync operation to avoid a timeout.\ d) sqMacMain.c was modified to allow for pthreads for mach-o netscape based squeakland plugin support\ e) sqMacMemory.c changes for mach-o plugin support\ f) sqMacTime.c changes for mach-o plugin support\ g) sqMacUIEvents.c changes for mach-o plugin support\ h) sqMacWindow.c changes for mach-o plugin support \ i) npmac.cpp now this is a netscape glue routine, I changed it to ensure we can see the entry points, originally they are C++, but need \ to be "C" so the loader can find the names the CFM glue routine is looking for. Also we add the logic TV2FP to setup the mach-0 to CFM code stubs to allow the mach-o plugin to callback to the CFM stubs in Safari. \ j) sqMacNSPlugin.c \ 1) Rearrange when the interpret() thread is started to ensure a race condition doesn't happen.\ 2) use Pthreads for the mach-o osx version. \ 3) rework NPP_SetWindow to start interpret() when needed. \ 4) Alter StartDraw, EndDraw to use a mutex lock and handle os-x port locking to prevent races between pthreads.\ 5) Alter ioShowDisplay, optimization and handle os-x\ 6) fix ioSetFullScreen to make it work on Safari\ 7) fix OpenFileReadOnly to make it work on os-x, needed sqFileNameFromStringOpen macro call\ 8) Alter ExitCleanup to mutex lock to prevent race ending issues, and add a bit more cleanup\ \ \ \ Note some versions of 3.4.1 were distributed for testing only, these are superseded by 3.5.0\ \ 3.4.0b2 (Croquet support)\ \ a) Ensure vmVersion information reports correct information, was bogus in 3.4.0b1\ \ 3.4.0b1 (Croquet support)\ a) Added plugin BMPReadWriterPlugin 14 November 2002 (i)\ b) B3DAcceleratorPlugin.c gets primitiveCreateRendererFlags (new api)\ c) two more op codes get added to BitBltPlugin (fixAlphawith, pixClearwith)\ d) Squeak3D gets (b3dOrthoNormInverseMatrix, b3dTransformDirection,b3dTransformPoint,b3dTransposeMatrix)\ e) The scroll wheel mouse logic was using apple cmd key as the modifier on the arrow key events, Other platforms use the Control key. So the \ mac falls in line (changed to use the control-key)\ \ \ Notes About previous VM.\ 3.2.6 VM classic have an issue when the tickcount clock goes over 0x7FFFFFFF, about 24 days. \ This exhibits itself when Squeak won't accept user input, or allow you to switch under os 9 or earlier after 24 days,\ or starting a Squeak image hangs during the initial screen painting.\ Restarting the mac solved these problems. Force quitting Squeak does not.\ This is fixed in 3.2.7b3\ \ Some issues with alias files and folder were fixed in 3.2.7b6 and 3.2.8b3\ \ 3.2.8b9\ a) recompiled os-x version, 3.2.8b8 seem to have a bad compiler option and gave 20% less performance.\ \ 3.2.8b8\ a) exposed \f1 vmParameter \f0 24 & 25 which control how memory is allocated/freed \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f1 \cf0 Smalltalk vmParameterAt: 24 put: 48*1024*1024.\ Smalltalk vmParameterAt: 25 put: 24*1024*1024.\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f0 \cf0 b) Added argv,argc, env variables to main\ c) Fixed for Jaguar 10.2. Full screen mode cmd-tab broke menu bar hiding, this is a 10.2 bug\ d) Added support for IP_ADD/DROPMEMBERSHIP and the ability to bind to the wild card port (0).\ e) OpenGL changes for TEA\ \ 3.2.8b7 was testing release and not distributed to the public.\ 3.2.8b6 was testing release and not distributed to the public.\ 3.2.8b5\ a) Oops broke the logic returning the vmversion information in classic. Also incremented os-x version (which was fine) to keep numbers in sync\ \ 3.2.8b3 The squeak.sourceforge.net CVS tree was reorganized and the project builder project revamped. The \ major change to the source was upgrading the netscape browser plugin to 3.2.7b6 levels.\ \ a) Gnunifer.3.cs Changed to add register var on FOO_REG and to remove sqGnu.h file embedded in method.\ b) sqMacDirectory.c Add logic to handle case of building as CFM carbon plugin under CW6, needed some carbon calls\ c) osExports.c needed to ifdef out the getUIToLock entry point (not available as CFM carbon browser plugin)\ d) sqMacFileLogic.c Fix alias problem. Add logic to deal with path names as CFM carbon browser plugin, ensure vmPath is correct.\ e) sqMacImageIO.c Cast to get rid of warning message\ f) sqMacMain.c Cast to get rid of warning message, Check for CFM Carbon and bundle check. Revise vm parm 1201 code to return long file names are ok as CFM carbon browser plugin. Some diagnostic routines for printing to the console as CFM carbon browser plugin.\ g) sqMacMemory.c Logic change as CFM carbon browser plugin.\ h) sqNSPlugin.c Fix to beginFullScreen logic (carbon call is broken?)\ i) sqMacUIEvents.c Remove getUIToLock dummy call. This entry point should only exist for mach-o carbon builds. Not CFM carbon browser plugins\ j) sqMacWindow.c Use old call to create window when a CW 5 carbon application.\ k) sqPlatformSpecific.h Change #ifdef to correct logic error when building as CFM carbon browser plugin under CW 5.\ \ \ \ May 31st, 2002 (3.2.7b6)\ For 3.2.7\ \ 3.2.7b3 We build the VM using patchs to enable globals as a structure. This improves performance by 10%\ \ a) Classic Vm builders might need to add "struct foo *foo = &fum; " to int interpret(void). \ b) readme: add notes about changesets and alter build instructions\ c) sqMacFileLogic.c: use accessors for interp.c globals\ d) sqMacMain.c: use accessors for interp.c globals. Also Alain Fischer added logic to fetch os-x version number and to enable you to put squeak.image in the resource folder for autostarting.\ e) sqMacTime.h: Fix busted lowresclock again. After 24 days of mac uptime, 3.2.6 squeak will hang.\ f) sqMacUIEvents.h: use accessors for interp.c globals.\ g) sqPlatformSpecific.h: alter sqFTruncate to use fileno() as needed.\ h) sqMacWindow.c: use accessors for interp.c globals.\ i) 3.2.7b5 sqMacFileLogic.c: change vmpath to resolve to classic VM if vm is moved from MacOSClassic folder\ j) Misc changes for Netscape plugin support\ k) Introduce osExports.c logic\ l) 3.2.7b6 Fixed a problem in path name resolving need to use UTF8 to properly interact with high ascii characters\ m) 3.2.7b6 Fixed a problem in path name resolving there was a bug with certain types of alias path name combinations in quick name resolving.\ \ Mac VM 3.2.6 mach-o build for Carbon, and build for Classic.\ March 14th, 2002\ Still yet to do, in future versions.\ Verify that file delete rename etc works on aliases, not the targets.\ \ You will need mach-o os-x bundle plugins to work with this VM. example -> \f3 mpeg3Plugin.bundle.\ Old carbon non-bundled plugins will not work, but keep reading to understand where classic \ plugins still are needed.\ \f0 \ Pre OS-X users should read about OS-9 packages in the 3.2.4 change notes.\ Notes About previous VM.\ 3.2.6b6 Classic or earlier has a bug that makes it stop collecting user input on a 19.88 hour cycle depending on reboot time.\ Seems many systems don't run for more than 19 hours so we've not had major complains about this issue. \ Bug was introduced in 3.2.1.\ 3.2.5 has a bug that prevents the use of accented characters without \ a image patch to fix a VM issue (not an issue in 3.2.4). Also you can't enter an double keystroke characters, ie ^ \ which makes life difficult. It also does not support the AppleScript Plugin (not an issue in 3.2.4)\ 3.2.4 a bug in project builder introduced a performance problem (bad compiler options).\ \ See the 3.2.5 about why this 3.2.6 is different inside.\ \ For 3.2.6:\ a) Change an internal number that dictates how often pending interrupts should be looked at from 5ms to 3ms This improves \ delay accuracy.\ b) Change how sleeping is done when squeak is idle. This reduces CPU consumption, and improves Delay accuracy.\ c) Fix bug with high bit problem with keyboard (accented characters are ok now)\ c2) 3.2.6b6 has fixed characters that require multiple key strokes to enter.\ d) Externals that make UI interactions (IE AppleScript) Must now make a call back to the VM to schedule\ the main thread to do the call that will invoke UI interaction to prevent a deadlock in Carbon between threads. \ See the OSAExecute call in the AppleScript plugin for details.\ e) If you run a classic mac VM more than 23.x days nonstop it will stop responding to UI events. Ensure clocks get anded with 536870911.\ f) signal inputSemaphoreIndex because we are mulithreaded. Not that it does anything for us yet...\ g) 3.2.6b6 Pass the unicode value of the keystroke up as the EventKeyDown/EventKeyUp data, versus mackeyboard code.\ h) Somewhere there is a bug with mktime + time, so use the unix code of time+localtime+gmt \ i) Change iorelinquishPrcessorForMicroseconds to sleep the quatum between now and wakeup time. Also schedule a\ check for interrupts if wakeup time is now or in the past. This improves delay accuracy. For OS-x this was a big deal,\ for os-9 it improves things by 1 or 2ms. Also in os-x we sleep more when idle so CPU usage goes down.\ j) On OS-9 umap AND free the VM backing store. Just doing the free doesn't work and you lose 128Mb of disk space until you reboot\ k) 3.2.6b7 for post event processing ignore mouse move/drag/or scroll wheel events. These are ignored by the open/gl plugin and only suck a major amount of CPU time to process in the post event processing logic. \ l) 3.2.6b8 (3.2.6b4 classic) removed call to uncouple shift keys introduced in 3.2.1. This causes some macs after sleeping not to respond to keyboard input\ m) 3.2.6b8 (3.2.5b7 classic) added function for ioLowResMSecs to avoid early bit overflow. Rework clock checking in ioHandleEvents to handle clock rollovers properly.\ \ Mac VM 3.2.5 mach-o build for Carbon, and build for Classic.\ March 4th, 2002\ Still yet to do, in future versions.\ Verify that file delete rename etc works on aliases, not the targets.\ \ You will need mach-o os-x bundle plugins to work with this VM. example -> \f3 mpeg3Plugin.bundle.\ Old carbon non-bundled plugins will not work, but keep reading to understand where classic \ plugins still are needed.\ \f0 \ Pre OS-X users should read about OS-9 packages in the 3.2.4 change notes.\ \ Beware this version of the VM is significantly different inside! \ \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural \f1 \cf0 a) Broke sqMacWindow.c into 10 different files by function type.\ \ b) Moved most of the memory allocation logic out of sqMacMain.c into sqMacMemory.c. and ensure memory is freed when Squeak is terminated. \ The major change in this code is support for OS 9.x virtual memory mapping. This only applies to Mac OS 9.2.0 or higher, excluding os-x. It appears Mac OS 9.1 has a bug that prevents this feature from working.\ \ For images that require less than 128MB of memory, mapping is used to allow the image to grow/shrink to the 128MB boundary, therefore you can change the application memory size to about 2MB. \ \ For images that require more than 128MB then change the application memory size to > 128MB and mapping will not occur. \ \ If mapping is not available because virtual memory is turned off or the api is not supported by the macintosh OS then mapping is not used. Note that mapping is not support under the classic os-9.x environment under OS-X, however in this case you should be using the OS-X version of Squeak, not the classic version.\ \ c) Use of Carbon event logic for OS-X only. This is a major structural change. \ \ It also encouraged the use of a pthread for interp.c. \ \ All user interaction with the VM follows a new code path, so problems with keyboard or mouse input should be reported asap. Also any issues with application switching, windows being brought to the foreground or sent to the background and usage of the full screen logic should be reported asap.\ \ As part of this change I have build in support for scroll-wheeled multi-button mice under os-x. Thanks to Doug Way for testing this for me. Maybe someone can post to the list what their favorite 3 button scroll wheeled mouse/trackball is.\ \ d) Use of a carbon call to get the dominate Device if you have multiple screens. People with multiple screens should confirm window resizing, full screen on/off works as expected.\ \ e) Corrected comment in sqMacFileLogic.c\ \ f) Changes to sqMacNSPlugin.c. This makes it compile, but it's not usable yet.\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f0 \cf0 \ \ Feb 20th 2002 3.2.4\ \ For this version of the VM I have migrated towards using OS-9 packages. This allows us to provide one \ folder/package that supports os-x and previous operating system versions.\ \ Given Squeak 3.2.4Beta1.app\ The classic VM is found in the *.app:Contents:MacOSClassic, with an alias in *.app:\ The mach-o OS-X VM is found in *.app.Contents:MacOS\ \ If you are running OS-9 then clicking on the *.app or doing drag and drop will just run Squeak, same applies for OS-X.\ If you are running OS-7.5.5 or OS-8.x then the *.app package will appear as a folder, just open and click on the alias within. \ Note that if you want to use classic plugins I suspect you need to put them in the MacOSClassic Folder beside the VM. \ Bundles for os-x go in the same location as the *.app application package.\ \ Changes\ a) Drag and drop at open time with image file that has no meta type, will now open the image, versus prompting you.\ b) Use an os-x window attribute at open time to signal that the window should not be moved by the dock when you go to full screen.\ c) Fix window update logic to use window that needs updating versus stwindowg to fix issues with print dialog windows in classic. \ d) bitblt gets recompile to pickup fixes posted in 3.2 update stream.\ \ Feb 5th 2002 3.2.3\ Changes\ \ a) use old extended time manger to update psudeo-TickCount, versus sigalrm. siglarm make sound recording not work.\ b) fiddle with sound recording and make it work.\ \ Jan 2002 3.2.2\ Changes:\ \ a) AsyncFilePlugin.c Use global to remember security function entry point for performance reasons\ b) FilePlugin.c Use global to remember security function entry point for performance reasons\ c) interp.c Use squeakFileOffsetType versus off_t ... [truncated message content] |