Hello community,

here is the log from the commit of package mono-core for openSUSE:Factory 
checked in at 2017-10-28 14:18:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mono-core (Old)
 and      /work/SRC/openSUSE:Factory/.mono-core.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "mono-core"

Sat Oct 28 14:18:55 2017 rev:113 rq:536289 version:5.4.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/mono-core/mono-core.changes      2017-10-02 
16:50:22.862583560 +0200
+++ /work/SRC/openSUSE:Factory/.mono-core.new/mono-core.changes 2017-10-28 
14:19:20.600687508 +0200
@@ -1,0 +2,112 @@
+Tue Oct 24 00:00:00 UTC 2017 - [email protected]
+
+- Add bug-59608.patch:
+  * Fix bxc#59608 - Attribute MethodImplOptions.AggressiveInlining causes 
method to always return NULL
+
+-------------------------------------------------------------------
+Fri Oct 20 00:00:00 UTC 2017 - [email protected]
+
+- Add bug-57918.patch:
+  * Fix bxc#57918 - System.Net.Sockets.EndSend returns incorrect value
+
+-------------------------------------------------------------------
+Tue Oct 17 00:00:00 UTC 2017 - [email protected]
+
+- Update to version 5.4.0.201 (5.4.0 Stable)
+- Minor packaging updates
+- Remove patch: 0001-btls-Disable-BUILD_SHARED_LIBS-while-building-boring.patch
+- Remove patch: fix-project-builds-linux.patch
+- Add patch mcs-compatibility-fix.patch:
+  * When using deprecated MCS compiler to build Mono, convert incompatible 
C#6\C#7 code to C#5 analog in order to fix build errors.
+- New features and changes:
+  * JIT Job Control: improve Roslyn performance
+  * Array element store optimization
+  * Load scalability improvements
+  * ValueType write barrier optimization
+  * Make jit method table resizing more scalable
+  * Reflection queries scalability improvements
+  * Intrisificy Marshal.PtrToStruct for blitable types
+  * Revamped unaligned memory access support
+  * Interpreter works in JIT restricted environments
+  * Interpreter supports ARM and ARM64
+  * Class Libraries: integrated AppContextSwitch code from reference sources 
which allows all of its compat switches to be used, added reference assemblies 
for .NET Framework 4.7 to support builds targetting .NET 4.7.
+  * Tools: bundled nuget binary was updated to version 4.3.0, added packaging 
for roslyn-parts of msbuild.
+- Bugfixes:
+  * bxc#580 - Type.Load loads strong type despite version mismatch
+  * bxc#17325 - RealProxy returns MarshalByRefObject for an Interface instead 
of the real interface type
+  * bxc#44907 - Applications crash on Nexus 9 devices only since 
Xamarin.Android 7.0.0.18
+  * bxc#46482 - SIGSEGV at random code lines after application start on Nexus 
9 with Xamarin Android 7
+  * bxc#51791 - [XA] HTC Nexus 9 - app closes on launch
+  * bxc#52508 - TLS SignalR Self-host Hang
+  * bxc#53038 - SRE should fail more gracefully when SymbolWriter is missing
+  * bxc#53202 - Number minus Enum gives wrong value
+  * bxc#53244 - mcs generates ParamArrayAttribute when specifying “params” in 
overridden method where base doesn’t have it
+  * bxc#53792 - CFNetworkHandler reports correct download when internet 
connection is lost during request
+  * bxc#54159 - Compiler crashes when calling method named Finalize
+  * bxc#54322 - await in catch-block inside a loop causes the same exception 
to be caught multiple times
+  * bxc#54388 - InternalsVisibleTo is case sensitive
+  * bxc#54448 - Unable to revert to thread-local storage for 
CurrentThread.CultureInfo
+  * bxc#54485 - Creating an open generic type with recurrent constraint fails
+  * bxc#54658 - [iOS]BCL test failed with Assertion failures error: * 
Assertion at 
/Users/builder/data/lanes/4691/6bea7a5b/source/xamarin-macios/external/mono/mono/mini/aot-runtime.c:2924,
 condition `!async’ not met and condition `unwind_options == MONO_UNWIND_NONE’ 
not
+  * bxc#54976 - [iOS]fsharp test failing on iOS device with Assertion at 
/Users/builder/data/lanes/4691/9245c1c0/source/xamarin-macios/external/mono/mono/mini/mini-arm-gsharedvt.c:220,
 condition `src_slot < 16’ not met
+  * bxc#54991 - Cannot compile get => _text
+  * bxc#55041 - Stripping mscorlib in simple example changes IntPtr (5) 
behavior?
+  * bxc#55083 - coreclr test b353858.il fails after 
6f33b62f39a273fccb78f71513cb5e0dfb987c70
+  * bxc#55095 - Breakpoints not hit for ASP.NET MVC Project
+  * bxc#55348 - “using static” results in invalid compiler errors
+  * bxc#55400 - MCS produces incorrect code for generic instantiated with a gtd
+  * bxc#55436 - System.Runtime refuses to load with strict naming
+  * bxc#55577 - SIMD instructions with System.Numerics.Vectors do not work
+  * bxc#55603 - Follow-up to bug 52845: Satellite assemblies not loaded by app 
when using “Bundle assemblies into native code” even though they are now 
successfully mkbundled
+  * bxc#55604 - Incorrect struct size when using property setter
+  * bxc#55697 - .NET 2.0 style web services fail to build under msbuild in 
Release but work with xbuild
+  * bxc#56081 - Returning a valuetype from an async method with an awaited 
parameter yields a Mono.CSharp.InternalErrorException: Await yields with 
non-empty stack
+  * bxc#56111 - Hitting assertion after enabling AOT+LLVM on x86 devices in 
tramp-x86.c:124
+  * bxc#56202 - [mono-2017-04]Apps fail to launch on 32 bit device with error 
EXC_ARM_DA_ALIGN at 0x0142ccec
+  * bxc#56240 - Performance Degradation When Using Expressions
+  * bxc#56242 - TypeTest.GetGenericMethodDefinitionOverInflatedMethodOnGTD 
throws NRE on Android in Release mode
+  * bxc#56247 - Enumerable.OrderByDescending behaves differently on LLVM 
FullAOT
+  * bxc#56452 - Problem Stack too big
+  * bxc#56462 - Custom operator causes internal compiler error
+  * bxc#56493 - Windows MMAP doesn’t release file
+  * bxc#56499 - DateTime.Now throws exception if /etc/localtime symlink 
destination missing
+  * bxc#56567 - Passing large struct into exception filter method crashes 
runtime with SIGSEGV
+  * bxc#56611 - Regression: ArrayTypeMismatchException when running F# script
+  * bxc#56616 - Missing CS1629 for unsafe code in iterators
+  * bxc#56627 - mcs inherits interface implementation, while csc doesn’t
+  * bxc#56684 - (mono-2.0-sgen.dll) in mono.exe: 0xC0000005: Access violation 
reading location 0x04FA3D9A.
+  * bxc#56694 - Assertion: should not be reached at 
d:\j\workspace\v\repos\mono\mono\sgen\sgen-scan-object.h:91
+  * bxc#56814 - Xamarin.Mac.dll Memory Leak starting with 3.2.0.175 Release
+  * bxc#56821 - Static ctor of MarshalByRefObject runs in primary AppDomain
+  * bxc#56824 - Runtime crash with VSMEF
+  * bxc#57002 - New bockbuild package is missing .dSYM directories
+  * bxc#57222 - System.Reflection.AmbiguousMatchException for two fields with 
same name but different types
+  * bxc#57232 - Compiler error when using ternary operator and no whitespace
+  * bxc#57242 - [StructLayout (LayoutKind.Sequential, Pack = 1)] doesn’t work 
as expected
+  * bxc#57301 - Running IronPython’s executable under Mono 5.0.x causes a 
SIGSEGV on exit, this did not happen on 4.8
+  * bxc#57496 - [Slovenian CultureInfo + others] .Parse throws exception when 
parsing negative values
+  * bxc#57505 - Missing error CS0165 in presence of commented line
+  * bxc#57629 - [io-layer] File.Delete () throws 
System.UnauthorizedAccessException on non-existing files on a read-only path
+  * bxc#57691 - InternalsVisibleTo doesn’t work with 2048-bit SNK files
+  * bxc#57744 - ReflectionTypeLoadException.LoaderExceptions has null 
exceptions
+  * bxc#57771 - F#.NET Core 2.0 projects do not compile
+  * bxc#57796 - Compiler Crash instead of CS1621
+  * bxc#57850 - Mono assertion when ResolveEventHandler returns a 
reflection-only assembly
+  * bxc#57851 - Assertion if using ResolveEventHandler to find custom 
attributes
+  * bxc#57930 - Building netstandard 2.0 project throws DllNotFoundException: 
hostfxr during msbuild
+  * bxc#57959 - SIGSEGV in roslyn with corrupted stack
+  * bxc#58114 - [llvm] csc (Rolsyn) produce fault clauses that the llvm 
backend does not support
+  * bxc#58210 - “* Assertion at metadata.c:1048, condition `index < 
meta->heap_strings.size’ not met” is output on startup - works fine on Windows
+  * bxc#58344 - SIMD crash using System.Numerics.Vector
+  * bxc#58361 - EnumBuilder can no longer be used to generate IL code
+  * bxc#58399 - Delegates as collection key are ~500x slower than previously
+  * bxc#58421 - sre-save.c asserts in fixup_method () if TypeBuilder token is 
used across assemblies
+  * bxc#58446 - [iOS]EnumerableMoreTest.ConcatArgumentNullTest crash on tvOS 
device
+  * bxc#58454 - Cannot resolve method Subscription`1 
Subscribe[TSelection](System.Func`2[TState,TSelection], 
System.Action`2[TSelection,TState]) because the declaring type of the method 
handle FSI_0002+Store`1[TState] is generic. Explicitly provide the declaring 
type to
+  * bxc#58738 - System.IO.MonoIO.Read - Native Crash when device file is gone
+  * bxc#58782 - Exception stack traces are deleted when reaching the 
native-to-managed wrapper in a reverse invoke
+  * bxc#58829 - Application Output Window being flooded with “[Mono] worker 
parking, [Mono] worker unparking” messages when debugging agasint Android 
Emulator
+  * bxc#59235 - [mono-2017-06] android.runtime.JavaProxyThrowable: 
System.ObjectDisposedException: Cannot access a disposed object.
+  * bxc#59274 - [Mac]A crash report is generated on closing mac apps
+
+-------------------------------------------------------------------

Old:
----
  0001-btls-Disable-BUILD_SHARED_LIBS-while-building-boring.patch
  fix-project-builds-linux.patch
  mono-5.2.0.224.tar.bz2

New:
----
  bug-57918.patch
  bug-59608.patch
  mcs-compatibility-fix.patch
  mono-5.4.0.201.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ mono-core.spec ++++++
--- /var/tmp/diff_new_pack.m3fUR7/_old  2017-10-28 14:19:26.488472226 +0200
+++ /var/tmp/diff_new_pack.m3fUR7/_new  2017-10-28 14:19:26.492472080 +0200
@@ -26,7 +26,7 @@
 %define boehm yes
 %endif
 
-%ifarch %ix86 x86_64
+%ifarch %ix86 x86_64 armv7l armv7hl aarch64
 %define btls yes
 %else
 %define btls no
@@ -38,10 +38,10 @@
 %define roslyn no
 %endif
 
-%define version_suffix 224
+%define version_suffix 201
 
 Name:           mono-core
-Version:        5.2.0
+Version:        5.4.0
 Release:        0
 Summary:        Cross-platform, Open Source, .NET development framework
 License:        LGPL-2.1 and MIT and MS-PL
@@ -56,16 +56,18 @@
 Patch1:         ucontext.patch
 # PATCH-FIX-UPSTREAM search provides (for RPM-packaging) not only for GAC dir, 
but also for "Facades" and "4.5" mono-libdirs
 Patch2:         provides-facades.patch
-# PATCH-FIX-UPSTREAM disable BUILD_SHARED_LIBS while building boringssl, so 
its symbols are not exported from the btls shared lib 
(https://github.com/mono/mono/commit/e6e0fb82261340f9181d1b2b11a9706a16c5dbc7)
-Patch3:         0001-btls-Disable-BUILD_SHARED_LIBS-while-building-boring.patch
-# PATCH-FIX-UPSTREAM fix finding nuget packages in lower-case dirs on 
case-sensitive filesystems 
(https://github.com/mono/NuGet.BuildTasks/commit/112685a925e5c0d26fcf9c9006341d4fa4f66515)
-Patch4:         fix-project-builds-linux.patch
+# PATCH-FIX-UPSTREAM System.Net.Sockets.EndSend returns incorrect value. See 
https://bugzilla.xamarin.com/show_bug.cgi?id=57918 for more information
+Patch3:         bug-57918.patch
+# PATCH-FIX-UPSTREAM Attribute MethodImplOptions.AggressiveInlining causes 
method to always return NULL, patch created from commits: 
https://github.com/mono/mono/commit/df4669b216cb331e3b151b9171deee89339d34e2 
and 
https://github.com/mono/api-snapshot/commit/c1a7bd7e026c9280fcd9825227d7ddde67255e00
+Patch4:         bug-59608.patch
 # PATCH-FIX-OPENSUSE remove checks for libmono in mono-find-provides and 
mono-find-requires scripts
 Patch14:        find-deps-fix.patch
 # PATCH-FIX-OPENSUSE revert Microsoft.Build.Tasks library to use old mcs 
compiler. This will make xbuild to use old mcs instead of csc - patch is used 
when roslyn is unavailable for current platform (big-endian systems).
 Patch15:        xbuild-revert-to-mcs.patch
 # PATCH-FIX-OPENSUSE add missing internal headers to distribution, this is 
necessary for mono-debugger package. (Seems this bug is caused by this upstream 
commit: 
https://github.com/mono/mono/commit/e71a7f33ef30a5bbd0047b37a95533d06c860846)
 Patch16:        fix-dbg-headers.patch
+# PATCH-FIX-OPENSUSE if using deprecated mcs compiler instead of roslyn-csc 
convert non-compatible c#6 and c#7 code to older c#5 analogs, so mcs can 
compile it without errors.
+Patch17:        mcs-compatibility-fix.patch
 BuildRequires:  cmake
 BuildRequires:  autoconf
 BuildRequires:  automake
@@ -186,10 +188,13 @@
 Requires:       timezone
 
 %define _use_internal_dependency_generator 0
+
 # mono now ships with precompiled roslyn components that will lead us to 
broken requires\provides
 # instead of filtering bigger list of broken requires\provides, filter initial 
filelist and disable precompiled binaries from evaluation
 %define roslyn_prefix %{buildroot}%{_prefix}/lib/mono/4.5
-%define filtered_filelist printf "%s\\n" "${filelist[@]}" | grep -v 
"%{roslyn_prefix}/Microsoft.CodeAnalysis.CSharp.dll" | grep -v 
"%{roslyn_prefix}/Microsoft.CodeAnalysis.dll" | grep -v 
"%{roslyn_prefix}/System.Collections.Immutable.dll" | grep -v 
"%{roslyn_prefix}/System.Reflection.Metadata.dll" | grep -v 
"%{roslyn_prefix}/csc.exe" | cat -
+%define msbuild_prefix %{buildroot}%{_prefix}/lib/mono/msbuild/15.0/bin/Roslyn
+%define filtered_filelist printf "%s\\n" "${filelist[@]}" | grep -v 
"%{roslyn_prefix}/Microsoft.CodeAnalysis" | grep -v 
"%{roslyn_prefix}/Microsoft.Build.Tasks.CodeAnalysis.dll" | grep -v 
"%{roslyn_prefix}/System.Collections.Immutable.dll" | grep -v 
"%{roslyn_prefix}/System.Reflection.Metadata.dll" | grep -v 
"%{roslyn_prefix}/csc.exe" | grep -v "%{roslyn_prefix}/csi.exe" | grep -v 
"%{roslyn_prefix}/VBCSCompiler.exe" | grep -v 
"%{msbuild_prefix}/Microsoft.CodeAnalysis" | grep -v 
"%{msbuild_prefix}/Microsoft.Build.Tasks.CodeAnalysis.dll" | grep -v 
"%{msbuild_prefix}/System.Collections.Immutable.dll" | grep -v 
"%{msbuild_prefix}/System.Reflection.Metadata.dll" | grep -v 
"%{msbuild_prefix}/csc.exe" | grep -v "%{msbuild_prefix}/csi.exe" | grep -v 
"%{msbuild_prefix}/VBCSCompiler.exe" | cat -
+
 %define __find_provides env sh -c 'filelist=($(cat)) && { %{filtered_filelist} 
| /usr/lib/rpm/find-provides && %{filtered_filelist} | 
prefix=%{buildroot}%{_prefix} %{buildroot}%{_bindir}/mono-find-provides ; } | 
sort | uniq'
 %define __find_requires env sh -c 'filelist=($(cat)) && { %{filtered_filelist} 
| /usr/lib/rpm/find-requires && %{filtered_filelist} | 
prefix=%{buildroot}%{_prefix} %{buildroot}%{_bindir}/mono-find-requires ; } | 
sort | uniq'
 
@@ -210,6 +215,7 @@
 %patch16 -p1
 %if %roslyn == no
 %patch15 -p1
+%patch17 -p1
 %endif
 
 %build
@@ -260,9 +266,6 @@
 %ifnarch %ix86 x86_64
   --disable-system-aot \
 %endif
-%if %btls == yes
-  --enable-dynamic-btls \
-%endif
 %if %roslyn == no
   --with-csc=mcs \
 %endif
@@ -331,8 +334,15 @@
 rm -v %{buildroot}%{_prefix}/lib/mono/4.5/Microsoft.CodeAnalysis.dll*
 rm -v %{buildroot}%{_prefix}/lib/mono/4.5/System.Collections.Immutable.dll*
 rm -v %{buildroot}%{_prefix}/lib/mono/4.5/System.Reflection.Metadata.dll*
+rm -v 
%{buildroot}%{_prefix}/lib/mono/4.5/Microsoft.CodeAnalysis.CSharp.Scripting.dll*
+rm -v %{buildroot}%{_prefix}/lib/mono/4.5/Microsoft.CodeAnalysis.Scripting.dll*
+rm -v 
%{buildroot}%{_prefix}/lib/mono/4.5/Microsoft.CodeAnalysis.VisualBasic.dll*
+rm -v %{buildroot}%{_prefix}/lib/mono/4.5/VBCSCompiler.*
 rm -v %{buildroot}%{_prefix}/lib/mono/4.5/csc.*
+rm -v %{buildroot}%{_prefix}/lib/mono/4.5/csi.*
 rm -v %{buildroot}%{_bindir}/csc
+rm -v %{buildroot}%{_bindir}/csi
+rm -rfv %{msbuild_prefix}
 %endif
 
 %fdupes %{buildroot}%{_prefix}
@@ -514,11 +524,17 @@
 %endif
 %if %roslyn == yes
 %{_bindir}/csc
+%{_bindir}/csi
 %{_prefix}/lib/mono/4.5/csc.*
+%{_prefix}/lib/mono/4.5/csi.*
 %{_prefix}/lib/mono/4.5/System.Collections.Immutable.dll*
 %{_prefix}/lib/mono/4.5/Microsoft.CodeAnalysis.dll*
 %{_prefix}/lib/mono/4.5/Microsoft.CodeAnalysis.CSharp.dll*
+%{_prefix}/lib/mono/4.5/Microsoft.CodeAnalysis.CSharp.Scripting.dll*
+%{_prefix}/lib/mono/4.5/Microsoft.CodeAnalysis.Scripting.dll*
+%{_prefix}/lib/mono/4.5/Microsoft.CodeAnalysis.VisualBasic.dll*
 %{_prefix}/lib/mono/4.5/System.Reflection.Metadata.dll*
+%{_prefix}/lib/mono/4.5/VBCSCompiler.*
 %{_prefix}/lib/mono/4.5/al.pdb
 %{_prefix}/lib/mono/4.5/cert-sync.pdb
 %{_prefix}/lib/mono/4.5/certmgr.pdb
@@ -1439,6 +1455,7 @@
 %dir %{_libdir}/mono/
 %{_libdir}/mono/lldb
 %if %roslyn == yes
+%{_prefix}/lib/mono/msbuild
 %{_prefix}/lib/mono/4.5/caspol.pdb
 %{_prefix}/lib/mono/4.5/cccheck.pdb
 %{_prefix}/lib/mono/4.5/ccrewrite.pdb

++++++ bug-57918.patch ++++++
>From b2250d8ecf56f71ea4c2c7271ac138d1f0196136 Mon Sep 17 00:00:00 2001
From: Katelyn Gadd <[email protected]>
Date: Mon, 11 Sep 2017 17:26:04 -0700
Subject: [PATCH] Fix bug 57918: Async Socket reads that need to perform
 multiple underlying read operations fail to return a correct total # of bytes
 read

---
 mcs/class/System/System.Net.Sockets/Socket.cs | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/mcs/class/System/System.Net.Sockets/Socket.cs 
b/mcs/class/System/System.Net.Sockets/Socket.cs
index d19756b6c300..3821602fbbda 100644
--- a/mcs/class/System/System.Net.Sockets/Socket.cs
+++ b/mcs/class/System/System.Net.Sockets/Socket.cs
@@ -1902,7 +1902,7 @@ static void BeginSendCallback (SocketAsyncResult 
sockares, int sent_so_far)
                                sockares.Size -= total;
 
                                if (sockares.socket.CleanedUp) {
-                                       sockares.Complete (total);
+                                       sockares.Complete (sent_so_far);
                                        return;
                                }
 
@@ -1914,7 +1914,7 @@ static void BeginSendCallback (SocketAsyncResult 
sockares, int sent_so_far)
                                sockares.Total = sent_so_far;
                        }
 
-                       sockares.Complete (total);
+                       sockares.Complete (sent_so_far);
                }
 
                [CLSCompliant (false)]
++++++ bug-59608.patch ++++++
diff -uprN mono-5.4.0.201/external/api-snapshot/profiles/net_4_x/PEAPI.cs 
mono-5.4.0.201.new/external/api-snapshot/profiles/net_4_x/PEAPI.cs
--- mono-5.4.0.201/external/api-snapshot/profiles/net_4_x/PEAPI.cs      
2017-10-04 18:31:32.000000000 +0300
+++ mono-5.4.0.201.new/external/api-snapshot/profiles/net_4_x/PEAPI.cs  
2017-10-24 05:28:58.773995162 +0300
@@ -473,6 +473,7 @@ namespace PEAPI
     }
     public enum ImplAttr
     {
+        AggressiveInlining = 256,
         ForwardRef = 16,
         IL = 0,
         InternalCall = 4096,
diff -uprN mono-5.4.0.201/mono/mini/iltests.il 
mono-5.4.0.201.new/mono/mini/iltests.il
--- mono-5.4.0.201/mono/mini/iltests.il 2017-10-04 18:30:42.000000000 +0300
+++ mono-5.4.0.201.new/mono/mini/iltests.il     2017-10-24 05:30:44.849696785 
+0300
@@ -2896,4 +2896,50 @@ END:
     IL_0018:  ldloc.0
        ret
        }
+
+  .method private hidebysig static void  fail_inline() cil managed
+  {
+    // Code size       9 (0x9)
+    .maxstack  8
+    IL_0000:  ldc.i4.s   16
+    IL_0002:  conv.u
+    IL_0003:  ldc.i4.1
+    IL_0004:  mul.ovf.un
+    IL_0005:  localloc
+    IL_0007:  pop
+    IL_0008:  ret
+  }
+
+  .method private hidebysig static int32
+          always_inline(int32 op) cil managed aggressiveinlining
+  {
+    // Code size       24 (0x18)
+    .maxstack  8
+    IL_0000:  ldarg.0
+    IL_0001:  brfalse.s  IL_0009
+
+    IL_0003:  ldarg.0
+    IL_0004:  ldc.i4.2
+    IL_0005:  beq.s      IL_000b
+
+    IL_0007:  br.s       IL_000d
+
+    IL_0009:  ldc.i4.0
+    IL_000a:  ret
+
+    IL_000b:  ldc.i4.3
+    IL_000c:  ret
+
+    IL_000d:  call       void Tests::fail_inline()
+    IL_0012:  newobj     instance void [mscorlib]System.Exception::.ctor()
+    IL_0017:  throw
+  }
+
+  .method public hidebysig static int32 test_3_regress_59608() cil managed
+  {
+    .maxstack  8
+    IL_0000:  ldc.i4.2
+    IL_0001:  call       int32 Tests::always_inline(int32)
+    IL_000c:  ret
+  }
 }
diff -uprN mono-5.4.0.201/mono/mini/method-to-ir.c 
mono-5.4.0.201.new/mono/mini/method-to-ir.c
--- mono-5.4.0.201/mono/mini/method-to-ir.c     2017-10-04 18:30:42.000000000 
+0300
+++ mono-5.4.0.201.new/mono/mini/method-to-ir.c 2017-10-24 05:30:44.853696774 
+0300
@@ -6156,9 +6156,7 @@ inline_method (MonoCompile *cfg, MonoMet
        prev_args = cfg->args;
        prev_arg_types = cfg->arg_types;
        prev_inlined_method = cfg->inlined_method;
-       cfg->inlined_method = cmethod;
-       cfg->ret_var_set = FALSE;
-       cfg->inline_depth ++;
+       prev_ret_var_set = cfg->ret_var_set;
        prev_real_offset = cfg->real_offset;
        prev_cbb_hash = cfg->cbb_hash;
        prev_cil_offset_to_bb = cfg->cil_offset_to_bb;
@@ -6168,9 +6166,12 @@ inline_method (MonoCompile *cfg, MonoMet
        prev_cbb = cfg->cbb;
        prev_current_method = cfg->current_method;
        prev_generic_context = cfg->generic_context;
-       prev_ret_var_set = cfg->ret_var_set;
        prev_disable_inline = cfg->disable_inline;
 
+       cfg->inlined_method = cmethod;
+       cfg->ret_var_set = FALSE;
+       cfg->inline_depth ++;
+
        if (ip && *ip == CEE_CALLVIRT && !(cmethod->flags & 
METHOD_ATTRIBUTE_STATIC))
                virtual_ = TRUE;
 
++++++ mcs-compatibility-fix.patch ++++++
diff -uprN 
mono-5.4.0.201.old/external/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/EXPRExtensions.cs
 
mono-5.4.0.201/external/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/EXPRExtensions.cs
--- 
mono-5.4.0.201.old/external/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/EXPRExtensions.cs
      2017-10-04 18:31:23.000000000 +0300
+++ 
mono-5.4.0.201/external/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/EXPRExtensions.cs
  2017-10-17 21:13:18.835702962 +0300
@@ -33,8 +33,9 @@ namespace Microsoft.CSharp.RuntimeBinder
             Expr exprCur = expr;
             while (exprCur != null)
             {
-                if (exprCur is ExprList list)
+                if (exprCur is ExprList)
                 {
+                                                                               
var list = (ExprList)exprCur;
                     yield return list.OptionalElement;
                     exprCur = list.OptionalNextListNode;
                 }
@@ -61,12 +62,12 @@ namespace Microsoft.CSharp.RuntimeBinder
         }
         public static bool isNull(this Expr expr)
         {
-            return expr is ExprConstant constant && constant.IsOK && 
(expr.Type.fundType() == FUNDTYPE.FT_REF) && constant.Val.IsNullRef;
+            return expr is ExprConstant && ((ExprConstant)expr).IsOK && 
(expr.Type.fundType() == FUNDTYPE.FT_REF) && ((ExprConstant)expr).Val.IsNullRef;
         }
 
         public static bool IsZero(this Expr expr)
         {
-            return expr is ExprConstant constant && constant.IsOK && 
constant.IsZero;
+            return expr is ExprConstant && ((ExprConstant)expr).IsOK && 
((ExprConstant)expr).IsZero;
         }
 
         private static Expr GetSeqVal(this Expr expr)
diff -uprN 
mono-5.4.0.201.old/external/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/Nullable.cs
 
mono-5.4.0.201/external/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/Nullable.cs
--- 
mono-5.4.0.201.old/external/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/Nullable.cs
    2017-10-04 18:31:23.000000000 +0300
+++ 
mono-5.4.0.201/external/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/Nullable.cs
        2017-10-17 20:53:01.339702962 +0300
@@ -29,8 +29,9 @@ namespace Microsoft.CSharp.RuntimeBinder
         {
             Debug.Assert(expr != null);
 
-            if (expr is ExprCall pCall && pCall.MemberGroup.OptionalObject == 
null)
+            if (expr is ExprCall && 
((ExprCall)expr).MemberGroup.OptionalObject == null)
             {
+                               var pCall = (ExprCall)expr;
                 MethodSymbol meth = pCall.MethWithInst.Meth();
                 if (meth != null && meth.IsNullableConstructor())
                 {
@@ -45,7 +46,8 @@ namespace Microsoft.CSharp.RuntimeBinder
 
         public static Expr StripNullableConstructor(Expr pExpr)
         {
-            while (IsNullableConstructor(pExpr, out ExprCall call))
+                       ExprCall call;
+            while (IsNullableConstructor(pExpr, out call))
             {
                 pExpr = call.OptionalArguments;
                 Debug.Assert(pExpr != null && !(pExpr is ExprList));
@@ -60,7 +62,8 @@ namespace Microsoft.CSharp.RuntimeBinder
             Debug.Assert(exprSrc != null && exprSrc.Type.IsNullableType());
 
             // For new T?(x), the answer is x.
-            if (IsNullableConstructor(exprSrc, out ExprCall call))
+                       ExprCall call;
+            if (IsNullableConstructor(exprSrc, out call))
             {
                 var args = call.OptionalArguments;
                 Debug.Assert(args != null && !(args is ExprList));
diff -uprN 
mono-5.4.0.201.old/external/corefx/src/System.Collections/src/System/Collections/Generic/SortedSet.TreeSubSet.cs
 
mono-5.4.0.201/external/corefx/src/System.Collections/src/System/Collections/Generic/SortedSet.TreeSubSet.cs
--- 
mono-5.4.0.201.old/external/corefx/src/System.Collections/src/System/Collections/Generic/SortedSet.TreeSubSet.cs
    2017-10-04 18:31:23.000000000 +0300
+++ 
mono-5.4.0.201/external/corefx/src/System.Collections/src/System/Collections/Generic/SortedSet.TreeSubSet.cs
        2017-10-17 17:12:55.639702962 +0300
@@ -352,7 +352,7 @@ namespace System.Collections.Generic
                 throw new PlatformNotSupportedException();
             }
 
-            protected override void OnDeserialization(Object sender) => throw 
new PlatformNotSupportedException();
+            protected override void OnDeserialization(Object sender) { throw 
new PlatformNotSupportedException(); }
         }
     }
 }
diff -uprN 
mono-5.4.0.201.old/external/corefx/src/System.Linq.Expressions/src/System/Dynamic/Utils/TypeExtensions.cs
 
mono-5.4.0.201/external/corefx/src/System.Linq.Expressions/src/System/Dynamic/Utils/TypeExtensions.cs
--- 
mono-5.4.0.201.old/external/corefx/src/System.Linq.Expressions/src/System/Dynamic/Utils/TypeExtensions.cs
   2017-10-04 18:31:23.000000000 +0300
+++ 
mono-5.4.0.201/external/corefx/src/System.Linq.Expressions/src/System/Dynamic/Utils/TypeExtensions.cs
       2017-10-17 19:28:46.291702962 +0300
@@ -65,7 +65,8 @@ namespace System.Dynamic.Utils
         internal static ParameterInfo[] GetParametersCached(this MethodBase 
method)
         {
             CacheDict<MethodBase, ParameterInfo[]> pic = s_paramInfoCache;
-            if (!pic.TryGetValue(method, out ParameterInfo[] pis))
+                                               ParameterInfo[] pis;
+            if (!pic.TryGetValue(method, out pis))
             {
                 pis = method.GetParameters();
 
diff -uprN 
mono-5.4.0.201.old/external/corefx/src/System.Linq.Expressions/src/System/Linq/Expressions/Compiler/LambdaCompiler.Expressions.cs
 
mono-5.4.0.201/external/corefx/src/System.Linq.Expressions/src/System/Linq/Expressions/Compiler/LambdaCompiler.Expressions.cs
--- 
mono-5.4.0.201.old/external/corefx/src/System.Linq.Expressions/src/System/Linq/Expressions/Compiler/LambdaCompiler.Expressions.cs
   2017-10-04 18:31:23.000000000 +0300
+++ 
mono-5.4.0.201/external/corefx/src/System.Linq.Expressions/src/System/Linq/Expressions/Compiler/LambdaCompiler.Expressions.cs
       2017-10-17 19:42:26.615702962 +0300
@@ -952,8 +952,9 @@ namespace System.Linq.Expressions.Compil
         private void EmitMemberAssignment(MemberAssignment binding, Type 
objectType)
         {
             EmitExpression(binding.Expression);
-            if (binding.Member is FieldInfo fi)
+            if (binding.Member is FieldInfo)
             {
+                                       var fi = (FieldInfo)binding.Member;
                 _ilg.Emit(OpCodes.Stfld, fi);
             }
             else
@@ -1097,7 +1098,7 @@ namespace System.Linq.Expressions.Compil
         private static Type GetMemberType(MemberInfo member)
         {
             Debug.Assert(member is FieldInfo || member is PropertyInfo);
-            return member is FieldInfo fi ? fi.FieldType : (member as 
PropertyInfo).PropertyType;
+            return member is FieldInfo ? ((FieldInfo)member).FieldType : 
(member as PropertyInfo).PropertyType;
         }
 
         #endregion
diff -uprN 
mono-5.4.0.201.old/external/corefx/src/System.Linq.Expressions/src/System/Linq/Expressions/MemberAssignment.cs
 
mono-5.4.0.201/external/corefx/src/System.Linq.Expressions/src/System/Linq/Expressions/MemberAssignment.cs
--- 
mono-5.4.0.201.old/external/corefx/src/System.Linq.Expressions/src/System/Linq/Expressions/MemberAssignment.cs
      2017-10-04 18:31:23.000000000 +0300
+++ 
mono-5.4.0.201/external/corefx/src/System.Linq.Expressions/src/System/Linq/Expressions/MemberAssignment.cs
  2017-10-17 19:35:40.931702962 +0300
@@ -93,24 +93,24 @@ namespace System.Linq.Expressions
 
             // Null paramName as there are two paths here with different 
parameter names at the API
             TypeUtils.ValidateType(decType, null);
-            switch (member)
-            {
-                case PropertyInfo pi:
-                    if (!pi.CanWrite)
-                    {
-                        throw Error.PropertyDoesNotHaveSetter(pi, 
nameof(member));
-                    }
-
-                    memberType = pi.PropertyType;
-                    break;
-
-                case FieldInfo fi:
-                    memberType = fi.FieldType;
-                    break;
-
-                default:
-                    throw 
Error.ArgumentMustBeFieldInfoOrPropertyInfo(nameof(member));
-            }
+                                               if (member is PropertyInfo)
+                                               {
+                                                       var pi = 
(PropertyInfo)member;
+                                                       if (!pi.CanWrite)
+                                                       {
+                                                               throw 
Error.PropertyDoesNotHaveSetter(pi, nameof(member));
+                                                       }
+                                                       memberType = 
pi.PropertyType;
+                                               }
+                                               else if (member is FieldInfo)
+                                               {
+                                                       var fi = 
(FieldInfo)member;
+                                                       memberType = 
fi.FieldType;
+                                               }
+                                               else
+                                               {
+                                                       throw 
Error.ArgumentMustBeFieldInfoOrPropertyInfo(nameof(member));
+                                               }
         }
     }
 }
diff -uprN 
mono-5.4.0.201.old/external/corefx/src/System.Linq.Expressions/src/System/Linq/Expressions/MemberBinding.cs
 
mono-5.4.0.201/external/corefx/src/System.Linq.Expressions/src/System/Linq/Expressions/MemberBinding.cs
--- 
mono-5.4.0.201.old/external/corefx/src/System.Linq.Expressions/src/System/Linq/Expressions/MemberBinding.cs
 2017-10-04 18:31:23.000000000 +0300
+++ 
mono-5.4.0.201/external/corefx/src/System.Linq.Expressions/src/System/Linq/Expressions/MemberBinding.cs
     2017-10-17 19:36:39.243702962 +0300
@@ -61,6 +61,6 @@ namespace System.Linq.Expressions
             return ExpressionStringBuilder.MemberBindingToString(this);
         }
 
-        internal virtual void ValidateAsDefinedHere(int index) => throw 
Error.UnknownBindingType(index);
+        internal virtual void ValidateAsDefinedHere(int index) { throw 
Error.UnknownBindingType(index); }
     }
 }
diff -uprN 
mono-5.4.0.201.old/external/corefx/src/System.Linq.Expressions/src/System/Linq/Expressions/MemberMemberBinding.cs
 
mono-5.4.0.201/external/corefx/src/System.Linq.Expressions/src/System/Linq/Expressions/MemberMemberBinding.cs
--- 
mono-5.4.0.201.old/external/corefx/src/System.Linq.Expressions/src/System/Linq/Expressions/MemberMemberBinding.cs
   2017-10-04 18:31:23.000000000 +0300
+++ 
mono-5.4.0.201/external/corefx/src/System.Linq.Expressions/src/System/Linq/Expressions/MemberMemberBinding.cs
       2017-10-17 19:39:08.035702962 +0300
@@ -127,24 +127,24 @@ namespace System.Linq.Expressions
 
             // Null paramName as there are several paths here with different 
parameter names at the API
             TypeUtils.ValidateType(decType, null, allowByRef: true, 
allowPointer: true);
-            switch (member)
-            {
-                case PropertyInfo pi:
-                    if (!pi.CanRead)
-                    {
-                        throw Error.PropertyDoesNotHaveGetter(pi, 
nameof(member));
-                    }
-
-                    memberType = pi.PropertyType;
-                    break;
-
-                case FieldInfo fi:
-                    memberType = fi.FieldType;
-                    break;
-
-                default:
-                    throw 
Error.ArgumentMustBeFieldInfoOrPropertyInfo(nameof(member));
-            }
+                                               if (member is PropertyInfo)
+                                               {
+                                                       var pi = 
(PropertyInfo)member;
+                                                       if (!pi.CanRead)
+                                                       {
+                                                               throw 
Error.PropertyDoesNotHaveGetter(pi, nameof(member));
+                                                       }
+                                                       memberType = 
pi.PropertyType;
+                                               }
+                                               else if (member is FieldInfo)
+                                               {
+                                                       var fi = 
(FieldInfo)member;
+                                                       memberType = 
fi.FieldType;
+                                               }
+                                               else
+                                               {
+                                                       throw 
Error.ArgumentMustBeFieldInfoOrPropertyInfo(nameof(member));
+                                               }
         }
 
         private static void ValidateMemberInitArgs(Type type, 
ReadOnlyCollection<MemberBinding> bindings)
diff -uprN 
mono-5.4.0.201.old/external/corefx/src/System.Net.HttpListener/src/System/Net/WebSockets/HttpListenerWebSocketContext.cs
 
mono-5.4.0.201/external/corefx/src/System.Net.HttpListener/src/System/Net/WebSockets/HttpListenerWebSocketContext.cs
--- 
mono-5.4.0.201.old/external/corefx/src/System.Net.HttpListener/src/System/Net/WebSockets/HttpListenerWebSocketContext.cs
    2017-10-04 18:31:24.000000000 +0300
+++ 
mono-5.4.0.201/external/corefx/src/System.Net.HttpListener/src/System/Net/WebSockets/HttpListenerWebSocketContext.cs
        2017-10-17 17:17:31.687702962 +0300
@@ -94,8 +94,9 @@ namespace System.Net.WebSockets
                 if (!(user is WindowsPrincipal))
                 {
                     // AuthenticationSchemes.Basic.
-                    if (user.Identity is HttpListenerBasicIdentity 
basicIdentity)
+                    if (user.Identity is HttpListenerBasicIdentity)
                     {
+                        var 
basicIdentity=(HttpListenerBasicIdentity)user.Identity;
                         return new GenericPrincipal(new 
HttpListenerBasicIdentity(basicIdentity.Name, basicIdentity.Password), null);
                     }
                 }
diff -uprN 
mono-5.4.0.201.old/mcs/class/System/Mono.Net.Security/AsyncProtocolRequest.cs 
mono-5.4.0.201/mcs/class/System/Mono.Net.Security/AsyncProtocolRequest.cs
--- 
mono-5.4.0.201.old/mcs/class/System/Mono.Net.Security/AsyncProtocolRequest.cs   
    2017-10-04 18:30:40.000000000 +0300
+++ mono-5.4.0.201/mcs/class/System/Mono.Net.Security/AsyncProtocolRequest.cs   
2017-10-17 19:11:21.963702962 +0300
@@ -316,7 +316,7 @@ namespace Mono.Net.Security
                {
                        Debug ("ProcessRead - read user: {0} {1}", this, 
status);
 
-                       var (ret, wantMore) = Parent.ProcessRead (UserBuffer);
+                       int ret; bool wantMore; Parent.ProcessRead (UserBuffer, 
out ret, out wantMore);
 
                        Debug ("ProcessRead - read user done: {0} - {1} {2}", 
this, ret, wantMore);
 
@@ -355,7 +355,7 @@ namespace Mono.Net.Security
                                return AsyncOperationStatus.Complete;
                        }
 
-                       var (ret, wantMore) = Parent.ProcessWrite (UserBuffer);
+                       int ret; bool wantMore; Parent.ProcessWrite(UserBuffer, 
out ret, out wantMore);
 
                        Debug ("ProcessWrite - write user done: {0} - {1} {2}", 
this, ret, wantMore);
 
diff -uprN 
mono-5.4.0.201.old/mcs/class/System/Mono.Net.Security/MobileAuthenticatedStream.cs
 mono-5.4.0.201/mcs/class/System/Mono.Net.Security/MobileAuthenticatedStream.cs
--- 
mono-5.4.0.201.old/mcs/class/System/Mono.Net.Security/MobileAuthenticatedStream.cs
  2017-10-04 18:30:40.000000000 +0300
+++ 
mono-5.4.0.201/mcs/class/System/Mono.Net.Security/MobileAuthenticatedStream.cs  
    2017-10-17 19:11:27.267702962 +0300
@@ -403,7 +403,7 @@ namespace Mono.Net.Security
                                       asyncReadRequest != null ? "async" : "",
                                       readBuffer != null ? readBuffer.ToString 
() : "");
                                var asyncRequest = asyncHandshakeRequest ?? 
asyncReadRequest;
-                               var (ret, wantMore) = InternalRead 
(asyncRequest, readBuffer, buffer, offset, size);
+                               int ret; bool wantMore; InternalRead 
(asyncRequest, readBuffer, buffer, offset, size, out ret, out wantMore);
                                outWantMore = wantMore;
                                return ret;
                        } catch (Exception ex) {
@@ -414,7 +414,7 @@ namespace Mono.Net.Security
                        }
                }
 
-               (int, bool) InternalRead (AsyncProtocolRequest asyncRequest, 
BufferOffsetSize internalBuffer, byte[] buffer, int offset, int size)
+               void InternalRead (AsyncProtocolRequest asyncRequest, 
BufferOffsetSize internalBuffer, byte[] buffer, int offset, int size, out int 
_ret, out bool _wantMore)
                {
                        if (asyncRequest == null)
                                throw new InvalidOperationException ();
@@ -436,10 +436,10 @@ namespace Mono.Net.Security
                                Debug ("InternalRead #1: {0} {1} {2}", 
internalBuffer.Offset, internalBuffer.TotalBytes, size);
                                internalBuffer.Offset = internalBuffer.Size = 0;
                                asyncRequest.RequestRead (size);
-                               return (0, true);
+                               _ret = 0; _wantMore = true; return;
                        }
 
-                       /*
+                       /*Сабж. И чтобы гонка по кольцевым трассам. В 
третьи-четвёртые NFS наигрался, хочется новых трасс при схожем геймплее.
                         * The second time we're called, the native buffer will 
contain the exact amount of data that the
                         * previous call requested from us, so we should be 
able to return it all here.  However, just in
                         * case that Apple's native function changed its mind, 
we can also return less.
@@ -451,7 +451,7 @@ namespace Mono.Net.Security
                        Buffer.BlockCopy (internalBuffer.Buffer, 
internalBuffer.Offset, buffer, offset, len);
                        internalBuffer.Offset += len;
                        internalBuffer.Size -= len;
-                       return (len, !internalBuffer.Complete && len < size);
+                       _ret = len; _wantMore = !internalBuffer.Complete && len 
< size; return;
                }
 
                /*
@@ -620,21 +620,21 @@ namespace Mono.Net.Security
                        }
                }
 
-               internal (int, bool) ProcessRead (BufferOffsetSize userBuffer)
+               internal void ProcessRead (BufferOffsetSize userBuffer, out int 
_ret, out bool _wantMore)
                {
                        lock (ioLock) {
                                // This operates on the internal buffer and 
will never block.
-                               var ret = xobileTlsContext.Read 
(userBuffer.Buffer, userBuffer.Offset, userBuffer.Size, out bool wantMore);
-                               return (ret, wantMore);
+                               _ret = xobileTlsContext.Read 
(userBuffer.Buffer, userBuffer.Offset, userBuffer.Size, out _wantMore);
+                               return;
                        }
                }
 
-               internal (int, bool) ProcessWrite (BufferOffsetSize userBuffer)
+               internal void ProcessWrite (BufferOffsetSize userBuffer, out 
int _ret, out bool _wantMore)
                {
                        lock (ioLock) {
                                // This operates on the internal buffer and 
will never block.
-                               var ret = xobileTlsContext.Write 
(userBuffer.Buffer, userBuffer.Offset, userBuffer.Size, out bool wantMore);
-                               return (ret, wantMore);
+                               _ret = xobileTlsContext.Write 
(userBuffer.Buffer, userBuffer.Offset, userBuffer.Size, out _wantMore);
+                               return;
                        }
                }
 
++++++ mono-5.2.0.224.tar.bz2 -> mono-5.4.0.201.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/mono-core/mono-5.2.0.224.tar.bz2 
/work/SRC/openSUSE:Factory/.mono-core.new/mono-5.4.0.201.tar.bz2 differ: char 
11, line 1


Reply via email to