- 24 3月, 2021 4 次提交
-
-
由 Anirudh Agnihotry 提交于
-
由 dotnet-maestro[bot] 提交于
[main] Update dependencies from dotnet/xharness dotnet/llvm-project
-
由 Omair Majid 提交于
-
由 Kevin Jones 提交于
-
- 23 3月, 2021 35 次提交
-
-
由 Michal Strehovský 提交于
In #49925 I blindly followed the existing pattern but the existing pattern was wrong because with that we get failing tests: ``` System.InvalidOperationException : No data found for System.Tests.EnumTests.IsDefined_UnsupportedEnumType_ThrowsInvalidOperationException ```
-
由 Michal Strehovský 提交于
As the comment says - this behavior goes against the spec. Fixes #49756.
-
由 Jo Shields 提交于
-
由 Michal Strehovský 提交于
Deleted the HResults.S_OK and HResults.S_FALSE cases because those are handled by the caller. Didn't touch anything otherwise.
-
由 Stephen Toub 提交于
* Enable CA1052 (static holder types should be static) * Fix a few additional warnings in 'all configurations'
-
由 Johan Lorensson 提交于
Restructuring of existing DiagnosticServer PAL code into following: Win32 named pipe support for local IPC is renamed to ds-ipc-pal-namedpipe.h|c Unix domain socket support for local IPC is part of more generic socket support ds-ipc-pal-socket.h|c By default all builds and run as before, win32 uses named pipe for local IPC and none Windows uses Unix domain sockets. This PR extends support in ds-ipc-pal-socket.* to also support TCP (IPv4/IPv6) transports cross platform, meaning that its possible to configure and compile DiagnosticServer using TCP instead of NamedPipe/Unix Domain Sockets for both listener and connect scenarios. TCP support will be needed in order to support EventPipe on remote targets like mobile, but then most likely only supporting the connect scenario (no listener support) and only for builds used during development/testing and profiling work, but all is completely configurable. PR adds a couple of build config flags that could be used: FEATURE_PERFTRACING_PAL_TCP Enables TCP/IP support in diagnostics server on all platforms, instead of default named pipe/unix domain socket support. FEATURE_PERFTRACING_DISABLE_CONNECT_PORTS Disables ability for diagnostic server to connect against remote ports. FEATURE_PERFTRACING_DISABLE_LISTEN_PORTS Disables ability for diagnostic server to listen on local ports. By default none of the above config flags are used by this PR, but for some Mono runtime workloads we will need TCP/IP and connect ports (listen ports can be disabled).
-
由 Kevin Jones 提交于
This helps the chain builder to not confuse which certificates should be used in the chain by using unique names for each test.
-
由 Elinor Fung 提交于
-
由 Eirik Tsarpalis 提交于
-
由 Stephen Toub 提交于
-
由 Stephen Toub 提交于
-
由 David Cantú 提交于
* don't verify OS handle position * track the file offset in memory, don't use expensive syscalls to synchronize it * there is no need to set the Length since we are now tracking the offset in memory * Cache GetFileInformationByHandleEx (Length) when FileShare does not allow other processes to modify it Co-authored-by: NAdam Sitnik <adam.sitnik@gmail.com>
-
由 Jo Shields 提交于
-
由 Zoltan Varga 提交于
* [mono] Add a FRAME_TYPE_INTERP_ENTRY frame type to the unwinder, it marks the location where execution transfers to the interpreter. * [mono] Stop first pass exception handling when exiting the interpreter in llvmonly mode. Otherwise, you could end up with the following situation: - [1] interpreted frame - [2] AOTed frame catching the exception - [3] interpreted frame catching the same exception The EH code would think frame [3] caught the exception, setting up interpreter state for resuming there, but frame [2] would catch the exception, so the exception state in the interpreter would not be cleared, leading to an assert in interp_entry (). Fixes https://github.com/dotnet/runtime/issues/47334.
-
由 Sung Yoon Whang 提交于
-
由 Bruce Forstall 提交于
-
由 Steve Pfister 提交于
-
由 Eric Erhardt 提交于
This suppression is necessary because we don't have access to the Xamarin and Mono libraries that are used by System.Net.Http. Contributes to #45623
-
由 David Fowler 提交于
* Remove some allocations related to logging configuration - Today we allocate enumerators when enumerating custom attributes, this changes a for loop into a foreach and removes the inner foreach loop. * Remove enumerator allocation from rules selector * Make condition clearer * Update src/libraries/Microsoft.Extensions.Logging/src/LoggerFilterOptions.cs Co-authored-by: NJonas Nyrup <78789299+jn-foreflight@users.noreply.github.com> Co-authored-by: NStephen Toub <stoub@microsoft.com> Co-authored-by: NJonas Nyrup <78789299+jn-foreflight@users.noreply.github.com>
-
由 Elinor Fung 提交于
-
由 Eric Erhardt 提交于
* Resolve ILLink warnings in System.ComponentModel.TypeConverter (Round 3) Contributes to #45623 * Mark GetProperties as RequiresUnreferencedCode. PropertyDescriptors are not trim compatible because we can't guarantee the PropertyType is annotated as DynamicallyAccessedMembers.All. * Mark GetConverter as RequiresUnreferencedCode. NullableConverter requires the underlying type to be annotated with DynamicallyAccessedMembers.All, but it cannot be statically annotated. * Mark GetDefaultEvent and GetDefaultProperty as RequiresUnreferencedCode. GetDefaultProperty is not trim compatible because it calls GetProperties, which isn't trim compatible since the PropertyType can't be annotated. GetDefaultEvent can technically be considered trim compatible when not passing in an object "instance" and only a Type. But this would require trim warning suppressions which aren't worth the risk since most of ICustomTypeDescriptor is already RequiresUnreferencedCode.
-
由 Elinor Fung 提交于
Include build configuration in error message about missing artifacts
-
由 Bruce Forstall 提交于
Currently failing in jitstress2_jitstressregs3 configuration. Issue: https://github.com/dotnet/runtime/issues/48892
-
由 Larry Ewing 提交于
* Reenable windows mono-aot-cross and disable the optimizer for Browser builds * remove the llvmoptimizer change * Don't disable `MonoBundleLLVMOptimizer` when building on Windows and building crosscompiler only. * Fix the right condition Co-authored-by: NRadek Doulik <radekdoulik@gmail.com>
-
由 Jeremy Koritzinsky 提交于
* Skip whitespace bytes at the start of cert byte blobs. This enables support for PEM-formatted certs prepended with whitespace. * Handle non-whitespace explanatory text. * PR feedback. * Bail early if we don't have enough space to find a header. Run formatting.
-
由 Jo Shields 提交于
On Apple Silicon, the command `arch -x86_64 XYZ` allows executing XYZ as if on an AMD64 CPU, rather than an ARMv8 CPU, for cases where both are possible (e.g. a shell script like build.sh). The deleted lines of code bypass the lies `arch` writes into uname, and instead forcibly detects the true nature of the host system's CPU regardless of whether or not the developer has reasons to lie. Whilst this trick was important in the early days of bringing up Apple Silicon support, it should hopefully now be obsolete. This fixes linking of LLVM in Mono runtime builds, where `arch -x86_64 ./build.sh -arch x64` would still attempt to link against ARM64 LLVM.
-
由 Radek Doulik 提交于
Fix build on windows in folders containing space(s) in the name and also in case where `EMSDK_PATH` contains space(s). * Add few quotes To fix windows build in directory containing spaces. * Add quotes around link attributes paths * More quotes and trimming * More improvements related to EMSDK_PATH * Use immediate set for EMSCRIPTEN_VERSION * Do not set ExeExt twice * Force ninja on Browser/windows And check for cmake and ninja in CheckEnv * Apply Ankit's quotation changes * Simplify forcing wasm, fix typos * Use -File instead of & "<ps1 script>" * Fix typo * Only add the escaped quotes on windows Co-authored-by: NAnkit Jain <radical@gmail.com>
-
由 Anirudh Agnihotry 提交于
* use packages instead of package report for packageInstallation and closure verification * add the package dependency * correct the names * excluding freebsd from testing * Update Versions.props * update the package versions, add support for exclude pakcages and packages to test * update the package validation version * Make package testing work indepent of version * testpackages -> testpackagesPath * fix restore or when no packages are produced * correct the no packages produced condition * use regex instead of major version
-
由 Bruce Forstall 提交于
* Fix DEBUG/non-DEBUG asm diffs due to instruction group size estimation This change fixes a long-existing difference between DEBUG and non-DEBUG codegen that recently manifest as asm diffs in instruction encoding in a Checked/Release SuperPMI run, mostly in the tests\JIT\Directed\arglist\vararg.cs test, specifically: ``` NativeVarargTest.VarArg:TestPassingManyFloats(System.Double[]):bool NativeVarargTest.VarArg:TestPassingManyDoublesManaged(System.Double[]):bool NativeVarargTest.VarArg:TestPassingManyDoubles(System.Double[]):bool NativeVarargTest.VarArg:TestPassingManyFloatsManaged(System.Single[]):bool double1:ProcessJagged3DArray(System.Double[][]) `` Example diff: ``` 215c7758454: 76 6a jbe 106 // checked 215c77b8ab4: 0f 86 6a 00 00 00 jbe 106 // release ``` Note that the offset ends up exactly the same, but the encoding is different. Some context on the emitter: The emitter collects generated machine instructions as a set of variable-sized `instrDesc` structures in instruction groups (IG, or `insGroup`). An IG is filled with a variable number of instrDescs into a fixed-sized buffer, which, when full or a new label (e.g., branch target) is encountered, is copied to dynamically allocated precise-sized memory for the set of instructions collected. If a BasicBlock required more instructions than fit in a single IG, multiple IG are generated, and the ones besides the first are marked with the IGF_EXTEND flag, called "emitAdd" or overflow IG. After codegen, all the IG are filled, and we have an estimated size for each instruction, and each IG has an estimated code offset from the beginning of the function. The estimated sizes could be wrong if we incorrectly estimated the size of an instruction (which in most cases could be considered a bug, but is particularly common with our Intel vector instructions currently) or the offset required for a branch (especially a forward branch). The JIT only does a single pass of branch tightening, so could have some cases of non-optimal estimates. Note that estimates are required to be too large; it is fatal for an estimate to be too small. During emission, we walk the IG list and instructions, encoding them into the memory buffer provided by the VM. At this point, we might shrink an instruction encoding, possibly because we can use a smaller branch encoding that expected. Notably, the size of instrDescs and insGroups varies between DEBUG and non-DEBUG builds. That means that the number of instrDescs that fit in an IG differs. This should have no effect on generated code, as long as code properly handles overflow IG and doesn't affect codegen based on IG size or number of contained instructions. The problem: During emission, we calculate an "offset adjustment" (in `emitOffsAdj`) that is used to estimate the distance from a forward jump instruction to its target. This determines the size of jump instruction encodings that we emit. For example, on x86/x64, a relative conditional branch can have a 1 byte or a 4 byte target offset. A 1-byte offset can be used if the target instruction is 127 bytes or fewer away. So, we estimate the distance using the jump instruction's known offset and the estimated offset of the target, which is the estimated offset of the instruction group (the label) calculated before emission minus the "shrinkage" of instruction sizes that we've seen so far. This "shrinkage" is due to over-estimation of instruction encoding sizes and branch estimated sizes. The shrinkage in `emitOffsAdjs` is only computed at the beginning of an IG. As additional instructions in an IG shrink, we don't take that into account when we reach a forward jump instruction and try to determine if a "small" branch encoding can be used. Thus, it's possible for a branch to be estimated to require a large 4-byte offset instead of a 1-byte offset because the forward branch is barely over the limit, but wouldn't be if we considered the already-shrunk instructions in the current IG. In fact, the more instructions that shrink in an IG, the larger our target offset estimate becomes, because the source instruction address is precise (since we know precisely how many bytes of instructions we've emitted), but the target offset estimate is fixed. Due to the different number of instructions in an IG between DEBUG and non-DEBUG builds, the estimate we use for a target offset for any particular branch, given enough instruction shrinkage and overflowing IG (such that there are a different number of IG between DEBUG and non-DEBUG) is different. This leads to different instruction encoding between the flavors. The solution: The solution is simple: track instruction shrinkage as we emit instructions, and use the latest, most accurate shrinkage adjustment when estimating branches. This gives no difference between DEBUG and non-DEBUG because it removes the indirect dependence on IG instruction count in recomputing `emitOffsAdj`. There are asm diffs (with just a Checked x64 JIT compared to baseline Checked JIT) due to some branches now being SHORT where previously they were LONG. * Add assert
-
由 Bruce Forstall 提交于
Both `compInit` and `compCompile` were initializing the method/class/full name strings. The call to `eeGetMethodFullName` is not cheap, and shows up high on a SuperPMI replay trace. Remove the duplicate initialization in `compCompile`. Speeds up SuperPMI replay and asm diffs.
-
由 Bruce Forstall 提交于
Fix potential Checked/Release issue. Remove default arg to emitLoopAlign to make calls more explicit.
-
由 Drew Scoggins 提交于
-
由 Bruce Forstall 提交于
-
由 Jo Shields 提交于
-
由 Jan Kotas 提交于
-
- 22 3月, 2021 1 次提交
-
-
由 Fan Yang 提交于
* Add new Mono embedding API to consume binary runtimeconfig format * Merge properties * Remove redundant macro * Move string process to the install function * Check if runtime_config_arg exist * Move file processing to install function * Update src/mono/mono/metadata/appdomain.c Co-authored-by: NAleksey Kliger (λgeek) <akliger@gmail.com> * Update src/mono/mono/metadata/appdomain.c Co-authored-by: NAleksey Kliger (λgeek) <akliger@gmail.com> * Update src/mono/mono/metadata/appdomain.c Co-authored-by: NAleksey Kliger (λgeek) <akliger@gmail.com> * Update src/mono/mono/metadata/appdomain.c Co-authored-by: NRyan Lucia <ryan@luciaonline.net> * Update src/mono/mono/metadata/appdomain.c Co-authored-by: NRyan Lucia <ryan@luciaonline.net> * Update src/mono/mono/metadata/appdomain.c Co-authored-by: NRyan Lucia <ryan@luciaonline.net> * Update src/mono/mono/metadata/appdomain.c Co-authored-by: NRyan Lucia <ryan@luciaonline.net> * Update src/mono/mono/metadata/appdomain.c Co-authored-by: NRyan Lucia <ryan@luciaonline.net> * Update src/mono/mono/metadata/appdomain.c Co-authored-by: NRyan Lucia <ryan@luciaonline.net> * Update src/mono/mono/metadata/appdomain.c Co-authored-by: NRyan Lucia <ryan@luciaonline.net> * Remove redundant intermediate copy * Remove extra memory allocation * Update src/mono/mono/mini/mono-private-unstable.h Co-authored-by: NRyan Lucia <ryan@luciaonline.net> Co-authored-by: NAleksey Kliger (λgeek) <akliger@gmail.com> Co-authored-by: NRyan Lucia <ryan@luciaonline.net>
-