Re: VM Maker: VMMaker.oscog-rsf.1951.mcz

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

Re: VM Maker: VMMaker.oscog-rsf.1951.mcz

Eliot Miranda-2
 
Hi Roni, Hi Ryan,


    in the below you, Roni, added extBFirstZero.  As far as I can tell this breaks the newspeak (and Cadence (*)) VM.  I don't quite see the purpose of extBFirstZero and urgently need to restore the Newspeak and Cadence VMs.  So forgive me but I'm going to revert that part of the changes.  It has caused me to misdiagnose the problems with extPushInteger and genExtUnconditionalJump.  These I'll revert too.  If this breaks Lowcode then let's collaborate on developing a fix for Lowcode that doesn't break Newspeak and Cadence VMs.  But it's a priority of mine (they pay for my work) to keep these VMs working.

(*) The Cadence VM is a Newspeak VM that does not enforce access control.


On Thu, Sep 8, 2016 at 9:53 AM, <[hidden email]> wrote:

Ronie Salgado Faila uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-rsf.1951.mcz

==================== Summary ====================

Name: VMMaker.oscog-rsf.1951
Author: rsf
Time: 8 September 2016, 6:52:41.871669 pm
UUID: c714858a-7f63-47bd-a9ec-4bc1350eead2
Ancestors: VMMaker.oscog-rsf.1915, VMMaker.oscog-eem.1950

Integration of Lowcode.

Lowcode is an extended bytecode set that is encoded using the inline primitive facility from the SistaV1 bytecode set.

Building a VM with Lowcode requires the following VMMaker options:

        SistaVM true
        LowcodeVM true
        MULTIPLEBYTECODESETS true
        bytecodeTableInitializer initializeBytecodeTableForSqueakV3PlusClosuresSistaV1Hybrid

IWST Slides:

http://www.slideshare.net/esug/lowcode-extending-smalltalk-with-c-types-to-improve-performance

In addition to these huge changes in the VM, Lowcode has some dependencies in some C headers with the inline FFI callout glue, and additional sqMemoryAccess.h macros. I will send a patch for inclusion into the OpenSmalltalk VM C sources.

=============== Diff against VMMaker.oscog-eem.1950 ===============

...


_,,,^..^,,,_
best, Eliot
Reply | Threaded
Open this post in threaded view
|

Re: VM Maker: VMMaker.oscog-rsf.1951.mcz

Ryan Macnak
 
Hi Eliot,

I can confirm VMs built after this revert fully pass the Newspeak bootstrap and test suite.

Ryan

On Wed, Nov 2, 2016 at 3:14 PM, Eliot Miranda <[hidden email]> wrote:
Hi Roni, Hi Ryan,


    in the below you, Roni, added extBFirstZero.  As far as I can tell this breaks the newspeak (and Cadence (*)) VM.  I don't quite see the purpose of extBFirstZero and urgently need to restore the Newspeak and Cadence VMs.  So forgive me but I'm going to revert that part of the changes.  It has caused me to misdiagnose the problems with extPushInteger and genExtUnconditionalJump.  These I'll revert too.  If this breaks Lowcode then let's collaborate on developing a fix for Lowcode that doesn't break Newspeak and Cadence VMs.  But it's a priority of mine (they pay for my work) to keep these VMs working.

(*) The Cadence VM is a Newspeak VM that does not enforce access control.


On Thu, Sep 8, 2016 at 9:53 AM, <[hidden email]> wrote:

Ronie Salgado Faila uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-rsf.1951.mcz

==================== Summary ====================

Name: VMMaker.oscog-rsf.1951
Author: rsf
Time: 8 September 2016, 6:52:41.871669 pm
UUID: c714858a-7f63-47bd-a9ec-4bc1350eead2
Ancestors: VMMaker.oscog-rsf.1915, VMMaker.oscog-eem.1950

Integration of Lowcode.

Lowcode is an extended bytecode set that is encoded using the inline primitive facility from the SistaV1 bytecode set.

