5c321ac89d
This also centralize other interpreter checks and options in the same location (making it easier to read / update). * Warn and switch the REPL if the interpreter is enabled on simulator Why ? It's confusing to build the same code using different options for simulator and devices. This is what happens if you try to use features like `dynamic` or `System.Reflection.Emit`. So instead of an error, we warn that the interpreter is not supported and switch to the existing REPL mode. The JIT remains the only option for the simulator but it allows testing features without a device. * Fail early if the interpreter is used on 32bits [1] The current interpreter only works on 64 bits (so ARM64). However the error won't be reported, back to the developer, until deployment time. This temporary [1] fix spot the condition very early and report an error ``` error MT0099 : Internal error : The interpreter is currently only available for 64 bits. ``` instead of the current one at deploy time ``` IncorrectArchitecture: Failed to find matching arch for 32-bit Mach-O input file /private/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.tNKDlx/extracted/X.app/X error MT1006: Could not install the application 'X.app' on the device 'Mercure': AMDeviceSecureInstallApplicationBundle returned: 0xe8000087 (kAMDIncorrectArchitectureError). Application could not be uploaded to the device. ``` [1] https://github.com/mono/mono/issues/9871 * [tests] Fix/renumbered MT0138 The test was using simulator + interpreter which is not _really_ possible, we use REPL in that case - so we're now checking if assemblies were specified with `--interpreter` to cover both cases. Also 0138 was already used by `mmp` and the warning was **not** registered or documented in the errors documents. To avoid confusion it has been renumbered to 0142 and documented. |
||
---|---|---|
.. | ||
website | ||
bindas.md | ||
code-sharing-with-user-frameworks.md |