On 9 November 2016 at 08:41, Dimitris Chloupis <kilon.alios@gmail.com> wrote:
I am the only potential customer of CPPBridge because

a) I am the only C++ coder AFAIK
b) Using DLLs (dynamically linked shared libraries) is still by far the best solution because using the UFFI you can do everything from Pharo. Compared to CPPBridge which you will need to code in C++.��

So as you can imagine making a general library for IPC communication via shared memory is not my goal.

The Unreal part will be a separate library that will depend on this one. I have not touched that one yet but I will soon.

UnrealBridge library will become my most important Pharo project because the goal is to start selling games using Pharo and Unreal.��

IPC Protocol wise , I don't think synchronisation will be an issue because Unreal will be too fast for Pharo anyway and its ok if Pharo lags behind even a few dozens of milliseconds which is a matter of losing a couple of frames. I may implement a hybrid synchronisation for when Pharo lag becomes too severe but that will have and see in practice.

Something that interest me is "stealing" your idea for NBOpenGL where you made an automatic generator for the library that used OpenGL headers. This is something that could benefit me a lot because Unreal contains over 10.000 methods and wrapping them one by one is not something I am looking forward to doing. This means generating both C++ and Pharo code.


Well, a while before that, i wrote own lobotomized smalltalk implementation in C and started generating bindings to Ogre3D engine. I even had certain success with it, but then i started grand-rewriting of VM and abandoned it.
That was before i switched to Squeak, then Pharo. So, your incentives quite familiar to me :)
I was quite fun journey, and i learned a lot while doing it.. especially about smalltalk.��

Of course if I feel that what I implement with UnrealBridge is general purpose enough I can port it back to CPPBridge.��

In any case I must say it was a lot of fun accomplishing this goal and cant wait to dive deeper into IPC magic, making Pharo the nerve centre, the brain , of my coding environment is a role that I think Pharo would excel at. It will also allow me to use Pharo as much as possible and provide a super powerful game / graphics engine to the Pharo community. Shared memory is that just the means to that goal.��

Moose could also a play role later on for analysing my game code both in Pharo and C++ and use Roassal for some nifty visualizations though I could use Unreal as backend to Roassal for some nice 3d visualisations.��

So ton of ideas, tons of fun and a ton of time to accomplish them.

PS: I have to say you have been inspiration for my IPC saga, you did the unthinkable (at least to me) and brought Assembly to Pharo, I never had a use for Assembly but nonetheless you taught me that Pharo potential is more massive than I imagined, so thank you :) ��

I don't understand why people find assembly scary or mind-boggling? I dived into assembly few months after i learned my first programming language, it was Zilog 8-bit CPU. A marvelous gem :)��
And this was always fascinating to feel that you can control the computer's behaviour down to a tiniest detail. We were even researching what certain i/o ports and interrupts were responsible for by setting different bits/bytes here and there and see what happen.��
Because if you don't understand something down to the tiniest detail - you cannot be sure that what you doing will work, or work optimally.
So i find it frustrating that most of programmers don't know and not even thinking about touching assembly. Because it very simple, straightforward and megalomaniac-rewarding :)
--
Best regards,
Igor Stasenko.