Skip to content

Mono: Replace exception strings with those stored in the resx file (#34056) - #78341

Merged
akoeplinger merged 25 commits into
dotnet:mainfrom
databunks:main
Mar 23, 2023
Merged

Mono: Replace exception strings with those stored in the resx file (#34056) #78341
akoeplinger merged 25 commits into
dotnet:mainfrom
databunks:main

Conversation

@databunks

@databunksdatabunks commented Nov 14, 2022

Copy link
Copy Markdown
Contributor

Fixes#34056

@ghost

Copy link
Copy Markdown

I couldn't figure out the best area label to add to this PR. If you have write-permissions please help me learn by adding exactly one area label.

@ghostghost added the community-contribution Indicates that the PR has been added by a community member label Nov 14, 2022
@dnfadmin

dnfadmin commented Nov 14, 2022

Copy link
Copy Markdown

CLA assistant check
All CLA requirements met.

@AaronRobinsonMSFT

Copy link
Copy Markdown
Member

/cc @lambdageek@vargaz

@vargaz

Copy link
Copy Markdown
Contributor

Looks ok to me.

Comment threadsrc/mono/System.Private.CoreLib/src/System/TypeSpec.cs Outdated
Fixed 2nd parameter for argumentExceptions
@jkoritzinsky

Copy link
Copy Markdown
Member

Can we switch all of the string.Format calls to SR.Format?

@databunks

databunks commented Nov 15, 2022

Copy link
Copy Markdown
ContributorAuthor

Can we switch all of the string.Format calls to SR.Format?

@jkoritzinsky

Is this just in the path:
/src/mono/System.Private.CoreLib ??

@jkoritzinsky

Copy link
Copy Markdown
Member

Yeah only within your change.

string.format -> SR.Format
Comment threadsrc/mono/System.Private.CoreLib/src/System/ModuleHandle.cs Outdated
Comment threadsrc/mono/System.Private.CoreLib/src/System/Reflection/RuntimeFieldInfo.cs Outdated
Comment threadsrc/mono/System.Private.CoreLib/src/System/Reflection/RuntimeModule.cs Outdated
jkotas
jkotas previously requested changes Nov 20, 2022

@jkotasjkotas left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There seems to be a lot of opportunities in de-duplicating the new error strings with the existing error strings. I have commented on some, but there is certainly more.

The easy way to do the deduplication is to build a small program that hits the error path, run it on CoreCLR and see what error it produces in that case.

Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/mono/System.Private.CoreLib/src/System/RuntimeTypeHandle.cs Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/mono/System.Private.CoreLib/src/System/Reflection/RuntimeFieldInfo.cs Outdated
@ghostghost added the needs-author-action An issue or pull request that requires more info or actions from the author. label Nov 20, 2022
@ghostghost removed the needs-author-action An issue or pull request that requires more info or actions from the author. label Nov 21, 2022
@databunks

databunks commented Nov 21, 2022

Copy link
Copy Markdown
ContributorAuthor

There seems to be a lot of opportunities in de-duplicating the new error strings with the existing error strings. I have commented on some, but there is certainly more.

The easy way to do the deduplication is to build a small program that hits the error path, run it on CoreCLR and see what error it produces in that case.

@jkotas

Would a way to do it be like:

have a script which iterates through all of the exception strings in the .resx file
e.g: Arg_Enc (inside resx) -> find SR.Arg_Enc in the path ./src/mono/System.Private.CoreLib

If true dont remove, else remove??

and ill make a backup just in case

then run the build see if theres any missing references

@jkotas

Copy link
Copy Markdown
Member

have a script which iterates through all of the exception strings in the .resx file

I do not think you can script it. The error messages are not exactly the same. You need to be looking for same meaning that can be only done by humans (or AI).

@databunks
databunks requested review from jkotas and removed request for marek-safarNovember 23, 2022 19:02
@databunks

Copy link
Copy Markdown
ContributorAuthor

have a script which iterates through all of the exception strings in the .resx file

I do not think you can script it. The error messages are not exactly the same. You need to be looking for same meaning that can be only done by humans (or AI).

ok thanks ill look into it
(also didnt mean to re-request review sorry)

Comment threadsrc/mono/System.Private.CoreLib/src/System/TypeLoadException.Mono.cs Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
@danmoseley

danmoseley commented Mar 20, 2023

Copy link
Copy Markdown
Contributor

Not related to this change, but I see some ApplicationException and base Exception getting thrown, which we generally don't throw, does CLR throw the same in these cases?
(Don't change this PR for that, just curious)

@akoeplinger

Copy link
Copy Markdown
Member

I see some ApplicationException and base Exception getting thrown, which we generally don't throw, does CLR throw the same in these cases?

No, we should clean those up at some point. You'd expect the same exception being thrown, regardless of runtime implementation.

@akoeplinger

Copy link
Copy Markdown
Member

Regarding the CLA, it looks like some issue with the new CLA system since it was signed in the old system according to #78341 (comment) and the status on one of the earlier commits:
image

I'll try to find someone who can look into that.

akoeplingerand others added 2 commits March 20, 2023 21:08
Co-authored-by: Dan Moseley <danmose@microsoft.com>
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Co-authored-by: Dan Moseley <danmose@microsoft.com>
@akoeplinger

akoeplinger commented Mar 21, 2023

Copy link
Copy Markdown
Member

@databunksthis is ready now, would you mind signing the CLA again? You signed right when we were transitioning to a new CLA system and looks like yours got missed.

You can do so by commenting @dotnet-policy-service agree here.

Edit: we were able to update the new system instead so this is handled now.

Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
# Conflicts:
#	src/mono/System.Private.CoreLib/src/Mono/RuntimeMarshal.cs
FieldInfo fi = internal_from_handle_type(handle.Value, declaringType.Value);
if (fi == null)
throw new ArgumentException("The field handle and the type handle are incompatible.");
throw new ArgumentException(SR.Argument_FieldPropertyEventAndTypeHandleIncompatibility);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this be Argument_ResolveFieldHandle like in CoreCLR?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Theoretically yes but I don't have the type(s) to fill in the format string and RuntimeFieldHandle.GetApproxDeclaringType is only implemented in CoreCLR.

I'd rather keep this as is for now so we can finally get this PR in.

@akoeplingerakoeplinger changed the title Replacing exception strings with those stored in the resx file (#34056) Mono: Replace exception strings with those stored in the resx file (#34056) Mar 23, 2023
@akoeplinger
akoeplinger merged commit 830d3d0 into dotnet:mainMar 23, 2023
@runfoapprunfoappBot mentioned this pull request Mar 23, 2023
@ghostghost locked as resolved and limited conversation to collaborators Apr 22, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

community-contributionIndicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Replace strings with resources in Mono corelib

8 participants

@databunks@dnfadmin@AaronRobinsonMSFT@vargaz@jkoritzinsky@jkotas@danmoseley@akoeplinger
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Mono: Replace exception strings with those stored in the resx file (#34056) by databunks · Pull Request #78341 · dotnet/runtime · GitHub
Skip to content

Mono: Replace exception strings with those stored in the resx file (#34056) - #78341

Merged
akoeplinger merged 25 commits into
dotnet:mainfrom
databunks:main
Mar 23, 2023
Merged

Mono: Replace exception strings with those stored in the resx file (#34056) #78341
akoeplinger merged 25 commits into
dotnet:mainfrom
databunks:main

Conversation

@databunks

@databunksdatabunks commented Nov 14, 2022

Copy link
Copy Markdown
Contributor

Fixes#34056

@ghost

Copy link
Copy Markdown

I couldn't figure out the best area label to add to this PR. If you have write-permissions please help me learn by adding exactly one area label.

@ghostghost added the community-contribution Indicates that the PR has been added by a community member label Nov 14, 2022
@dnfadmin

dnfadmin commented Nov 14, 2022

Copy link
Copy Markdown

CLA assistant check
All CLA requirements met.

@AaronRobinsonMSFT

Copy link
Copy Markdown
Member

/cc @lambdageek@vargaz

@vargaz

Copy link
Copy Markdown
Contributor

Looks ok to me.

Comment threadsrc/mono/System.Private.CoreLib/src/System/TypeSpec.cs Outdated
Fixed 2nd parameter for argumentExceptions
@jkoritzinsky

Copy link
Copy Markdown
Member

Can we switch all of the string.Format calls to SR.Format?

@databunks

databunks commented Nov 15, 2022

Copy link
Copy Markdown
ContributorAuthor

Can we switch all of the string.Format calls to SR.Format?

@jkoritzinsky

Is this just in the path:
/src/mono/System.Private.CoreLib ??

@jkoritzinsky

Copy link
Copy Markdown
Member

Yeah only within your change.

string.format -> SR.Format
Comment threadsrc/mono/System.Private.CoreLib/src/System/ModuleHandle.cs Outdated
Comment threadsrc/mono/System.Private.CoreLib/src/System/Reflection/RuntimeFieldInfo.cs Outdated
Comment threadsrc/mono/System.Private.CoreLib/src/System/Reflection/RuntimeModule.cs Outdated
jkotas
jkotas previously requested changes Nov 20, 2022

@jkotasjkotas left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There seems to be a lot of opportunities in de-duplicating the new error strings with the existing error strings. I have commented on some, but there is certainly more.

The easy way to do the deduplication is to build a small program that hits the error path, run it on CoreCLR and see what error it produces in that case.

Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/mono/System.Private.CoreLib/src/System/RuntimeTypeHandle.cs Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/mono/System.Private.CoreLib/src/System/Reflection/RuntimeFieldInfo.cs Outdated
@ghostghost added the needs-author-action An issue or pull request that requires more info or actions from the author. label Nov 20, 2022
@ghostghost removed the needs-author-action An issue or pull request that requires more info or actions from the author. label Nov 21, 2022
@databunks

databunks commented Nov 21, 2022

Copy link
Copy Markdown
ContributorAuthor

There seems to be a lot of opportunities in de-duplicating the new error strings with the existing error strings. I have commented on some, but there is certainly more.

The easy way to do the deduplication is to build a small program that hits the error path, run it on CoreCLR and see what error it produces in that case.

@jkotas

Would a way to do it be like:

have a script which iterates through all of the exception strings in the .resx file
e.g: Arg_Enc (inside resx) -> find SR.Arg_Enc in the path ./src/mono/System.Private.CoreLib

If true dont remove, else remove??

and ill make a backup just in case

then run the build see if theres any missing references

@jkotas

Copy link
Copy Markdown
Member

have a script which iterates through all of the exception strings in the .resx file

I do not think you can script it. The error messages are not exactly the same. You need to be looking for same meaning that can be only done by humans (or AI).

@databunks
databunks requested review from jkotas and removed request for marek-safarNovember 23, 2022 19:02
@databunks

Copy link
Copy Markdown
ContributorAuthor

have a script which iterates through all of the exception strings in the .resx file

I do not think you can script it. The error messages are not exactly the same. You need to be looking for same meaning that can be only done by humans (or AI).

ok thanks ill look into it
(also didnt mean to re-request review sorry)

Comment threadsrc/mono/System.Private.CoreLib/src/System/TypeLoadException.Mono.cs Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
@danmoseley

danmoseley commented Mar 20, 2023

Copy link
Copy Markdown
Contributor

Not related to this change, but I see some ApplicationException and base Exception getting thrown, which we generally don't throw, does CLR throw the same in these cases?
(Don't change this PR for that, just curious)

@akoeplinger

Copy link
Copy Markdown
Member

I see some ApplicationException and base Exception getting thrown, which we generally don't throw, does CLR throw the same in these cases?

No, we should clean those up at some point. You'd expect the same exception being thrown, regardless of runtime implementation.

@akoeplinger

Copy link
Copy Markdown
Member

Regarding the CLA, it looks like some issue with the new CLA system since it was signed in the old system according to #78341 (comment) and the status on one of the earlier commits:
image

I'll try to find someone who can look into that.

akoeplingerand others added 2 commits March 20, 2023 21:08
Co-authored-by: Dan Moseley <danmose@microsoft.com>
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Co-authored-by: Dan Moseley <danmose@microsoft.com>
@akoeplinger

akoeplinger commented Mar 21, 2023

Copy link
Copy Markdown
Member

@databunksthis is ready now, would you mind signing the CLA again? You signed right when we were transitioning to a new CLA system and looks like yours got missed.

You can do so by commenting @dotnet-policy-service agree here.

Edit: we were able to update the new system instead so this is handled now.

Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
# Conflicts:
#	src/mono/System.Private.CoreLib/src/Mono/RuntimeMarshal.cs
FieldInfo fi = internal_from_handle_type(handle.Value, declaringType.Value);
if (fi == null)
throw new ArgumentException("The field handle and the type handle are incompatible.");
throw new ArgumentException(SR.Argument_FieldPropertyEventAndTypeHandleIncompatibility);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this be Argument_ResolveFieldHandle like in CoreCLR?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Theoretically yes but I don't have the type(s) to fill in the format string and RuntimeFieldHandle.GetApproxDeclaringType is only implemented in CoreCLR.

I'd rather keep this as is for now so we can finally get this PR in.

@akoeplingerakoeplinger changed the title Replacing exception strings with those stored in the resx file (#34056) Mono: Replace exception strings with those stored in the resx file (#34056) Mar 23, 2023
@akoeplinger
akoeplinger merged commit 830d3d0 into dotnet:mainMar 23, 2023
@runfoapprunfoappBot mentioned this pull request Mar 23, 2023
@ghostghost locked as resolved and limited conversation to collaborators Apr 22, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

community-contributionIndicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Replace strings with resources in Mono corelib

8 participants

@databunks@dnfadmin@AaronRobinsonMSFT@vargaz@jkoritzinsky@jkotas@danmoseley@akoeplinger
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Mono: Replace exception strings with those stored in the resx file (#34056) by databunks · Pull Request #78341 · dotnet/runtime · GitHub
Skip to content

Mono: Replace exception strings with those stored in the resx file (#34056) - #78341

Merged
akoeplinger merged 25 commits into
dotnet:mainfrom
databunks:main
Mar 23, 2023
Merged

Mono: Replace exception strings with those stored in the resx file (#34056) #78341
akoeplinger merged 25 commits into
dotnet:mainfrom
databunks:main

Conversation

@databunks

@databunksdatabunks commented Nov 14, 2022

Copy link
Copy Markdown
Contributor

Fixes#34056

@ghost

Copy link
Copy Markdown

I couldn't figure out the best area label to add to this PR. If you have write-permissions please help me learn by adding exactly one area label.

@ghostghost added the community-contribution Indicates that the PR has been added by a community member label Nov 14, 2022
@dnfadmin

dnfadmin commented Nov 14, 2022

Copy link
Copy Markdown

CLA assistant check
All CLA requirements met.

@AaronRobinsonMSFT

Copy link
Copy Markdown
Member

/cc @lambdageek@vargaz

@vargaz

Copy link
Copy Markdown
Contributor

Looks ok to me.

Comment threadsrc/mono/System.Private.CoreLib/src/System/TypeSpec.cs Outdated
Fixed 2nd parameter for argumentExceptions
@jkoritzinsky

Copy link
Copy Markdown
Member

Can we switch all of the string.Format calls to SR.Format?

@databunks

databunks commented Nov 15, 2022

Copy link
Copy Markdown
ContributorAuthor

Can we switch all of the string.Format calls to SR.Format?

@jkoritzinsky

Is this just in the path:
/src/mono/System.Private.CoreLib ??

@jkoritzinsky

Copy link
Copy Markdown
Member

Yeah only within your change.

string.format -> SR.Format
Comment threadsrc/mono/System.Private.CoreLib/src/System/ModuleHandle.cs Outdated
Comment threadsrc/mono/System.Private.CoreLib/src/System/Reflection/RuntimeFieldInfo.cs Outdated
Comment threadsrc/mono/System.Private.CoreLib/src/System/Reflection/RuntimeModule.cs Outdated
jkotas
jkotas previously requested changes Nov 20, 2022

@jkotasjkotas left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There seems to be a lot of opportunities in de-duplicating the new error strings with the existing error strings. I have commented on some, but there is certainly more.

The easy way to do the deduplication is to build a small program that hits the error path, run it on CoreCLR and see what error it produces in that case.

Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/mono/System.Private.CoreLib/src/System/RuntimeTypeHandle.cs Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/mono/System.Private.CoreLib/src/System/Reflection/RuntimeFieldInfo.cs Outdated
@ghostghost added the needs-author-action An issue or pull request that requires more info or actions from the author. label Nov 20, 2022
@ghostghost removed the needs-author-action An issue or pull request that requires more info or actions from the author. label Nov 21, 2022
@databunks

databunks commented Nov 21, 2022

Copy link
Copy Markdown
ContributorAuthor

There seems to be a lot of opportunities in de-duplicating the new error strings with the existing error strings. I have commented on some, but there is certainly more.

The easy way to do the deduplication is to build a small program that hits the error path, run it on CoreCLR and see what error it produces in that case.

@jkotas

Would a way to do it be like:

have a script which iterates through all of the exception strings in the .resx file
e.g: Arg_Enc (inside resx) -> find SR.Arg_Enc in the path ./src/mono/System.Private.CoreLib

If true dont remove, else remove??

and ill make a backup just in case

then run the build see if theres any missing references

@jkotas

Copy link
Copy Markdown
Member

have a script which iterates through all of the exception strings in the .resx file

I do not think you can script it. The error messages are not exactly the same. You need to be looking for same meaning that can be only done by humans (or AI).

@databunks
databunks requested review from jkotas and removed request for marek-safarNovember 23, 2022 19:02
@databunks

Copy link
Copy Markdown
ContributorAuthor

have a script which iterates through all of the exception strings in the .resx file

I do not think you can script it. The error messages are not exactly the same. You need to be looking for same meaning that can be only done by humans (or AI).

ok thanks ill look into it
(also didnt mean to re-request review sorry)

Comment threadsrc/mono/System.Private.CoreLib/src/System/TypeLoadException.Mono.cs Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
@danmoseley

danmoseley commented Mar 20, 2023

Copy link
Copy Markdown
Contributor

Not related to this change, but I see some ApplicationException and base Exception getting thrown, which we generally don't throw, does CLR throw the same in these cases?
(Don't change this PR for that, just curious)

@akoeplinger

Copy link
Copy Markdown
Member

I see some ApplicationException and base Exception getting thrown, which we generally don't throw, does CLR throw the same in these cases?

No, we should clean those up at some point. You'd expect the same exception being thrown, regardless of runtime implementation.

@akoeplinger

Copy link
Copy Markdown
Member

Regarding the CLA, it looks like some issue with the new CLA system since it was signed in the old system according to #78341 (comment) and the status on one of the earlier commits:
image

I'll try to find someone who can look into that.

akoeplingerand others added 2 commits March 20, 2023 21:08
Co-authored-by: Dan Moseley <danmose@microsoft.com>
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Co-authored-by: Dan Moseley <danmose@microsoft.com>
@akoeplinger

akoeplinger commented Mar 21, 2023

Copy link
Copy Markdown
Member

@databunksthis is ready now, would you mind signing the CLA again? You signed right when we were transitioning to a new CLA system and looks like yours got missed.

You can do so by commenting @dotnet-policy-service agree here.

Edit: we were able to update the new system instead so this is handled now.

Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
# Conflicts:
#	src/mono/System.Private.CoreLib/src/Mono/RuntimeMarshal.cs
FieldInfo fi = internal_from_handle_type(handle.Value, declaringType.Value);
if (fi == null)
throw new ArgumentException("The field handle and the type handle are incompatible.");
throw new ArgumentException(SR.Argument_FieldPropertyEventAndTypeHandleIncompatibility);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this be Argument_ResolveFieldHandle like in CoreCLR?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Theoretically yes but I don't have the type(s) to fill in the format string and RuntimeFieldHandle.GetApproxDeclaringType is only implemented in CoreCLR.

I'd rather keep this as is for now so we can finally get this PR in.

@akoeplingerakoeplinger changed the title Replacing exception strings with those stored in the resx file (#34056) Mono: Replace exception strings with those stored in the resx file (#34056) Mar 23, 2023
@akoeplinger
akoeplinger merged commit 830d3d0 into dotnet:mainMar 23, 2023
@runfoapprunfoappBot mentioned this pull request Mar 23, 2023
@ghostghost locked as resolved and limited conversation to collaborators Apr 22, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

community-contributionIndicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Replace strings with resources in Mono corelib

8 participants

@databunks@dnfadmin@AaronRobinsonMSFT@vargaz@jkoritzinsky@jkotas@danmoseley@akoeplinger
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Mono: Replace exception strings with those stored in the resx file (#34056) by databunks · Pull Request #78341 · dotnet/runtime · GitHub
Skip to content

Mono: Replace exception strings with those stored in the resx file (#34056) - #78341

Merged
akoeplinger merged 25 commits into
dotnet:mainfrom
databunks:main
Mar 23, 2023
Merged

Mono: Replace exception strings with those stored in the resx file (#34056) #78341
akoeplinger merged 25 commits into
dotnet:mainfrom
databunks:main

Conversation

@databunks

@databunksdatabunks commented Nov 14, 2022

Copy link
Copy Markdown
Contributor

Fixes#34056

@ghost

Copy link
Copy Markdown

I couldn't figure out the best area label to add to this PR. If you have write-permissions please help me learn by adding exactly one area label.

@ghostghost added the community-contribution Indicates that the PR has been added by a community member label Nov 14, 2022
@dnfadmin

dnfadmin commented Nov 14, 2022

Copy link
Copy Markdown

CLA assistant check
All CLA requirements met.

@AaronRobinsonMSFT

Copy link
Copy Markdown
Member

/cc @lambdageek@vargaz

@vargaz

Copy link
Copy Markdown
Contributor

Looks ok to me.

Comment threadsrc/mono/System.Private.CoreLib/src/System/TypeSpec.cs Outdated
Fixed 2nd parameter for argumentExceptions
@jkoritzinsky

Copy link
Copy Markdown
Member

Can we switch all of the string.Format calls to SR.Format?

@databunks

databunks commented Nov 15, 2022

Copy link
Copy Markdown
ContributorAuthor

Can we switch all of the string.Format calls to SR.Format?

@jkoritzinsky

Is this just in the path:
/src/mono/System.Private.CoreLib ??

@jkoritzinsky

Copy link
Copy Markdown
Member

Yeah only within your change.

string.format -> SR.Format
Comment threadsrc/mono/System.Private.CoreLib/src/System/ModuleHandle.cs Outdated
Comment threadsrc/mono/System.Private.CoreLib/src/System/Reflection/RuntimeFieldInfo.cs Outdated
Comment threadsrc/mono/System.Private.CoreLib/src/System/Reflection/RuntimeModule.cs Outdated
jkotas
jkotas previously requested changes Nov 20, 2022

@jkotasjkotas left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There seems to be a lot of opportunities in de-duplicating the new error strings with the existing error strings. I have commented on some, but there is certainly more.

The easy way to do the deduplication is to build a small program that hits the error path, run it on CoreCLR and see what error it produces in that case.

Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/mono/System.Private.CoreLib/src/System/RuntimeTypeHandle.cs Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/mono/System.Private.CoreLib/src/System/Reflection/RuntimeFieldInfo.cs Outdated
@ghostghost added the needs-author-action An issue or pull request that requires more info or actions from the author. label Nov 20, 2022
@ghostghost removed the needs-author-action An issue or pull request that requires more info or actions from the author. label Nov 21, 2022
@databunks

databunks commented Nov 21, 2022

Copy link
Copy Markdown
ContributorAuthor

There seems to be a lot of opportunities in de-duplicating the new error strings with the existing error strings. I have commented on some, but there is certainly more.

The easy way to do the deduplication is to build a small program that hits the error path, run it on CoreCLR and see what error it produces in that case.

@jkotas

Would a way to do it be like:

have a script which iterates through all of the exception strings in the .resx file
e.g: Arg_Enc (inside resx) -> find SR.Arg_Enc in the path ./src/mono/System.Private.CoreLib

If true dont remove, else remove??

and ill make a backup just in case

then run the build see if theres any missing references

@jkotas

Copy link
Copy Markdown
Member

have a script which iterates through all of the exception strings in the .resx file

I do not think you can script it. The error messages are not exactly the same. You need to be looking for same meaning that can be only done by humans (or AI).

@databunks
databunks requested review from jkotas and removed request for marek-safarNovember 23, 2022 19:02
@databunks

Copy link
Copy Markdown
ContributorAuthor

have a script which iterates through all of the exception strings in the .resx file

I do not think you can script it. The error messages are not exactly the same. You need to be looking for same meaning that can be only done by humans (or AI).

ok thanks ill look into it
(also didnt mean to re-request review sorry)

Comment threadsrc/mono/System.Private.CoreLib/src/System/TypeLoadException.Mono.cs Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
@danmoseley

danmoseley commented Mar 20, 2023

Copy link
Copy Markdown
Contributor

Not related to this change, but I see some ApplicationException and base Exception getting thrown, which we generally don't throw, does CLR throw the same in these cases?
(Don't change this PR for that, just curious)

@akoeplinger

Copy link
Copy Markdown
Member

I see some ApplicationException and base Exception getting thrown, which we generally don't throw, does CLR throw the same in these cases?

No, we should clean those up at some point. You'd expect the same exception being thrown, regardless of runtime implementation.

@akoeplinger

Copy link
Copy Markdown
Member

Regarding the CLA, it looks like some issue with the new CLA system since it was signed in the old system according to #78341 (comment) and the status on one of the earlier commits:
image

I'll try to find someone who can look into that.

akoeplingerand others added 2 commits March 20, 2023 21:08
Co-authored-by: Dan Moseley <danmose@microsoft.com>
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Co-authored-by: Dan Moseley <danmose@microsoft.com>
@akoeplinger

akoeplinger commented Mar 21, 2023

Copy link
Copy Markdown
Member

@databunksthis is ready now, would you mind signing the CLA again? You signed right when we were transitioning to a new CLA system and looks like yours got missed.

You can do so by commenting @dotnet-policy-service agree here.

Edit: we were able to update the new system instead so this is handled now.

Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
# Conflicts:
#	src/mono/System.Private.CoreLib/src/Mono/RuntimeMarshal.cs
FieldInfo fi = internal_from_handle_type(handle.Value, declaringType.Value);
if (fi == null)
throw new ArgumentException("The field handle and the type handle are incompatible.");
throw new ArgumentException(SR.Argument_FieldPropertyEventAndTypeHandleIncompatibility);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this be Argument_ResolveFieldHandle like in CoreCLR?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Theoretically yes but I don't have the type(s) to fill in the format string and RuntimeFieldHandle.GetApproxDeclaringType is only implemented in CoreCLR.

I'd rather keep this as is for now so we can finally get this PR in.

@akoeplingerakoeplinger changed the title Replacing exception strings with those stored in the resx file (#34056) Mono: Replace exception strings with those stored in the resx file (#34056) Mar 23, 2023
@akoeplinger
akoeplinger merged commit 830d3d0 into dotnet:mainMar 23, 2023
@runfoapprunfoappBot mentioned this pull request Mar 23, 2023
@ghostghost locked as resolved and limited conversation to collaborators Apr 22, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

community-contributionIndicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Replace strings with resources in Mono corelib

8 participants

@databunks@dnfadmin@AaronRobinsonMSFT@vargaz@jkoritzinsky@jkotas@danmoseley@akoeplinger
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Mono: Replace exception strings with those stored in the resx file (#34056) by databunks · Pull Request #78341 · dotnet/runtime · GitHub
Skip to content

Mono: Replace exception strings with those stored in the resx file (#34056) - #78341

Merged
akoeplinger merged 25 commits into
dotnet:mainfrom
databunks:main
Mar 23, 2023
Merged

Mono: Replace exception strings with those stored in the resx file (#34056) #78341
akoeplinger merged 25 commits into
dotnet:mainfrom
databunks:main

Conversation

@databunks

@databunksdatabunks commented Nov 14, 2022

Copy link
Copy Markdown
Contributor

Fixes#34056

@ghost

Copy link
Copy Markdown

I couldn't figure out the best area label to add to this PR. If you have write-permissions please help me learn by adding exactly one area label.

@ghostghost added the community-contribution Indicates that the PR has been added by a community member label Nov 14, 2022
@dnfadmin

dnfadmin commented Nov 14, 2022

Copy link
Copy Markdown

CLA assistant check
All CLA requirements met.

@AaronRobinsonMSFT

Copy link
Copy Markdown
Member

/cc @lambdageek@vargaz

@vargaz

Copy link
Copy Markdown
Contributor

Looks ok to me.

Comment threadsrc/mono/System.Private.CoreLib/src/System/TypeSpec.cs Outdated
Fixed 2nd parameter for argumentExceptions
@jkoritzinsky

Copy link
Copy Markdown
Member

Can we switch all of the string.Format calls to SR.Format?

@databunks

databunks commented Nov 15, 2022

Copy link
Copy Markdown
ContributorAuthor

Can we switch all of the string.Format calls to SR.Format?

@jkoritzinsky

Is this just in the path:
/src/mono/System.Private.CoreLib ??

@jkoritzinsky

Copy link
Copy Markdown
Member

Yeah only within your change.

string.format -> SR.Format
Comment threadsrc/mono/System.Private.CoreLib/src/System/ModuleHandle.cs Outdated
Comment threadsrc/mono/System.Private.CoreLib/src/System/Reflection/RuntimeFieldInfo.cs Outdated
Comment threadsrc/mono/System.Private.CoreLib/src/System/Reflection/RuntimeModule.cs Outdated
jkotas
jkotas previously requested changes Nov 20, 2022

@jkotasjkotas left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There seems to be a lot of opportunities in de-duplicating the new error strings with the existing error strings. I have commented on some, but there is certainly more.

The easy way to do the deduplication is to build a small program that hits the error path, run it on CoreCLR and see what error it produces in that case.

Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/mono/System.Private.CoreLib/src/System/RuntimeTypeHandle.cs Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/mono/System.Private.CoreLib/src/System/Reflection/RuntimeFieldInfo.cs Outdated
@ghostghost added the needs-author-action An issue or pull request that requires more info or actions from the author. label Nov 20, 2022
@ghostghost removed the needs-author-action An issue or pull request that requires more info or actions from the author. label Nov 21, 2022
@databunks

databunks commented Nov 21, 2022

Copy link
Copy Markdown
ContributorAuthor

There seems to be a lot of opportunities in de-duplicating the new error strings with the existing error strings. I have commented on some, but there is certainly more.

The easy way to do the deduplication is to build a small program that hits the error path, run it on CoreCLR and see what error it produces in that case.

@jkotas

Would a way to do it be like:

have a script which iterates through all of the exception strings in the .resx file
e.g: Arg_Enc (inside resx) -> find SR.Arg_Enc in the path ./src/mono/System.Private.CoreLib

If true dont remove, else remove??

and ill make a backup just in case

then run the build see if theres any missing references

@jkotas

Copy link
Copy Markdown
Member

have a script which iterates through all of the exception strings in the .resx file

I do not think you can script it. The error messages are not exactly the same. You need to be looking for same meaning that can be only done by humans (or AI).

@databunks
databunks requested review from jkotas and removed request for marek-safarNovember 23, 2022 19:02
@databunks

Copy link
Copy Markdown
ContributorAuthor

have a script which iterates through all of the exception strings in the .resx file

I do not think you can script it. The error messages are not exactly the same. You need to be looking for same meaning that can be only done by humans (or AI).

ok thanks ill look into it
(also didnt mean to re-request review sorry)

Comment threadsrc/mono/System.Private.CoreLib/src/System/TypeLoadException.Mono.cs Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
@danmoseley

danmoseley commented Mar 20, 2023

Copy link
Copy Markdown
Contributor

Not related to this change, but I see some ApplicationException and base Exception getting thrown, which we generally don't throw, does CLR throw the same in these cases?
(Don't change this PR for that, just curious)

@akoeplinger

Copy link
Copy Markdown
Member

I see some ApplicationException and base Exception getting thrown, which we generally don't throw, does CLR throw the same in these cases?

No, we should clean those up at some point. You'd expect the same exception being thrown, regardless of runtime implementation.

@akoeplinger

Copy link
Copy Markdown
Member

Regarding the CLA, it looks like some issue with the new CLA system since it was signed in the old system according to #78341 (comment) and the status on one of the earlier commits:
image

I'll try to find someone who can look into that.

akoeplingerand others added 2 commits March 20, 2023 21:08
Co-authored-by: Dan Moseley <danmose@microsoft.com>
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Co-authored-by: Dan Moseley <danmose@microsoft.com>
@akoeplinger

akoeplinger commented Mar 21, 2023

Copy link
Copy Markdown
Member

@databunksthis is ready now, would you mind signing the CLA again? You signed right when we were transitioning to a new CLA system and looks like yours got missed.

You can do so by commenting @dotnet-policy-service agree here.

Edit: we were able to update the new system instead so this is handled now.

Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
# Conflicts:
#	src/mono/System.Private.CoreLib/src/Mono/RuntimeMarshal.cs
FieldInfo fi = internal_from_handle_type(handle.Value, declaringType.Value);
if (fi == null)
throw new ArgumentException("The field handle and the type handle are incompatible.");
throw new ArgumentException(SR.Argument_FieldPropertyEventAndTypeHandleIncompatibility);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this be Argument_ResolveFieldHandle like in CoreCLR?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Theoretically yes but I don't have the type(s) to fill in the format string and RuntimeFieldHandle.GetApproxDeclaringType is only implemented in CoreCLR.

I'd rather keep this as is for now so we can finally get this PR in.

@akoeplingerakoeplinger changed the title Replacing exception strings with those stored in the resx file (#34056) Mono: Replace exception strings with those stored in the resx file (#34056) Mar 23, 2023
@akoeplinger
akoeplinger merged commit 830d3d0 into dotnet:mainMar 23, 2023
@runfoapprunfoappBot mentioned this pull request Mar 23, 2023
@ghostghost locked as resolved and limited conversation to collaborators Apr 22, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

community-contributionIndicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Replace strings with resources in Mono corelib

8 participants

@databunks@dnfadmin@AaronRobinsonMSFT@vargaz@jkoritzinsky@jkotas@danmoseley@akoeplinger
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Mono: Replace exception strings with those stored in the resx file (#34056) by databunks · Pull Request #78341 · dotnet/runtime · GitHub
Skip to content

Mono: Replace exception strings with those stored in the resx file (#34056) - #78341

Merged
akoeplinger merged 25 commits into
dotnet:mainfrom
databunks:main
Mar 23, 2023
Merged

Mono: Replace exception strings with those stored in the resx file (#34056) #78341
akoeplinger merged 25 commits into
dotnet:mainfrom
databunks:main

Conversation

@databunks

@databunksdatabunks commented Nov 14, 2022

Copy link
Copy Markdown
Contributor

Fixes#34056

@ghost

Copy link
Copy Markdown

I couldn't figure out the best area label to add to this PR. If you have write-permissions please help me learn by adding exactly one area label.

@ghostghost added the community-contribution Indicates that the PR has been added by a community member label Nov 14, 2022
@dnfadmin

dnfadmin commented Nov 14, 2022

Copy link
Copy Markdown

CLA assistant check
All CLA requirements met.

@AaronRobinsonMSFT

Copy link
Copy Markdown
Member

/cc @lambdageek@vargaz

@vargaz

Copy link
Copy Markdown
Contributor

Looks ok to me.

Comment threadsrc/mono/System.Private.CoreLib/src/System/TypeSpec.cs Outdated
Fixed 2nd parameter for argumentExceptions
@jkoritzinsky

Copy link
Copy Markdown
Member

Can we switch all of the string.Format calls to SR.Format?

@databunks

databunks commented Nov 15, 2022

Copy link
Copy Markdown
ContributorAuthor

Can we switch all of the string.Format calls to SR.Format?

@jkoritzinsky

Is this just in the path:
/src/mono/System.Private.CoreLib ??

@jkoritzinsky

Copy link
Copy Markdown
Member

Yeah only within your change.

string.format -> SR.Format
Comment threadsrc/mono/System.Private.CoreLib/src/System/ModuleHandle.cs Outdated
Comment threadsrc/mono/System.Private.CoreLib/src/System/Reflection/RuntimeFieldInfo.cs Outdated
Comment threadsrc/mono/System.Private.CoreLib/src/System/Reflection/RuntimeModule.cs Outdated
jkotas
jkotas previously requested changes Nov 20, 2022

@jkotasjkotas left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There seems to be a lot of opportunities in de-duplicating the new error strings with the existing error strings. I have commented on some, but there is certainly more.

The easy way to do the deduplication is to build a small program that hits the error path, run it on CoreCLR and see what error it produces in that case.

Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/mono/System.Private.CoreLib/src/System/RuntimeTypeHandle.cs Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/mono/System.Private.CoreLib/src/System/Reflection/RuntimeFieldInfo.cs Outdated
@ghostghost added the needs-author-action An issue or pull request that requires more info or actions from the author. label Nov 20, 2022
@ghostghost removed the needs-author-action An issue or pull request that requires more info or actions from the author. label Nov 21, 2022
@databunks

databunks commented Nov 21, 2022

Copy link
Copy Markdown
ContributorAuthor

There seems to be a lot of opportunities in de-duplicating the new error strings with the existing error strings. I have commented on some, but there is certainly more.

The easy way to do the deduplication is to build a small program that hits the error path, run it on CoreCLR and see what error it produces in that case.

@jkotas

Would a way to do it be like:

have a script which iterates through all of the exception strings in the .resx file
e.g: Arg_Enc (inside resx) -> find SR.Arg_Enc in the path ./src/mono/System.Private.CoreLib

If true dont remove, else remove??

and ill make a backup just in case

then run the build see if theres any missing references

@jkotas

Copy link
Copy Markdown
Member

have a script which iterates through all of the exception strings in the .resx file

I do not think you can script it. The error messages are not exactly the same. You need to be looking for same meaning that can be only done by humans (or AI).

@databunks
databunks requested review from jkotas and removed request for marek-safarNovember 23, 2022 19:02
@databunks

Copy link
Copy Markdown
ContributorAuthor

have a script which iterates through all of the exception strings in the .resx file

I do not think you can script it. The error messages are not exactly the same. You need to be looking for same meaning that can be only done by humans (or AI).

ok thanks ill look into it
(also didnt mean to re-request review sorry)

Comment threadsrc/mono/System.Private.CoreLib/src/System/TypeLoadException.Mono.cs Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
@danmoseley

danmoseley commented Mar 20, 2023

Copy link
Copy Markdown
Contributor

Not related to this change, but I see some ApplicationException and base Exception getting thrown, which we generally don't throw, does CLR throw the same in these cases?
(Don't change this PR for that, just curious)

@akoeplinger

Copy link
Copy Markdown
Member

I see some ApplicationException and base Exception getting thrown, which we generally don't throw, does CLR throw the same in these cases?

No, we should clean those up at some point. You'd expect the same exception being thrown, regardless of runtime implementation.

@akoeplinger

Copy link
Copy Markdown
Member

Regarding the CLA, it looks like some issue with the new CLA system since it was signed in the old system according to #78341 (comment) and the status on one of the earlier commits:
image

I'll try to find someone who can look into that.

akoeplingerand others added 2 commits March 20, 2023 21:08
Co-authored-by: Dan Moseley <danmose@microsoft.com>
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Co-authored-by: Dan Moseley <danmose@microsoft.com>
@akoeplinger

akoeplinger commented Mar 21, 2023

Copy link
Copy Markdown
Member

@databunksthis is ready now, would you mind signing the CLA again? You signed right when we were transitioning to a new CLA system and looks like yours got missed.

You can do so by commenting @dotnet-policy-service agree here.

Edit: we were able to update the new system instead so this is handled now.

Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
# Conflicts:
#	src/mono/System.Private.CoreLib/src/Mono/RuntimeMarshal.cs
FieldInfo fi = internal_from_handle_type(handle.Value, declaringType.Value);
if (fi == null)
throw new ArgumentException("The field handle and the type handle are incompatible.");
throw new ArgumentException(SR.Argument_FieldPropertyEventAndTypeHandleIncompatibility);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this be Argument_ResolveFieldHandle like in CoreCLR?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Theoretically yes but I don't have the type(s) to fill in the format string and RuntimeFieldHandle.GetApproxDeclaringType is only implemented in CoreCLR.

I'd rather keep this as is for now so we can finally get this PR in.

@akoeplingerakoeplinger changed the title Replacing exception strings with those stored in the resx file (#34056) Mono: Replace exception strings with those stored in the resx file (#34056) Mar 23, 2023
@akoeplinger
akoeplinger merged commit 830d3d0 into dotnet:mainMar 23, 2023
@runfoapprunfoappBot mentioned this pull request Mar 23, 2023
@ghostghost locked as resolved and limited conversation to collaborators Apr 22, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

community-contributionIndicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Replace strings with resources in Mono corelib

8 participants

@databunks@dnfadmin@AaronRobinsonMSFT@vargaz@jkoritzinsky@jkotas@danmoseley@akoeplinger
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); Mono: Replace exception strings with those stored in the resx file (#34056) by databunks · Pull Request #78341 · dotnet/runtime · GitHub
Skip to content

Mono: Replace exception strings with those stored in the resx file (#34056) - #78341

Merged
akoeplinger merged 25 commits into
dotnet:mainfrom
databunks:main
Mar 23, 2023
Merged

Mono: Replace exception strings with those stored in the resx file (#34056) #78341
akoeplinger merged 25 commits into
dotnet:mainfrom
databunks:main

Conversation

@databunks

@databunksdatabunks commented Nov 14, 2022

Copy link
Copy Markdown
Contributor

Fixes#34056

@ghost

Copy link
Copy Markdown

I couldn't figure out the best area label to add to this PR. If you have write-permissions please help me learn by adding exactly one area label.

@ghostghost added the community-contribution Indicates that the PR has been added by a community member label Nov 14, 2022
@dnfadmin

dnfadmin commented Nov 14, 2022

Copy link
Copy Markdown

CLA assistant check
All CLA requirements met.

@AaronRobinsonMSFT

Copy link
Copy Markdown
Member

/cc @lambdageek@vargaz

@vargaz

Copy link
Copy Markdown
Contributor

Looks ok to me.

Comment threadsrc/mono/System.Private.CoreLib/src/System/TypeSpec.cs Outdated
Fixed 2nd parameter for argumentExceptions
@jkoritzinsky

Copy link
Copy Markdown
Member

Can we switch all of the string.Format calls to SR.Format?

@databunks

databunks commented Nov 15, 2022

Copy link
Copy Markdown
ContributorAuthor

Can we switch all of the string.Format calls to SR.Format?

@jkoritzinsky

Is this just in the path:
/src/mono/System.Private.CoreLib ??

@jkoritzinsky

Copy link
Copy Markdown
Member

Yeah only within your change.

string.format -> SR.Format
Comment threadsrc/mono/System.Private.CoreLib/src/System/ModuleHandle.cs Outdated
Comment threadsrc/mono/System.Private.CoreLib/src/System/Reflection/RuntimeFieldInfo.cs Outdated
Comment threadsrc/mono/System.Private.CoreLib/src/System/Reflection/RuntimeModule.cs Outdated
jkotas
jkotas previously requested changes Nov 20, 2022

@jkotasjkotas left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There seems to be a lot of opportunities in de-duplicating the new error strings with the existing error strings. I have commented on some, but there is certainly more.

The easy way to do the deduplication is to build a small program that hits the error path, run it on CoreCLR and see what error it produces in that case.

Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/mono/System.Private.CoreLib/src/System/RuntimeTypeHandle.cs Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/mono/System.Private.CoreLib/src/System/Reflection/RuntimeFieldInfo.cs Outdated
@ghostghost added the needs-author-action An issue or pull request that requires more info or actions from the author. label Nov 20, 2022
@ghostghost removed the needs-author-action An issue or pull request that requires more info or actions from the author. label Nov 21, 2022
@databunks

databunks commented Nov 21, 2022

Copy link
Copy Markdown
ContributorAuthor

There seems to be a lot of opportunities in de-duplicating the new error strings with the existing error strings. I have commented on some, but there is certainly more.

The easy way to do the deduplication is to build a small program that hits the error path, run it on CoreCLR and see what error it produces in that case.

@jkotas

Would a way to do it be like:

have a script which iterates through all of the exception strings in the .resx file
e.g: Arg_Enc (inside resx) -> find SR.Arg_Enc in the path ./src/mono/System.Private.CoreLib

If true dont remove, else remove??

and ill make a backup just in case

then run the build see if theres any missing references

@jkotas

Copy link
Copy Markdown
Member

have a script which iterates through all of the exception strings in the .resx file

I do not think you can script it. The error messages are not exactly the same. You need to be looking for same meaning that can be only done by humans (or AI).

@databunks
databunks requested review from jkotas and removed request for marek-safarNovember 23, 2022 19:02
@databunks

Copy link
Copy Markdown
ContributorAuthor

have a script which iterates through all of the exception strings in the .resx file

I do not think you can script it. The error messages are not exactly the same. You need to be looking for same meaning that can be only done by humans (or AI).

ok thanks ill look into it
(also didnt mean to re-request review sorry)

Comment threadsrc/mono/System.Private.CoreLib/src/System/TypeLoadException.Mono.cs Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
@danmoseley

danmoseley commented Mar 20, 2023

Copy link
Copy Markdown
Contributor

Not related to this change, but I see some ApplicationException and base Exception getting thrown, which we generally don't throw, does CLR throw the same in these cases?
(Don't change this PR for that, just curious)

@akoeplinger

Copy link
Copy Markdown
Member

I see some ApplicationException and base Exception getting thrown, which we generally don't throw, does CLR throw the same in these cases?

No, we should clean those up at some point. You'd expect the same exception being thrown, regardless of runtime implementation.

@akoeplinger

Copy link
Copy Markdown
Member

Regarding the CLA, it looks like some issue with the new CLA system since it was signed in the old system according to #78341 (comment) and the status on one of the earlier commits:
image

I'll try to find someone who can look into that.

akoeplingerand others added 2 commits March 20, 2023 21:08
Co-authored-by: Dan Moseley <danmose@microsoft.com>
Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
Co-authored-by: Dan Moseley <danmose@microsoft.com>
@akoeplinger

akoeplinger commented Mar 21, 2023

Copy link
Copy Markdown
Member

@databunksthis is ready now, would you mind signing the CLA again? You signed right when we were transitioning to a new CLA system and looks like yours got missed.

You can do so by commenting @dotnet-policy-service agree here.

Edit: we were able to update the new system instead so this is handled now.

Comment threadsrc/libraries/System.Private.CoreLib/src/Resources/Strings.resx Outdated
# Conflicts:
#	src/mono/System.Private.CoreLib/src/Mono/RuntimeMarshal.cs
FieldInfo fi = internal_from_handle_type(handle.Value, declaringType.Value);
if (fi == null)
throw new ArgumentException("The field handle and the type handle are incompatible.");
throw new ArgumentException(SR.Argument_FieldPropertyEventAndTypeHandleIncompatibility);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this be Argument_ResolveFieldHandle like in CoreCLR?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Theoretically yes but I don't have the type(s) to fill in the format string and RuntimeFieldHandle.GetApproxDeclaringType is only implemented in CoreCLR.

I'd rather keep this as is for now so we can finally get this PR in.

@akoeplingerakoeplinger changed the title Replacing exception strings with those stored in the resx file (#34056) Mono: Replace exception strings with those stored in the resx file (#34056) Mar 23, 2023
@akoeplinger
akoeplinger merged commit 830d3d0 into dotnet:mainMar 23, 2023
@runfoapprunfoappBot mentioned this pull request Mar 23, 2023
@ghostghost locked as resolved and limited conversation to collaborators Apr 22, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

community-contributionIndicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Replace strings with resources in Mono corelib

8 participants

@databunks@dnfadmin@AaronRobinsonMSFT@vargaz@jkoritzinsky@jkotas@danmoseley@akoeplinger