FFI & Python

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

FFI & Python

Santiago Bragagnolo
Hi all!

    I'm currently working in a project related with ROS (robot operative system), which already have a library to develop in C++ and other to do the same at Python. So, there a lot of variables to contrast to make a choice (performance, code-easy-to-prototype, flexibility, and a lot more), but the main variable is the accessibility from Pharo, then the question is, is there any project that use python from pharo? Or, if i select python i should write a library in C that bootstrap python and give access to pharo via FFI?

   I looked in the list's mails and in google without any success.

   Thanks in advance!

   Santiago.
  
cbc
Reply | Threaded
Open this post in threaded view
|

Re: FFI & Python

cbc
On Wed, Sep 5, 2012 at 3:58 PM, Santiago Bragagnolo
<[hidden email]> wrote:

> Hi all!
>
>     I'm currently working in a project related with ROS (robot operative
> system), which already have a library to develop in C++ and other to do the
> same at Python. So, there a lot of variables to contrast to make a choice
> (performance, code-easy-to-prototype, flexibility, and a lot more), but the
> main variable is the accessibility from Pharo, then the question is, is
> there any project that use python from pharo? Or, if i select python i
> should write a library in C that bootstrap python and give access to pharo
> via FFI?
>
>    I looked in the list's mails and in google without any success.
>
>    Thanks in advance!
>
>    Santiago.
>
Not in Pharo (that I know of), but in OpenQwaq (a derivative of Squeak
- from Pharo's past, I believe) it does include Python scripting:
* Python Scripting of 2d applications and 3d objects
(taken from the wikipedia on OpenQwaq).  I'm not sure how they did it
- not being a Python guy myself.

-Chris

Reply | Threaded
Open this post in threaded view
|

Re: FFI & Python

SergeStinckwich
In reply to this post by Santiago Bragagnolo
On Thu, Sep 6, 2012 at 5:58 AM, Santiago Bragagnolo
<[hidden email]> wrote:
> Hi all!

Hi Santiago,

>     I'm currently working in a project related with ROS (robot operative
> system), which already have a library to develop in C++ and other to do the
> same at Python. So, there a lot of variables to contrast to make a choice
> (performance, code-easy-to-prototype, flexibility, and a lot more), but the
> main variable is the accessibility from Pharo, then the question is, is
> there any project that use python from pharo? Or, if i select python i
> should write a library in C that bootstrap python and give access to pharo
> via FFI?
>
>    I looked in the list's mails and in google without any success.

As Chris already told, there is a Python binding with OpenQwaq:
https://squeakingalong.wordpress.com/2011/05/04/openqwaq-python-integration/

I'm really interested to be able to use ROS from Pharo.
I start some weeks ago to work on a pure Smalltalk client for ROS:
http://ss3.gemstone.com/ss/RosSmalltalk.html

Noury is also interested and start some work also:
http://car.mines-douai.fr/squeaksource/RoSt.html

We planned with Noury to join our efforts to have a ROS client as soon
as possible.
Noury will also recruit a engineer to work full time on this.

Another alternative in order to use ROS from Smalltalk is to use
websockets and rosbridge.
I have done some work to use ROS from Amber here:
https://github.com/SergeStinckwich/rostalk

You are than welcome to join us ;-)
Regards,
--
Serge Stinckwich
UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam
Every DSL ends up being Smalltalk
http://doesnotunderstand.org/

Reply | Threaded
Open this post in threaded view
|

Re: FFI & Python

S Krish
Is there a source / person who could detail how the python binding is done...

1. To port this into Pharo

2. Port this design to bind Groovy to Pharo..




On Thu, Sep 6, 2012 at 6:47 AM, Serge Stinckwich <[hidden email]> wrote:
On Thu, Sep 6, 2012 at 5:58 AM, Santiago Bragagnolo
<[hidden email]> wrote:
> Hi all!

Hi Santiago,

>     I'm currently working in a project related with ROS (robot operative
> system), which already have a library to develop in C++ and other to do the
> same at Python. So, there a lot of variables to contrast to make a choice
> (performance, code-easy-to-prototype, flexibility, and a lot more), but the
> main variable is the accessibility from Pharo, then the question is, is
> there any project that use python from pharo? Or, if i select python i
> should write a library in C that bootstrap python and give access to pharo
> via FFI?
>
>    I looked in the list's mails and in google without any success.

