Hi Pepe,
Note that the new functionality is not really "new". Aside from a few
subtleties in:
http://basilisk.fr/src/slave.h#synchronization-functions
it has been doable since Basilisk started. It actually is one of the
fundamental design choices made when switching from Gerris to Basilisk.
It leverages the "UNIX philosophy" i.e. a system designed (in the
1960s...) so that different programs and programming languages can work
together.
Unfortunately many people do not understand this design well-enough,
probably also because of a lack of adequate education, in particular at
university level and in scientific disciplines not directly related to
computer science.
This is also why I dislike most "high-level scientific programming
languages" (e.g. python, julia etc.) because they very often break this
"collaborative computing framework" and/or make it unnecessarily obscure.
Note in particular that using the same object and linking techniques, it
should be easy to couple a Basilisk solver with another program written
in any other language e.g. fortran, C++, python, julia etc.
On the other hand, Python (and apparently Julia is even worse in this
respect) do not make it easy (or event possible) to compile/call a
program written in their own dialect from another language. Putting it
another way, these languages "do not play fair" by making it
(relatively) easy to import functions written in other languages (and in
particular the many scientific libraries already written in C) and
making it difficult (or even impossible) to export their own functions.
The resulting "babelization" of scientific computing is problematic.
cheers,
Stephane