Pharo is used for robots you can find more info here

http://car.mines-douai.fr/category/pharos/

I am actually building now OpenCV on macos, the hard stuff is C. UFFI and
Pharo are a breeze but with C everything can go wrong and it will at some
point. Took me 30 minutes to find information on how to build on macos.

I complain about Pharo documentation but OpenCV is much worse , we have a
tiny community and still our documentation is tons better.

So I totally can feel you, documentation is a huge issue does not matter
what language you choose , its a struggle.

In popular language you can find a gazillion things about the basics and
popular stuff but as soon as you venture to specifics and more technical
things that are the ones that need documentation the most, then you meet
the hell of "no sorry no documentation about this, but you should be fine
reading the codes and (then non existent) comments".

But that is part of the fun of coding, overcoming these challenges and
enduring until the "Eureka" moment.

Unfortunately OpenCV fails to build for me on macos, I also see that it
takes advantage of CUDA which is great news for performance bad news for
building it because CUDA is huge and it can be quite tedious to build
because there are a ton of stuff to be aware of.

In any case the documentation I linked is what we use to learn about UFFI
this is how I learned to make a shared memory tool for manipulating C++
executable from Pharo.

It takes time and patience because in C the moment you do something bad
with the memory it crashes the executable (OS default behavior to protect
from misbehaving executables) , this means I crashes Pharo like a hundrend
time till I get pointers right (how C/C++ manipulates memory). The good
news is that unlike C , Pharo is prepared from such situations and will
never allow you to lose code but to be safe always use a version control
system and commit frequently because it will be a breeze to restore your
code after a crash to a pharo image this way.

We have specific tools for such situation , for example Epicea will open
after the crash and ask you if you want to restore code and is a great tool
but I find git more convenient for such situations.

So to summarize you need to build OpenCV for 32bits architecture and use
UFFI. 64bits may work too but you need specific Pharo VM and image. 32bit
should be more stable and should be enough because it will try to use the
GPU memory anyway which is faster than CPU memory.

I wish I could be more of a help but I do not want to spend a ton of time
on building a library that I won't use.

Reply via email to