I am looking to try to use the AIR as a transpiler source for Boogie, a verification tool (static assertions) by Microsoft. My method is to make a couple of ghost functions (no body) that will be inlined when actually run, but then have the option to print the AIR as Boogie code and use the ghost functions as assertions.
Help
I have added the ability invoke my print_boogie.zig function (by basically imitating all uses of verbose-air) but each modification to the function requires me to fully recompile Zig which takes 5-10 minutes. I know there has been some work on incremental compilation. How stable is that? Additionally, would it work when building the compiler?
regarding compilation speed, the custom x86_64 backend is almost ready, it will likely be enabled by default in 0.14.1 or 0.15.0. However, you can use it with -fno-llvm or .use-llvm = false.
the custom backend is very fast but is meant for debug builds. afaik it implements everything needed to build the self hosted compiler but i could be wrong
Regarding incremental compilation, also pretty close but not as close to being done, its expected to be in 0.15.0.
You can use it with -fincremental and it works okish, works better with --watch.
once incremental is done it wont be long before hotreloading is implemented.
Could you provide some more details on how to do this. I am building from source according to the instructions for MacOS. I have tried hard coding use_llvm=false, but it keeps crashing
Without knowing what error you’re getting, all I can say is
if you are getting a compiler error that you don’t get when using LLVM, it probably means the backend doesn’t implement a feature that’s needed to build the code.