-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Remove remaining CRT PAL wrappers and enable including standard headers in the CoreCLR build #98336
Conversation
5b3ac09
to
876a02d
Compare
Diff results for #98336Throughput diffsThroughput diffs for linux/arm64 ran on windows/x64Overall (+0.02% to +0.05%)
MinOpts (+0.00% to +0.02%)
FullOpts (+0.02% to +0.06%)
Throughput diffs for linux/x64 ran on windows/x64Overall (-0.00% to +0.04%)
MinOpts (-0.03% to +0.08%)
FullOpts (-0.00% to +0.04%)
Throughput diffs for osx/arm64 ran on windows/x64Overall (+0.02% to +0.05%)
MinOpts (+0.00% to +0.03%)
FullOpts (+0.02% to +0.06%)
Throughput diffs for windows/arm64 ran on windows/x64Overall (+0.02% to +0.05%)
MinOpts (+0.00% to +0.02%)
FullOpts (+0.02% to +0.06%)
Throughput diffs for windows/x64 ran on windows/x64Overall (+0.00% to +0.04%)
MinOpts (-0.02% to +0.09%)
FullOpts (+0.00% to +0.04%)
Details here Throughput diffs for linux/arm ran on linux/x86Overall (+0.04% to +0.07%)
MinOpts (+0.05% to +0.09%)
FullOpts (+0.04% to +0.07%)
Throughput diffs for windows/x86 ran on linux/x86Overall (+0.05% to +0.08%)
MinOpts (+0.00% to +0.09%)
FullOpts (+0.06% to +0.09%)
Details here |
Diff results for #98336Throughput diffsThroughput diffs for linux/arm64 ran on windows/x64Overall (+0.02% to +0.05%)
MinOpts (+0.00% to +0.03%)
FullOpts (+0.02% to +0.06%)
Throughput diffs for linux/x64 ran on windows/x64Overall (-0.00% to +0.04%)
MinOpts (-0.02% to +0.08%)
FullOpts (-0.00% to +0.04%)
Throughput diffs for osx/arm64 ran on windows/x64Overall (+0.02% to +0.05%)
MinOpts (+0.00% to +0.02%)
FullOpts (+0.02% to +0.06%)
Throughput diffs for windows/arm64 ran on windows/x64Overall (+0.02% to +0.05%)
MinOpts (+0.00% to +0.02%)
FullOpts (+0.02% to +0.06%)
Throughput diffs for windows/x64 ran on windows/x64Overall (+0.00% to +0.04%)
MinOpts (-0.02% to +0.08%)
FullOpts (-0.00% to +0.04%)
Details here Throughput diffs for linux/arm ran on windows/x86Overall (+0.04% to +0.07%)
MinOpts (+0.05% to +0.09%)
FullOpts (+0.04% to +0.07%)
Throughput diffs for windows/x86 ran on windows/x86Overall (+0.05% to +0.08%)
MinOpts (+0.00% to +0.09%)
FullOpts (+0.06% to +0.08%)
Details here |
Diff results for #98336Throughput diffsThroughput diffs for linux/arm ran on windows/x86Overall (+0.04% to +0.07%)
MinOpts (+0.05% to +0.09%)
FullOpts (+0.04% to +0.07%)
Throughput diffs for windows/x86 ran on windows/x86Overall (+0.05% to +0.08%)
MinOpts (+0.00% to +0.09%)
FullOpts (+0.06% to +0.08%)
Details here |
…AL features that would need global cleanup before process exit.
…d in a zero size to bump it to 1 manually on all platforms.
…ere using it through the define.
…ing impl and maintain PAL logging
…ning on GCC that catches more cases than Clang, at least for now
4079ebd
to
16a04e0
Compare
@janvorli any more feedback on this PR? |
I'm taking a last look now. |
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.
LGTM modulo the comment.
src/coreclr/debug/inc/dbgipcevents.h
Outdated
@@ -768,7 +768,7 @@ class MSLAYOUT VMPTR_Base | |||
// | |||
// Operators to emulate Pointer semantics. | |||
// | |||
bool IsNull() { SUPPORTS_DAC; return m_addr == NULL; } | |||
bool IsNull() { SUPPORTS_DAC; return m_addr == (TADDR)NULL; } |
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.
@jkoritzinsky can you please change this the way @jkotas suggested?
/ba-g Timeouts look like the slow mac issue, all with non-CoreCLR runtimes. |
Amazing. I never thought this would happen. Could (should) someone convert the JIT from the jitstd implementations of Is there guidance about what parts of the STL can and can't be used? |
Not at present, but we need to avoid cases where exceptions are thrown. This means no STL collections should be used in the product. Using in tests is fine, but we need to make sure the code isn't shared in some non-obvious manner. If someone wanted to use the STL collections the first step would be to write a custom allocator so we can control the failure mode. Ideally we would typedef all the STL collections to be something like My preference, no way to enforce this, would be for me and a group of others to be added to PRs where new uses of the STL are used. After a while we will all agree on approved patterns and then we can document them appropriately. |
I'll work on a doc for guidance for STL usage with some useful typedefs. |
…code` when building on debug mode on loongarch64/arm64/amd64-linux by clang<=13. Also delete `#ifndef FALLTHROUGH` block as dotnet#98336 added after dotnet#98712.
…code` when building on debug mode on loongarch64/arm64/amd64-linux by clang<14. Also delete `#ifndef FALLTHROUGH` block as dotnet#98336 added after dotnet#98712.
…code` when building on debug mode on loongarch64/arm64/amd64-linux by clang<14. Also delete `#ifndef FALLTHROUGH` block as dotnet#98336 added after dotnet#98712.
…code` when building on debug mode on loongarch64/arm64/amd64-linux by clang<14. Also delete `#ifndef FALLTHROUGH` block as dotnet#98336 added after dotnet#98712.
…code` when building on debug mode on loongarch64/arm64/amd64-linux by clang<14. Also delete `#ifndef FALLTHROUGH` block as dotnet#98336 added after dotnet#98712.
…code` when building on debug mode on loongarch64/arm64/amd64-linux by clang<14. Also delete `#ifndef FALLTHROUGH` block as dotnet#98336 added after dotnet#98712.
…code` when building on debug mode on loongarch64/arm64/amd64-linux by clang<14. Also delete `#ifndef FALLTHROUGH` block as dotnet#98336 added after dotnet#98712.
…rs in the CoreCLR build (dotnet#98336) - Remove malloc-family PAL and update callsites that might get passed 0 to bump up to 1. - Move `getenv` usage to use the `PAL` function directly when on non-Windows (to preserve the existing behavior). - Remove other remaining CRT PAL shims - Remove header shims and enable building with the CRT and STL headers across the product, with various build fixes required (mostly around using the standard min/max definitions)
…code` (dotnet#100742) when building on debug mode on loongarch64/arm64/amd64-linux by clang<14. Also delete `#ifndef FALLTHROUGH` block as dotnet#98336 added after dotnet#98712.
Depends on #98238getenv
usage to use thePAL
function directly when on non-Windows (to preserve the existing behavior).