( picoVerse-:( How do I get Exupery? ) )

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

( picoVerse-:( How do I get Exupery? ) )

Kjell Godo
I tried
http://mfrouter.dyndns.org/Exupery_VM.7z
but nothing happened.

I am making an assembler in Dolphin Smalltalk.  It is trying to do all
the addressing modes.  It is part of the picoLARC project on
SourceForge.net but the assembler stuff is not uploaded yet.  It uses
a Lispy syntax that looks like
( add ( into:From: EAX ( at ( + EBP 4 ) ) ) )
or
( add ( into:From: EAX ( at ( scale:index:base: 4 EBX EBP ) ) ) )
or
( push ( at EBP ) )

Doing it this way seems to minimize the compiling complexity.
Plus it can participate in the picoLARC OOP macro system.
Your Exupery way is more like regular assembler.  It's brief and
that's nice.  But you also do long function names for machine
language instructions which is good.

All the addressing modes are mostly finished coding but untested.

I would like to use Exupery to test against my picoLARC assembler.
If possible.
_______________________________________________
Exupery mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery
Reply | Threaded
Open this post in threaded view
|

Re: ( picoVerse-:( How do I get Exupery? ) )

Markus Fritsche
Kjell Godo schrieb:
> I tried
> http://mfrouter.dyndns.org/Exupery_VM.7z
> but nothing happened.

1.) did you have an image with the exupery mcz loaded?
2.) did you do Exupery initialiseExupery?
3.) did the benchmarks also say nothing happened?

Regards, Markus

_______________________________________________
Exupery mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery
Reply | Threaded
Open this post in threaded view
|

( picoVerse-:( How do I get Exupery? ) )

Bryce Kampjes
In reply to this post by Kjell Godo
Kjell Godo writes:
 > I tried
 > http://mfrouter.dyndns.org/Exupery_VM.7z
 > but nothing happened.
 >
 > I am making an assembler in Dolphin Smalltalk.  It is trying to do all
 > the addressing modes.  It is part of the picoLARC project on
 > SourceForge.net but the assembler stuff is not uploaded yet.  It uses
 > a Lispy syntax that looks like
 > ( add ( into:From: EAX ( at ( + EBP 4 ) ) ) )
 > or
 > ( add ( into:From: EAX ( at ( scale:index:base: 4 EBX EBP ) ) ) )
 > or
 > ( push ( at EBP ) )
 >
 > Doing it this way seems to minimize the compiling complexity.
 > Plus it can participate in the picoLARC OOP macro system.
 > Your Exupery way is more like regular assembler.  It's brief and
 > that's nice.  But you also do long function names for machine
 > language instructions which is good.

http://wiki.squeak.org/squeak/3945

Exupery is a complete compiler, not just an assembler. It compiles
Squeak's bytecodes dynamically in the image then executes them.

 > All the addressing modes are mostly finished coding but untested.
 >
 > I would like to use Exupery to test against my picoLARC assembler.
 > If possible.

It should be possible, that said if you're just testing an assembler,
then just compare the bytes emitted. And there's often more than
one way to assemble an instruction. Sometimes Exupery doesn't use
the shortest forms.

Bryce
_______________________________________________
Exupery mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery
Reply | Threaded
Open this post in threaded view
|

Re: ( picoVerse-:( How do I get Exupery? ) )

Kjell Godo
In reply to this post by Markus Fritsche
On 10/16/08, Markus Fritsche <[hidden email]> wrote:
> Kjell Godo schrieb:
>> I tried
>> http://mfrouter.dyndns.org/Exupery_VM.7z
>> but nothing happened.
>
> 1.) did you have an image with the exupery mcz loaded?

I am thinking mcz means Monticello package.  I will look for one.
Alls I did was click on the above address and nothing happened.  I was
expecting a web page to come up.

> 2.) did you do Exupery initialiseExupery?
> 3.) did the benchmarks also say nothing happened?

Thank you very much for these instructions.  I have a Croquet image
and a NewCompiler image and a Squeak 10 image.  I think.

>
> Regards, Markus
>
> _______________________________________________
> Exupery mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery
>
_______________________________________________
Exupery mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery
Reply | Threaded
Open this post in threaded view
|

Re: ( picoVerse-:( How do I get Exupery? ) )

Kjell Godo
In reply to this post by Bryce Kampjes
On 10/16/08, [hidden email] <[hidden email]> wrote:

