Skip to content
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

Make FSharp.Core.Operators.raise inline #3121

Closed
miegir opened this issue May 26, 2017 · 2 comments
Closed

Make FSharp.Core.Operators.raise inline #3121

miegir opened this issue May 26, 2017 · 2 comments
Labels
Area-Library Issues for FSharp.Core not covered elsewhere Feature Request

Comments

@miegir
Copy link

miegir commented May 26, 2017

If raise will be inlined, tools such as unit test coverage analyzer in Visual Studio will not mark raise calls as partially covered. Methods that use it, such as nullArg, will also benefit from this. Is there a reason whiy raise is not inlined? I can redefine these operators myself, but it requires inline assembly and therefore that annoying red squiggles in Visual Studio.

@dsyme dsyme added the Area-Library Issues for FSharp.Core not covered elsewhere label Jun 22, 2017
@saul
Copy link
Contributor

saul commented Jun 29, 2017

@dsyme this can be closed now that the PR is merged

@zpodlovics
Copy link

This is a subissue comment related to #3476

Perhaps I am a bit late for the party, but could you please reconsider the exception inlining in the light of the following performance issues (or consider to do compiler generated thow only non-inlining methods when raise/nullarg/failwith/etc are used):

Do not inline methods that never return: dotnet/coreclr#6103
RyuJIT should not inline throw only methods: https://github.com/dotnet/coreclr/issues/1270

Take a look at what Kestrel (.NET Core HTTP Server) done:
aspnet/KestrelHttpServer@6b161f5

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-Library Issues for FSharp.Core not covered elsewhere Feature Request
Projects
None yet
Development

No branches or pull requests

5 participants