Can not load Aliens FFI in Squeak 4.1

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

Can not load Aliens FFI in Squeak 4.1

Dmitry Matveev
Hi everybody!

Could you please help me?

I'm experiencing the following trouble: when I'm loading the Alien FFI (from the squeaksource or from the .mcz files manually) in Squeak 4.1, I'm getting the DNU expection Array>>createMethod:header:

The Alien-Prereq module was already loaded.

May be I've missed some dependencies? Or Alien does not work with the 4.1 and I should install an earlier version?

Thanks,
Dmitry



Reply | Threaded
Open this post in threaded view
|

Re: Can not load Aliens FFI in Squeak 4.1

Igor Stasenko
On 5 May 2010 14:42, Dmitry Matveev <[hidden email]> wrote:
> Hi everybody!
>
> Could you please help me?
>
> I'm experiencing the following trouble: when I'm loading the Alien FFI (from
> the squeaksource or from the .mcz files manually) in Squeak 4.1, I'm getting
> the DNU expection Array>>createMethod:header:
>

This happens, when you using an obsolete way of encoding
a method's trailer - bytes instead of instance of CompiledMethodTrailer.

Here the fix:

MethodNode>>generate
        "The receiver is the root of a parse tree. Answer a CompiledMethod. The
        argument, trailer, is the references to the source code that is stored with
        every CompiledMethod."

+++ ^self generate: CompiledMethodTrailer empty
--- ^self generate: #(0 0 0 0)


Btw, this method is included by default in 4.1 images, and in pharo images,
which integrated new compiled methods trailers.
So, Alien don't needs to override this method anymore.

> The Alien-Prereq module was already loaded.
>
> May be I've missed some dependencies? Or Alien does not work with the 4.1
> and I should install an earlier version?
>


> Thanks,
> Dmitry
>



--
Best regards,
Igor Stasenko AKA sig.

Reply | Threaded
Open this post in threaded view
|

Re: Can not load Aliens FFI in Squeak 4.1

Dmitry Matveev
Hello Igor!

Thank you for the patch, it has helped and now it looks like the Alien
is loaded... But.

When I'm sending an #asAlien message to a simple string, e.g.

'xmessage something' asAlien

The executions fails with the primitiveFailed exception here:
Alien >> sizeFieldPut: size "<Integer> ^<Integer>"
        <primitive: 'primSizeFieldPut' error: errorCode module: 'IA32ABI'>
        ^self primitiveFailed

I assume that the Alien-Core package was not loaded properly. What am
I doing wrong?

2010/5/5, Igor Stasenko <[hidden email]>:

> On 5 May 2010 14:42, Dmitry Matveev <[hidden email]> wrote:
>> Hi everybody!
>>
>> Could you please help me?
>>
>> I'm experiencing the following trouble: when I'm loading the Alien FFI
>> (from
>> the squeaksource or from the .mcz files manually) in Squeak 4.1, I'm
>> getting
>> the DNU expection Array>>createMethod:header:
>>
>
> This happens, when you using an obsolete way of encoding
> a method's trailer - bytes instead of instance of CompiledMethodTrailer.
>
> Here the fix:
>
> MethodNode>>generate
> "The receiver is the root of a parse tree. Answer a CompiledMethod. The
> argument, trailer, is the references to the source code that is stored with
> every CompiledMethod."
>
> +++ ^self generate: CompiledMethodTrailer empty
> --- ^self generate: #(0 0 0 0)
>
>
> Btw, this method is included by default in 4.1 images, and in pharo images,
> which integrated new compiled methods trailers.
> So, Alien don't needs to override this method anymore.
>
>> The Alien-Prereq module was already loaded.
>>
>> May be I've missed some dependencies? Or Alien does not work with the 4.1
>> and I should install an earlier version?
>>
>
>
>> Thanks,
>> Dmitry
>>
>
>
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Can not load Aliens FFI in Squeak 4.1

Eliot Miranda-2
You're probably missing the plugin IA32ABI

On Wed, May 5, 2010 at 12:25 PM, Dmitry Matveev <[hidden email]> wrote:
Hello Igor!

Thank you for the patch, it has helped and now it looks like the Alien
is loaded... But.

When I'm sending an #asAlien message to a simple string, e.g.

