Missing routines for 3.0 Unix VM: what's the status?
Stefan Matthias Aust
sma at 3plus4.de
Wed Feb 7 23:26:08 UTC 2001
Ned,
At 14:55 07.02.01 -0800, you wrote:
>I was working with the sources from Ian's directory, as well (in the
>jitter subdirectory); mine are (I think) 2.8pre5.
Yes, that's the same version. (I still wonder why with 5 project managers
nobody can put that source to sourceforge)
>Did you generate all the sources from the 3.0 (updated) image?
Yes. Using Interpreter translate whatever and then the line to generate the
supporting files like sq.h and so one. I'm sorry, I can't be more specific
at the moment.
>dir_GetMacFileTypeAndCreator
>ioDisablePowerManager
These are trivial. Just ignore.
>dropInit
>dropRequestFileHandle
>dropRequestFileName
>dropShutdown
I implemented stubs.
>ioCanRenameImage
>ioCanWriteImage
>ioDisableImageWrite
>ioGetSecureUserDirectory
>ioGetUntrustedUserDirectory
>ioScreenDepth
Don't know why but I didn't get these.
>ioGetNextEvent
>ioSetInputSemaphore
These are IMHO the most important ones.
>snd_SetVolume
>snd_Volume
Can be safely ignored.
>sqFileFlush
>sqImageFileStartLocation
Actually, these two are just defines. You might want to check whether
you're using the right sq.h file. You'll however get a however a couple of
other errors then. You should disable Ian's experimental gzip-image support.
I also got an error because of setSocketPollFunction and another similar
function in platform.exports.
>The Windows sources may make more sense (see sqWin32Window.c)
Does it signal the semaphore? If not, I don't think, event support is working.
>int ioGetNextEvent(sqInputEvent *evt) {
> if (eventBufferGet == eventBufferPut) {
> ioProcessEvents();
> }
> if (eventBufferGet == eventBufferPut)
> return 1;
This line looks strange. If the buffer is empty, this should never have
been called. Or at least, the primitive must fail. IMHO. This way, evt
isn't initialized which could be already bad. Or, if that doesn't crash
the system, it will magical "generate" an event as it reuses the old structure.
> *evt = eventBuffer[eventBufferGet];
> eventBufferGet = (eventBufferGet+1) % MAX_EVENT_BUFFER;
> return 1;
Sure. The obvious implementation. The interesting question however is,
what kinds of events are possible?
bye
--
My eyes adapted to the darkness... finally I can see clearly now
More information about the Squeak-dev
mailing list
|