xamarin-macios/runtime
Rolf Bjarne Kvinge 1b72c009d2
[runtime] Add asserts that gives a helpful message when a managed delegate callback doesn't exist. (#8057)
This is restricted to debug builds.

Also tell make to not delete delegates.h and delegates.inc. That makes it much
easier to inspect them.

Example before function:

    void
    xamarin_throw_ns_exception (NSException * exc)
    {
    		delegates.throw_ns_exception (exc);
    }

The after version:

    void
    xamarin_throw_ns_exception (NSException * exc)
    {
    #if DEBUG
    	if (delegates.throw_ns_exception == NULL) {
    		NSLog (@PRODUCT ": The managed function throw_ns_exception could not be loaded.");
    		xamarin_assertion_message ("The managed function throw_ns_exception could not be loaded.");
    	}
    #endif
    	delegates.throw_ns_exception (exc);
    }
2020-03-06 16:42:21 +01:00
..
xamarin [mmp] Set 'disable_omit_fp' by default to provide better native stack traces in certain cases. (#7981) 2020-02-26 15:49:55 +01:00
.gitignore Implement notarization. (#6928) 2019-09-09 00:34:11 -07:00
COOP.md [coop runtime] add a GC transition and relax some GC related assertions (#7036) 2019-09-23 22:08:25 +02:00
Delegates.cs.t4 [runtime] Mark managed callback functions if they're only used in the dynamic registrar. 2018-02-15 10:18:32 +01:00
EXCEPTIONS.md [runtime] Improve documentation about exceptions a little bit. 2016-06-08 20:11:07 +02:00
Makefile [runtime] Add asserts that gives a helpful message when a managed delegate callback doesn't exist. (#8057) 2020-03-06 16:42:21 +01:00
README.md Initial review pass for COOP for watchOS. 2016-05-26 17:47:10 +02:00
Xamarin.framework-iphoneos.Info.plist [runtime] Split the build differently: build libraries for simulator and device separately. (#7143) 2019-10-03 16:38:44 +02:00
Xamarin.framework-iphonesimulator.Info.plist [runtime] Split the build differently: build libraries for simulator and device separately. (#7143) 2019-10-03 16:38:44 +02:00
Xamarin.framework-tvos.Info.plist Rename bundle identifier for the frameworks we ship. Fixes #6920. (#6926) 2019-09-06 09:30:49 -07:00
Xamarin.framework-tvsimulator.Info.plist [runtime] Split the build differently: build libraries for simulator and device separately. (#7143) 2019-10-03 16:38:44 +02:00
Xamarin.framework-watchos.Info.plist Rename bundle identifier for the frameworks we ship. Fixes #6920. (#6926) 2019-09-06 09:30:49 -07:00
Xamarin.framework-watchsimulator.Info.plist [runtime] Split the build differently: build libraries for simulator and device separately. (#7143) 2019-10-03 16:38:44 +02:00
bindings-generator.cs [runtime] Zeroize dummy member of structure in binding-generator (#7411) 2019-11-12 21:03:56 +01:00
bindings-generator.csproj Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
bindings.h [ModelIO] Implement new API introduced with Xcode 11 b1-7. (#6930) 2019-09-09 13:15:07 -07:00
bindings.m [Runtime] Enable the -Wshorten-64-to-32 flag and fix all warnings. (#7353) 2019-11-05 11:00:14 -05:00
delegates.h.t4 [runtime] Mark managed callback functions if they're only used in the dynamic registrar. 2018-02-15 10:18:32 +01:00
delegates.inc.t4 [runtime] Add asserts that gives a helpful message when a managed delegate callback doesn't exist. (#8057) 2020-03-06 16:42:21 +01:00
delegates.t4 [Runtime] Move some of the changes back to int. (#7529) 2019-12-11 22:17:29 -05:00
exports.t4 [runtime] Throw a OutOfMemoryException when processing parameters (#7308) 2019-10-25 15:49:22 -04:00
extension-main.m [runtime] Clean up public symbols. Fixes #5124. (#5155) 2018-11-21 11:48:15 -05:00
frameworks.h [registrar] Add support for the BindAs attribute. 2017-07-04 07:35:29 +02:00
launcher.h Build our runtime. 2016-04-24 14:47:24 -04:00
launcher.m [mmp] Set 'disable_omit_fp' by default to provide better native stack traces in certain cases. (#7981) 2020-02-26 15:49:55 +01:00
libmonotouch.csproj Remove zlib-helper from runtime/ 2019-02-05 01:46:02 +01:00
libxammac.csproj Set LangVersion in order to be able to build from an IDE (#7552) 2019-12-11 17:10:16 -05:00
main-internal.h [Mac] Add support for os x extensions (#83) 2016-05-25 17:20:33 -04:00
mono-runtime.h.t4 [Runtime] Enable the -Wsign-conversion warnings flag and fix some of the warnings. (#7405) 2019-11-12 15:10:16 -05:00
mono-runtime.m.t4 [runtime] Clean up public symbols. Fixes #5124. (#5155) 2018-11-21 11:48:15 -05:00
monotouch-debug.h [Runtime] Move some of the changes back to int. (#7529) 2019-12-11 22:17:29 -05:00
monotouch-debug.m [Runtime] Move some of the changes back to int. (#7529) 2019-12-11 22:17:29 -05:00
monotouch-main.m [Runtime] Move some of the changes back to int. (#7529) 2019-12-11 22:17:29 -05:00
monotouch-support.h [Runtime] Move some of the changes back to int. (#7529) 2019-12-11 22:17:29 -05:00
nsstring-localization.m Build our runtime. 2016-04-24 14:47:24 -04:00
product.h [runtime] Remove some classic (pre-unified) code that is not used anymore. (#7341) 2019-10-30 20:54:30 -04:00
runtime-generated.h.t4 [runtime] Mark managed callback functions if they're only used in the dynamic registrar. 2018-02-15 10:18:32 +01:00
runtime-internal.h [Runtime] Enable the -Wsign-conversion on runtime.m files. (#7474) 2019-11-21 09:42:17 -05:00
runtime.m [mmp] Set 'disable_omit_fp' by default to provide better native stack traces in certain cases. (#7981) 2020-02-26 15:49:55 +01:00
shared.h [runtime] Use newer atomic functions. (#7119) 2019-09-27 07:15:59 +02:00
shared.m [Runtime] Enable the -Wsign-conversion warnings flag and fix some of the warnings. (#7405) 2019-11-12 15:10:16 -05:00
slinked-list.h Build our runtime. 2016-04-24 14:47:24 -04:00
trampolines-arm64-asm.s [runtime] Implement support for an arm64 dynamic registrar. (#6005) 2019-05-07 07:35:39 +02:00
trampolines-arm64.h [runtime] Implement support for an arm64 dynamic registrar. (#6005) 2019-05-07 07:35:39 +02:00
trampolines-arm64.m [Runtime] Move some of the changes back to int. (#7529) 2019-12-11 22:17:29 -05:00
trampolines-i386-asm.s [runtime] Rename CallState to XamarinCallState to keep the public namespace cleaner. (#5940) 2019-04-23 16:53:35 +01:00
trampolines-i386-objc_msgSend-copyframe.inc [runtime] Don't store xmm registers where we store other registers. 2016-05-17 11:24:02 +02:00
trampolines-i386-objc_msgSend-post.inc [runtime] Make sure the stack is correctly aligned to 16 bytes. 2016-05-17 11:24:03 +02:00
trampolines-i386-objc_msgSend-pre.inc [runtime] Make sure the stack is correctly aligned to 16 bytes. 2016-05-17 11:24:03 +02:00
trampolines-i386-objc_msgSend.s Implement support for exception marshalling. 2016-05-17 11:23:48 +02:00
trampolines-i386-objc_msgSendSuper.s Implement support for exception marshalling. 2016-05-17 11:23:48 +02:00
trampolines-i386-objc_msgSendSuper_stret.s Implement support for exception marshalling. 2016-05-17 11:23:48 +02:00
trampolines-i386-objc_msgSend_stret.s Implement support for exception marshalling. 2016-05-17 11:23:48 +02:00
trampolines-i386.h [runtime] Rename CallState to XamarinCallState to keep the public namespace cleaner. (#5940) 2019-04-23 16:53:35 +01:00
trampolines-i386.m [runtime] Put LOGZ directive in a header to not duplicate it everywhere. (#6001) 2019-05-06 19:29:28 +02:00
trampolines-internal.h [Runtime] Move some of the changes back to int. (#7529) 2019-12-11 22:17:29 -05:00
trampolines-invoke.m [Runtime] Move some of the changes back to int. (#7529) 2019-12-11 22:17:29 -05:00
trampolines-varargs.h [runtime] Rename CallState to XamarinCallState to keep the public namespace cleaner. (#5940) 2019-04-23 16:53:35 +01:00
trampolines-varargs.m [Runtime] Enable the -Wsign-conversion on trampolines-varargs files. (#7428) 2019-11-14 14:35:27 -05:00
trampolines-x86_64-asm.s [runtime] Fix crash in the x86_64 dynamic registrar. (#5989) 2019-05-06 07:25:49 +02:00
trampolines-x86_64-objc_msgSend-copyframe.inc Implement support for exception marshalling. 2016-05-17 11:23:48 +02:00
trampolines-x86_64-objc_msgSend-post.inc Implement support for exception marshalling. 2016-05-17 11:23:48 +02:00
trampolines-x86_64-objc_msgSend-pre.inc Implement support for exception marshalling. 2016-05-17 11:23:48 +02:00
trampolines-x86_64-objc_msgSend.s Implement support for exception marshalling. 2016-05-17 11:23:48 +02:00
trampolines-x86_64-objc_msgSendSuper.s Implement support for exception marshalling. 2016-05-17 11:23:48 +02:00
trampolines-x86_64-objc_msgSendSuper_stret.s Implement support for exception marshalling. 2016-05-17 11:23:48 +02:00
trampolines-x86_64-objc_msgSend_stret.s Implement support for exception marshalling. 2016-05-17 11:23:48 +02:00
trampolines-x86_64.h [runtime] Fix crash in the x86_64 dynamic registrar. (#5989) 2019-05-06 07:25:49 +02:00
trampolines-x86_64.m [Runtime] Enable the -Wsign-conversion on trampolines-x86_64.m files. (#7455) 2019-11-15 14:34:36 -05:00
trampolines.m [Runtime] Move some of the changes back to int. (#7529) 2019-12-11 22:17:29 -05:00
xamarin-support.m [Runtime] Move some of the changes back to int. (#7529) 2019-12-11 22:17:29 -05:00

README.md

Native runtime

This directory contains the native runtime for Xamarin.iOS and Xamarin.Mac.

Cooperative GC

See COOP.md

Generated code

A few files are generated automatically:

delegates.h|inc, Delegates.cs

These files contain the code required to glue the native runtime and the managed runtime.

mono-runtime.m, xamarin/mono-runtime.h

These files contain code that makes other code, consumers of the mono runtime, oblivious to whether the mono runtime is linked statically, dynamically, or using dlopen at runtime.

If you need to use a new function from the Mono headers, add it to exports.t4.

If you need a new enum / constant / typedef / etc, add it to mono-runtime.h.t4.

Shipped headers

These are the headers shipped with XI/XM (they're not for public consumption, but we need them to build generated code on customers machine, in particular main.m and registrar.m)

xamarin/runtime.h xamarin/trampolines.h xamarin/main.h xamarin/xamarin.h