As Chris already told, there is a Python binding with OpenQwaq:
https://squeakingalong.wordpress.com/2011/05/04/openqwaq-python-integration/

I'm really interested to be able to use ROS from Pharo.
I start some weeks ago to work on a pure Smalltalk client for ROS:
http://ss3.gemstone.com/ss/RosSmalltalk.html

Noury is also interested and start some work also:
http://car.mines-douai.fr/squeaksource/RoSt.html

We planned with Noury to join our efforts to have a ROS client as soon
as possible.
Noury will also recruit a engineer to work full time on this.

Another alternative in order to use ROS from Smalltalk is to use
websockets and rosbridge.
I have done some work to use ROS from Amber here:
https://github.com/SergeStinckwich/rostalk

You are than welcome to join us ;-)
Regards,
--
Serge Stinckwich
UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam
Every DSL ends up being Smalltalk
http://doesnotunderstand.org/


Reply | Threaded
Open this post in threaded view
|

Re: FFI & Python

philippeback
Can't you just get the current implementation run as a separate
process managing that main variable along with some web/TCP interface
and get that working through Zinc or OSProcess with a control script?

I am currently experimenting with CUDA (same kind of freaking
interfacing) and frankly, the quickest way to see some progress and
understand what's going on has been to use OSProcess to compile what I
need, ship the code to the card etc. No FFI etc. Just make a neat
little set of scripts.

FWIW, I also leverage Tcl quite often to wrap C stuff (Yeah, I love
homoiconic languages - ah, can't resist:
http://en.wikipedia.org/wiki/Homoiconicity). And also, SWIG may help a
lot for these endeavors. http://www.swig.org/

Also, Pharo can give HTTP-based access (lots of options here) for
controlling the other around. There seems to be some REST support
available and JSON parsing is around.

Of course, this doesn't answer the question...

Phil


2012/9/6 S Krish <[hidden email]>:

> Is there a source / person who could detail how the python binding is
> done...
>
> 1. To port this into Pharo
>
> 2. Port this design to bind Groovy to Pharo..
>
>
>
>
> On Thu, Sep 6, 2012 at 6:47 AM, Serge Stinckwich
> <[hidden email]> wrote:
>>
>> On Thu, Sep 6, 2012 at 5:58 AM, Santiago Bragagnolo
>> <[hidden email]> wrote:
>> > Hi all!
>>
>> Hi Santiago,
>>
>> >     I'm currently working in a project related with ROS (robot operative
>> > system), which already have a library to develop in C++ and other to do
>> > the
>> > same at Python. So, there a lot of variables to contrast to make a
>> > choice
>> > (performance, code-easy-to-prototype, flexibility, and a lot more), but
>> > the
>> > main variable is the accessibility from Pharo, then the question is, is
>> > there any project that use python from pharo? Or, if i select python i
>> > should write a library in C that bootstrap python and give access to
>> > pharo
>> > via FFI?
>> >
>> >    I looked in the list's mails and in google without any success.
>>
>> As Chris already told, there is a Python binding with OpenQwaq:
>>
>> https://squeakingalong.wordpress.com/2011/05/04/openqwaq-python-integration/
>>
>> I'm really interested to be able to use ROS from Pharo.
>> I start some weeks ago to work on a pure Smalltalk client for ROS:
>> http://ss3.gemstone.com/ss/RosSmalltalk.html
>>
>> Noury is also interested and start some work also:
>> http://car.mines-douai.fr/squeaksource/RoSt.html
>>
>> We planned with Noury to join our efforts to have a ROS client as soon
>> as possible.
>> Noury will also recruit a engineer to work full time on this.
>>
>> Another alternative in order to use ROS from Smalltalk is to use
>> websockets and rosbridge.
>> I have done some work to use ROS from Amber here:
>> https://github.com/SergeStinckwich/rostalk
>>
>> You are than welcome to join us ;-)
>> Regards,
>> --
>> Serge Stinckwich
>> UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam
>> Every DSL ends up being Smalltalk
>> http://doesnotunderstand.org/
>>
>

Reply | Threaded
Open this post in threaded view
|

