Beyond Python

The challenge framework has been developed to facilitate the development of python-based submissions. It is however possible to develop submissions using other languages.

We suggest two main solutions for this.

  • Python C extensions. If want to use native code that can interface with C, you can probably turn it into a python module using CPython's C API.
  • Subprocess calls. It might be easier to make your actual implementation as a standalone script or binary that can be called as a subprocess from quick_eval.py.

Otherwise, you can use any other technique that works! What matters is that the final apptainer-based test of Submission succeeds.

Be sure to include all required installation steps in setup/setup.sh.

For native code, you can either:

  • Build it in setup/setup.sh: this is the most portable option, but requires to install the full compilation toolchain in the container.
  • Include the binary in the submission package. This might be easier, but be careful about native dependencies (or instruction sets -- the evaluation server has a AVX2-generation x86 CPU). We use this solution for the simulation library in the demo submission, as installing verilator would make the container setup very annoying.