FFI+Linux+double return value

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

FFI+Linux+double return value

Schwab,Wilhelm K
Hello all,

I had some strange results with double return values and boiled it down to a C function

Double AnyDouble()
{
        return 1.0;
}

called via

  anyDouble
  < cdecl: double 'AnyDouble' () >

and driven by

| out |
out := Array writeStream.
100 timesRepeat:[
  out nextPut:Library default anyDouble
].
out contents.

The results are not good.  It works for the first three elements, after which it produces NaN.  The real problem appears to be comparison of floats being broken after that point, as evidenced by a walkback that arises when trying to inspect the resulting collection - exploring it works.

I need to try this on the latest image/vm, but wanted to start gathering opinions.  Any ideas?

Bill



_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: FFI+Linux+double return value

Schwab,Wilhelm K
Nicolas,

I am running this on Ubuntu (9.10) and have been using the Pharo 0.15.2f vm.  I just tried a Squeak vm (3.11-3) and could not get it to load my library.  I have been using an absolute path the the .so; could that be the problem with the Squeak vm??

There has been a lot of discussion of the Pharo Linux vm lately, with some links and corrections, so I'll have to look around a little.

You asked if I can check the vm sources; the concern is whether or not I will have anything to add :)  Is there something specific you want me to do?

Bill


-----Original Message-----
From: [hidden email] [mailto:[hidden email]] On Behalf Of Schwab,Wilhelm K
Sent: Tuesday, April 06, 2010 1:46 PM
To: [hidden email]; The general-purpose Squeak developers list
Subject: [Pharo-project] FFI+Linux+double return value

Hello all,

I had some strange results with double return values and boiled it down to a C function

Double AnyDouble()
{
        return 1.0;
}

called via

  anyDouble
  < cdecl: double 'AnyDouble' () >

and driven by

| out |
out := Array writeStream.
100 timesRepeat:[
  out nextPut:Library default anyDouble
].
out contents.

The results are not good.  It works for the first three elements, after which it produces NaN.  The real problem appears to be comparison of floats being broken after that point, as evidenced by a walkback that arises when trying to inspect the resulting collection - exploring it works.

I need to try this on the latest image/vm, but wanted to start gathering opinions.  Any ideas?

Bill



_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: FFI+Linux+double return value

Schwab,Wilhelm K
Hello all,

I built (I think) a 2151 vm, but I can't run it.  It keeps complaining that it can't find the X11 display driver.  What am I missing about the command line options?  I generally try to use

  /full-path-to-vm/squeakvm options /full-path-to-image

Help??

Bill


-----Original Message-----
From: [hidden email] [mailto:[hidden email]] On Behalf Of Schwab,Wilhelm K
Sent: Tuesday, April 06, 2010 3:05 PM
To: [hidden email]; The general-purpose Squeak developers list
Subject: Re: [Pharo-project] FFI+Linux+double return value

Nicolas,

I am running this on Ubuntu (9.10) and have been using the Pharo 0.15.2f vm.  I just tried a Squeak vm (3.11-3) and could not get it to load my library.  I have been using an absolute path the the .so; could that be the problem with the Squeak vm??

There has been a lot of discussion of the Pharo Linux vm lately, with some links and corrections, so I'll have to look around a little.

You asked if I can check the vm sources; the concern is whether or not I will have anything to add :)  Is there something specific you want me to do?

Bill


-----Original Message-----
From: [hidden email] [mailto:[hidden email]] On Behalf Of Schwab,Wilhelm K
Sent: Tuesday, April 06, 2010 1:46 PM
To: [hidden email]; The general-purpose Squeak developers list
Subject: [Pharo-project] FFI+Linux+double return value

Hello all,

I had some strange results with double return values and boiled it down to a C function

Double AnyDouble()
{
        return 1.0;
}

called via

  anyDouble
  < cdecl: double 'AnyDouble' () >

and driven by

| out |
out := Array writeStream.
100 timesRepeat:[
  out nextPut:Library default anyDouble
].
out contents.

The results are not good.  It works for the first three elements, after which it produces NaN.  The real problem appears to be comparison of floats being broken after that point, as evidenced by a walkback that arises when trying to inspect the resulting collection - exploring it works.

I need to try this on the latest image/vm, but wanted to start gathering opinions.  Any ideas?

Bill



_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: FFI+Linux+double return value

Nicolas Cellier
2010/4/6 Schwab,Wilhelm K <[hidden email]>:

> Hello all,
>
> I built (I think) a 2151 vm, but I can't run it.  It keeps complaining that it can't find the X11 display driver.  What am I missing about the command line options?  I generally try to use
>
>  /full-path-to-vm/squeakvm options /full-path-to-image
>
> Help??
>
> Bill
>

Unless you add some specific home made plugin, you should better use
latest squeak vm, after setting the LD_LIBRARY_PATH to point to your
library path. Did you try ?

Nicolas

>
> -----Original Message-----
> From: [hidden email] [mailto:[hidden email]] On Behalf Of Schwab,Wilhelm K
> Sent: Tuesday, April 06, 2010 3:05 PM
> To: [hidden email]; The general-purpose Squeak developers list
> Subject: Re: [Pharo-project] FFI+Linux+double return value
>
> Nicolas,
>
> I am running this on Ubuntu (9.10) and have been using the Pharo 0.15.2f vm.  I just tried a Squeak vm (3.11-3) and could not get it to load my library.  I have been using an absolute path the the .so; could that be the problem with the Squeak vm??
>
> There has been a lot of discussion of the Pharo Linux vm lately, with some links and corrections, so I'll have to look around a little.
>
> You asked if I can check the vm sources; the concern is whether or not I will have anything to add :)  Is there something specific you want me to do?
>
> Bill
>
>
> -----Original Message-----
> From: [hidden email] [mailto:[hidden email]] On Behalf Of Schwab,Wilhelm K
> Sent: Tuesday, April 06, 2010 1:46 PM
> To: [hidden email]; The general-purpose Squeak developers list
> Subject: [Pharo-project] FFI+Linux+double return value
>
> Hello all,
>
> I had some strange results with double return values and boiled it down to a C function
>
> Double AnyDouble()
> {
>        return 1.0;
> }
>
> called via
>
>  anyDouble
>  < cdecl: double 'AnyDouble' () >
>
> and driven by
>
> | out |
> out := Array writeStream.
> 100 timesRepeat:[
>  out nextPut:Library default anyDouble
> ].
> out contents.
>
> The results are not good.  It works for the first three elements, after which it produces NaN.  The real problem appears to be comparison of floats being broken after that point, as evidenced by a walkback that arises when trying to inspect the resulting collection - exploring it works.
>
> I need to try this on the latest image/vm, but wanted to start gathering opinions.  Any ideas?
>
> Bill
>
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: FFI+Linux+double return value

Schwab,Wilhelm K
Nicolas,

I tried, and it has not been smooth.  What exactly do you mean by the library path?  Perhaps the easiest way to answer my question is to tell me which libraries should be found there.  Will the vm no longer use absolute paths in #moduleName?

I moved on to the RC3 one-click image and am trying to figure out how to point its vm at my image - can't hurt.

Bill




-----Original Message-----
From: [hidden email] [mailto:[hidden email]] On Behalf Of Nicolas Cellier
Sent: Tuesday, April 06, 2010 5:07 PM
To: [hidden email]
Subject: Re: [Pharo-project] FFI+Linux+double return value

2010/4/6 Schwab,Wilhelm K <[hidden email]>:

> Hello all,
>
> I built (I think) a 2151 vm, but I can't run it.  It keeps complaining
> that it can't find the X11 display driver.  What am I missing about
> the command line options?  I generally try to use
>
>  /full-path-to-vm/squeakvm options /full-path-to-image
>
> Help??
>
> Bill
>

Unless you add some specific home made plugin, you should better use latest squeak vm, after setting the LD_LIBRARY_PATH to point to your library path. Did you try ?

Nicolas