'xmessage something' asAlien

The executions fails with the primitiveFailed exception here:
Alien >> sizeFieldPut: size "<Integer> ^<Integer>"
       <primitive: 'primSizeFieldPut' error: errorCode module: 'IA32ABI'>
       ^self primitiveFailed

I assume that the Alien-Core package was not loaded properly. What am
I doing wrong?

2010/5/5, Igor Stasenko <[hidden email]>:
> On 5 May 2010 14:42, Dmitry Matveev <[hidden email]> wrote:
>> Hi everybody!
>>
>> Could you please help me?
>>
>> I'm experiencing the following trouble: when I'm loading the Alien FFI
>> (from
>> the squeaksource or from the .mcz files manually) in Squeak 4.1, I'm
>> getting
>> the DNU expection Array>>createMethod:header:
>>
>
> This happens, when you using an obsolete way of encoding
> a method's trailer - bytes instead of instance of CompiledMethodTrailer.
>
> Here the fix:
>
> MethodNode>>generate
>       "The receiver is the root of a parse tree. Answer a CompiledMethod. The
>       argument, trailer, is the references to the source code that is stored with
>       every CompiledMethod."
>
> +++   ^self generate: CompiledMethodTrailer empty
> ---   ^self generate: #(0 0 0 0)
>
>
> Btw, this method is included by default in 4.1 images, and in pharo images,
> which integrated new compiled methods trailers.
> So, Alien don't needs to override this method anymore.
>
>> The Alien-Prereq module was already loaded.
>>
>> May be I've missed some dependencies? Or Alien does not work with the 4.1
>> and I should install an earlier version?
>>
>
>
>> Thanks,
>> Dmitry
>>
>
>
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>
>




Reply | Threaded
Open this post in threaded view
|

Re: Can not load Aliens FFI in Squeak 4.1

Dmitry Matveev
Hello Eliot,

I have not found it in my system (I use the Squeak vm from the Debian
Unstable repository).
I've downloaded the Squeak vm for Linux from the official site and
even have not found this plugin in that archive.

Where I can obtain it for the i686 GNU/Linux system (or for Windows as
a last resort)?
Building from the source is also accepted.

Best regards,
Dmitry

2010/5/5, Eliot Miranda <[hidden email]>:

> You're probably missing the plugin IA32ABI
>
> On Wed, May 5, 2010 at 12:25 PM, Dmitry Matveev <[hidden email]> wrote:
>
>> Hello Igor!
>>
>> Thank you for the patch, it has helped and now it looks like the Alien
>> is loaded... But.
>>
>> When I'm sending an #asAlien message to a simple string, e.g.
>>
>> 'xmessage something' asAlien
>>
>> The executions fails with the primitiveFailed exception here:
>> Alien >> sizeFieldPut: size "<Integer> ^<Integer>"
>>        <primitive: 'primSizeFieldPut' error: errorCode module: 'IA32ABI'>
>>        ^self primitiveFailed
>>
>> I assume that the Alien-Core package was not loaded properly. What am
>> I doing wrong?
>>
>> 2010/5/5, Igor Stasenko <[hidden email]>:
>> > On 5 May 2010 14:42, Dmitry Matveev <[hidden email]> wrote:
>> >> Hi everybody!
>> >>
>> >> Could you please help me?
>> >>
>> >> I'm experiencing the following trouble: when I'm loading the Alien FFI
>> >> (from
>> >> the squeaksource or from the .mcz files manually) in Squeak 4.1, I'm
>> >> getting
>> >> the DNU expection Array>>createMethod:header:
>> >>
>> >
>> > This happens, when you using an obsolete way of encoding
>> > a method's trailer - bytes instead of instance of CompiledMethodTrailer.
>> >
>> > Here the fix:
>> >
>> > MethodNode>>generate
>> >       "The receiver is the root of a parse tree. Answer a
>> > CompiledMethod.
>> The
>> >       argument, trailer, is the references to the source code that is
>> stored with
>> >       every CompiledMethod."
>> >
>> > +++   ^self generate: CompiledMethodTrailer empty
>> > ---   ^self generate: #(0 0 0 0)
>> >
>> >
>> > Btw, this method is included by default in 4.1 images, and in pharo
>> images,
>> > which integrated new compiled methods trailers.
>> > So, Alien don't needs to override this method anymore.
>> >
>> >> The Alien-Prereq module was already loaded.
>> >>
>> >> May be I've missed some dependencies? Or Alien does not work with the
>> 4.1
>> >> and I should install an earlier version?
>> >>
>> >
>> >
>> >> Thanks,
>> >> Dmitry
>> >>
>> >
>> >
>> >
>> > --
>> > Best regards,
>> > Igor Stasenko AKA sig.
>> >
>> >
>>
>>
>

