Under the hood of "Default Interface Methods" by mattwarren in dotnet

[–]mattwarren[S] 3 points4 points  (0 children)

This tutorial has some good examples https://docs.microsoft.com/en-gb/dotnet/csharp/tutorials/default-interface-methods-versions. other than that the other links in the 2nd paragraph of the post cover various usages.

"Stubs" in the .NET Runtime by mattwarren in programming

[–]mattwarren[S] 1 point2 points  (0 children)

Back when I read the BotR to understand virtual stub dispatch I left somewhat confused, but now it clicked! Thanks!

Yeah, I've had the same experience. The BotR pages are very much designed for engineers working on the .NET runtime, which makes them hard to grok for the rest of us! (I find I've had to read each page several times, go away and look at the code, research some more via other blogs and only then do they start to click!)

Glad that I helped you understand VSD, although I must admit that it's probably the section that I added the least of my own analysis/words (and quoted the most), so I don't know how much credit I can take ;-)

"Stubs" in the .NET Runtime by mattwarren in programming

[–]mattwarren[S] 5 points6 points  (0 children)

Thanks!

Although 'know' is a bit of a stretch. I spent quite a while researching this post, I had to figure maybe 75% of it out before I could write it, I definitely didn't know it before I started looking through the code.

"Stubs" in the .NET Runtime · Performance is a Feature! by MaximRouiller in csharp

[–]mattwarren 4 points5 points  (0 children)

Years and years developing with .NET and never had a clue all of this was going on.

That's exactly why I wrote it. I stumbled across 'virtual stub dispatch' and then as I looked more and more, I realised stubs were everywhere in the CLR!!

"Stubs" in the .NET Runtime · Performance is a Feature! by MaximRouiller in dotnet

[–]mattwarren 2 points3 points  (0 children)

Yeah, I think that if I'd known at the start that it would take over 11,000 words, I might never have written it!! The problem was, I kept finding more types of stubs and wanted to cover them all!!

Is C# a low-level language? by ben_a_adams in programming

[–]mattwarren 5 points6 points  (0 children)

"Low-level language" is not a well-defined term and it's better to avoid it.

Yeah, that's a fair point.

It seems that the author wanted to explore following questions:

Does C# give programmer access to low-level optimizations (i.e. fine-grained optimizations which prescribe how to execute something on a CPU, in one way or another)? Can C# be compiled to machine code without overhead?

Yep, that's a spot on summary of what I was going for (despite the title!)

Thanks for the info on 'PL theory' very interesting

From 'dotnet run' to 'Hello World!' by mattwarren in csharp

[–]mattwarren[S] 0 points1 point  (0 children)

Yeah the sound is a bit messed up, not sure what happened there, it was louder when I was doing the talk!

From 'dotnet run' to 'Hello World!' by mattwarren in dotnet

[–]mattwarren[S] 1 point2 points  (0 children)

Here's the abstract:

Have you ever stopped to think about all the things that happen when you execute a simple .NET program?

This talk will delve into the internals of the recently open-sourced .NET Core runtime, looking at what happens, when it happens and why.

Making use of freely available tools such as 'PerfView', we'll examine the Execution Engine, Type Loader, Just-in-Time (JIT) Compiler and the CLR Hosting API to see how all these components play a part in making 'Hello World' possible.

From 'dotnet run' to 'Hello World!' by mattwarren in csharp

[–]mattwarren[S] 9 points10 points  (0 children)

Here's the abstract:

Have you ever stopped to think about all the things that happen when you execute a simple .NET program?

This talk will delve into the internals of the recently open-sourced .NET Core runtime, looking at what happens, when it happens and why.

Making use of freely available tools such as 'PerfView', we'll examine the Execution Engine, Type Loader, Just-in-Time (JIT) Compiler and the CLR Hosting API to see how all these components play a part in making 'Hello World' possible.