
Research Based on the .NET Runtime (2019) - matthewwarren
http://www.mattwarren.org/2019/10/25/Research-based-on-the-.NET-Runtime/
======
The_rationalist
[https://github.com/dotnet/runtime/tree/master/docs/design/co...](https://github.com/dotnet/runtime/tree/master/docs/design/coreclr/jit)

------
timmytokyo
The research papers on manual memory management for .NET looked interesting. I
wonder if anything ever came of it?

~~~
kevingadd
The delete/free bits never made it in, but some related stuff definitely has
made its way into the standard library and compiler over time. Span<T> and
Memory<T> provide a bunch of affordances for safely mixing GC and non-GC
pointers in the same workflow. Big chunks of the BCL can operate on strings
and data at any address in memory now, which is really helpful for high-
throughput parsing and streaming.

~~~
throwaway_pdp09
What's an affordance? Is it something with a technical meaning, like pragma?

~~~
Const-me
On technical side, I think GP meant stuff like this
[https://docs.microsoft.com/en-
us/dotnet/api/system.span-1.-c...](https://docs.microsoft.com/en-
us/dotnet/api/system.span-1.-ctor?view=netcore-2.1#System_Span_1__ctor_System_Void__System_Int32_)
And this: [https://docs.microsoft.com/en-us/dotnet/csharp/language-
refe...](https://docs.microsoft.com/en-us/dotnet/csharp/language-
reference/operators/stackalloc)

~~~
throwaway_pdp09
I know about spans and stackalloc, I mean quite literally does the word
affordance mean something technical here that I've not come across?

~~~
DominikD
Affordance means that the interface of something indicates clearly how it's
supposed to be used and for what purpose. This is broader term and it applies
to physical stuff like door handles or knife grips too. It's intuitive enough
which is probably why previous poster was confused about your question.

~~~
throwaway_pdp09
I've come across the term affordances before, but in this context if they'd
been referred to as methods or classes or 'ways for safely mixing...' whatever
I'd have got it, no problem. Calling them affordances is correct (technically
they are) but made me think there was something vital (edit: perhaps .net
related) I was missing. Mind at peace now, thanks all.

