Uh oh!
There was an error while loading. Please reload this page.
fix warnings in coreclr/jit/compiler.cpp for non-Windows targets - #104805
fix warnings in coreclr/jit/compiler.cpp for non-Windows targets#104805dicej wants to merge 1 commit into
Conversation
4ebf660 to
760f3dbCompare
SingleAccretion
left a comment
There was a problem hiding this comment.
@dotnet/jit-contrib
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
760f3db to
94ffdeeCompareThis change was extracted from dotnet/runtimelab#2614, which includes various fixes to enable building on non-Windows systems. We're in the process of upstreaming the parts of that PR which are not specific to NativeAOT-LLVM, and this is the latest such change. Note that I left a TODO comment in `DisplayNowayAssertMap` since I'm not sure how to print a `LPCWSTR` using `fprintf` on non-Windows systems, but it's clear that the existing code is not portable given the difference between `wchar_t` on Windows (where it's 16 bits) and other systems (where it's usually 32 bits). Signed-off-by: Joel Dice <joel.dice@fermyon.com>
94ffdee to
250a96fCompareThis borrows from dotnet/runtime#104805 Signed-off-by: Joel Dice <joel.dice@fermyon.com>
This borrows from dotnet/runtime#104805 Signed-off-by: Joel Dice <joel.dice@fermyon.com>
JulieLeeMSFT
commented
Aug 5, 2024
We will review it next week and merge as .NET 10. |
JulieLeeMSFT
commented
Sep 3, 2024
@EgorBo, please review the community PR. |
| if (fout == nullptr) | ||
| { | ||
| #if !defined(HOST_WINDOWS) | ||
| // TODO: how do we print a `const char16_t*` portably? |
There was a problem hiding this comment.
There are a lot more %ws in the jit codebase, why this one specifically is removed?
There was a problem hiding this comment.
e.g.
JITDUMP("Trying to unroll MemoryExtensions.Equals|SequenceEqual|StartsWith(op1, \"%ws\")...\n", str)There was a problem hiding this comment.
This is the only one the compiler complained about when building NativeAOT-LLVM on non-Windows systems. I haven't dug into why that is, but my guess is that either other cases of %ws aren't included in the NativeAOT-LLVM build, or else they're being used with expressions which are of type wchar_t* rather than char16_t*; the former is portable when used with %ws, but the latter is not.
There was a problem hiding this comment.
The reason this doesn't warn in other cases is because they are JITDUMPs, which compile down to logfs, which the compiler doesn't recognize as a printf-style function. I wonder if these other usages actually work properly on not-Windows.
EgorBo
commented
Sep 9, 2024
Perhaps, @AaronRobinsonMSFT@jkoritzinsky know? |
AaronRobinsonMSFT
commented
Sep 9, 2024
We don't support that at present and it should be avoided. Convert to UTF-8 and log or display to prompt. I assume this is a non-product scenario, which means conversions should be performed or in the ideal case everything done in UTF-16 and then converted a single time. If this is a product scenario, we should discuss this. |
JulieLeeMSFT
commented
Oct 21, 2024
@dicej, please feel free to reach out to us if you need help on how to do this conversion. |
dicej
commented
Nov 5, 2024
Sorry for the late reply. I guess I do need some guidance on how to do this in a way that would be acceptable for this PR. Is there an existing UTF-16-to-UTF-8 converter in the .NET codebase I could call? I see there's a I imagine that the user will only see sane output for non-ASCII characters if they're using a terminal and locale compatible with UTF-8, correct? I guess the "right" way to do this would be to check |
jakobbotsch
commented
Nov 5, 2024
Note that #109418 will subsume this PR, so at this point you might just consider waiting for that one. |
dicej
commented
Nov 5, 2024
Closing this per @jakobbotsch's comment above. |
jakobbotsch
commented
Nov 14, 2024
Actually, looking at this PR again, there are still a few non-UTF16 related changes here that #109418 did not subsume. Do you mind updating this PR to just resolve those? |
dicej
commented
Nov 14, 2024
GitHub wouldn't let me re-open this after rebasing, so I opened a new one: #109830 |
This change was extracted from dotnet/runtimelab#2614, which includes various fixes to enable building on non-Windows systems. We're in the process of upstreaming the parts of that PR which are not specific to NativeAOT-LLVM, and this is the latest such change.
Note that I left a TODO comment in
DisplayNowayAssertMapsince I'm not sure how to print aLPCWSTRusingfprintfon non-Windows systems, but it's clear that the existing code is not portable given the difference betweenwchar_ton Windows (where it's 16 bits) and other systems (where it's usually 32 bits).