Comment by pjmlp
2 days ago
The addition of dynamic, and JIT being aware of IDynamicMetaObjectProvider also mattered.
Even though most of the communication around dynamic was about COM support and Excel.
2 days ago
The addition of dynamic, and JIT being aware of IDynamicMetaObjectProvider also mattered.
Even though most of the communication around dynamic was about COM support and Excel.
IDynamicMetaObjectProvider mostly just caches and returns System.Linq.Expressions for various asks, so again most of the JIT awareness is still just System.Linq.Expressions awareness.
The COM support is by implementing IDynamicMetaObjectProvider in a cross-language reusable base class.
The C# `dynamic` keyword adds some smarts about IDynamicMetaObjectProvider to the C# compiler, but those smarts were never seen to be needed as a low level tool in the CLR itself. And again, once the C# compiles the IDynamicMetaObjectProvider calls, those mostly just result in System.Linq.Expressions for the JIT compiler to optimize in the same way it optimizes other usages of Linq.