>
> -----Original Message-----
> From: [hidden email]
> [mailto:[hidden email]] On Behalf Of
> Schwab,Wilhelm K
> Sent: Tuesday, April 06, 2010 3:05 PM
> To: [hidden email]; The general-purpose Squeak
> developers list
> Subject: Re: [Pharo-project] FFI+Linux+double return value
>
> Nicolas,
>
> I am running this on Ubuntu (9.10) and have been using the Pharo 0.15.2f vm.  I just tried a Squeak vm (3.11-3) and could not get it to load my library.  I have been using an absolute path the the .so; could that be the problem with the Squeak vm??
>
> There has been a lot of discussion of the Pharo Linux vm lately, with some links and corrections, so I'll have to look around a little.
>
> You asked if I can check the vm sources; the concern is whether or not I will have anything to add :)  Is there something specific you want me to do?
>
> Bill
>
>
> -----Original Message-----
> From: [hidden email]
> [mailto:[hidden email]] On Behalf Of
> Schwab,Wilhelm K
> Sent: Tuesday, April 06, 2010 1:46 PM
> To: [hidden email]; The general-purpose Squeak
> developers list
> Subject: [Pharo-project] FFI+Linux+double return value
>
> Hello all,
>
> I had some strange results with double return values and boiled it
> down to a C function
>
> Double AnyDouble()
> {
>        return 1.0;
> }
>
> called via
>
>  anyDouble
>  < cdecl: double 'AnyDouble' () >
>
> and driven by
>
> | out |
> out := Array writeStream.
> 100 timesRepeat:[
>  out nextPut:Library default anyDouble ].
> out contents.
>
> The results are not good.  It works for the first three elements, after which it produces NaN.  The real problem appears to be comparison of floats being broken after that point, as evidenced by a walkback that arises when trying to inspect the resulting collection - exploring it works.
>
> I need to try this on the latest image/vm, but wanted to start gathering opinions.  Any ideas?
>
> Bill
>
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: FFI+Linux+double return value

Schwab,Wilhelm K
The one-click vm appears to still have the defect.



-----Original Message-----
From: [hidden email] [mailto:[hidden email]] On Behalf Of Schwab,Wilhelm K
Sent: Tuesday, April 06, 2010 5:12 PM
To: [hidden email]
Subject: Re: [Pharo-project] FFI+Linux+double return value

Nicolas,

I tried, and it has not been smooth.  What exactly do you mean by the library path?  Perhaps the easiest way to answer my question is to tell me which libraries should be found there.  Will the vm no longer use absolute paths in #moduleName?

I moved on to the RC3 one-click image and am trying to figure out how to point its vm at my image - can't hurt.

Bill




-----Original Message-----
From: [hidden email] [mailto:[hidden email]] On Behalf Of Nicolas Cellier
Sent: Tuesday, April 06, 2010 5:07 PM
To: [hidden email]
Subject: Re: [Pharo-project] FFI+Linux+double return value

2010/4/6 Schwab,Wilhelm K <[hidden email]>:

> Hello all,
>
> I built (I think) a 2151 vm, but I can't run it.  It keeps complaining
> that it can't find the X11 display driver.  What am I missing about
> the command line options?  I generally try to use
>
>  /full-path-to-vm/squeakvm options /full-path-to-image
>
> Help??
>
> Bill
>

Unless you add some specific home made plugin, you should better use latest squeak vm, after setting the LD_LIBRARY_PATH to point to your library path. Did you try ?

Nicolas

>
> -----Original Message-----
> From: [hidden email]
> [mailto:[hidden email]] On Behalf Of
> Schwab,Wilhelm K
> Sent: Tuesday, April 06, 2010 3:05 PM
> To: [hidden email]; The general-purpose Squeak
> developers list
> Subject: Re: [Pharo-project] FFI+Linux+double return value
>
> Nicolas,
>
> I am running this on Ubuntu (9.10) and have been using the Pharo 0.15.2f vm.  I just tried a Squeak vm (3.11-3) and could not get it to load my library.  I have been using an absolute path the the .so; could that be the problem with the Squeak vm??
>
> There has been a lot of discussion of the Pharo Linux vm lately, with some links and corrections, so I'll have to look around a little.
>
> You asked if I can check the vm sources; the concern is whether or not I will have anything to add :)  Is there something specific you want me to do?
>
> Bill
>
>
> -----Original Message-----
> From: [hidden email]
> [mailto:[hidden email]] On Behalf Of
> Schwab,Wilhelm K
> Sent: Tuesday, April 06, 2010 1:46 PM
> To: [hidden email]; The general-purpose Squeak
> developers list
> Subject: [Pharo-project] FFI+Linux+double return value
>
> Hello all,
>
> I had some strange results with double return values and boiled it
> down to a C function
>
> Double AnyDouble()
> {
>        return 1.0;
> }
>
> called via
>
>  anyDouble
>  < cdecl: double 'AnyDouble' () >
>
> and driven by
>
> | out |
> out := Array writeStream.
> 100 timesRepeat:[
>  out nextPut:Library default anyDouble ].
> out contents.
>
> The results are not good.  It works for the first three elements, after which it produces NaN.  The real problem appears to be comparison of floats being broken after that point, as evidenced by a walkback that arises when trying to inspect the resulting collection - exploring it works.
>
> I need to try this on the latest image/vm, but wanted to start gathering opinions.  Any ideas?
>
> Bill
>
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: FFI+Linux+double return value

