I was wondering if anyone has experience with the development of utility tools for a main code written in another language (e.g. C). Several activities around such code would require some kind of scripting (configuring, making, testing, input file generation and modification, output file analysis and visualisation…) which can be addressed with usual tools/languages (bash/make/cmake, perl, python, matlab).
Would anyone have some hints, dedicated packages, or examples of how such activities could be handled in Julia?
thanks for the examples. Yes, my question was indeed not clear
Together with some colleagues we are preparing a suite of tests for a C code. This involves automatically compiling the code and running different families of tests (compiling, going through valgrind, omp parallel scaling, running various tests with different input options and checking the results stored in the hdf5 outputs, create a pdf report with figures).
So far, I only have experience with computing using Julia and not much with I/O, scripting, interfacing. So I just wonder whether it would better to do these operations with Julia scripts rather than, say, python scripts.
As a language julia is super nice for scripting. Julia has super intuitive and powerful tools for scripting in the Base library. In practice I often use python however:
python is preinstalled on most linux machines
other programmers are often more familiar with python than julia
It’s far more flexible to test (and use) the code if you compile your C code as a library, not as a standalone program. Then you can test and call individual functions interactively, and communications is way easier than doing I/O through files and command-line options.
Indeed that’s likely the best option (especially for unit testing). I was just refrained to do it as I thought making a library would render debugging symbols unusable. But yes, in the end that’s likely what we’ll end up doing.
I was wondering whether there would be a more “2020 way” of doing such things but in the end we use a C code so we may better stick to classical tooling (a lighter Julia version of the code has been initiated it but it’s far from being ready).