61372a06ba
Some optimizations are not safe to apply when dynamically loading code at runtime. This is not possible when ahead-of-time (AOT) compilation is used, so those options were always enabled in the past. The interpreter is changing the situation so those optimizations are now disabled, when the interpreter is enabled. The disabled optimizations are: * 'remove-dynamic-registrar' when using the interpreter This avoid the following exception when unknown (at build time) code tries to register (at runtime) ``` Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> ObjCRuntime.RuntimeException: Can't register the class SubclassDemo.CustomView when the dynamic registrar has been linked away. ``` * 'inline-isdirectbinding' when using the interpreter This avoid crashing (at runtime) when types are subclasses by the interpreter (code unknown to `mtouch` at build time). * 'register-protocols' when the interpreter is enabled Dynamically loaded code can include protocols. When the optimization is enabled then they won't be registered and won't work as expected. Note: It is possible to re-enable the optimization(s), either one or all, if the interpreter is not used to dynamically load code at runtime. |
||
---|---|---|
.. | ||
apidiff | ||
bcl-test-importer | ||
common | ||
install-source | ||
linker | ||
mlaunch | ||
mmp | ||
mtouch | ||
siminstaller | ||
xibuild | ||
.gitignore | ||
Makefile | ||
compare-commits.sh | ||
diff-to-html |