Nicolas Cellier
In reply to this post by Schwab,Wilhelm K
2010/4/7 Schwab,Wilhelm K <[hidden email]>:
> Nicolas,
>
> I tried, and it has not been smooth.  What exactly do you mean by the library path?  Perhaps the easiest way to answer my question is to tell me which libraries should be found there.  Will the vm no longer use absolute paths in #moduleName?
>

Not smooth is not very informative...
I mean the library path to your own .so you want to call with FFI

I don't know if providing the absolute path as module name still
work... Not sure at all.

See http://www.squeakvm.org/cgi-bin/viewcvs.cgi/trunk/platforms/unix/vm/sqUnixExternalPrims.c?rev=2121&view=auto
In ioLoadModule, these lines indicate where your .so was searched for
in previous version, but it is now obsolete (see the #if 1 , #else
directive):

  if ((   handle= tryLoading(    "./", pluginName))
      || (handle= tryLoadingPath("SQUEAK_PLUGIN_PATH", pluginName))
      || (handle= tryLoading(    VM_LIBDIR"/", pluginName))
      || (handle= tryLoadingPath("LD_LIBRARY_PATH", pluginName))
      || (handle= tryLoading(    "", pluginName))
#    if defined(VM_X11DIR)
      || (handle= tryLoading(VM_X11DIR"/", pluginName))
#    endif
      )
    return handle;

Current version only tries:
/* try loading {pluginPaths}/MODULE_PREFIX<name>MODULE_SUFFIX */
then:
/* try dlopen()ing LIBRARY_PREFIX<name>LIBRARY_SUFFIX searching only
the default locations modulo LD_LIBRARY_PATH et al */

I don't know where is defined the extern char *squeakPlugins;
For the macros, it has to be some cmake thing:
http://www.squeakvm.org/cgi-bin/viewcvs.cgi/trunk/platforms/unix/vm/config.cmake?rev=2139&view=auto

SET (CMAKE_SHARED_MODULE_PREFIX "so.")
SET (CMAKE_SHARED_MODULE_SUFFIX "")

so no chance to find your own lib with first alternative.
For the second one, too late for me to track down, beside, I don't
want to learn anything more about cmake ;).

Good luck

Nicolas

> I moved on to the RC3 one-click image and am trying to figure out how to point its vm at my image - can't hurt.
>
> Bill
>
>
>
>
> -----Original Message-----
> From: [hidden email] [mailto:[hidden email]] On Behalf Of Nicolas Cellier
> Sent: Tuesday, April 06, 2010 5:07 PM
> To: [hidden email]
> Subject: Re: [Pharo-project] FFI+Linux+double return value
>
> 2010/4/6 Schwab,Wilhelm K <[hidden email]>:
>> Hello all,
>>
>> I built (I think) a 2151 vm, but I can't run it.  It keeps complaining
>> that it can't find the X11 display driver.  What am I missing about
>> the command line options?  I generally try to use
>>
>>  /full-path-to-vm/squeakvm options /full-path-to-image
>>
>> Help??
>>
>> Bill
>>
>
> Unless you add some specific home made plugin, you should better use latest squeak vm, after setting the LD_LIBRARY_PATH to point to your library path. Did you try ?
>
> Nicolas
>
>>
>> -----Original Message-----
>> From: [hidden email]
>> [mailto:[hidden email]] On Behalf Of
>> Schwab,Wilhelm K
>> Sent: Tuesday, April 06, 2010 3:05 PM
>> To: [hidden email]; The general-purpose Squeak
>> developers list
>> Subject: Re: [Pharo-project] FFI+Linux+double return value
>>
>> Nicolas,
>>
>> I am running this on Ubuntu (9.10) and have been using the Pharo 0.15.2f vm.  I just tried a Squeak vm (3.11-3) and could not get it to load my library.  I have been using an absolute path the the .so; could that be the problem with the Squeak vm??
>>
>> There has been a lot of discussion of the Pharo Linux vm lately, with some links and corrections, so I'll have to look around a little.
>>
>> You asked if I can check the vm sources; the concern is whether or not I will have anything to add :)  Is there something specific you want me to do?
>>
>> Bill
>>
>>
>> -----Original Message-----
>> From: [hidden email]
>> [mailto:[hidden email]] On Behalf Of
>> Schwab,Wilhelm K
>> Sent: Tuesday, April 06, 2010 1:46 PM
>> To: [hidden email]; The general-purpose Squeak
>> developers list
>> Subject: [Pharo-project] FFI+Linux+double return value
>>
>> Hello all,
>>
>> I had some strange results with double return values and boiled it
>> down to a C function
>>
>> Double AnyDouble()
>> {
>>        return 1.0;
>> }
>>
>> called via
>>
>>  anyDouble
>>  < cdecl: double 'AnyDouble' () >
>>
>> and driven by
>>
>> | out |
>> out := Array writeStream.
>> 100 timesRepeat:[
>>  out nextPut:Library default anyDouble ].
>> out contents.
>>
>> The results are not good.  It works for the first three elements, after which it produces NaN.  The real problem appears to be comparison of floats being broken after that point, as evidenced by a walkback that arises when trying to inspect the resulting collection - exploring it works.
>>
>> I need to try this on the latest image/vm, but wanted to start gathering opinions.  Any ideas?
>>
>> Bill
>>
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: FFI+Linux+double return value

