CLRHack: unwind-protect and catch-throw

Handling of unwind-protect The CLRHack compiler maps Lisp unwind-protect semantics directly onto the Structured Exception Handling (SEH) infrastructure of the .NET Common Language Runtime (CLR). Specifically, it utilizes the try...finally construct provided by the Common Intermediate Language (CIL). Lisp semantics require that the cleanup forms in an unwind-protect block be executed regardless of…