I branched off of phil/cegis-refactor, and added a few modifications. @Phil, I think this is what you are after. Have a look. The main changes are these:
In your version, the exe info and patch ingestion were repeated. In this version, I've just moved that stuff into your init function in pipeline.ml so that it only happens once, before the CEGIS loop starts.
I added a get_raw_ir_exn to data.ml. You'll notice that in the Data module, all slots with an optional domain type have a get_*_exn accessor that triggers the proper monadic error, so that we don't have to sprinkle that exception handling throughout the modules (e.g., in compiler.ml).
I did a bunch of nits while I was in there, so you can ignore those changes. They're little style updates (mostly to code I wrote at an earlier date).
Phil:
I branched off of phil/cegis-refactor, and added a few modifications. @Phil, I think this is what you are after. Have a look. The main changes are these:
In your version, the exe info and patch ingestion were repeated. In this version, I've just moved that stuff into your
init
function in pipeline.ml so that it only happens once, before the CEGIS loop starts.I added a
get_raw_ir_exn
todata.ml
. You'll notice that in theData
module, all slots with an optional domain type have aget_*_exn
accessor that triggers the proper monadic error, so that we don't have to sprinkle that exception handling throughout the modules (e.g., incompiler.ml
).I did a bunch of nits while I was in there, so you can ignore those changes. They're little style updates (mostly to code I wrote at an earlier date).