Hi, I am looking for a python like language to interfacing with C++ modules written by others. May I know how well Nimrod interface with c++ (that is calling other c++ modules), i read in another thread that the interfacing with c++ is broken for version 0.9.2, but is fixed in the github source?
Also is this interfacing native in nature, or is there any performance hit comparing to c++ calling c++ modules?
It depends on how you do it. The "classic" way to interface with c++ is to wrap everything you need in a c style interface (using extern "C" {}) and then call that code using your languages foreign function interface. For dealing with c++ classes you need to emulate the memory layout and ABI of your compiler, which is pretty tricky. In addition you are likely to loose some performance due to lack of inlineing.
Nimrod has two other ways to construct this interface though. c2nim has a cpp option that can try and parse a c++ file and generate equivalent nimrod code. Trouble is that it does not work that well since it does not have a complete c++ parser (and never will, c++ is too hard to parse). The other option is a combination of the "emit" and "importcpp" pragmas. These tell the compiler to just "use this code" and then you can compile with nimrod cpp. This is probably the best option but does have some problems. I know that c++ templates are very hard to wrap, maybe someday importcpp will be able to import a c++ template as a nimrod generic but today it can not. Even if it could there are bugs with nimrod's generics that make them less powerful than c++'s templates.
tl;dr is that interop is /really/ hard and c++ is one of the hardest languages to interop with.