Reply | Threaded
Open this post in threaded view
|

Re: Can not load Aliens FFI in Squeak 4.1

Eliot Miranda-2


On Wed, May 5, 2010 at 1:12 PM, Dmitry Matveev <[hidden email]> wrote:
Hello Eliot,

I have not found it in my system (I use the Squeak vm from the Debian
Unstable repository).
I've downloaded the Squeak vm for Linux from the official site and
even have not found this plugin in that archive.

Where I can obtain it for the i686 GNU/Linux system (or for Windows as
a last resort)?
Building from the source is also accepted.

 

Best regards,
Dmitry

2010/5/5, Eliot Miranda <[hidden email]>:
> You're probably missing the plugin IA32ABI
>
> On Wed, May 5, 2010 at 12:25 PM, Dmitry Matveev <[hidden email]> wrote:
>
>> Hello Igor!
>>
>> Thank you for the patch, it has helped and now it looks like the Alien
>> is loaded... But.
>>
>> When I'm sending an #asAlien message to a simple string, e.g.
>>
>> 'xmessage something' asAlien
>>
>> The executions fails with the primitiveFailed exception here:
>> Alien >> sizeFieldPut: size "<Integer> ^<Integer>"
>>        <primitive: 'primSizeFieldPut' error: errorCode module: 'IA32ABI'>
>>        ^self primitiveFailed
>>
>> I assume that the Alien-Core package was not loaded properly. What am
>> I doing wrong?
>>
>> 2010/5/5, Igor Stasenko <[hidden email]>:
>> > On 5 May 2010 14:42, Dmitry Matveev <[hidden email]> wrote:
>> >> Hi everybody!
>> >>
>> >> Could you please help me?
>> >>
>> >> I'm experiencing the following trouble: when I'm loading the Alien FFI
>> >> (from
>> >> the squeaksource or from the .mcz files manually) in Squeak 4.1, I'm
>> >> getting
>> >> the DNU expection Array>>createMethod:header:
>> >>
>> >
>> > This happens, when you using an obsolete way of encoding
>> > a method's trailer - bytes instead of instance of CompiledMethodTrailer.
>> >
>> > Here the fix:
>> >
>> > MethodNode>>generate
>> >       "The receiver is the root of a parse tree. Answer a
>> > CompiledMethod.
>> The
>> >       argument, trailer, is the references to the source code that is
>> stored with
>> >       every CompiledMethod."
>> >
>> > +++   ^self generate: CompiledMethodTrailer empty
>> > ---   ^self generate: #(0 0 0 0)
>> >
>> >
>> > Btw, this method is included by default in 4.1 images, and in pharo
>> images,
>> > which integrated new compiled methods trailers.
>> > So, Alien don't needs to override this method anymore.
>> >
>> >> The Alien-Prereq module was already loaded.
>> >>
>> >> May be I've missed some dependencies? Or Alien does not work with the
>> 4.1
>> >> and I should install an earlier version?
>> >>
>> >
>> >
>> >> Thanks,
>> >> Dmitry
>> >>
>> >
>> >
>> >
>> > --
>> > Best regards,
>> > Igor Stasenko AKA sig.
>> >
>> >
>>
>>
>




Reply | Threaded
Open this post in threaded view
|

Re: Can not load Aliens FFI in Squeak 4.1

David T. Lewis
On Wed, May 05, 2010 at 01:38:48PM -0700, Eliot Miranda wrote:

> On Wed, May 5, 2010 at 1:12 PM, Dmitry Matveev <[hidden email]> wrote:
>
> > Hello Eliot,
> >
> > I have not found it in my system (I use the Squeak vm from the Debian
> > Unstable repository).
> > I've downloaded the Squeak vm for Linux from the official site and
> > even have not found this plugin in that archive.
> >
> > Where I can obtain it for the i686 GNU/Linux system (or for Windows as
> > a last resort)?
> > Building from the source is also accepted.
> >
>
>  http://squeakvm.org/svn/squeak/trunk/platforms/Cross/plugins/IA32ABI

