So who broke bitOr: ?

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

So who broke bitOr: ?

timrowledge
On a fresh Pi vm (as in svn updated yesterday)
16rFFFF bitOr:(16rFFFF bitShift: 16) ->  -1
On a slightly older Mac vm
16rFFFF bitOr:(16rFFFF bitShift: 16) ->  4294967295, aka 16rFFFFFFFF

This breaks, amongst other things, Color>bitPatternForDepth:, whcih pretty much trashes an image since that gets used to makes cursor bitmaps as you move the pointer around. Nicely fills your window with notifiers…

So come along; hands up the boy that did that! I’ll keep you all in late unless someone confesses. It’s only your own time you’re wasting! Was it *you* Molesworth?

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Strange OpCodes: PBC: Print and Break Chain



Reply | Threaded
Open this post in threaded view
|

Re: [Vm-dev] So who broke bitOr: ?

Bert Freudenberg
On 18.02.2015, at 12:06, tim Rowledge <[hidden email]> wrote:

> On a fresh Pi vm (as in svn updated yesterday)
> 16rFFFF bitOr:(16rFFFF bitShift: 16) ->  -1
> On a slightly older Mac vm
> 16rFFFF bitOr:(16rFFFF bitShift: 16) ->  4294967295, aka 16rFFFFFFFF

Uggh. Disgusting.

What exactly is a "fresh Pi VM"?

- Bert -




