SL# and Mono

It turned out that SL# 1.4 did not run on Mono as we had expected. Due to a bug in Mono’s CancellationToken that caused a new instance to be canceled by default, ICSharpCode.Decompiler didn’t actually decompile methods. This issue was seen in both Mono 2.8 and 2.10.1. A bug has been filed, and we worked around the issue for now.

Another bug we encountered (which is only relevant for SL# master) was invalid IL generation, which has also been fixed. Curiously, Microsoft’s CLR actually executed the IL correctly, even though the local variable had an incompatible type… Mono was much more helpful here, in that it threw an InvalidProgramException. As said, the latter issue is only relevant for master, not 1.4.

We might release a 1.4.1 package of SL# in a few days that addresses the first issue. If you don’t want to wait, grab this commit and apply the CancellationToken workaround.

Edit: Oh, and this seems to be my 100th blog post! Yay!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s