Re: FFI & Python

EstebanLM
In reply to this post by SergeStinckwich
he, Santiago *is* the engineer recruited by Noury :)

On Sep 6, 2012, at 3:17 AM, Serge Stinckwich <[hidden email]> wrote:

> On Thu, Sep 6, 2012 at 5:58 AM, Santiago Bragagnolo
> <[hidden email]> wrote:
>> Hi all!
>
> Hi Santiago,
>
>>    I'm currently working in a project related with ROS (robot operative
>> system), which already have a library to develop in C++ and other to do the
>> same at Python. So, there a lot of variables to contrast to make a choice
>> (performance, code-easy-to-prototype, flexibility, and a lot more), but the
>> main variable is the accessibility from Pharo, then the question is, is
>> there any project that use python from pharo? Or, if i select python i
>> should write a library in C that bootstrap python and give access to pharo
>> via FFI?
>>
>>   I looked in the list's mails and in google without any success.
>
> As Chris already told, there is a Python binding with OpenQwaq:
> https://squeakingalong.wordpress.com/2011/05/04/openqwaq-python-integration/
>
> I'm really interested to be able to use ROS from Pharo.
> I start some weeks ago to work on a pure Smalltalk client for ROS:
> http://ss3.gemstone.com/ss/RosSmalltalk.html
>
> Noury is also interested and start some work also:
> http://car.mines-douai.fr/squeaksource/RoSt.html
>
> We planned with Noury to join our efforts to have a ROS client as soon
> as possible.
> Noury will also recruit a engineer to work full time on this.
>
> Another alternative in order to use ROS from Smalltalk is to use
> websockets and rosbridge.
> I have done some work to use ROS from Amber here:
> https://github.com/SergeStinckwich/rostalk
>
> You are than welcome to join us ;-)
> Regards,
> --
> Serge Stinckwich
> UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam
> Every DSL ends up being Smalltalk
> http://doesnotunderstand.org/
>


Reply | Threaded
Open this post in threaded view
|

Re: FFI & Python

SergeStinckwich
Hum, I see ;-)

Welcome on board Santiago !
If you are interested, we can talk about the alternatives to build a
ROS client in Smalltalk (rosbridge, pure client or Python bindings).

Regards,

On Thu, Sep 6, 2012 at 1:43 PM, Esteban Lorenzano <[hidden email]> wrote:

> he, Santiago *is* the engineer recruited by Noury :)
>
> On Sep 6, 2012, at 3:17 AM, Serge Stinckwich <[hidden email]> wrote:
>
>> On Thu, Sep 6, 2012 at 5:58 AM, Santiago Bragagnolo
>> <[hidden email]> wrote:
>>> Hi all!
>>
>> Hi Santiago,
>>
>>>    I'm currently working in a project related with ROS (robot operative
>>> system), which already have a library to develop in C++ and other to do the
>>> same at Python. So, there a lot of variables to contrast to make a choice
>>> (performance, code-easy-to-prototype, flexibility, and a lot more), but the
>>> main variable is the accessibility from Pharo, then the question is, is
>>> there any project that use python from pharo? Or, if i select python i
>>> should write a library in C that bootstrap python and give access to pharo
>>> via FFI?
>>>
>>>   I looked in the list's mails and in google without any success.
>>
>> As Chris already told, there is a Python binding with OpenQwaq:
>> https://squeakingalong.wordpress.com/2011/05/04/openqwaq-python-integration/
>>
>> I'm really interested to be able to use ROS from Pharo.
>> I start some weeks ago to work on a pure Smalltalk client for ROS:
>> http://ss3.gemstone.com/ss/RosSmalltalk.html
>>
>> Noury is also interested and start some work also:
>> http://car.mines-douai.fr/squeaksource/RoSt.html
>>
>> We planned with Noury to join our efforts to have a ROS client as soon
>> as possible.
>> Noury will also recruit a engineer to work full time on this.
>>
>> Another alternative in order to use ROS from Smalltalk is to use
>> websockets and rosbridge.
>> I have done some work to use ROS from Amber here:
>> https://github.com/SergeStinckwich/rostalk
>>
>> You are than welcome to join us ;-)
>> Regards,
>> --
>> Serge Stinckwich
>> UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam
>> Every DSL ends up being Smalltalk
>> http://doesnotunderstand.org/
>>
>
>