smime.p7s (5K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [Vm-dev] So who broke bitOr: ?

timrowledge

On 18-02-2015, at 12:15 PM, Bert Freudenberg <[hidden email]> wrote:

> On 18.02.2015, at 12:06, tim Rowledge <[hidden email]> wrote:
>
>> On a fresh Pi vm (as in svn updated yesterday)
>> 16rFFFF bitOr:(16rFFFF bitShift: 16) ->  -1
>> On a slightly older Mac vm
>> 16rFFFF bitOr:(16rFFFF bitShift: 16) ->  4294967295, aka 16rFFFFFFFF
>
> Uggh. Disgusting.
>
Exactly. And I should probably add that a few-week-old Pi vm got it right, so it’s a recent change.


> What exactly is a "fresh Pi VM”?

Uh, a freshly built vm for a Raspberry Pi? As in the things that have not only now sold 5m, but about 500,00 in the last 3 weeks, almost all Pi 2 … they’re taking over the planet I tell you!


tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Strange OpCodes: MW: Multiply Work



Reply | Threaded
Open this post in threaded view
|

Re: [Vm-dev] So who broke bitOr: ?

timrowledge
Also pretty sure that
16rFFFF0000 bitAnd: 16rFFFFFFFF should be  16rFFFF0000 and not -65536

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
"How many Motie Warriors does it take to change a lightbulb?”
"None. One of the dead ones will do it."




Reply | Threaded
Open this post in threaded view
|

Re: [Vm-dev] So who broke bitOr: ?

Bert Freudenberg
In reply to this post by timrowledge

> On 18.02.2015, at 12:21, tim Rowledge <[hidden email]> wrote:
>
>
> On 18-02-2015, at 12:15 PM, Bert Freudenberg <[hidden email]> wrote:
>
>> On 18.02.2015, at 12:06, tim Rowledge <[hidden email]> wrote:
>>
>>> On a fresh Pi vm (as in svn updated yesterday)
>>> 16rFFFF bitOr:(16rFFFF bitShift: 16) ->  -1
>>> On a slightly older Mac vm
>>> 16rFFFF bitOr:(16rFFFF bitShift: 16) ->  4294967295, aka 16rFFFFFFFF
>>
>> Uggh. Disgusting.
>>
> Exactly. And I should probably add that a few-week-old Pi vm got it right, so it’s a recent change.
>
>
>> What exactly is a "fresh Pi VM”?
>
> Uh, a freshly built vm for a Raspberry Pi? As in the things that have not only now sold 5m, but about 500,00 in the last 3 weeks, almost all Pi 2 … they’re taking over the planet I tell you!
I meant that quite literally. As in, what's the output of "Smalltalk vmVersion"?

- Bert -






smime.p7s (5K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [Vm-dev] So who broke bitOr: ?

David T. Lewis
In reply to this post by timrowledge
On Wed, Feb 18, 2015 at 12:06:41PM -0800, tim Rowledge wrote:
>
> On a fresh Pi vm (as in svn updated yesterday)
> 16rFFFF bitOr:(16rFFFF bitShift: 16) ->  -1
> On a slightly older Mac vm
> 16rFFFF bitOr:(16rFFFF bitShift: 16) ->  4294967295, aka 16rFFFFFFFF
>
> This breaks, amongst other things, Color>bitPatternForDepth:, whcih pretty much trashes an image since that gets used to makes cursor bitmaps as you move the pointer around. Nicely fills your window with notifiers?
>

It looks like a type declaration and/or slang inlining issue. Back up
a few versions in VMMaker.oscog and you will probably find the cause.

Eliot has been doing a lot of work related to 64-bit immediates, and you
may be running some version that introduces a bug in the 32-bit variation
(just guessing).

Dave


Reply | Threaded
Open this post in threaded view
|

Re: [Vm-dev] So who broke bitOr: ?

Eliot Miranda-2


On Feb 18, 2015, at 5:21 PM, "David T. Lewis" <[hidden email]> wrote:

>
> On Wed, Feb 18, 2015 at 12:06:41PM -0800, tim Rowledge wrote:
>>
>> On a fresh Pi vm (as in svn updated yesterday)
>> 16rFFFF bitOr:(16rFFFF bitShift: 16) ->  -1
>> On a slightly older Mac vm
>> 16rFFFF bitOr:(16rFFFF bitShift: 16) ->  4294967295, aka 16rFFFFFFFF
>>
>> This breaks, amongst other things, Color>bitPatternForDepth:, whcih pretty much trashes an image since that gets used to makes cursor bitmaps as you move the pointer around. Nicely fills your window with notifiers?
>
> It looks like a type declaration and/or slang inlining issue. Back up
> a few versions in VMMaker.oscog and you will probably find the cause.
>
> Eliot has been doing a lot of work related to 64-bit immediates, and you
> may be running some version that introduces a bug in the 32-bit variation
> (just guessing).

Mea culpa.  In getting 64-bit Sour working I broke Slang and that broke the bit logic primitives.  I just committed a working VMMaker.oscog.

Tim, Bert's question was germane.  The oscog VM was broken, not the interpreter one, and you could have said "freshly generated from VMMaker.oscog-???.nnn" ;-)


> Dave
>

Reply | Threaded
Open this post in threaded view
|

Re: [Vm-dev] So who broke bitOr: ?

timrowledge
In reply to this post by Bert Freudenberg

On 18-02-2015, at 2:47 PM, Bert Freudenberg <[hidden email]> wrote:
>
> I meant that quite literally. As in, what's the output of "Smalltalk vmVersion”?

Well duh. I was in a hurry, completely misread and mis-answered. English is such a fun language.

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Quality assurance: A way to ensure you never deliver shoddy goods accidentally.



Reply | Threaded
Open this post in threaded view
|

Re: [Vm-dev] So who broke bitOr: ?

timrowledge
In reply to this post by Eliot Miranda-2

On 18-02-2015, at 7:56 PM, Eliot Miranda <[hidden email]> wrote:
> Mea culpa.  In getting 64-bit Sour working I broke Slang and that broke the bit logic primitives.  I just committed a working VMMaker.oscog.

Fired up a vmmaker image as built by your script, updated  to oscog-eem1071.
Ran VMMaker generateConfiguration
        - attempted Squeak Stack VM (for Pi)
        - Boom!
        - attempted Squeak Spur Stack VM
        - seemed to generate ok.

So maybe it produces a working spur vm but it doesn’t seem to want to make a non-spur one!

The problem with the plain stack vm appears to be to do with
CCodeGenerator>sizeOfIntegralCType: which complained about #void. In translating NewObjectMemory>fwdTableInit: the ‘sendNode args first’ is ‘self baseHeaderSize’ and the result of -
        argType := self typeFor: sendNode args first self baseHeaderSize in: aTMethod.
is #void. That doesn’t seem quite right though since ObjectMemory>baseHeaderSIze is returning something -  though I can’t help noticing that a method

ObjectMemory>baseHeaderSize
"To support SmartSyntaxPluginCodeGenerator"
        ^self baseHeaderSize

.. somehow looks a touch *odd*. Can’t quite put my finger on it…

If I do the obvious and ugly hack of making #baseHeaderSize just return 4, then the codegen completes. I wonder if it will make a working vm?

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Klingon Code Warrior:- 6) "Our competitors are without honor!"



Reply | Threaded
Open this post in threaded view
|

Re: [Vm-dev] So who broke bitOr: ?

timrowledge

On 19-02-2015, at 2:08 PM, tim Rowledge <[hidden email]> wrote:
> If I do the obvious and ugly hack of making #baseHeaderSize just return 4, then the codegen completes. I wonder if it will make a working vm?
So far, so good. A properly principled solution would clearly be nicer but at least it ain’t in-yer-face broken anymore.

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Fractured Idiom:- APRES MOE LE DELUGE - Larry and Curly get wet