Draft: Make a new "typecheck interface file" --- contains !2603
This patch aims takes a tab at #17843, namely making all modules write hi-tc
for sake of build parallelism. It begins a TTG-style refactor on the iface file syntax (building
off an earlier change @osa1 did for sake of post-codegen info) to better
enforce what exactly is expected to be in each file. This may seem like overkill, but I think locking down the datastructures like that will pay for itself as the rest of the refactor can be more type-driven and less prone to human error. [Certainly I feel I will take far more revisions to not screw this up if I don't.]
This is heavily WIP because I do not know all the ways I need to TTG-ify the iface syntax. I would appreciate if someone could offer some guidance!
Please take a few moments to verify that your commits fulfill the following:
-
are either individually buildable or squashed -
have commit messages which describe what they do (referring to Notes and tickets using #NNNN
syntax when appropriate) -
have added source comments describing your change. For larger changes you likely should add a Note and cross-reference it from the relevant places. -
add a testcase to the testsuite. -
replace this message with a description motivating your change
If you have any questions don't hesitate to open your merge request and inquire
in a comment. If your patch isn't quite done yet please do add prefix your MR
title with WIP:
.