--
Serge Stinckwich
UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam
Every DSL ends up being Smalltalk
http://doesnotunderstand.org/

Reply | Threaded
Open this post in threaded view
|

Re: FFI & Python

kilon
Hello there, I am a nooby with smalltalk but quite experienced with python. Here is a little background about python libraries.

Python libraries come in 3 flavors

a) Pure python libraries

b) Pure C libraries

c) A mix between the two

Now as you may have guessed option C is the most popular but lets see how either one works.

Option A
-------------

Pure python libraries are not that common, but they do exist, an example of this is pyglet, it uses Ctypes a FFI that allows to access dynamical libraries (*.dll ,*.so etc) use just pure python , so pyglet access both opengl and native OS support for games, like windows, events etc. Pure python libraries, use only python and as suck accessing them from another programming language is relatively easy usually via sockets or even embeding python inside your app, in this case pharo. Obviously sockets is way easier.

Option B
--------------

Pure C libraries in python are very common. Python was invented for simplifying and extending C apps, so it comes as no suprised that python core is written in C but even a 50 % of the libraries python comes with by default are written in C at least partly. Pure C libraries wrapped for python use the C python API which is nothing than a collection of C functions that can convert C types to python types and increase and decrease the reference counter which plays a huge role in python automatic memory management. The good news is that what you end up with even though it may come with the strange extension of *.pyd  its actually a normal dynamic library (dll in windows). That is good news for Pharo because it means that this type of python library is accessible through pharos FFIs , so if the library is open source it should be fairly easy to use from pharo without converting code to smalltalk or using sockets that are not that fast

Option C
------------
This must be the most popular option out there.
I think this option is relative easy to guess. Its still option B but with additional python modules to extend the core pyd file, if those modules are not much you could convert the library to smalltalk and use FFI to access the core pyd file.

Of course in all cases sockets are an easy solution. You just fire up a python intepreter and you create a socket bridge between pharo and python.

If you want additional technically details I will be glad to help , though I am not a python expert.


From: Serge Stinckwich <[hidden email]>
To: [hidden email]
Sent: Thursday, 6 September 2012, 10:03
Subject: Re: [Pharo-project] FFI & Python

Hum, I see ;-)

Welcome on board Santiago !
If you are interested, we can talk about the alternatives to build a
ROS client in Smalltalk (rosbridge, pure client or Python bindings).

Regards,

On Thu, Sep 6, 2012 at 1:43 PM, Esteban Lorenzano <[hidden email]> wrote:

> he, Santiago *is* the engineer recruited by Noury :)
>
> On Sep 6, 2012, at 3:17 AM, Serge Stinckwich <[hidden email]> wrote:
>
>> On Thu, Sep 6, 2012 at 5:58 AM, Santiago Bragagnolo
>> <[hidden email]> wrote:
>>> Hi all!
>>
>> Hi Santiago,
>>
>>>    I'm currently working in a project related with ROS (robot operative
>>> system), which already have a library to develop in C++ and other to do the
>>> same at Python. So, there a lot of variables to contrast to make a choice
>>> (performance, code-easy-to-prototype, flexibility, and a lot more), but the
>>> main variable is the accessibility from Pharo, then the question is, is
>>> there any project that use python from pharo? Or, if i select python i
>>> should write a library in C that bootstrap python and give access to pharo
>>> via FFI?
>>>
>>>  I looked in the list's mails and in google without any success.
>>
>> As Chris already told, there is a Python binding with OpenQwaq:
>> https://squeakingalong.wordpress.com/2011/05/04/openqwaq-python-integration/
>>
>> I'm really interested to be able to use ROS from Pharo.
>> I start some weeks ago to work on a pure Smalltalk client for ROS:
>> http://ss3.gemstone.com/ss/RosSmalltalk.html
>>
>> Noury is also interested and start some work also:
>> http://car.mines-douai.fr/squeaksource/RoSt.html
>>
>> We planned with Noury to join our efforts to have a ROS client as soon
>> as possible.
>> Noury will also recruit a engineer to work full time on this.
>>
>> Another alternative in order to use ROS from Smalltalk is to use
>> websockets and rosbridge.
>> I have done some work to use ROS from Amber here:
>> https://github.com/SergeStinckwich/rostalk
>>
>> You are than welcome to join us ;-)
>> Regards,
>> --
>> Serge Stinckwich
>> UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam
>> Every DSL ends up being Smalltalk
>> http://doesnotunderstand.org/
>>
>
>



