xamarin-macios/Versions-mac.plist.in

60 строки
1.7 KiB
Plaintext
Исходник Обычный вид История

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>MonoVersion</key>
<string>@MONO_VERSION@</string>
<key>KnownVersions</key>
<dict>
<key>macOS</key>
<array>
<string>10.7</string>
<string>10.8</string>
<string>10.9</string>
<string>10.10</string>
<string>10.11</string>
<string>10.12</string>
<string>10.13</string>
</array>
</dict>
<key>RecommendedXcodeVersion</key>
<string>@XCODE_VERSION@</string>
<key>MinExtensionVersion</key>
<dict>
<key>macOS</key>
<dict>
<key>com.apple.FinderSync</key>
<string>10.10</string>
<key>com.apple.share-services</key>
<string>10.10</string>
<key>com.apple.widget-extension</key>
<string>10.10</string>
<key>com.apple.networkextension.packet-tunnel</key>
<string>10.11</string>
</dict>
</dict>
<key>Features</key>
<array>
<string>http-client-handlers</string>
<string>mono-symbol-archive</string>
<string>sgen-concurrent-gc</string>
<string>link-platform</string>
<string>hybrid-aot</string>
</array>
[mtouch/mmp] Give users more control over optimizations, and share more code between mtouch and mmp. (#3242) * [mtouch/mmp] Give users more control over optimizations, and share more code between mtouch and mmp. 1. Add an --optimize flag to mtouch/mmp that allows users to select which optimizations to apply (or not). This makes it easier to add future optimizations, and allow users to disable any optimization that causes problems without having to disable many other features. 2. Share as much optimization code as possible between mtouch and mmp. This immediately gives a benefit to mmp, which has three new optimizations only mtouch had: NSObject.IsDirectBinding inlining, IntPtr.Size inlining and dead code elimination. This results in ~6kb of disk space saved for a linked Xamarin.Mac app: * link sdk: [Debug][1], [Release][2] * link all: [Debug][3], [Release][4] Testing also verifies that monotouchtest ([Debug][5], [Release][6]) has not changed size at all, which means that no default optimizations have changed inadvertedly. [1]: https://gist.github.com/rolfbjarne/6b731e3b5ca6170355662e6505c3d492#link-sdk-mac--debug [2]: https://gist.github.com/rolfbjarne/6b731e3b5ca6170355662e6505c3d492#link-sdk-mac--release [3]: https://gist.github.com/rolfbjarne/6b731e3b5ca6170355662e6505c3d492#link-all-mac--debug [4]: https://gist.github.com/rolfbjarne/6b731e3b5ca6170355662e6505c3d492#link-all-mac--release [5]: https://gist.github.com/rolfbjarne/6b731e3b5ca6170355662e6505c3d492#monotouchtest-iphonedebug64 [6]: https://gist.github.com/rolfbjarne/6b731e3b5ca6170355662e6505c3d492#monotouchtest-iphonerelease64 * [tools] Don't enable the IsDirectBinding optimization by default for Xamarin.Mac apps, it's not safe. * Fix whitespace issues. * [doc] Document optimizations. * Officially support optimizations by adding them to the Versions.plist. * [linker] Improve IntPtr.Size inliner + dead code eliminatior and add tests. * Properly handle operands for the ldc_i4_s instruction (they're sbyte). * Fix less-than condition to actually do a less-than comparison. * Make sure to look up the bitness in the Target, not the Application, since the Application's value will be incorrect when building fat apps (both Is32Build and Is64Build will be true). * Remove unnecessary checks for the IntPtr.Size inliner: this optimization does not depend on other instructions than the IntPtr.get_Size call, so remove the checks that verify surrounding instructions. This makes the IntPtr.Size inliner kick in in more scenarios (such as the new tests). * Add tests. * [tests] Add mmp tests for optimizations. * [tests] Fix XM optimization tests. * [tests] Fix test build error.
2018-01-23 13:33:48 +03:00
<key>Optimizations</key>
<dict>
<!-- The key is the value to be passed to mmp. The string is a very short description. Any IDE UI should also point to the documentation for the optimizations. -->
<key>inline-intptr-size</key>
<string>Inline IntPtr.Size</string>
<key>inline-runtime-arch</key>
<string>Inline Runtime.Arch</string>
<key>inline-isdirectbinding</key>
<string>Inline NSObject.IsDirectBinding</string>
<key>dead-code-elimination</key>
<string>Dead code elimination</string>
<key>remove-uithread-checks</key>
<string>Remove UI thread checks</string>
</dict>
</dict>
</plist>