VM 4.4 build nastinesses - part 1 of probably many

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

VM 4.4 build nastinesses - part 1 of probably many

timrowledge
Can anyone (Bert?) provide the intended effect and limits of ioSetCursorARGB() ? This is a new one on me and the implementations I see in the SVN tree mean very little.

Can anyone explain why totally inappropriate and highly OS dependant code like push/popOutputFile() are in CROSS/sqVirtualMachine.c? The definition of stdin/out/err is not a safe one to assume everywhere. Not every OS trivially maps a FILE* to a number.

It looks like the primitiveFunctionPointer global got changed fro mvoid* in 4.0 to void(*)() in 4.4. This is a good thing *if* the matching usages are correctly modified; which they aren't. For example in primitiveExecuteMethodArgsArray(). On my compiler that is a fatal error - as it should be. Is anyone currently fixing that or shall I? Possibly as a side effect primitiveFunctionPointer is no longer in the global struct, which may well adversely impact performance.

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Nice computers don't go down.



Reply | Threaded
Open this post in threaded view
|

Re: VM 4.4 build nastinesses - part 1 of probably many

timrowledge

On 11-02-2013, at 5:53 PM, tim Rowledge <[hidden email]> wrote:

> Can anyone (Bert?) provide the intended effect and limits of ioSetCursorARGB() ? This is a new one on me and the implementations I see in the SVN tree mean very little.
Oh, I should add that the function is not declared in sq.h as delivered by SVN yesterday.


tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
"How many Trinoc does it take to change a lightbulb?" "Why do you want to know about our maintenance schedules? Are you planning to attack us in the dark?"



Reply | Threaded
Open this post in threaded view
|

Re: VM 4.4 build nastinesses - part 1 of probably many

David T. Lewis
On Mon, Feb 11, 2013 at 05:54:08PM -0800, tim Rowledge wrote:
>
> On 11-02-2013, at 5:53 PM, tim Rowledge <[hidden email]> wrote:
>
> > Can anyone (Bert?) provide the intended effect and limits of ioSetCursorARGB() ? This is a new one on me and the implementations I see in the SVN tree mean very little.
> Oh, I should add that the function is not declared in sq.h as delivered by SVN yesterday.
>

Background on ioSetSursorARGB is at http://bugs.squeak.org/view.php?id=7224

This was for OLPC large cursor support, see the email thread at
http://lists.squeakfoundation.org/pipermail/vm-dev/2008-November/002084.html

Yes we still need to add the function prototype to sq.h.

Dave


Reply | Threaded
Open this post in threaded view
|

Re: VM 4.4 build nastinesses - part 1 of probably many

David T. Lewis
In reply to this post by timrowledge
On Mon, Feb 11, 2013 at 05:53:14PM -0800, tim Rowledge wrote:
> Can anyone (Bert?) provide the intended effect and limits of ioSetCursorARGB() ? This is a new one on me and the implementations I see in the SVN tree mean very little.
>
> Can anyone explain why totally inappropriate and highly OS dependant code like push/popOutputFile() are in CROSS/sqVirtualMachine.c? The definition of stdin/out/err is not a safe one to assume everywhere. Not every OS trivially maps a FILE* to a number.
>

I think it is from the oscog branch, and some better review of things like
this would be helpful. But we should take that discussion over to the vm-dev
list for follow up as required.

BTW those stdin/out/err file numbers are not safe to assume for unix either
because dup() can change them.

> It looks like the primitiveFunctionPointer global got changed fro mvoid* in 4.0 to void(*)() in 4.4. This is a good thing *if* the matching usages are correctly modified; which they aren't. For example in primitiveExecuteMethodArgsArray(). On my compiler that is a fatal error - as it should be. Is anyone currently fixing that or shall I? Possibly as a side effect primitiveFunctionPointer is no longer in the global struct, which may well adversely impact performance.
>

I'm not sure. It might be something that is detected by your compiler,
in which case you should probably go ahead and fix it. Please update the
minor version number in VMMaker class>>versionString for each such update.

Dave


Reply | Threaded
Open this post in threaded view
|

Re: VM 4.4 build nastinesses - part 1 of probably many

Eliot Miranda-2
In reply to this post by timrowledge
Tim, ask again on vm-dev.  This is all VM stuff.

On Mon, Feb 11, 2013 at 5:53 PM, tim Rowledge <[hidden email]> wrote:
Can anyone (Bert?) provide the intended effect and limits of ioSetCursorARGB() ? This is a new one on me and the implementations I see in the SVN tree mean very little.

Can anyone explain why totally inappropriate and highly OS dependant code like push/popOutputFile() are in CROSS/sqVirtualMachine.c? The definition of stdin/out/err is not a safe one to assume everywhere. Not every OS trivially maps a FILE* to a number.

It looks like the primitiveFunctionPointer global got changed fro mvoid* in 4.0 to void(*)() in 4.4. This is a good thing *if* the matching usages are correctly modified; which they aren't. For example in primitiveExecuteMethodArgsArray(). On my compiler that is a fatal error - as it should be. Is anyone currently fixing that or shall I? Possibly as a side effect primitiveFunctionPointer is no longer in the global struct, which may well adversely impact performance.

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Nice computers don't go down.






--
best,
Eliot


Reply | Threaded
Open this post in threaded view
|

ioSetSursorARGB (was: VM 4.4 build nastinesses - part 1 of probably many)

Bert Freudenberg
In reply to this post by David T. Lewis
On 2013-02-12, at 04:17, "David T. Lewis" <[hidden email]> wrote:

> On Mon, Feb 11, 2013 at 05:54:08PM -0800, tim Rowledge wrote:
>>
>> On 11-02-2013, at 5:53 PM, tim Rowledge <[hidden email]> wrote:
>>
>>> Can anyone (Bert?) provide the intended effect and limits of ioSetCursorARGB() ? This is a new one on me and the implementations I see in the SVN tree mean very little.
>> Oh, I should add that the function is not declared in sq.h as delivered by SVN yesterday.
>>
>
> Background on ioSetSursorARGB is at http://bugs.squeak.org/view.php?id=7224
>
> This was for OLPC large cursor support, see the email thread at
> http://lists.squeakfoundation.org/pipermail/vm-dev/2008-November/002084.html
>
> Yes we still need to add the function prototype to sq.h.
>
> Dave

For testing, try

        CursorWithAlpha biggerNormal showWhile: [Sensor waitButton]

or, if you have an updated trunk image (or less than 5 year old Etoys image), try the neat

        CursorWithAlpha fromUser showWhile: [Sensor waitButton]

- Bert -