--
Serge Stinckwich
UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam
Every DSL ends up being Smalltalk
http://doesnotunderstand.org/



Reply | Threaded
Open this post in threaded view
|

Re: FFI & Python

Luc Fabresse
Hi all,

 Yes Santiago is THE new engineer at Ecole des Mines that will do the ROS/Pharo bridge.
 We are investigating what are the alternatives to do this bridge: FFI, Network, ?

Cheers,

#Luc



2012/9/6 dimitris chloupis <[hidden email]>
Hello there, I am a nooby with smalltalk but quite experienced with python. Here is a little background about python libraries.

Python libraries come in 3 flavors

a) Pure python libraries

b) Pure C libraries

c) A mix between the two

Now as you may have guessed option C is the most popular but lets see how either one works.

Option A
-------------

Pure python libraries are not that common, but they do exist, an example of this is pyglet, it uses Ctypes a FFI that allows to access dynamical libraries (*.dll ,*.so etc) use just pure python , so pyglet access both opengl and native OS support for games, like windows, events etc. Pure python libraries, use only python and as suck accessing them from another programming language is relatively easy usually via sockets or even embeding python inside your app, in this case pharo. Obviously sockets is way easier.

Option B
--------------

Pure C libraries in python are very common. Python was invented for simplifying and extending C apps, so it comes as no suprised that python core is written in C but even a 50 % of the libraries python comes with by default are written in C at least partly. Pure C libraries wrapped for python use the C python API which is nothing than a collection of C functions that can convert C types to python types and increase and decrease the reference counter which plays a huge role in python automatic memory management. The good news is that what you end up with even though it may come with the strange extension of *.pyd  its actually a normal dynamic library (dll in windows). That is good news for Pharo because it means that this type of python library is accessible through pharos FFIs , so if the library is open source it should be fairly easy to use from pharo without converting code to smalltalk or using sockets that are not that fast

Option C
------------
This must be the most popular option out there.
I think this option is relative easy to guess. Its still option B but with additional python modules to extend the core pyd file, if those modules are not much you could convert the library to smalltalk and use FFI to access the core pyd file.

Of course in all cases sockets are an easy solution. You just fire up a python intepreter and you create a socket bridge between pharo and python.

If you want additional technically details I will be glad to help , though I am not a python expert.


From: Serge Stinckwich <[hidden email]>
To: [hidden email]
Sent: Thursday, 6 September 2012, 10:03
Subject: Re: [Pharo-project] FFI & Python

Hum, I see ;-)

Welcome on board Santiago !
If you are interested, we can talk about the alternatives to build a
ROS client in Smalltalk (rosbridge, pure client or Python bindings).

Regards,

On Thu, Sep 6, 2012 at 1:43 PM, Esteban Lorenzano <[hidden email]> wrote:
> he, Santiago *is* the engineer recruited by Noury :)
>
> On Sep 6, 2012, at 3:17 AM, Serge Stinckwich <[hidden email]> wrote:
>
>> On Thu, Sep 6, 2012 at 5:58 AM, Santiago Bragagnolo
>> <[hidden email]> wrote:
>>> Hi all!
>>
>> Hi Santiago,
>>
>>>    I'm currently working in a project related with ROS (robot operative
>>> system), which already have a library to develop in C++ and other to do the
>>> same at Python. So, there a lot of variables to contrast to make a choice
>>> (performance, code-easy-to-prototype, flexibility, and a lot more), but the
>>> main variable is the accessibility from Pharo, then the question is, is
>>> there any project that use python from pharo? Or, if i select python i
>>> should write a library in C that bootstrap python and give access to pharo
>>> via FFI?
>>>
>>>  I looked in the list's mails and in google without any success.
>>
>> As Chris already told, there is a Python binding with OpenQwaq:
>> https://squeakingalong.wordpress.com/2011/05/04/openqwaq-python-integration/
>>
>> I'm really interested to be able to use ROS from Pharo.
>> I start some weeks ago to work on a pure Smalltalk client for ROS:
>> http://ss3.gemstone.com/ss/RosSmalltalk.html
>>
>> Noury is also interested and start some work also:
>> http://car.mines-douai.fr/squeaksource/RoSt.html
>>
>> We planned with Noury to join our efforts to have a ROS client as soon
>> as possible.
>> Noury will also recruit a engineer to work full time on this.
>>
>> Another alternative in order to use ROS from Smalltalk is to use
>> websockets and rosbridge.
>> I have done some work to use ROS from Amber here:
>> https://github.com/SergeStinckwich/rostalk
>>
>> You are than welcome to join us ;-)
>> Regards,
>> --
>> Serge Stinckwich
>> UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam
>> Every DSL ends up being Smalltalk
>> http://doesnotunderstand.org/
>>
>
>



