El Capitan Beta 3, Mono and Elements

As some of you might already have noticed, Beta 3 of OS X 10.11 “El Capitan” shipped earlier this week, and it broke Mono. Generally speaking, Mono just does not work at all, and any attempt to run Mono executables just greets you with a message could not discover the mach TLS offset and then hangs.

I’ve already been talking with Miguel over at Xamarin, and this isn a known issue their team is very aware of and trying to fix ASAP, and it affects everyone, not just us and Elements.

However, it does affect Elements in a few ways that i want to outline.

To start with, both the Elements compiler and CrossBox currently don’t work on El Capitan Beta 3 at all. Fire, being a native app, will run, but is very limited (because its IDE smarts depend on Mono-hosted managed code), and off course won’t be able to compile projects because the compiler runs under Mono as well.

So if you rely on Elements (and if you are reading this, you probably do), whether you develop on your Mac, or just use it for CrossBox, i suggest to hold off from updating to Beta 3 for now.

Of course the Mono team is working on a fix for this, but that too comes with a caveat. Chances are, that fix will only be avail ankle for the latest Mono trunk, 4.0.

Mono 4 has dropped support for MSBuild 3.5, which the Elements compiler currently depends on. For the next release, Elements, 8.2, we have dropped the dependency for MSBuild 3.5, but this was not a light change and has backward compatibility issues for people hosting ASP.NET sites with Elements, which is why we decided to not make this change for the imminent Elements 8.1 update. This however means that the Elements 8.1 compiler and Fire 8.1 will probably never fully work on El Capitan (unless Apple rolls back then change that broke this), and that in order to work on El Capitan Beta 3 and later, you will need the Elements 8.2 beta we’ll be shipping soon. That is, of course, once Mono itself is fixed. (CrossBox 8.1 will be fine on Mono 4, and thus on El Capitan with a fixed Mono).

Native Cocoa apps you build with Elements are of course totally unaffected by this. Another reason to always go native, if you can!

Update: Good news, the mono guys have a fix for this in git, and i’ve just been able to get Fire to work ok with Elements 8.2 and a custom Mono 4 build off their master branch. The 8.2 Alpha we’ll be shipping later this week will have this new version of Mono (pending any unforeseen troubles in my further testing), so that version if Fire should work on El Capitan for you guys.

2 Likes

Update 2: Thuis should all be working with The July 17 preview of Fire and Elements 8.2