For those of you maintinging ports of the Squeak VM, here are a few quick notes on new features of the 2.2 VM.
1. Support for masked cursors was added. You'll need to implement:
ioSetCursorWithMask( int cursorBitsIndex, int cursorMaskIndex, int offsetX, int offsetY);
perhaps by simply ignoring the mask argument. I did look at the Win32 API and believe that Windows supports the same kind of cursor masking as the Mac. See the comment in sqMacWindow.c for what it should do.
2. You may need to override the definition of ioLowResMSecs() in sq.h. (You can do this by #undefining it and replacing it with your own version in "sqPlatformSpecific.h". This is needed to fix a performance problem in the Mac's handling of timer interrupts. Thanks to Bob Arning for noticing the problem.
3. Asynchronous file I/O primitives have been added to support some work internal to Disney. Feel free to stub these out; they are not used by any code in the distribution image. Of course, you may also wish to implement them, as they are very useful when you wish to overlap high-bandwidth disk I/O and other compuation! We're not entirely sure where we are going with asynchronous file I/O, so this primitive interface may change.
4. We added support for the DEC Itsy to "sqConfig.h"; it isn't like to have any effect on other systems. We also changed the Acorn- and Itsy-related flag "LITTLE_ENDIAN" to "LITTLE_ENDIAN_BITBLT" because "LITTLE_ENDIAN" conflicts with a flag defined by the Gnu C compiler.
5. NOTE: Unix/Linux socket bug fix needed! Lex discovered a difference in the behavior of sqSocketReceiveDataAvailable() under Linux and the Mac that was masking a Squeak-level bug on the Linux platform. To make this function work the same across platforms, it should return "false" if the socket has become disconnected. It currently returns "true" on Linux and possibly other Unix platforms due to something about the way the "select()" system call works, I believe. (Andreas: could you make sure the Win32 VM returns "false" when the socket is unconnected? It probably does already, but I haven't tested it. It might behave differently under NT and Win95.) Let me know if you need further clarification on this.
6. New primitives have been added to the automatically generated files sqMiscPrims.c and sqSoundPrims.c. Be sure to re-generate these files from a 2.2 image before you rebuild the VM.
I think that about covers changes to the VM support code, but please feel free to ask if I missed anything.
-- John
squeak-dev@lists.squeakfoundation.org