--
Serge Stinckwich
UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam
Every DSL ends up being Smalltalk
http://doesnotunderstand.org/




Reply | Threaded
Open this post in threaded view
|

Re: FFI & Python

Santiago Bragagnolo
In reply to this post by SergeStinckwich
Serge, i'm diving into all this stuff right now, prototyping things to lern about the architecture and have more info about how-to-reach our goal. I'm browsing your implementation and Noury's right now, so, probably today or maybe tomorrow i'll have questions and better ideas :).


Thanks to all for the answers!



PS: Thanks for the presentation Esteban jajaja. 

2012/9/6 Serge Stinckwich <[hidden email]>
Hum, I see ;-)

Welcome on board Santiago !
If you are interested, we can talk about the alternatives to build a
ROS client in Smalltalk (rosbridge, pure client or Python bindings).

Regards,

On Thu, Sep 6, 2012 at 1:43 PM, Esteban Lorenzano <[hidden email]> wrote:
> he, Santiago *is* the engineer recruited by Noury :)
>
> On Sep 6, 2012, at 3:17 AM, Serge Stinckwich <[hidden email]> wrote:
>
>> On Thu, Sep 6, 2012 at 5:58 AM, Santiago Bragagnolo
>> <[hidden email]> wrote:
>>> Hi all!
>>
>> Hi Santiago,
>>
>>>    I'm currently working in a project related with ROS (robot operative
>>> system), which already have a library to develop in C++ and other to do the
>>> same at Python. So, there a lot of variables to contrast to make a choice
>>> (performance, code-easy-to-prototype, flexibility, and a lot more), but the
>>> main variable is the accessibility from Pharo, then the question is, is
>>> there any project that use python from pharo? Or, if i select python i
>>> should write a library in C that bootstrap python and give access to pharo
>>> via FFI?
>>>
>>>   I looked in the list's mails and in google without any success.
>>
>> As Chris already told, there is a Python binding with OpenQwaq:
>> https://squeakingalong.wordpress.com/2011/05/04/openqwaq-python-integration/
>>
>> I'm really interested to be able to use ROS from Pharo.
>> I start some weeks ago to work on a pure Smalltalk client for ROS:
>> http://ss3.gemstone.com/ss/RosSmalltalk.html
>>
>> Noury is also interested and start some work also:
>> http://car.mines-douai.fr/squeaksource/RoSt.html
>>
>> We planned with Noury to join our efforts to have a ROS client as soon
>> as possible.
>> Noury will also recruit a engineer to work full time on this.
>>
>> Another alternative in order to use ROS from Smalltalk is to use
>> websockets and rosbridge.
>> I have done some work to use ROS from Amber here:
>> https://github.com/SergeStinckwich/rostalk
>>
>> You are than welcome to join us ;-)
>> Regards,
>> --
>> Serge Stinckwich
>> UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam
>> Every DSL ends up being Smalltalk
>> http://doesnotunderstand.org/
>>
>
>



--
Serge Stinckwich
UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam
Every DSL ends up being Smalltalk
http://doesnotunderstand.org/


Reply | Threaded
Open this post in threaded view
|

Re: FFI & Python

SergeStinckwich
On Thu, Sep 6, 2012 at 3:32 PM, Santiago Bragagnolo
<[hidden email]> wrote:
> Serge, i'm diving into all this stuff right now, prototyping things to lern
> about the architecture and have more info about how-to-reach our goal. I'm
> browsing your implementation and Noury's right now, so, probably today or
> maybe tomorrow i'll have questions and better ideas :).

