calyx icon indicating copy to clipboard operation
calyx copied to clipboard

Run CIRCT Integration Tests in CI

Open andrewb1999 opened this issue 2 years ago • 7 comments
trafficstars

We should work towards including the CIRCT frontend flow in CI for integration testing. This way we can know what changes to Calyx may affect the CIRCT frontend and also give us much more confidence in the quality of the CIRCT frontend. This will especially be useful since it will be much easier to create integration test cases than the CIRCT FileCheck test cases.

andrewb1999 avatar Jul 16 '23 19:07 andrewb1999

Heck yes! This is something we should definitely invest time in. The first step is figuring out if there a pre-built CIRCT/AMC docker we can pull in. If not, we can try setting it up using Depot which is what we use for the Calyx docker files.

Once we have that, other things should be pretty straightforward!

rachitnigam avatar Jul 16 '23 21:07 rachitnigam

Good point about pulling in a pre-built Docker thing; that would make things a lot easier! Barring that, setting up this kind of testing as a nightly workflow (as opposed to the standard GitHub Actions "on every commit to master and every pull request") action could help cope with how slow it will be to build the CIRCT stuff from scratch.

sampsyo avatar Jul 17 '23 18:07 sampsyo

Yeah this definitely seems like something that should be run nightly. I'm not sure there's anywhere that builds docker images for CIRCT with any regularity. Running nightly on the current heads of both CIRCT and Calyx seems like it would work out fine.

andrewb1999 avatar Jul 19 '23 15:07 andrewb1999

@andrewb1999 since we've punted on the deadline, let's figure out how we can get this working sooner rather than later

rachitnigam avatar Aug 11 '23 07:08 rachitnigam

CIRCT binaries are now available as release artifacts: https://github.com/llvm/circt/pull/5832.

EDIT: Sorry, that PR only uploads the static libs for the binaries. We might need to do some more work to enable building of hlstool binary or something.

rachitnigam avatar Aug 17 '23 11:08 rachitnigam

CIRCT binaries are now available as release artifacts: llvm/circt#5832.

EDIT: Sorry, that PR only uploads the static libs for the binaries. We might need to do some more work to enable building of hlstool binary or something.

No, that PR uploads all binaries for both libraries and executables, hlstool is also included.

circt-full-shared-libs-{os}-{arch}.tar.gz means circt-full (bin, lib, headers, also these for llvm) with CMake option BUILD_SHARED_LIBS enabled.

SpriteOvO avatar Aug 17 '23 14:08 SpriteOvO

Oh, awesome! I'm glad to be wrong about this then! We can go ahead and start adding CIRCT to the CI for Calyx now

rachitnigam avatar Aug 17 '23 14:08 rachitnigam