Граф коммитов

2752 Коммитов

Автор SHA1 Сообщение Дата
Rolf Bjarne Kvinge 492d1c9c2f [ObjCRuntime] Remove Class.RegisterMethods, it's XI/Classic only, which is dead. (#2286)
This allows us to remove a bunch of other code, which was useless and not
needed anymore, but still executed.
2017-07-04 07:29:36 +02:00
Rolf Bjarne Kvinge f610917d4e [generator] Exclude pdb files from the diff. (#2287) 2017-07-04 07:29:17 +02:00
Rolf Bjarne Kvinge 6ce702798f [generator] Fix a few BindAs typos. (#2284)
Generator diff (no change): https://gist.github.com/rolfbjarne/02444b88124a0fda857f10745f6ffc40
2017-07-03 18:19:32 +02:00
Jeffrey Stedfast 6351aef095 [msbuild] Don't define __IOS__ for tvOS binding projects (#2274)
* [msbuild] Don't define __IOS__ for tvOS binding projects

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=57764

* minor fixups

* Conditional compilation.
2017-06-30 12:35:48 -04:00
Andy Martin 340963fd96 [uikit] renamed tableview to tableView to follow naming convention (#2247)
* renamed tableview to tableView to follow naming convention

* added requested changes from dalexsoto
2017-06-28 20:15:08 -04:00
Rolf Bjarne Kvinge 2448108976 [monotouch-test] Allow more values for MACaptionAppearanceGetDisplayType.
On at least one of my devices I get MACaptionAppearanceDisplayType.AlwaysOn,
while the locale is 'en'.

So just allow all valid enum values for the return type.
2017-06-28 12:31:25 -05:00
Rolf Bjarne Kvinge 22a01fd6f8 [mtouch] Check for __Internal P/Invokes after processing P/Invokes for exception marshaling. Fixes #57833. (#2261)
When we process P/Invokes to add support for exception marshaling, we may
change P/Invokes to be __Internal. This means that we need to move the check
for __Internal P/Invokes to after processing P/Invokes for exception
marshaling.

https://bugzilla.xamarin.com/show_bug.cgi?id=57833
2017-06-28 17:09:15 +02:00
Rolf Bjarne Kvinge 2fa55d410d [mtouch] If a P/Invoke is used by any assembly that looks up the native symbol using dlsym, it's a required symbol. Fixes #57826. (#2260)
Previously the assumption was that if an assembly not using dlsym references a
native symbol, it's not a required symbol. This is true as far as the native
linker goes: the native linker will see that the native symbol is referenced
by the AOT-compiled code, and it won't be removed.

However, we use also this exact logic to create the list of functions we ask
the native strip command to preserve, and in this case we need to include all
symbols needed in all assemblies that looks up native functions using dlsym.

https://bugzilla.xamarin.com/show_bug.cgi?id=57826
2017-06-28 16:26:26 +02:00
Rolf Bjarne Kvinge 1d7d414795 [common] Fix StringUtils.Quote to quote backslashes too. Fixes #57768. (#2248)
Some Quote implementations quoted backslashes, some didn't. When selecting a
common implementation, one of the implementations that didn't quote
backslashes won, and the rest were forgotten. Almost. Except for the MT0106
test, which started failing, thus exposing the winner's deficiencies.

So dethrone the implementation that won and reinstante the importance of the
backslash.

https://bugzilla.xamarin.com/show_bug.cgi?id=57768
2017-06-28 14:45:53 +02:00
Rolf Bjarne Kvinge b4d695a4fa [monotouch-test] Make sure we don't strip symbols in any configuration. Fixes #57811. (#2259)
https://bugzilla.xamarin.com/show_bug.cgi?id=57811
2017-06-28 14:34:26 +02:00
Bernhard Urban 15c9275b43 [runtime] set mono_set_crash_chaining (#2184)
it was introduced a while ago for Xamarin-Android:

8ffc4070a9

8d7cc2b800/src/monodroid/jni/monodroid-glue.c (L2840)

it potentially helps to get even better crash reports.
2017-06-27 17:40:30 -04:00
Alex Soto 8c55dd888a Complete support for [BindAs] (#2220)
* [registrar] BindAs uses Nullable types so allow them to be registered as NSObjects

BindAsAttribute allows to bind NSValue and NSNumber into more
accurate C# types lyke bool?, int? etc. so we must teach registrar
about this.

* [tests][introspection] Teach intro about BindAs and Nullable types

Introspection will currently fail if BindAs is used, introspection
will report that the incorrect type is registered so we need to skip
this check if Nullable type is found in the signature

* [introspection] Add better type checking instead of totally skipping the type when Nullable type is encountered

Introspection will currently fail if BindAs is used. Introspection
will report that the incorrect type is registered so we need verify
if a Nullable type is found in the signature and check against of
a withelist of BindAs supported types

* Revert "[registrar] BindAs uses Nullable types so allow them to be registered as NSObjects"

This reverts commit 911eab97b7.

* [tests] Add comment about where to find BindAs types
2017-06-26 10:56:10 -05:00
Alex Soto aa4797decd [tests] Fix bug 57699 - [iOS]InternalsTest failure (Linkall) tests on device (#2243)
Strip native debugging symbols should not be checked for debug builds
2017-06-22 17:04:40 -05:00
James Clancey e7a5dd2af1 MPNowPlayingInfo is available on iOS,MacOS, and TvOS (#2178)
* Added MPNowPlaying info to MacOS/TvOS
2017-06-22 09:33:09 -04:00
Rolf Bjarne Kvinge 1a2633ca1e [runtime] Fix random parallel build error. (#2237)
Very occasionally this may happen:

    /bin/sh: /Users/builder/data/lanes/5024/08614af6/source/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/SDKs/MonoTouch.iphonesimulator.sdk/Frameworks/Xamarin-debug.framework/Info.plist: No such file or directory
    make[4]: *** [/Users/builder/data/lanes/5024/08614af6/source/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/SDKs/MonoTouch.iphonesimulator.sdk/Frameworks/Xamarin-debug.framework/Info.plist] Error 1

which is fixed by using the right dependencies for the Info.plist target.
2017-06-21 16:37:48 +02:00
Rolf Bjarne Kvinge fe217e641c [generator] Fix c&p error in type mapping for CMTimeMapping. (#2238) 2017-06-21 16:36:45 +02:00
Nick Berardi 22b3dadb5a NSActivityOptions.IdleDisplaySleepDisabled had wrong value (#2232)
This was due to an integer overflow.  The original value was based on Int32
1 << 40 == 256

The correct value should be based on a UInt64.
1UL << 40 == 1099511627776
2017-06-21 09:10:21 +02:00
Rolf Bjarne Kvinge 0a316951a3 Bump mono to get cecil fix for bug #56808. (#2221)
https://bugzilla.xamarin.com/show_bug.cgi?id=56808
2017-06-16 09:57:57 +02:00
Jeffrey Stedfast 5d6d244d04 [msbuild] Properly generate dSYMs for WatchKit2 appex's (#2215)
* [msbuild] Properly generate dSYMs for WatchKit2 appex's

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=56345

* dSYMs only get generated for iPhone

* Reverted accidental change to mono
2017-06-15 14:03:37 -04:00
Rolf Bjarne Kvinge 257de9c2c0 [mtouch] Normalize strings that refer to assemblies and their paths before comparing them. Fixes #57266. (#2217)
HFS normalizes filenames to Form D when files are stored. This means that an
assembly whose assembly name is stored in Form C might be stored in a file
whose filename is Form D (which you'll get if you use the Form C filename).

However, this is a problem when we've already loaded an assembly and if we
doesn't take normalization into account: we check the cache based on the
filename, but store in the cache based on the assembly name. If those two uses
different normalization schemes, bad things (bug #57266) happen.

So in these scenarios normalize strings before comparing them.

https://bugzilla.xamarin.com/show_bug.cgi?id=57266
2017-06-15 11:24:31 +02:00
Timothy Risi 43f5679323 [macos] Mmp should quote paths when passing arguments to clang. Fixes #56850 (#2140)
* [macos] Mmp should quote paths when passing arguments to clang.  Fixes #56850

* Use the merged Quote from stringutils

* Fix driver also

* Fix tests
2017-06-15 11:15:59 +02:00
Chris Hamons 9accdb3888 Framework tests were still binding non-linked Simple class which errors now (#2216)
- Improve Makefile to rebuild when projects build with errors
2017-06-14 08:33:18 -05:00
Jeffrey Stedfast f010926615 [msbuild] Use @(ReferencePath) instead of @(ResolvedFiles) (#2188)
This allows things to work on both xbuild and msbuild.

In xbuild, both lists are exactly the same and on msbuild,
only @(ReferencePath) exists.

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=55147
2017-06-12 13:29:45 -05:00
Rolf Bjarne Kvinge 10fafc184f [monotouch-test] Adjust the ObjCRuntime.ExceptionsTest to work when a debugger is attached. (#2197) 2017-06-09 23:21:31 -07:00
Alex Soto 0770e24c75 [test][introspection] Enable MtouchNoSymbolStrip for device builds in order to avoid linking symbols meeded by test (#2196)
Rolf Kvinge [8:59 AM]
@dalexsoto the fix is to not strip the executable please PR that
(it should probably go into master as well). This probably started
happening when Jeff implemented support for stripping debug builds
(previously the setting was ignored)
2017-06-09 14:48:31 -07:00
Jeffrey Stedfast 2f4e81809c [msbuild] Re-added wildcard (*) expandsion for application-identifier… (#2182)
* [msbuild] Re-added wildcard (*) expandsion for application-identifier in Entitlements.plist

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=57119

* Fixed unit tests
2017-06-08 14:01:22 -04:00
Timothy Risi 25468bf617 Merge Quote methods into a single class instead of multiple versions (#2153) 2017-06-06 12:32:25 -08:00
Andy Martin ba8eabcc9f bumped the max version of visual studio for mac (#2173)
* bumped the max version of visual studio for mac

* changed max visual studio version to 7.1.99
2017-06-05 19:49:04 -04:00
Miguel de Icaza 542642b916 [AppKit] NullAllowed on NSFontDescriptor ctor 2017-06-05 17:20:55 -04:00
Rolf Bjarne Kvinge c8bd5e3cff [Foundation] Set 'sentRequest' when sending a request in NSUrlSessionHandler. (#1806)
* [Foundation] Set 'sentRequest' when sending a request in NSUrlSessionHandler.

Fixes this compiler warning:

> [..]/external/mono/mcs/class/System.Net.Http/HttpClientEx.cs(50,8): warning CS0649: Field `Foundation.NSUrlSessionHandler.sentRequest' is never assigned to, and will always have its default value `false'

However it changes the runtime behavior, and we'll now throw an exception in
cases that we accepted before:

* `sentRequest` is only read in `EnsureModifiability ()`, which throws an
  exception if `sentRequest` is true.
* Previously `sentRequest` was never set (thus the compiler warning), which
  meant `EnsureModifiability` would never throw an exception.
* Looking at the similar `CFNetworkHandler` (which has the identical field and
  methods), it seems that the intended behavior is to set `sentRequest` in
  `SendAsync`, and then `EnsureModifiability` is called whenever a property is
  set to ensure the property isn't set too late (and any change would be
  ignored because the request was already sent).
* This means that previously setting any property after the request was sent
  would not throw any exceptions (even though the change would be ignored),
  while with this change we'd start throwing exceptions.

* Add missing tests for the setRequest var.

* Redesign tests to make sure that all handlers run the same code.

* Fix failing test.

* Add the managed handler to the HttpClient tests.

* Fix minor style issues.
2017-06-05 09:21:28 -04:00
Andy Martin 86b1fd2db5 fixes a null reference exception that can be caused during compile time related to bug 57214 (#2172) 2017-06-04 18:40:28 -04:00
Chris Hamons e09fe4b83f Bump master package versions (#2170) 2017-06-03 10:30:06 -04:00
Chris Hamons 56e36921dd Bump mono (#2168) 2017-06-02 18:32:10 +02:00
Rolf Bjarne Kvinge bc75388fbc [generator] Improve error reporting for api definition that uses the deprecated availability attributes. Fixes #57070. (#2166)
https://bugzilla.xamarin.com/show_bug.cgi?id=57070
2017-06-02 18:31:10 +02:00
Chris Hamons c4228b72f2 Fix stale .gitmodules reference on mono branch (#2167) 2017-06-02 18:30:55 +02:00
Rolf Bjarne Kvinge d17cb6556a [mtouch] Improve how we make sure native symbols aren't stripped away. Fixes #51710 and #54417. (#2162)
* [mtouch] Improve how we make sure native symbols aren't stripped away. Fixes #51710 and #54417.

* Refactor required symbol collection to store more information about each
  symbol (field, function, Objective-C class), and in general make the code
  more straight forward.
* Implement support for generating source code that references these symbols,
  and do this whenever we can't ask the native linker to keep these symbols
  (when using bitcode). Additionally make it possible to do this manually, so
  that the source code can be generated for non-bitcode platforms too (which
  is useful if the number of symbols is enormous, in which case we might
  surpass the maximum command-line length).
* Also make it possible to completely ignore native symbols, or ignore them on
  a per-symbol basis. This provides a fallback for users if we get something
  right and we try to preserve something that shouldn't be preserved (for
  instance if it doesn't exist), and the user ends up with unfixable linker
  errors.
* Don't collect Objective-C classes unless they're in an assembly with
  LinkWith attributes. We don't need to preserve Objective-C classes in any
  other circumstances.
* Implement everything for both Xamarin.iOS and Xamarin.Mac, and share the
  code between them.
* Remove previous workaround for bug #51710, since it's no longer needed.
* Add tests.

https://bugzilla.xamarin.com/show_bug.cgi?id=54417
https://bugzilla.xamarin.com/show_bug.cgi?id=51710

* [mtouch] Make sure to only keep symbols from the current app when code sharing.

This fixes a build problem with the interdependent-binding-projects test when
testing in Today Extension mode.
2017-06-02 18:29:19 +02:00
Rolf Bjarne Kvinge bc065debe9 Create and ship .dSYMs for our dylibs and frameworks. (#2155)
We already create dSYMs for Mono.framework when apps are built, but this will
now become redundant and removed at a later stage. This will make app builds
slightly faster (yay) at the cost of a somewhat bigger XI package (and our
build will be equivalently slower).

We never created dSYMs for libmonosgen-2.0.dylib, which means that anybody
symbolicating crash reports will now get file name and line number information
in stack traces (it also makes debugging using lldb possible).
2017-06-02 17:25:53 +02:00
Jeffrey Stedfast 34cca2e276 [msbuild] Strip debug symbols even if MtouchDebug is true (#2160)
* [msbuild] Strip debug symbols even if MtouchDebug is true

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=57063

* Strip frameworks as well
2017-06-02 11:00:11 -04:00
Rolf Bjarne Kvinge 1fb67779f8 [registrar] Detect more invalid characters in selectors so that we can report better errors. Fixes #55568. (#2154)
* [registrar] Detect more invalid characters in selectors so that we can report better errors. Fixes #55568.

https://bugzilla.xamarin.com/show_bug.cgi?id=55568

* [mtouch] Add a few comments about duplicated data between mtouch and tests.
2017-06-02 16:37:26 +02:00
Rolf Bjarne Kvinge 91781a66a1 [generator] Simplify code a little bit. (#2165)
Simplify code a little bit by having a single variable that says whether we're
compiling third-party code or not.
2017-06-02 16:30:52 +02:00
Rolf Bjarne Kvinge 1189a5b94c [mtouch] Set the force flag again when the cache is invalid. Fixes #54973. (#2163)
In 11390f119c we stopped setting the force flag
when the cache was invalid, because we'd delete the cache anyway, and it was
determined that deleting the cache was enough.

Unfortunately it's not, because some output is not in the cache, and might not
get correctly updated.

Scenario:

* User builds app.
* User changes some build option (for instance switching off incremental
  builds).
* User does an insignificant change in a source file for the executable
  process.
* User builds app again (without cleaning). This will rebuild the exe, but
  since the change was insignificant, all the IL, except the MVID, would
  remain identical.
* mtouch would see that the command-line options changed, and invalidate the
  cache. This would delete the cache, and everything would be rebuilt,
  including AOT-compiling the assemblies again.
* When the time came for mtouch to copy assemblies to the app directory,
  mtouch would realize that the existing .exe in the app (which was not
  deleted because it's not in the cache, but the actual output directory) was
  only insignificantly different (only the MVID was different, which our cache
  logic knows to ignore when comparing assemblies), so it wouldn't copy the
  .exe to the .app.
* At runtime we'd assert, because the MVID in the aot-compiled code was
  different from the MVID in the assembly:

      error: Failed to load AOT module '(null)' while running in aot-only mode: doesn't match assembly.

* The exact assert varies depending on which build option changed. Other
  variations:

      Failed to load AOT module '(null)' while running in aot-only mode: compiled against GC (4, while the current runtime uses GC sgen)

      * Assertion at /Users/builder/data/lanes/4691/0719ced1/source/xamarin-macios/external/mono/mono/metadata/metadata.c:1118, condition `idx < t->rows' not met

Because of this I'm reverting 11390f119c, and
once again setting the force flag when the cache is invalid. It might be
overkill, but it's the safest option (cache invalidation is after all the only
hard problem in computer science), and bugs are very annoying and
timeconsuming to track down.

https://bugzilla.xamarin.com/show_bug.cgi?id=54973
2017-06-02 15:23:30 +02:00
Rolf Bjarne Kvinge 241b6e68dc Bump maccore/maciostools and Xamarin.MacDev to line up with other products for the 15.3 release. (#2164) 2017-06-02 12:26:37 +02:00
Chris Hamons bd0799e6d3 Bump mono (#2161) 2017-06-02 09:19:34 +02:00
Marius Ungureanu 51cda3b468 [Mac,iOS] Generate create_classes as C methods so they can be used from objc. (#2158)
This change introduces the export of create_classes methods as objc compatible, without enforcing Objective-C++ as the development language for custom registrar embedders by moving the stringbuilder flushing inside the extern "C" block.
Mark the generated linking code as extern "C" too and also change the return type of xamarin_create_classes_Xamarin_Mac to void in mmp generation, as it was mistakenly set to int.
2017-06-02 09:19:04 +02:00
Chris Hamons d4e11db773 Bump mono (#2159) 2017-06-01 15:21:23 -05:00
Rolf Bjarne Kvinge f6599c4437 [tests] Reuse some code between mtouch rebuild tests and improve the output. (#2157)
* [tests] Print mtouch output if verbose output was requested, even if mtouch succeeded.

* [tests] Reuse some code between mtouch rebuild tests.
2017-06-01 17:28:56 +02:00
Jeffrey Stedfast 36d5bc3271 [msbuild] Remove the dSYMs dir when re-cloning the *.appex so it triggers a new strip (#2152)
Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=56483
2017-06-01 17:25:53 +02:00
Rolf Bjarne Kvinge 31df2f4316 [mtouch] Handle non-ascii characters when converting assembly to bitcode assembly. Fixes #56876. (#2141)
When converting strings to a sequence of bytes, we can't just cast chars to
ints, and write that, because non-ascii characters will resulting values
outside the byte range.

Instead explicitly convert the string to a UTF8 byte array, and process that.

https://bugzilla.xamarin.com/show_bug.cgi?id=56876
2017-06-01 17:24:39 +02:00
Rolf Bjarne Kvinge 25e6a93976 [tests] Simplify the MT4164 test a bit. (#2151)
* [tests] Add support to mtouch tests for comparing file name & line number of error/warning messages.

* [tests] Simplify the MT4164 test a bit.
2017-06-01 01:10:36 +02:00
Rolf Bjarne Kvinge c199c9f2c2 [mtouch] Show a nice error (MT4168) if the user registers a managed class with an Objective-C keyword. Fixes #51776. (#2150)
Previously:

    obj/iPhone/Ad-Hoc/mtouch-cache/64/registrar.m:4402:12: error: expected identifier
    @interface register : UITableViewController {
    ^
    obj/iPhone/Ad-Hoc/mtouch-cache/64/registrar.m:4402:21: error: expected unqualified-id
    @interface register : UITableViewController {

    error : Failed to compile the generated registrar code. Please file a bug report at http://bugzilla.xamarin.com

Now:

    error MT4168: Cannot register the type 'register' because its Objective-C name 'register' is an Objective-C keyword. Please use a different name.

https://bugzilla.xamarin.com/show_bug.cgi?id=51776
2017-05-31 19:07:02 +02:00