Don't expect too much from my implementation ;-)

We can discuss latter by Skype or gtalk about the different alternatives.
I would like to help in order to have a working ROS implementation at the end.

Regards,
--
Serge Stinckwich
UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam
Every DSL ends up being Smalltalk
http://doesnotunderstand.org/

Reply | Threaded
Open this post in threaded view
|

Re: FFI & Python

S Krish
In reply to this post by philippeback
I have a fairly simple XMLRPC interface working.. but then that is no substitute to direct interface..

I like the simplicity of the python binding from Smalltalk..

On Thu, Sep 6, 2012 at 11:38 AM, [hidden email] <[hidden email]> wrote:
Can't you just get the current implementation run as a separate
process managing that main variable along with some web/TCP interface
and get that working through Zinc or OSProcess with a control script?

I am currently experimenting with CUDA (same kind of freaking
interfacing) and frankly, the quickest way to see some progress and
understand what's going on has been to use OSProcess to compile what I
need, ship the code to the card etc. No FFI etc. Just make a neat
little set of scripts.

FWIW, I also leverage Tcl quite often to wrap C stuff (Yeah, I love
homoiconic languages - ah, can't resist:
http://en.wikipedia.org/wiki/Homoiconicity). And also, SWIG may help a
lot for these endeavors. http://www.swig.org/

Also, Pharo can give HTTP-based access (lots of options here) for
controlling the other around. There seems to be some REST support
available and JSON parsing is around.

Of course, this doesn't answer the question...

Phil


2012/9/6 S Krish <[hidden email]>:
> Is there a source / person who could detail how the python binding is
> done...
>
> 1. To port this into Pharo
>
> 2. Port this design to bind Groovy to Pharo..
>
>
>
>
> On Thu, Sep 6, 2012 at 6:47 AM, Serge Stinckwich
> <[hidden email]> wrote:
>>
>> On Thu, Sep 6, 2012 at 5:58 AM, Santiago Bragagnolo
>> <[hidden email]> wrote:
>> > Hi all!
>>
>> Hi Santiago,
>>
>> >     I'm currently working in a project related with ROS (robot operative
>> > system), which already have a library to develop in C++ and other to do
>> > the
>> > same at Python. So, there a lot of variables to contrast to make a
>> > choice
>> > (performance, code-easy-to-prototype, flexibility, and a lot more), but
>> > the
>> > main variable is the accessibility from Pharo, then the question is, is
>> > there any project that use python from pharo? Or, if i select python i
>> > should write a library in C that bootstrap python and give access to
>> > pharo
>> > via FFI?
>> >
>> >    I looked in the list's mails and in google without any success.
>>
>> As Chris already told, there is a Python binding with OpenQwaq:
>>
>> https://squeakingalong.wordpress.com/2011/05/04/openqwaq-python-integration/
>>
>> I'm really interested to be able to use ROS from Pharo.
>> I start some weeks ago to work on a pure Smalltalk client for ROS:
>> http://ss3.gemstone.com/ss/RosSmalltalk.html
>>
>> Noury is also interested and start some work also:
>> http://car.mines-douai.fr/squeaksource/RoSt.html
>>
>> We planned with Noury to join our efforts to have a ROS client as soon
>> as possible.
>> Noury will also recruit a engineer to work full time on this.
>>
>> Another alternative in order to use ROS from Smalltalk is to use
>> websockets and rosbridge.
>> I have done some work to use ROS from Amber here:
>> https://github.com/SergeStinckwich/rostalk
>>
>> You are than welcome to join us ;-)
>> Regards,
>> --
>> Serge Stinckwich
>> UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam
>> Every DSL ends up being Smalltalk
>> http://doesnotunderstand.org/
>>
>


Reply | Threaded
Open this post in threaded view
|

Re: FFI & Python

philippeback
Wrap things up in an Objective-C thing and then use the ObjectiveC bridge to bring the object into Smalltalk space. Like Esteban did with the DefaultFileManager in the iPad VM.

Mac only obviously.

Phil