> Kjell Godo writes:
>  > I tried
>  > http://mfrouter.dyndns.org/Exupery_VM.7z
>  > but nothing happened.
>  >
>  > I am making an assembler in Dolphin Smalltalk.  It is trying to do all
>  > the addressing modes.  It is part of the picoLARC project on
>  > SourceForge.net but the assembler stuff is not uploaded yet.  It uses
>  > a Lispy syntax that looks like
>  > ( add ( into:From: EAX ( at ( + EBP 4 ) ) ) )
>  > or
>  > ( add ( into:From: EAX ( at ( scale:index:base: 4 EBX EBP ) ) ) )
>  > or
>  > ( push ( at EBP ) )
>  >
>  > Doing it this way seems to minimize the compiling complexity.
>  > Plus it can participate in the picoLARC OOP macro system.
>  > Your Exupery way is more like regular assembler.  It's brief and
>  > that's nice.  But you also do long function names for machine
>  > language instructions which is good.
>
> http://wiki.squeak.org/squeak/3945
>
> Exupery is a complete compiler, not just an assembler. It compiles
> Squeak's bytecodes dynamically in the image then executes them.

That sounds great.  Do you have CompiledMethods with native code in
them?  It sounds like you put the native code into a ByteArray or something
and then call the ByteArray.  If that is true could you point me at the
method where the code is put into the ByteArray and where it gets evaluated?

>
>  > All the addressing modes are mostly finished coding but untested.
>  >
>  > I would like to use Exupery to test against my picoLARC assembler.
>  > If possible.
>
> It should be possible, that said if you're just testing an assembler,
> then just compare the bytes emitted. And there's often more than
> one way to assemble an instruction. Sometimes Exupery doesn't use
> the shortest forms.

Isn't it true that Exupery uses an intermediate language that looks like
     ( mov (eax) ebp )?  I was hoping that I could just do things like
     ( add (eax) 1 )        and then look at the output bytes.
If I have to know the Smalltalk byte codes first and find one that
corresponds to add, and then find the native codes output, then it
seems like it would be easier to use masm32 or something to compair
the native bytes.

Can you help me with the following two lines from the Intel manuals?:
opCode  Instruction              etc
03 /r       ADD r16, r/m16      Valid Valid Add r/m16 to r16.
03 /r       ADD r32, r/m32      Valid Valid Add r/m32 to r32.

this would seem to indicate that the opCode 3 does both the 16 bit case
and the 32 bit case.  But as far as I can tell the ModR/M and SIB are
identical for 16 and 32 bit cases so the opCode is supposed to differentiate
between the two.  How can this be so if the opCode for the 16 bit case is
the same as for the 32 bit case?

>
> Bryce
> _______________________________________________
> Exupery mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery
>
_______________________________________________
Exupery mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery
Reply | Threaded
Open this post in threaded view
|

Re: ( picoVerse-:( How do I get Exupery? ) )

Markus Fritsche
In reply to this post by Kjell Godo
Kjell Godo schrieb:
> I am thinking mcz means Monticello package.  I will look for one.
> Alls I did was click on the above address and nothing happened.  I was
> expecting a web page to come up.


oops, yes, my box was down, sorry. Should work now.

_______________________________________________
Exupery mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery
Reply | Threaded
Open this post in threaded view
|

Re: ( picoVerse-:( How do I get Exupery? ) )

Bryce Kampjes
In reply to this post by Kjell Godo
Kjell Godo writes:
 > On 10/16/08, [hidden email] <[hidden email]> wrote:
 > > Kjell Godo writes:
 > >  > I tried
 > >  > http://mfrouter.dyndns.org/Exupery_VM.7z
 > >  > but nothing happened.
 > >  >
 > >  > I am making an assembler in Dolphin Smalltalk.  It is trying to do all
 > >  > the addressing modes.  It is part of the picoLARC project on
 > >  > SourceForge.net but the assembler stuff is not uploaded yet.  It uses
 > >  > a Lispy syntax that looks like
 > >  > ( add ( into:From: EAX ( at ( + EBP 4 ) ) ) )
 > >  > or
 > >  > ( add ( into:From: EAX ( at ( scale:index:base: 4 EBX EBP ) ) ) )
 > >  > or
 > >  > ( push ( at EBP ) )
 > >  >
 > >  > Doing it this way seems to minimize the compiling complexity.
 > >  > Plus it can participate in the picoLARC OOP macro system.
 > >  > Your Exupery way is more like regular assembler.  It's brief and
 > >  > that's nice.  But you also do long function names for machine
 > >  > language instructions which is good.
 > >
 > > http://wiki.squeak.org/squeak/3945
 > >
 > > Exupery is a complete compiler, not just an assembler. It compiles
 > > Squeak's bytecodes dynamically in the image then executes them.
 >
 > That sounds great.  Do you have CompiledMethods with native code in
 > them?  It sounds like you put the native code into a ByteArray or something
 > and then call the ByteArray.  If that is true could you point me at the
 > method where the code is put into the ByteArray and where it gets evaluated?