FWIW, I can confirm that the plugin builds cleanly on the latest Subversion
and VMMaker versions, although I cannot confirm whether the resulting plugin
works correctly (presumably yes, but I have not tried it).

Background: http://bugs.squeak.org/view.php?id=7475

Dave



Reply | Threaded
Open this post in threaded view
|

Re: Can not load Aliens FFI in Squeak 4.1

Igor Stasenko
On 6 May 2010 00:25, David T. Lewis <[hidden email]> wrote:

> On Wed, May 05, 2010 at 01:38:48PM -0700, Eliot Miranda wrote:
>> On Wed, May 5, 2010 at 1:12 PM, Dmitry Matveev <[hidden email]> wrote:
>>
>> > Hello Eliot,
>> >
>> > I have not found it in my system (I use the Squeak vm from the Debian
>> > Unstable repository).
>> > I've downloaded the Squeak vm for Linux from the official site and
>> > even have not found this plugin in that archive.
>> >
>> > Where I can obtain it for the i686 GNU/Linux system (or for Windows as
>> > a last resort)?
>> > Building from the source is also accepted.
>> >
>>
>>  http://squeakvm.org/svn/squeak/trunk/platforms/Cross/plugins/IA32ABI
>
> FWIW, I can confirm that the plugin builds cleanly on the latest Subversion
> and VMMaker versions, although I cannot confirm whether the resulting plugin
> works correctly (presumably yes, but I have not tried it).
>
Except from Win32.
On Win32 it doesn't builds cleanly. The platform-side sources still
need to be fixed. I were able to build it after manually patching 3-4
places (see other thread dedicated to it few days ago).
And image-side code can't be loaded cleanly on 4.1 images.

> Background: http://bugs.squeak.org/view.php?id=7475
>


> Dave
>


--
Best regards,
Igor Stasenko AKA sig.

Reply | Threaded
Open this post in threaded view
|

Re: Can not load Aliens FFI in Squeak 4.1

Dmitry Matveev
It seems I have a Bad Karma.