Igor Stasenko
In reply to this post by Schwab,Wilhelm K
On 7 April 2010 01:12, Schwab,Wilhelm K <[hidden email]> wrote:
> Nicolas,
>
> I tried, and it has not been smooth.  What exactly do you mean by the library path?  Perhaps the easiest way to answer my question is to tell me which libraries should be found there.  Will the vm no longer use absolute paths in #moduleName?
>
> I moved on to the RC3 one-click image and am trying to figure out how to point its vm at my image - can't hurt.
>

Check that a library, you trying to load is listed in
ldconfig -p

If its not, then add path to it in /etc/ld.so.conf file,
so you won't need to specify it in LD_LIBRARY_PATH all the time.

> Bill
>
>
>
>
> -----Original Message-----
> From: [hidden email] [mailto:[hidden email]] On Behalf Of Nicolas Cellier
> Sent: Tuesday, April 06, 2010 5:07 PM
> To: [hidden email]
> Subject: Re: [Pharo-project] FFI+Linux+double return value
>
> 2010/4/6 Schwab,Wilhelm K <[hidden email]>:
>> Hello all,
>>
>> I built (I think) a 2151 vm, but I can't run it.  It keeps complaining
>> that it can't find the X11 display driver.  What am I missing about
>> the command line options?  I generally try to use
>>
>>  /full-path-to-vm/squeakvm options /full-path-to-image
>>
>> Help??
>>
>> Bill
>>
>
> Unless you add some specific home made plugin, you should better use latest squeak vm, after setting the LD_LIBRARY_PATH to point to your library path. Did you try ?
>
> Nicolas
>
>>
>> -----Original Message-----
>> From: [hidden email]
>> [mailto:[hidden email]] On Behalf Of
>> Schwab,Wilhelm K
>> Sent: Tuesday, April 06, 2010 3:05 PM
>> To: [hidden email]; The general-purpose Squeak
>> developers list
>> Subject: Re: [Pharo-project] FFI+Linux+double return value
>>
>> Nicolas,
>>
>> I am running this on Ubuntu (9.10) and have been using the Pharo 0.15.2f vm.  I just tried a Squeak vm (3.11-3) and could not get it to load my library.  I have been using an absolute path the the .so; could that be the problem with the Squeak vm??
>>
>> There has been a lot of discussion of the Pharo Linux vm lately, with some links and corrections, so I'll have to look around a little.
>>
>> You asked if I can check the vm sources; the concern is whether or not I will have anything to add :)  Is there something specific you want me to do?
>>
>> Bill
>>
>>
>> -----Original Message-----
>> From: [hidden email]
>> [mailto:[hidden email]] On Behalf Of
>> Schwab,Wilhelm K
>> Sent: Tuesday, April 06, 2010 1:46 PM
>> To: [hidden email]; The general-purpose Squeak
>> developers list
>> Subject: [Pharo-project] FFI+Linux+double return value
>>
>> Hello all,
>>
>> I had some strange results with double return values and boiled it
>> down to a C function
>>
>> Double AnyDouble()
>> {
>>        return 1.0;
>> }
>>
>> called via
>>
>>  anyDouble
>>  < cdecl: double 'AnyDouble' () >
>>
>> and driven by
>>
>> | out |
>> out := Array writeStream.
>> 100 timesRepeat:[
>>  out nextPut:Library default anyDouble ].
>> out contents.
>>
>> The results are not good.  It works for the first three elements, after which it produces NaN.  The real problem appears to be comparison of floats being broken after that point, as evidenced by a walkback that arises when trying to inspect the resulting collection - exploring it works.
>>
>> I need to try this on the latest image/vm, but wanted to start gathering opinions.  Any ideas?
>>
>> Bill
>>
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>



--
Best regards,
Igor Stasenko AKA sig.

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: FFI+Linux+double return value

Schwab,Wilhelm K
Sig,

Sounds like a good idea - thanks!!

Bill



-----Original Message-----
From: [hidden email] [mailto:[hidden email]] On Behalf Of Igor Stasenko
Sent: Wednesday, April 07, 2010 12:30 AM
To: [hidden email]
Subject: Re: [Pharo-project] FFI+Linux+double return value

On 7 April 2010 01:12, Schwab,Wilhelm K <[hidden email]> wrote:
> Nicolas,
>
> I tried, and it has not been smooth.  What exactly do you mean by the library path?  Perhaps the easiest way to answer my question is to tell me which libraries should be found there.  Will the vm no longer use absolute paths in #moduleName?
>
> I moved on to the RC3 one-click image and am trying to figure out how to point its vm at my image - can't hurt.
>

Check that a library, you trying to load is listed in ldconfig -p

If its not, then add path to it in /etc/ld.so.conf file, so you won't need to specify it in LD_LIBRARY_PATH all the time.

> Bill
>
>
>
>
> -----Original Message-----
> From: [hidden email]
> [mailto:[hidden email]] On Behalf Of
> Nicolas Cellier
> Sent: Tuesday, April 06, 2010 5:07 PM
> To: [hidden email]
> Subject: Re: [Pharo-project] FFI+Linux+double return value
>
> 2010/4/6 Schwab,Wilhelm K <[hidden email]>:
>> Hello all,
>>
>> I built (I think) a 2151 vm, but I can't run it.  It keeps
>> complaining that it can't find the X11 display driver.  What am I
>> missing about the command line options?  I generally try to use
>>
>>  /full-path-to-vm/squeakvm options /full-path-to-image
>>
>> Help??
>>
>> Bill
>>
>
> Unless you add some specific home made plugin, you should better use latest squeak vm, after setting the LD_LIBRARY_PATH to point to your library path. Did you try ?
>
> Nicolas
>
>>
>> -----Original Message-----
>> From: [hidden email]
>> [mailto:[hidden email]] On Behalf Of
>> Schwab,Wilhelm K
>> Sent: Tuesday, April 06, 2010 3:05 PM
>> To: [hidden email]; The general-purpose Squeak
>> developers list
>> Subject: Re: [Pharo-project] FFI+Linux+double return value
>>
>> Nicolas,
>>
>> I am running this on Ubuntu (9.10) and have been using the Pharo 0.15.2f vm.  I just tried a Squeak vm (3.11-3) and could not get it to load my library.  I have been using an absolute path the the .so; could that be the problem with the Squeak vm??
>>
>> There has been a lot of discussion of the Pharo Linux vm lately, with some links and corrections, so I'll have to look around a little.
>>
>> You asked if I can check the vm sources; the concern is whether or not I will have anything to add :)  Is there something specific you want me to do?
>>
>> Bill
>>
>>
>> -----Original Message-----
>> From: [hidden email]
>> [mailto:[hidden email]] On Behalf Of
>> Schwab,Wilhelm K
>> Sent: Tuesday, April 06, 2010 1:46 PM
>> To: [hidden email]; The general-purpose Squeak
>> developers list
>> Subject: [Pharo-project] FFI+Linux+double return value
>>
>> Hello all,
>>
>> I had some strange results with double return values and boiled it
>> down to a C function
>>
>> Double AnyDouble()
>> {
>>        return 1.0;
>> }
>>
>> called via
>>
>>  anyDouble
>>  < cdecl: double 'AnyDouble' () >
>>
>> and driven by
>>
>> | out |
>> out := Array writeStream.
>> 100 timesRepeat:[
>>  out nextPut:Library default anyDouble ].
>> out contents.
>>
>> The results are not good.  It works for the first three elements, after which it produces NaN.  The real problem appears to be comparison of floats being broken after that point, as evidenced by a walkback that arises when trying to inspect the resulting collection - exploring it works.
>>
>> I need to try this on the latest image/vm, but wanted to start gathering opinions.  Any ideas?
>>
>> Bill
>>
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>



--
Best regards,
Igor Stasenko AKA sig.

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project