I want to make some layout changes for the transition to C++ code generation: to the repo and the distribution.
First, the layout of the code. I don’t want the C++ to live inside the JVM src tree, and I want Python, C++ and JVM languages to to be parallel (as well as any other future languages we embrace). So I propose:
hail/ - the monorepo hail/ - the hail project Makefile - top-level Makefile python/ - already exists cxx/ - for C/C++ src/ jvm/ - for JVM languages build.gradle src/ ...
So basically add
jvm, and move
cxx, and add a top-level Makefile to drive the compilation process.
Second, building the hail project should populate a directory with the distribution. That will look like:
distribution/ bin/ c++ - compiler include/ hail/ - hail include files ... - std, other incudes lib/ libhail.so - or in the jar? ... - std, other libs jars/ hail-all-spark.jar docs/ - and other stuff
The distribution will have to be present on the master, but not necessarily the workers. @dking how will this interact with the pip package? I assume we can just include this structure there?