freenode/#sicl - IRC Chatlog
Search
15:14:16
beach
So far, I have adapted MIR-to-LIR and code generation to the new way of finding ENTER-INSTRUCTIONs, which also removed the warnings that have been signaled recently when the boot procedure was loaded with ASDF.
15:15:17
beach
But, now, of course, MIR-to-LIR is not up to snuff, because the main task is to replace the (rather silly) way of introducing registers that is currently used by the new EDU-based technique.
15:18:02
beach
The good news is that I know what to do with the CATCH-INSTRUCTION. It will be treated as an instruction with a single successor, namely the first one. Other successors are not reached by normal control flow, and, as I pointed out the other day, all registers must be spilled at those other successors, at least in the general case of a non-local transfer of control.
2:05:59
Bike
i'm thinking of putting something into cleavir i've wanted for a while - making it so that if there's an unexpected error when running an essentially optional pass (e.g. optimization), the client can just skip that pass rather than ending up in the debugger or otherwise aborting the whole compilation
2:06:31
Bike
i can just throw in a bunch of with-simple-restart, and that works ok, but it won't work if the error is signaled in such a way that the compiler is in an inconsistent state
2:07:05
Bike
i can think of some fancy ways to deal with this... but it might not be worth it, since this is only particularly useful to deal with compiler bugs
2:07:21
Bike
but i'm not arrogant enough to think there won't be any bugs in the future, so i'll probably go for it
2:08:54
Bike
what i'm thinking is i can have a macro, with-inconsistency or something, and wrap it around those editing steps. it'll bind some internal dynamic variable to false. then, all the continue restarts have a :test function that makes the continue restart invisible if the variable is false