I've downloaded the 4.0.3.2202 source tarball from the squeakvm.org; I've built it successfully but I did not found the IA32ABI plugin :(

The directory Cross/plugins/IA32ABI exists and I see the source code there, but it seems that CMake did not build it since there's no appropriate CMakeFile entries for this plugin.

How can I integrate the IA32ABI plugin right into the build process?

2010/5/6 Igor Stasenko <[hidden email]>
On 6 May 2010 00:25, David T. Lewis <[hidden email]> wrote:
> On Wed, May 05, 2010 at 01:38:48PM -0700, Eliot Miranda wrote:
>> On Wed, May 5, 2010 at 1:12 PM, Dmitry Matveev <[hidden email]> wrote:
>>
>> > Hello Eliot,
>> >
>> > I have not found it in my system (I use the Squeak vm from the Debian
>> > Unstable repository).
>> > I've downloaded the Squeak vm for Linux from the official site and
>> > even have not found this plugin in that archive.
>> >
>> > Where I can obtain it for the i686 GNU/Linux system (or for Windows as
>> > a last resort)?
>> > Building from the source is also accepted.
>> >
>>
>>  http://squeakvm.org/svn/squeak/trunk/platforms/Cross/plugins/IA32ABI
>
> FWIW, I can confirm that the plugin builds cleanly on the latest Subversion
> and VMMaker versions, although I cannot confirm whether the resulting plugin
> works correctly (presumably yes, but I have not tried it).
>
Except from Win32.
On Win32 it doesn't builds cleanly. The platform-side sources still
need to be fixed. I were able to build it after manually patching 3-4
places (see other thread dedicated to it few days ago).
And image-side code can't be loaded cleanly on 4.1 images.

> Background: http://bugs.squeak.org/view.php?id=7475
>


> Dave
>


--
Best regards,
Igor Stasenko AKA sig.




Reply | Threaded
Open this post in threaded view
|

Re: Can not load Aliens FFI in Squeak 4.1

David T. Lewis
On Thu, May 06, 2010 at 12:49:50PM +0400, Dmitry Matveev wrote:

>
> 2010/5/6 Igor Stasenko <[hidden email]>
>
> > On 6 May 2010 00:25, David T. Lewis <[hidden email]> wrote:
> > > On Wed, May 05, 2010 at 01:38:48PM -0700, Eliot Miranda wrote:
> > >> On Wed, May 5, 2010 at 1:12 PM, Dmitry Matveev <[hidden email]>
> > wrote:
> > >> >
> > >> > I have not found it in my system (I use the Squeak vm from the Debian
> > >> > Unstable repository).
> > >> > I've downloaded the Squeak vm for Linux from the official site and
> > >> > even have not found this plugin in that archive.
> > >> >
> > >> > Where I can obtain it for the i686 GNU/Linux system (or for Windows as
> > >> > a last resort)?
> > >> > Building from the source is also accepted.
> > >> >
> > >>
> > >>  http://squeakvm.org/svn/squeak/trunk/platforms/Cross/plugins/IA32ABI
> > >
> > > FWIW, I can confirm that the plugin builds cleanly on the latest Subversion
> > > and VMMaker versions, although I cannot confirm whether the resulting plugin
> > > works correctly (presumably yes, but I have not tried it).
> > >
> > Except from Win32.
> > On Win32 it doesn't builds cleanly. The platform-side sources still
> > need to be fixed. I were able to build it after manually patching 3-4
> > places (see other thread dedicated to it few days ago).
> > And image-side code can't be loaded cleanly on 4.1 images.
> >
> > > Background: http://bugs.squeak.org/view.php?id=7475
> > >
> >
>
> It seems I have a Bad Karma.
>
> I've downloaded the 4.0.3.2202 source tarball from the squeakvm.org; I've
> built it successfully but I did not found the IA32ABI plugin :(
>
> The directory Cross/plugins/IA32ABI exists and I see the source code there,
> but it seems that CMake did not build it since there's no appropriate
> CMakeFile entries for this plugin.
>
> How can I integrate the IA32ABI plugin right into the build process?

No bad karma, but I think you will get better results if you start using
the very latest versions of the platform source code and VMMaker for
source code generation.

You can get the most up to date platform sources like this:

$ svn co http://squeakvm.org/svn/squeak/trunk squeak-svn-source

Use VMMaker loaded from SqueakSource, and do "VMMaker updateFromServer"
to make sure it is up to date.

Do not use the source code in platforms/unix/src/ because this is a
saved copy of sources generated from VMMaker at some time in the past.
Instead, use VMMaker to generate your own sources.

Do this for some tips on running configure:

$ ../platforms/unix/cmake/configure --help

And be sure to use the --CFLAGS=<flags> option to point to your own
sources (the sources that you generated from VMMaker).

Welcome to the bleeding edge :)

Dave


Reply | Threaded
Open this post in threaded view
|

Re: Can not load Aliens FFI in Squeak 4.1

Dmitry Matveev
Hello Dave,

Thank you for advice. This day I've spent trying to build the Squeak entirely from the svn using the VMMaker. It was a real pain.

I've took the http://pharocasts.blogspot.com/2010/03/build-squeak-vm-on-linux.html podcast as tutorial.
At first, I've tried to install the VMMaker from the SqueakSource in my current Squeak 4.1 image. It has failed to install (and now I cannot remember why).
Then I've tried to install the VMMaker from the SqueakSource into the Pharo 1.0 image. It was successful, so I've run the VMMakerTool from there.
It looked like the VMMaker has prepared the sources directory properly; I've replaced the appropriate directory from the svn version by the generated one, ran the configure and make, I've got the IA32ABI folder in my build directory with the cmake' makefiles (yeah!), but it did not helped :(

The compiled VM still fails to execute my simple 'asAlien' code with the same error.

My head is spinning. Could somebody produce a step-by-step scenario for the complete idiots like me how to get it all working right?

2010/5/6 David T. Lewis <[hidden email]>
On Thu, May 06, 2010 at 12:49:50PM +0400, Dmitry Matveev wrote:
>
> 2010/5/6 Igor Stasenko <[hidden email]>
>
> > On 6 May 2010 00:25, David T. Lewis <[hidden email]> wrote:
> > > On Wed, May 05, 2010 at 01:38:48PM -0700, Eliot Miranda wrote:
> > >> On Wed, May 5, 2010 at 1:12 PM, Dmitry Matveev <[hidden email]>
> > wrote:
> > >> >
> > >> > I have not found it in my system (I use the Squeak vm from the Debian
> > >> > Unstable repository).
> > >> > I've downloaded the Squeak vm for Linux from the official site and
> > >> > even have not found this plugin in that archive.
> > >> >
> > >> > Where I can obtain it for the i686 GNU/Linux system (or for Windows as
> > >> > a last resort)?
> > >> > Building from the source is also accepted.
> > >> >
> > >>
> > >>  http://squeakvm.org/svn/squeak/trunk/platforms/Cross/plugins/IA32ABI
> > >
> > > FWIW, I can confirm that the plugin builds cleanly on the latest Subversion
> > > and VMMaker versions, although I cannot confirm whether the resulting plugin
> > > works correctly (presumably yes, but I have not tried it).
> > >
> > Except from Win32.
> > On Win32 it doesn't builds cleanly. The platform-side sources still
> > need to be fixed. I were able to build it after manually patching 3-4
> > places (see other thread dedicated to it few days ago).
> > And image-side code can't be loaded cleanly on 4.1 images.
> >
> > > Background: http://bugs.squeak.org/view.php?id=7475
> > >
> >
>
> It seems I have a Bad Karma.
>
> I've downloaded the 4.0.3.2202 source tarball from the squeakvm.org; I've
> built it successfully but I did not found the IA32ABI plugin :(
>
> The directory Cross/plugins/IA32ABI exists and I see the source code there,
> but it seems that CMake did not build it since there's no appropriate
> CMakeFile entries for this plugin.
>
> How can I integrate the IA32ABI plugin right into the build process?

No bad karma, but I think you will get better results if you start using
the very latest versions of the platform source code and VMMaker for
source code generation.

You can get the most up to date platform sources like this:

$ svn co http://squeakvm.org/svn/squeak/trunk squeak-svn-source

Use VMMaker loaded from SqueakSource, and do "VMMaker updateFromServer"
to make sure it is up to date.

Do not use the source code in platforms/unix/src/ because this is a
saved copy of sources generated from VMMaker at some time in the past.
Instead, use VMMaker to generate your own sources.

Do this for some tips on running configure:

$ ../platforms/unix/cmake/configure --help

And be sure to use the --CFLAGS=<flags> option to point to your own
sources (the sources that you generated from VMMaker).

Welcome to the bleeding edge :)

Dave





Reply | Threaded
Open this post in threaded view
|

Re: Can not load Aliens FFI in Squeak 4.1

Igor Stasenko
On 6 May 2010 19:50, Dmitry Matveev <[hidden email]> wrote:

> Hello Dave,
>
> Thank you for advice. This day I've spent trying to build the Squeak
> entirely from the svn using the VMMaker. It was a real pain.
>
> I've took the
> http://pharocasts.blogspot.com/2010/03/build-squeak-vm-on-linux.html podcast
> as tutorial.
> At first, I've tried to install the VMMaker from the SqueakSource in my
> current Squeak 4.1 image. It has failed to install (and now I cannot
> remember why).
> Then I've tried to install the VMMaker from the SqueakSource into the Pharo
> 1.0 image. It was successful, so I've run the VMMakerTool from there.
> It looked like the VMMaker has prepared the sources directory properly; I've
> replaced the appropriate directory from the svn version by the generated
> one, ran the configure and make, I've got the IA32ABI folder in my build
> directory with the cmake' makefiles (yeah!), but it did not helped :(
>
> The compiled VM still fails to execute my simple 'asAlien' code with the
> same error.
>
CMake having a way to disable a plugins (and do not install them),
even if sources is present.
Maybe this a reason, why you can't use alien primitives.


> My head is spinning. Could somebody produce a step-by-step scenario for the
> complete idiots like me how to get it all working right?
>

To make sure you are using a correct generated sources, created by your VMMaker,
but not those, which going from SVN repository, just do:

rm -rf platforms/unix/src

to get rid that source of confusion :)

--
Best regards,
Igor Stasenko AKA sig.