Look through AssemblerTests. It's the test class for Exupery's
assembler.

Exupery assembles into a ByteArray, then copies the byte array
into the code cache which is outside the image. Normal memory
isn't executable, and the GC can also move objects. Having a
separate code cache avoids both those problems.

 > >
 > >  > All the addressing modes are mostly finished coding but untested.
 > >  >
 > >  > I would like to use Exupery to test against my picoLARC assembler.
 > >  > If possible.
 > >
 > > It should be possible, that said if you're just testing an assembler,
 > > then just compare the bytes emitted. And there's often more than
 > > one way to assemble an instruction. Sometimes Exupery doesn't use
 > > the shortest forms.
 >
 > Isn't it true that Exupery uses an intermediate language that looks like
 >      ( mov (eax) ebp )?  I was hoping that I could just do things like
 >      ( add (eax) 1 )        and then look at the output bytes.
 > If I have to know the Smalltalk byte codes first and find one that
 > corresponds to add, and then find the native codes output, then it
 > seems like it would be easier to use masm32 or something to compair
 > the native bytes.
 >
 > Can you help me with the following two lines from the Intel manuals?:
 > opCode  Instruction              etc
 > 03 /r       ADD r16, r/m16      Valid Valid Add r/m16 to r16.
 > 03 /r       ADD r32, r/m32      Valid Valid Add r/m32 to r32.
 >
 > this would seem to indicate that the opCode 3 does both the 16 bit case
 > and the 32 bit case.  But as far as I can tell the ModR/M and SIB are
 > identical for 16 and 32 bit cases so the opCode is supposed to differentiate
 > between the two.  How can this be so if the opCode for the 16 bit case is
 > the same as for the 32 bit case?

Depends if the CPU is in real mode (16 bit) or 32 bit protected mode.
It's safe to ignore the 16 bit cases.

Bryce
_______________________________________________
Exupery mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery
Reply | Threaded
Open this post in threaded view
|

Re: ( picoVerse-:( How do I get Exupery? ) )

Kjell Godo
In reply to this post by Markus Fritsche

So I just downloaded the Exupery_VM.7z file.

What do I do with it?
 
Can I get an image with Exupery loaded into it and all set up?
 
The Squeak.org and wiki.squeak.org websites seem to be down.

On Fri, Oct 17, 2008 at 9:09 AM, Markus Fritsche <[hidden email]> wrote:
Kjell Godo schrieb:
> I am thinking mcz means Monticello package.  I will look for one.
> Alls I did was click on the above address and nothing happened.  I was
> expecting a web page to come up.


oops, yes, my box was down, sorry. Should work now.

_______________________________________________
Exupery mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery


_______________________________________________
Exupery mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery
Reply | Threaded
Open this post in threaded view
|

Re: ( picoVerse-:( How do I get Exupery? ) )

Kjell Godo
I just tried to load Exupery into Squeak 10 using the SqueakMap Package Loader
But it says that this Package depends on
InterpreterPlugin
Interpreter
And it says that I must resolve these dependencies before it will load.
I am assuming that I am missing a Package but which one?

On Sat, Oct 18, 2008 at 9:39 PM, Kjell Godo <[hidden email]> wrote:

So I just downloaded the Exupery_VM.7z file.

What do I do with it?
 
Can I get an image with Exupery loaded into it and all set up?
 
The Squeak.org and wiki.squeak.org websites seem to be down.

On Fri, Oct 17, 2008 at 9:09 AM, Markus Fritsche <[hidden email]> wrote:
Kjell Godo schrieb:
> I am thinking mcz means Monticello package.  I will look for one.
> Alls I did was click on the above address and nothing happened.  I was
> expecting a web page to come up.


oops, yes, my box was down, sorry. Should work now.

