Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

[Umbrella] Make dynamic understand new language features. #24815

Open
4 tasks
VSadov opened this issue Feb 13, 2018 · 1 comment
Open
4 tasks

[Umbrella] Make dynamic understand new language features. #24815

VSadov opened this issue Feb 13, 2018 · 1 comment

Comments

@VSadov
Copy link
Member

VSadov commented Feb 13, 2018

This is an umbrella bug for all the issues related to dynamic is not being on parity with static compiler one way or another.

The reality is that while static version of the language is implemented here in https://github.com/dotnet/roslyn , the run-time behavior of the dynamic requires more.

The behavior of dynamic is implemented mostly in the dynamic binder which is a run-time component. Any work to support new language features would need to be done in that component, possibly in coordination with the static compiler - to ensure that it passes enough information to be used at run-time.

The problem here is

  • versioning (what happens if old binder is used? the feature should still be blocked if possible)

  • servicing of the .NET FX version of the binder.
    While changes to the Core FX could be done relatively easy, matching that on the .NET FX side is harder.
    .NET FX has different release cadence and different bar for fixes, and that also depends on version/milestone.

As a result - It is hard to tell at the moment when we can implement major changes/fixes to the dynamic binder.

See also dotnet/csharplang#158

The following expression forms do not "work" with dynamic

  • The null-conditional operators ?. and ?[]
  • Tuple deconstruction
  • Pattern-matching
  • Some situations involving ref locals and returns
@VSadov VSadov changed the title Make dynamic understand new language features. Make dynamic understand new language features. Feb 13, 2018
@jcouv jcouv added this to the 16.0 milestone Feb 13, 2018
@tmat
Copy link
Member

tmat commented Feb 13, 2018

Can we move the binder to a separate package, so that each app can carry their own? We might need to rename the DLL to avoid loading the one in .NET Framework.

@gafter gafter changed the title Make dynamic understand new language features. [Umbrella] Make dynamic understand new language features. Feb 14, 2018
@jinujoseph jinujoseph modified the milestones: 16.0, 16.3 Jun 9, 2019
@jcouv jcouv modified the milestones: 16.3, Compiler.Next Jul 8, 2019
@jaredpar jaredpar modified the milestones: Compiler.Next, Backlog Sep 12, 2023
# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
Development

No branches or pull requests

5 participants