Building a VM with Lowcode requires the following VMMaker options:

        SistaVM true
        LowcodeVM true
        MULTIPLEBYTECODESETS true
        bytecodeTableInitializer initializeBytecodeTableForSqueakV3PlusClosuresSistaV1Hybrid

IWST Slides:

http://www.slideshare.net/esug/lowcode-extending-smalltalk-with-c-types-to-improve-performance

In addition to these huge changes in the VM, Lowcode has some dependencies in some C headers with the inline FFI callout glue, and additional sqMemoryAccess.h macros. I will send a patch for inclusion into the OpenSmalltalk VM C sources.

=============== Diff against VMMaker.oscog-eem.1950 ===============

...


_,,,^..^,,,_
best, Eliot

Reply | Threaded
Open this post in threaded view
|

Re: VM Maker: VMMaker.oscog-rsf.1951.mcz

fniephaus
 
Hi Eliot,

Just a quick heads up that Ryan and I are working on making the Newspeak bootstrapping process part of the build process on Travis/AppVeyor to be able to identify these kind of problems earlier. In the foreseeable future, we also might want to run the SUnit tests for the corresponding Smalltalk dialects after building a VM for the same reason.

Fabio

--

On Thu, Nov 3, 2016 at 2:59 AM Ryan Macnak <[hidden email]> wrote:
 
Hi Eliot,

I can confirm VMs built after this revert fully pass the Newspeak bootstrap and test suite.

Ryan


On Wed, Nov 2, 2016 at 3:14 PM, Eliot Miranda <[hidden email]> wrote:
Hi Roni, Hi Ryan,


    in the below you, Roni, added extBFirstZero.  As far as I can tell this breaks the newspeak (and Cadence (*)) VM.  I don't quite see the purpose of extBFirstZero and urgently need to restore the Newspeak and Cadence VMs.  So forgive me but I'm going to revert that part of the changes.  It has caused me to misdiagnose the problems with extPushInteger and genExtUnconditionalJump.  These I'll revert too.  If this breaks Lowcode then let's collaborate on developing a fix for Lowcode that doesn't break Newspeak and Cadence VMs.  But it's a priority of mine (they pay for my work) to keep these VMs working.

(*) The Cadence VM is a Newspeak VM that does not enforce access control.


On Thu, Sep 8, 2016 at 9:53 AM, <[hidden email]> wrote:

Ronie Salgado Faila uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-rsf.1951.mcz

==================== Summary ====================

Name: VMMaker.oscog-rsf.1951
Author: rsf
Time: 8 September 2016, 6:52:41.871669 pm
UUID: c714858a-7f63-47bd-a9ec-4bc1350eead2
Ancestors: VMMaker.oscog-rsf.1915, VMMaker.oscog-eem.1950

Integration of Lowcode.

Lowcode is an extended bytecode set that is encoded using the inline primitive facility from the SistaV1 bytecode set.

Building a VM with Lowcode requires the following VMMaker options:

        SistaVM true
        LowcodeVM true
        MULTIPLEBYTECODESETS true
        bytecodeTableInitializer initializeBytecodeTableForSqueakV3PlusClosuresSistaV1Hybrid

IWST Slides:

http://www.slideshare.net/esug/lowcode-extending-smalltalk-with-c-types-to-improve-performance

In addition to these huge changes in the VM, Lowcode has some dependencies in some C headers with the inline FFI callout glue, and additional sqMemoryAccess.h macros. I will send a patch for inclusion into the OpenSmalltalk VM C sources.

=============== Diff against VMMaker.oscog-eem.1950 ===============

...


_,,,^..^,,,_
best, Eliot

Reply | Threaded
Open this post in threaded view
|

Re: VM Maker: VMMaker.oscog-rsf.1951.mcz

Ronie Salgado
In reply to this post by Eliot Miranda-2
 