2012/9/6 S Krish <[hidden email]>
I have a fairly simple XMLRPC interface working.. but then that is no substitute to direct interface..

I like the simplicity of the python binding from Smalltalk..

On Thu, Sep 6, 2012 at 11:38 AM, [hidden email] <[hidden email]> wrote:
Can't you just get the current implementation run as a separate
process managing that main variable along with some web/TCP interface
and get that working through Zinc or OSProcess with a control script?

I am currently experimenting with CUDA (same kind of freaking
interfacing) and frankly, the quickest way to see some progress and
understand what's going on has been to use OSProcess to compile what I
need, ship the code to the card etc. No FFI etc. Just make a neat
little set of scripts.

FWIW, I also leverage Tcl quite often to wrap C stuff (Yeah, I love
homoiconic languages - ah, can't resist:
http://en.wikipedia.org/wiki/Homoiconicity). And also, SWIG may help a
lot for these endeavors. http://www.swig.org/

Also, Pharo can give HTTP-based access (lots of options here) for
controlling the other around. There seems to be some REST support
available and JSON parsing is around.

Of course, this doesn't answer the question...

Phil


2012/9/6 S Krish <[hidden email]>:
> Is there a source / person who could detail how the python binding is
> done...
>
> 1. To port this into Pharo
>
> 2. Port this design to bind Groovy to Pharo..
>
>
>
>
> On Thu, Sep 6, 2012 at 6:47 AM, Serge Stinckwich
> <[hidden email]> wrote:
>>
>> On Thu, Sep 6, 2012 at 5:58 AM, Santiago Bragagnolo
>> <[hidden email]> wrote:
>> > Hi all!
>>
>> Hi Santiago,
>>
>> >     I'm currently working in a project related with ROS (robot operative
>> > system), which already have a library to develop in C++ and other to do
>> > the
>> > same at Python. So, there a lot of variables to contrast to make a
>> > choice
>> > (performance, code-easy-to-prototype, flexibility, and a lot more), but
>> > the
>> > main variable is the accessibility from Pharo, then the question is, is
>> > there any project that use python from pharo? Or, if i select python i
>> > should write a library in C that bootstrap python and give access to
>> > pharo
>> > via FFI?
>> >
>> >    I looked in the list's mails and in google without any success.
>>
>> As Chris already told, there is a Python binding with OpenQwaq:
>>
>> https://squeakingalong.wordpress.com/2011/05/04/openqwaq-python-integration/
>>
>> I'm really interested to be able to use ROS from Pharo.
>> I start some weeks ago to work on a pure Smalltalk client for ROS:
>> http://ss3.gemstone.com/ss/RosSmalltalk.html
>>
>> Noury is also interested and start some work also:
>> http://car.mines-douai.fr/squeaksource/RoSt.html
>>
>> We planned with Noury to join our efforts to have a ROS client as soon
>> as possible.
>> Noury will also recruit a engineer to work full time on this.
>>
>> Another alternative in order to use ROS from Smalltalk is to use
>> websockets and rosbridge.
>> I have done some work to use ROS from Amber here:
>> https://github.com/SergeStinckwich/rostalk
>>
>> You are than welcome to join us ;-)
>> Regards,
>> --
>> Serge Stinckwich
>> UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam
>> Every DSL ends up being Smalltalk
>> http://doesnotunderstand.org/
>>
>



Reply | Threaded
Open this post in threaded view
|

Re: FFI & Python

Igor Stasenko
In reply to this post by Santiago Bragagnolo
On 6 September 2012 00:58, Santiago Bragagnolo
<[hidden email]> wrote:

> Hi all!
>
>     I'm currently working in a project related with ROS (robot operative
> system), which already have a library to develop in C++ and other to do the
> same at Python. So, there a lot of variables to contrast to make a choice
> (performance, code-easy-to-prototype, flexibility, and a lot more), but the
> main variable is the accessibility from Pharo, then the question is, is
> there any project that use python from pharo? Or, if i select python i
> should write a library in C that bootstrap python and give access to pharo
> via FFI?
>

C++ or C?
If it C you can use FFI to speak with.

>    I looked in the list's mails and in google without any success.
>
>    Thanks in advance!
>
>    Santiago.
>



--
Best regards,
Igor Stasenko.