Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync JsonCodeGen experiment with latest dotnet/runtime master #14

Merged
merged 498 commits into from
Jul 23, 2020

Conversation

joperezr
Copy link
Member

cc: @ericstj @layomia

This is the second part of the splitted ingestion.

ericstj and others added 30 commits July 14, 2020 09:54
This library was added to .NETStandard2.1 and thus can no-longer be
changed.
They try to test various conditions that only work if you have multiple threads which is not the case on WebAssembly.
… globalization (#39228)

Allows the test suite to pass on WebAssembly: `Tests run: 692, Errors: 0, Failures: 0, Skipped: 15. Time: 1.237011s`
* WASM: Fix System.Diagnostics.TraceSource tests

One test was using `Assembly.GetEntryAssembly()` which returns null on WebAssembly.
Others are testing that the output contains the stacktrace but it is empty on WASM right now.

* PR feedback

Co-authored-by: Stephen Toub <stoub@microsoft.com>

Co-authored-by: Stephen Toub <stoub@microsoft.com>
We only support `Dns.GetHostName()` since that didn't throw in the older mono WebAssembly release and can be redirected to `Environment.MachineName`.
* [wasm] Enable System.Net.Http.Unit test suite

* Remove System.Net.Http.Unit test project from the exclusion list

Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
…9188)

* [wasm] Modify OffsetOf_Decimal_ReturnsExpected for Browser

* [wasm] Add ActiveIssues for GetDelegateForFunctionPointerTests and GetFunctionPointerForDelegateTests

* [libraries] Remove System.Runtime.InteropServices project exclusion

Co-authored-by: Mitchell Hwang <mitchell.hwang@microsoft.com>
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
* [wasm] Add ActiveIssue to LoadInDefaultContext for wasm

* [libraries] Remove System.Runtime.Loader.DefaultContext project exclusion

Co-authored-by: Mitchell Hwang <mitchell.hwang@microsoft.com>
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
* [wasm] Enable System.Runtime.Serialization.Json test suite

* Remove System.Runtime.Serialization.Json.Tests project from the exclusion list

* Remove System.Runtime.Serialization.Json.ReflectionOnly.Tests project from the exclusion list
…ialization.Xml.ReflectionOnly test suites (#39262)
… to create a function pointer to a native-to-managed wrapper. (#39260)

The previous method of returning interp_no_native_to_managed doesn't work:
* The runtime expects different function pointers for different methods, returning
  the same pointer leads to all kinds of weird errors.
* On wasm, the native caller expects the function to have the right signature, so
  calling interp_no_native_managed () will leads a to signature mismatch error which is
  hard to debug.
Using `nameof(DebugView)` doesn't work because DebugView is a nested type, so this isn't the full name of the type. Fixing to use typeof instead.
Socket's connect start, stop and cancelled events are logged as activities via EventSource.

Contributes to #37428
It got reactived but an unrelated PR introduced a test failure for it, disable it again.
It was missing a few signatures in wasm_m2n_invoke.g.h that caused it to fail with `WASM-ERR: CANNOT HANDLE INTERP ICALL SIG IIILIIII`
…otnet/icu (#39158)

* Update dependencies from https://github.com/mono/linker build 20200711.1

Microsoft.NET.ILLink.Tasks
 From Version 5.0.0-preview.3.20360.3 -> To Version 5.0.0-preview.3.20361.1

* Update dependencies from https://github.com/dotnet/runtime-assets build 20200710.1

System.ComponentModel.TypeConverter.TestData , System.Drawing.Common.TestData , System.IO.Compression.TestData , System.IO.Packaging.TestData , System.Net.TestData , System.Private.Runtime.UnicodeData , System.Security.Cryptography.X509Certificates.TestData , System.Windows.Extensions.TestData
 From Version 5.0.0-beta.20319.2 -> To Version 5.0.0-beta.20360.1

* Update dependencies from https://github.com/dotnet/icu build 20200709.7

Microsoft.NETCore.Runtime.ICU.Transport
 From Version 5.0.0-preview.8.20359.5 -> To Version 5.0.0-preview.8.20359.7

* Remove unsupported option

* Bump SDK dependency to bring updated ILLink task

* Update trimmer configuration property names

* Keep debug symbols as they are needed for the tests

* Disable trimming tests on Windows due to weird pdbs handling

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Marek Safar <marek.safar@gmail.com>
…arisons (#39209)

* add OSPlatform.macOS, hide OSX

* use OrdinalIgnoreCase for platform name comparisons

* RuntimeInformation.IsOSPlatform(OSPlatform.macOS) must return true on OSX

* add new test cases for IsOSPlatformEarlierThan and IsOSPlatformOrLater

* cache the IsCurrent information

* apply code review suggestion

Co-authored-by: Jan Kotas <jkotas@microsoft.com>

* apply code review suggestion

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
…OSArchitecture.ProcessArchitecture (#39196)

* don't aquite lock when calling RuntimeInformation.OSArchitecture and OSArchitecture.ProcessArchitecture

* make the arch fields volatile

* proper fix of the Unix code

* apply [SuppressGCTransition]
* WASM: Fix System.Diagnostics.TextWriterTraceListener tests

It was using Process.GetCurrentProcess() which throws PNSE on WebAssembly.

* PR feedback
* [Wasm] Disable System.Linq.Parallel test suite

dotnet/runtime#38942 seems to be failing more frequently, so the suite will be disabled until
we can provide a fix.

* Adding it to the skipped test list instead of an attribute

Co-authored-by: Steve Pfister <steve.pfister@microsoft.com>
* add ServerOptionsSelectionCallback to SslStream

* remove System.IO

* add missing file

* more tests

* feedback from review

* feedback from review

* skip SniSetVersion on win7

* fix IsNotWindows7

Co-authored-by: Tomas Weinfurt <furt@DESKTOP-SUKDQFN.corp.microsoft.com>
layomia and others added 19 commits July 21, 2020 12:23
…39716)

* Clean up code following JSON number handling and field support PRs

* Move IsValidNumberHandlingValue to better location
Disable tests that won't work on browser.
…ion (#39705)

This makes it much easier to rerun Crossgen(2) for a particular
framework assembly or for the framework composite build as opposed
to having to copy over the lengthy command line.

Thanks

Tomas
…9700)

* [runtime] Initialize the class if needed in type_is_blittable ().

Fixes dotnet/runtime#39100.

* Delete workarounds.
* Fix libraries outerloop builds

* Remove liveRuntimeBuildConfig from all configurations build to not make it wait for coreclr to run
Follow-up to dotnet/runtime#39659

Co-authored-by: Dan Moseley <danmose@microsoft.com>
* Move `GetLclOffs` to `Common`.

* Start using it.

* Review response.
* Transfer assets from Cross OS DAC builds into a pipeline container
* Preserve additional properties in subsets' projects
* Add packaging projects for Cross OS Dac assets
* Pipeline change to package, sign, and publish the cross OS DAC
…ml.XmlSerializer.Tests, and System.Security.Permissions.Tests test suites (#39767)
* Write the json as json

Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
…rastructure (#39749)

* Add runtimelab.yml for dotnet/runtimelab experiments CI and build infrastructure

* rename one of the ymls based on feedback
@joperezr
Copy link
Member Author

Ok I have now updated the branch with latest dotnet/runtime and will now queue manually a new CI build before merging:

https://dev.azure.com/dnceng/public/_build/results?buildId=743467&view=results

Will merge this once everything is green.

FYI: with this PR I manually added a change that deletes the CODEOWNERS file from the fork, and I did this so that future ingestions of dotnet/runtime won't trigger automatic reviewers.

@joperezr joperezr merged commit 8508a99 into dotnet:JsonCodeGen Jul 23, 2020
@joperezr joperezr deleted the runtime-ingestion branch July 23, 2020 22:51
scalablecory pushed a commit that referenced this pull request Sep 22, 2020
Lots of documentation changes and some fairly minor bug fixes and clean up.
runtimelab-bot pushed a commit that referenced this pull request May 18, 2021
…2769)

Transition to GC Unsafe mode on every MONO_RT_EXTERNAL_ONLY function in
reflection.c

In particular, fix mono_reflection_type_from_name which is used in
https://github.com/xamarin/xamarin-android/blob/681887ebdbd192ce7ce1cd02221d4939599ba762/src/monodroid/jni/embedded-assemblies.cc#L350

Fixes stack traces like

```
05-14 08:06:12.848 31274 31274 F DEBUG   :       #00 pc 00000b99  [vdso] (__kernel_vsyscall+9)
05-14 08:06:12.848 31274 31274 F DEBUG   :       #1 pc 0005ad68  /apex/com.android.runtime/lib/bionic/libc.so (syscall+40) (BuildId: 6e3a0180fa6637b68c0d181c343e6806)
05-14 08:06:12.848 31274 31274 F DEBUG   :       #2 pc 00076511  /apex/com.android.runtime/lib/bionic/libc.so (abort+209) (BuildId: 6e3a0180fa6637b68c0d181c343e6806)
05-14 08:06:12.848 31274 31274 F DEBUG   :       #3 pc 0002afcd  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonodroid.so (xamarin::android::internal::MonodroidRuntime::mono_log_handler(char const*, char const*, char const*, int, void*)+141) (BuildId: 9726f32ad5f8fa5e7c5762baf2f6e3294da41cc1)
05-14 08:06:12.848 31274 31274 F DEBUG   :       #4 pc 00112c5d  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonosgen-2.0.so (eglib_log_adapter+141) (BuildId: b67e93dd750dafdd6f65f408b021b6a3a74868ac)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #5 pc 00020fdf  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonosgen-2.0.so (monoeg_g_logv+175) (BuildId: b67e93dd750dafdd6f65f408b021b6a3a74868ac)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #6 pc 0002113a  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonosgen-2.0.so (monoeg_g_log+42) (BuildId: b67e93dd750dafdd6f65f408b021b6a3a74868ac)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #7 pc 00128892  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonosgen-2.0.so (mono_threads_transition_do_blocking+258) (BuildId: b67e93dd750dafdd6f65f408b021b6a3a74868ac)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #8 pc 0012a406  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonosgen-2.0.so (mono_threads_enter_gc_safe_region_unbalanced_with_info+134) (BuildId: b67e93dd750dafdd6f65f408b021b6a3a74868ac)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #9 pc 0012a27e  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonosgen-2.0.so (mono_threads_enter_gc_safe_region_internal+46) (BuildId: b67e93dd750dafdd6f65f408b021b6a3a74868ac)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #10 pc 000799a7  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonosgen-2.0.so (mono_loader_lock+71) (BuildId: b67e93dd750dafdd6f65f408b021b6a3a74868ac)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #11 pc 000447a1  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonosgen-2.0.so (mono_class_create_from_typedef+129) (BuildId: b67e93dd750dafdd6f65f408b021b6a3a74868ac)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #12 pc 0003c073  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonosgen-2.0.so (mono_class_get_checked+99) (BuildId: b67e93dd750dafdd6f65f408b021b6a3a74868ac)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #13 pc 0003cc0f  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonosgen-2.0.so (mono_class_from_name_checked_aux+735) (BuildId: b67e93dd750dafdd6f65f408b021b6a3a74868ac)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #14 pc 00037989  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonosgen-2.0.so (mono_class_from_name_checked+73) (BuildId: b67e93dd750dafdd6f65f408b021b6a3a74868ac)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #15 pc 000cc5f4  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonosgen-2.0.so (mono_reflection_get_type_internal+132) (BuildId: b67e93dd750dafdd6f65f408b021b6a3a74868ac)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #16 pc 000c9bce  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonosgen-2.0.so (mono_reflection_get_type_with_rootimage+126) (BuildId: b67e93dd750dafdd6f65f408b021b6a3a74868ac)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #17 pc 000ca204  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonosgen-2.0.so (_mono_reflection_get_type_from_info+292) (BuildId: b67e93dd750dafdd6f65f408b021b6a3a74868ac)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #18 pc 000ca06e  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonosgen-2.0.so (mono_reflection_type_from_name_checked+334) (BuildId: b67e93dd750dafdd6f65f408b021b6a3a74868ac)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #19 pc 000c9f01  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonosgen-2.0.so (mono_reflection_type_from_name+49) (BuildId: b67e93dd750dafdd6f65f408b021b6a3a74868ac)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #20 pc 0001b40b  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonodroid.so (xamarin::android::internal::EmbeddedAssemblies::typemap_java_to_managed(char const*)+427) (BuildId: 9726f32ad5f8fa5e7c5762baf2f6e3294da41cc1)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #21 pc 0001b551  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonodroid.so (xamarin::android::internal::EmbeddedAssemblies::typemap_java_to_managed(_MonoString*)+113) (BuildId: 9726f32ad5f8fa5e7c5762baf2f6e3294da41cc1)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #22 pc 000211a7  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonodroid.so (xamarin::android::internal::MonodroidRuntime::typemap_java_to_managed(_MonoString*)+39) (BuildId: 9726f32ad5f8fa5e7c5762baf2f6e3294da41cc1)
```
MichalStrehovsky added a commit to MichalStrehovsky/runtimelab that referenced this pull request Oct 15, 2021
runtimelab-bot pushed a commit that referenced this pull request Jun 22, 2022
* Initial implementation for contract customization

fix build errors

Move converter rooting to DefaultJsonTypeInfoResolver so that it can be used standalone

Fix ConfigurationList.IsReadOnly

Minor refactorings (#1)

* Makes the following changes:

* Move singleton initialization for DefaultTypeInfoResolver behind a static property.
* Consolidate JsonSerializerContext & IJsonTypeInfoResolver values to a single field.
* Move reflection fallback logic away from JsonSerializerContext and into JsonSerializerOptions

* Update src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializerOptions.cs

* remove testing of removed field

Simplify the JsonTypeInfo.CreateObject implemenetation (#2)

* Simplify the JsonTypeInfo.CreateObject implemenetation

* Update src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Metadata/JsonTypeInfoOfT.cs

* Update src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Metadata/JsonTypeInfoOfT.cs

Co-authored-by: Krzysztof Wicher <mordotymoja@gmail.com>

Co-authored-by: Krzysztof Wicher <mordotymoja@gmail.com>

Tests and fixes for JsonTypeInfoKind.None

TypeInfo type mismatch tests

Allow setting NumberHandling on JsonTypeInfoKind.None

test resolver returning wrong type of options

JsonTypeInfo/JsonPropertyInfo mutability tests

rename test file

Move default converter rooting responsibility behind DefaultJsonTypeInfoResolver (#3)

* Move default converter rooting responsibility behind DefaultJsonTypeInfoResolver

* address feedback

Add simple test for using JsonTypeInfo<T> with APIs directly taking it

fix and tests for untyped/typed CreateObject

uncomment test cases, remove todo

More tests and tiny fixes

Add a JsonTypeInfoResolver.Combine test for JsonSerializerContext (#4)

* Fix JsonTypeInfoResolver.Combine for JsonSerializerContext

* Break up failing test

Fix simple scenarios for combining contexts (#6)

* Fix simple scenarios for combining contexts

* feedback

JsonSerializerContext combine test with different camel casing

Remove unneeded virtual calls & branching when accessing Get & Set delegates (#7)

JsonPropertyInfo tests everything minus ShouldSerialize & NumberHandling

Update src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonConverterOfT.cs

Update src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonConverterOfT.cs

throw InvalidOperationException rather than ArgumentNullException for source gen when PropertyInfo.Name is assigned through JsonPropertyInfoValues

tests for duplicated property names and JsonPropertyInfo.NumberHandling

Add tests for NumberHandling and failing tests for ShouldSerialize

disable the failing test and add extra checks

disable remainder of the failing ShouldSerialize tests, fix working one

Fix ShouldSerialize and IgnoreCondition interop

Add failing tests for CreateObject + parametrized constructors

Fix CreateObject support for JsonConstructor types (#10)

* Fix CreateObject support for JsonConstructor types

* address feedback

Make contexts more combinator friendly (#9)

* Make contexts more combinator friendly

* remove converter cache

* redesign test to account for JsonConstructorAttribute

* Combine unit tests

* address feedback

* Add acceptance tests for DataContract attributes & Specified pattern (#11)

* Add private field serialization acceptance test (#13)

* tests, PR feedback (#14)

* PR feedback and extra tests

* Shorten class name, remove incorrect check (not true for polimorphic cases)

* Make parameter matching for custom properties map property Name with parameter (#16)

* Test static initialization with JsonTypeInfo (#17)

* Fix test failures and proper fix this time (#18)

* Fix test failures and proper fix this time

* reinstate ActiveIssueAttribute

* PR feedback and adjust couple of tests which don't set TypeInfoResolver

* fix IAsyncEnumerable tests

* Lock JsonSerializerOptions in JsonTypeInfo.EnsureConfigured()

Co-authored-by: Eirik Tsarpalis <eirik.tsarpalis@gmail.com>

Co-authored-by: Eirik Tsarpalis <eirik.tsarpalis@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.