_______________________________________________
Exupery mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery



_______________________________________________
Exupery mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery
Reply | Threaded
Open this post in threaded view
|

Re: ( picoVerse-:( How do I get Exupery? ) )

Bryce Kampjes
Kjell Godo writes:
 > I just tried to load Exupery into Squeak 10 using the SqueakMap Package
 > Loader
 > But it says that this Package depends on
 > InterpreterPlugin
 > Interpreter
 > And it says that I must resolve these dependencies before it will load.
 > I am assuming that I am missing a Package but which one?
 >
 > On Sat, Oct 18, 2008 at 9:39 PM, Kjell Godo <[hidden email]> wrote:

Load Exupery from the Universes.

When I next release I'll check loading from SqueakMap. It did
work a few months ago on the last release.

Bryce
_______________________________________________
Exupery mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery
Reply | Threaded
Open this post in threaded view
|

Re: ( picoVerse-:( How do I get Exupery? ) )

Kjell Godo
I am trying to install Exupery from the Universe Browser so I click on the Exupery Development version 0.... and I can't see the rest of it and I click on Select Package button and a bunch of packages get selected to install.  Then I click on the button on the bottom of the Universe Browser and it seems to install FFI and then it puts up a small blue window that says:
Installing Exupery version 0.14
and I wait and wait and wait and nothing further seems to happen.  I notice that my internet connection goes idle for a few seconds.  ( something on my machine is downloading something in the background constantly and I don't know what it is but internet explorer seems to work )  If Exupery was really being installed then I would think that the connection would never go idle.
 
Finally I stop Squeak-3.10.2-7179 because I can't take it anymore.
 
Have you got any ideas what could be going wrong?
 
If you could make an image that has Exupery in it that could be downloaded that has the image files needed to develope Exupery that would be cool.  It seems to depend on all sorts of things and something went wrong with the install.  I waited 20 minutes for it to do something but it never did so I closed it.

On Wed, Oct 22, 2008 at 2:29 PM, <[hidden email]> wrote:
Kjell Godo writes:
 > I just tried to load Exupery into Squeak 10 using the SqueakMap Package
 > Loader
 > But it says that this Package depends on
 > InterpreterPlugin
 > Interpreter
 > And it says that I must resolve these dependencies before it will load.
 > I am assuming that I am missing a Package but which one?
 >
 > On Sat, Oct 18, 2008 at 9:39 PM, Kjell Godo <[hidden email]> wrote:

Load Exupery from the Universes.

When I next release I'll check loading from SqueakMap. It did
work a few months ago on the last release.

Bryce
_______________________________________________
Exupery mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery


_______________________________________________
Exupery mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery
Reply | Threaded
Open this post in threaded view
|

Re: ( picoVerse-:( How do I get Exupery? ) )

Bryce Kampjes
Kjell Godo writes:
 > I am trying to install Exupery from the Universe Browser so I click on the
 > Exupery Development version 0.... and I can't see the rest of it and I click
 > on Select Package button and a bunch of packages get selected to install.
 > Then I click on the button on the bottom of the Universe Browser and it
 > seems to install FFI and then it puts up a small blue window that says:
 > Installing Exupery version 0.14
 > and I wait and wait and wait and nothing further seems to happen.  I notice
 > that my internet connection goes idle for a few seconds.  ( something on my
 > machine is downloading something in the background constantly and I don't
 > know what it is but internet explorer seems to work )  If Exupery was really
 > being installed then I would think that the connection would never go idle.
 >
 > Finally I stop Squeak-3.10.2-7179 because I can't take it anymore.

I've loaded Exupery into that image without problems previously. Did
you load anything else first? Monticello 1.5 used to cause problems
loading FFI, I don't know if it still does.

 > Have you got any ideas what could be going wrong?
 
Torsten has replied to both the pharo list and Squeak dev about it.

 > If you could make an image that has Exupery in it that could be downloaded
 > that has the image files needed to develope Exupery that would be cool.  It
 > seems to depend on all sorts of things and something went wrong with the
 > install.  I waited 20 minutes for it to do something but it never did so I
 > closed it.

The prebuilt image is here:
    http://ftp.squeak.org/Exupery/images/exupery0.14.zip

I fixed the link from the Installing Exupery Swiki page to it. There
should always be a prebuilt image for each release built as part of
the release.

Bryce
_______________________________________________
Exupery mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery