-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Ecma edit for conv.ovf.<to type>.un
.
#56450
Conversation
/azp run runtime-coreclr outerloop |
Azure Pipelines successfully started running 1 pipeline(s). |
@sandreenko I'd like to have a discussion here about the behavior of conversion of floating point numbers to integers where the conversion is outside of the range of the destination integer type. We have had customer reports of problems due to inconsistencies here between behavior on x86/x64/arm/arm64, and I'd like for us to revisit what we do here. I did some research last year, and my personal preference is to follow the arm64 model of conversions long term, but that is a possibly breaking change everywhere. |
Yes, I remember that and your test with different models, the new test added in this PR will need to be updated once the |
/azp run runtime-coreclr outerloop |
Azure Pipelines successfully started running 1 pipeline(s). |
looks like this test exposes an unknown issue on arm64 Linux/Osx. Looking. |
0b53d4c
to
bc184e9
Compare
/azp run runtime-coreclr outerloop |
Azure Pipelines successfully started running 1 pipeline(s). |
I have disabled the bad Jit optimization for this test and the PR should be ready for merge. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please adjust the Ecma changes as requested.
Edit rule 12 to specify that "The method signature defined by *MethodBody* shall match those defined by *MethodDeclaration* exactly if *MethodDeclaration* defines a method on an interface or be *covariant-return-compatible-with* (§I.8.7.1) if *MethodDeclaration* represents a method on a class." | ||
|
||
### III.3.19, conv.ovf.to type.un (page 354) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be put into a new section describing feature area. Effectively, each set of changes to the Ecma standard describes what the general impact is, and then there is the modification to the actual standardese. As it is this work is appended onto the covariant return types work, but really should be in its own chunk.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see, I have added a new chapter and tried to add a justification for the change. I have not found a template for this, looks like different chapters are organized differently, please tell me if you want me to add issue numbers, link to the current standard, or something else.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
minor feedback to make it appropriate in rich-text mode.
<Project Sdk="Microsoft.NET.Sdk"> | ||
<PropertyGroup> | ||
<OutputType>Exe</OutputType> | ||
<CLRTestPriority>1</CLRTestPriority> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@sandreenko I think you've already taken note of this, but I believe the reason CI has been green so far is because the outerloop has only been triggered for CoreCLR, and not Mono. Not sure what is the best course of action here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes, thanks for reminding me. I have not found a pipeline that runs outerloop on mono. Do we run them there nowadays?
…ger_proxy_attribute * origin/main: disable token info in traces. (dotnet#56780) [debugger] Fix debugger.break behavior (dotnet#56788) [mono][wasm] Allow setting env variables with '=' characters in the test runner. (dotnet#56802) Ecma edit for `conv.ovf.<to type>.un`. (dotnet#56450) Mark HandleProcessCorruptedStateExceptionsAttribute as obsolete (dotnet#56664) Enable SxS install of previews on Mac OS (dotnet#56797) CoreCLR runtime tests + Mono on the x64 iOS simulator (dotnet#43954) [main] Update dependencies from mono/linker (dotnet#56593) STJ: Fix deserialization of UInt16 properties (dotnet#56793)
Edit ECMA description for ovf.un conversion when the source is a floating-point type.
Add a test for this conv table parts:
Question: Have not we had a conformance test for it already?
I have found only a small coverage in https://github.com/dotnet/runtime/tree/main/src/tests/JIT/IL_Conformance/Old/Conformance_Base without tests for
.ovf
andovf.un
.Closes #53189, the test will probably fail on mono. I will disable it there after CI confirms it.