I'm using mono 4.2 from the alpha channel.
I compile https://github.com/grokys/Perspex/ (commit 7b234aefb9a6bf3e734f0d7d37c0c4a53bb34e9e) in monodevelop, ignoring the projects that don't compile. Trying to run the TestApplication I get the following error:
steven@ubuntuvm:~/projects/Perspex/samples/TestApplication/bin/Debug$ mono TestApplication.exe
Can't find custom attr constructor image: /home/steven/projects/Perspex/samples/TestApplication/bin/Debug/ReactiveUI.dll mtoken: 0x0a000011
Unhandled loader error: 8, (null) PresentationFramework, Version=18.104.22.168, Culture=neutral, PublicKeyToken=31bf3856ad364e35 (null)
* Assertion: should not be reached at loader.c:297
at <unknown> <0xffffffff>
at TestApplication.Program.Main (string) <0x002a7>
at (wrapper runtime-invoke) <Module>.runtime_invoke_void_object (object,intptr,intptr,intptr) <0xffffffff>
Debug info from gdb:
Could not attach to process. If your uid matches the uid of the target
process, check the setting of /proc/sys/kernel/yama/ptrace_scope, or try
again as the root user. For more details, see /etc/sysctl.d/10-ptrace.conf
ptrace: Operation not permitted.
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
Aborted (core dumped)
This usually means a mismatch between assembly versions, i.e. the ReactiveUI.dll used at runtime doesn't match the version used to compile the app.
I don't think this is the case here - I'm not doing anything clever, the ReactiveUI.dll comes simply from a NuGet package.
I realise that ReactiveUI tries to reference PresentationFramework which doesn't exist on mono, and so wouldn't work anyway, but apart from this the fact that it's reporting "Assertion: should not be reached at loader.c:297" suggests to me that this is triggering a logic exception in mono.
This is a mono runtime bug caused by insufficient error handling.