Hi Eliot,

  in the below you, Roni, added extBFirstZero.  As far as I can tell this breaks the newspeak (and Cadence (*)) VM.  I don't quite see the purpose of extBFirstZero and urgently need to restore the Newspeak and Cadence VMs.  So forgive me but I'm going to revert that part of the changes.  It has caused me to misdiagnose the problems with extPushInteger and genExtUnconditionalJump.  These I'll revert too.  If this breaks Lowcode then let's collaborate on developing a fix for Lowcode that doesn't break Newspeak and Cadence VMs.  But it's a priority of mine (they pay for my work) to keep these VMs working.

This was a quick hack that I added to be able to encode unsigned values such as 0x00FF . Since ExtB is signed, the sequence ExtB 00 ExtB FF ends decoded as -1 (0xFFFFFFFF) instead of 255, which is the correct value, and it is used by some Lowcode instructions such as pointer offsetting.

I am still trying to figure out how to move into the opensmalltalk-vm branch. I have been using the pharo-vm branch mostly because the scripts for making a Squeak bases VM Maker image are not working on my Linux boxes.

Best regards,
Ronie

Reply | Threaded
Open this post in threaded view
|

Re: VM Maker: VMMaker.oscog-rsf.1951.mcz

Eliot Miranda-2
 
Hi Ronie,

    then I'll take a look at fixing the 00000000 1xxxxxxx ... case.  The nice thing is that it's all localized to the extBBytecode.  Excuse my confusion earlier in the week.

_,,,^..^,,,_ (phone)

On Nov 4, 2016, at 12:53 AM, Ronie Salgado <[hidden email]> wrote:

Hi Eliot,

  in the below you, Roni, added extBFirstZero.  As far as I can tell this breaks the newspeak (and Cadence (*)) VM.  I don't quite see the purpose of extBFirstZero and urgently need to restore the Newspeak and Cadence VMs.  So forgive me but I'm going to revert that part of the changes.  It has caused me to misdiagnose the problems with extPushInteger and genExtUnconditionalJump.  These I'll revert too.  If this breaks Lowcode then let's collaborate on developing a fix for Lowcode that doesn't break Newspeak and Cadence VMs.  But it's a priority of mine (they pay for my work) to keep these VMs working.

This was a quick hack that I added to be able to encode unsigned values such as 0x00FF . Since ExtB is signed, the sequence ExtB 00 ExtB FF ends decoded as -1 (0xFFFFFFFF) instead of 255, which is the correct value, and it is used by some Lowcode instructions such as pointer offsetting.

I am still trying to figure out how to move into the opensmalltalk-vm branch. I have been using the pharo-vm branch mostly because the scripts for making a Squeak bases VM Maker image are not working on my Linux boxes.

Best regards,
Ronie

Reply | Threaded
Open this post in threaded view
|

Re: VM Maker: VMMaker.oscog-rsf.1951.mcz

Eliot Miranda-2
In reply to this post by fniephaus
 
Hi Fabio, Hi Ryan,

On Nov 3, 2016, at 2:38 AM, Fabio Niephaus <[hidden email]> wrote:

Hi Eliot,

Just a quick heads up that Ryan and I are working on making the Newspeak bootstrapping process part of the build process on Travis/AppVeyor to be able to identify these kind of problems earlier. In the foreseeable future, we also might want to run the SUnit tests for the corresponding Smalltalk dialects after building a VM for the same reason.

Agreed.  We'll want a scheme that tells us if more tests have failed that the previous attempt, rather than one that tells us whether any tests have failed because we're still 20 to 30 tests away from a completely green test suite :-/


Fabio

--

On Thu, Nov 3, 2016 at 2:59 AM Ryan Macnak <[hidden email]> wrote:
 
Hi Eliot,

I can confirm VMs built after this revert fully pass the Newspeak bootstrap and test suite.

Ryan


On Wed, Nov 2, 2016 at 3:14 PM, Eliot Miranda <[hidden email]> wrote:
Hi Roni, Hi Ryan,


    in the below you, Roni, added extBFirstZero.  As far as I can tell this breaks the newspeak (and Cadence (*)) VM.  I don't quite see the purpose of extBFirstZero and urgently need to restore the Newspeak and Cadence VMs.  So forgive me but I'm going to revert that part of the changes.  It has caused me to misdiagnose the problems with extPushInteger and genExtUnconditionalJump.  These I'll revert too.  If this breaks Lowcode then let's collaborate on developing a fix for Lowcode that doesn't break Newspeak and Cadence VMs.  But it's a priority of mine (they pay for my work) to keep these VMs working.

(*) The Cadence VM is a Newspeak VM that does not enforce access control.


On Thu, Sep 8, 2016 at 9:53 AM, <[hidden email]> wrote:

Ronie Salgado Faila uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-rsf.1951.mcz

==================== Summary ====================

Name: VMMaker.oscog-rsf.1951
Author: rsf
Time: 8 September 2016, 6:52:41.871669 pm
UUID: c714858a-7f63-47bd-a9ec-4bc1350eead2
Ancestors: VMMaker.oscog-rsf.1915, VMMaker.oscog-eem.1950

Integration of Lowcode.

Lowcode is an extended bytecode set that is encoded using the inline primitive facility from the SistaV1 bytecode set.

Building a VM with Lowcode requires the following VMMaker options:

        SistaVM true
        LowcodeVM true
        MULTIPLEBYTECODESETS true
        bytecodeTableInitializer initializeBytecodeTableForSqueakV3PlusClosuresSistaV1Hybrid

IWST Slides:

http://www.slideshare.net/esug/lowcode-extending-smalltalk-with-c-types-to-improve-performance

In addition to these huge changes in the VM, Lowcode has some dependencies in some C headers with the inline FFI callout glue, and additional sqMemoryAccess.h macros. I will send a patch for inclusion into the OpenSmalltalk VM C sources.

=============== Diff against VMMaker.oscog-eem.1950 ===============

...


_,,,^..^,,,_
best, Eliot

Reply | Threaded
Open this post in threaded view
|

Re: VM Maker: VMMaker.oscog-rsf.1951.mcz

Nicolas Cellier
In reply to this post by Eliot Miranda-2
 
just counting number of extB bytes should do it...

    extB := (extB = 0 and: [byte > 127])
                ifTrue: [byte - 256]
                ifFalse: [(extB bitShift: 8) + byte]

becomes

    extB := (numExtB = 0 and: [byte > 127])
                ifTrue: [byte - 256]
                ifFalse: [(extB bitShift: 8) + byte].
    numExtB := numExtB + 1

then reset numExtB := 0 where we reset extB := 0...

2016-11-04 17:42 GMT+01:00 Eliot Miranda <[hidden email]>:
 
Hi Ronie,

    then I'll take a look at fixing the 00000000 1xxxxxxx ... case.  The nice thing is that it's all localized to the extBBytecode.  Excuse my confusion earlier in the week.

_,,,^..^,,,_ (phone)

On Nov 4, 2016, at 12:53 AM, Ronie Salgado <[hidden email]> wrote:

Hi Eliot,

  in the below you, Roni, added extBFirstZero.  As far as I can tell this breaks the newspeak (and Cadence (*)) VM.  I don't quite see the purpose of extBFirstZero and urgently need to restore the Newspeak and Cadence VMs.  So forgive me but I'm going to revert that part of the changes.  It has caused me to misdiagnose the problems with extPushInteger and genExtUnconditionalJump.  These I'll revert too.  If this breaks Lowcode then let's collaborate on developing a fix for Lowcode that doesn't break Newspeak and Cadence VMs.  But it's a priority of mine (they pay for my work) to keep these VMs working.

This was a quick hack that I added to be able to encode unsigned values such as 0x00FF . Since ExtB is signed, the sequence ExtB 00 ExtB FF ends decoded as -1 (0xFFFFFFFF) instead of 255, which is the correct value, and it is used by some Lowcode instructions such as pointer offsetting.

I am still trying to figure out how to move into the opensmalltalk-vm branch. I have been using the pharo-vm branch mostly because the scripts for making a Squeak bases VM Maker image are not working on my Linux boxes.

Best regards,
Ronie