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

Discussion for implementing checker.GetProjectOptionsFromProjectFile in a separate process #371

Closed
7sharp9 opened this issue Jul 9, 2015 · 7 comments

Comments

@7sharp9
Copy link
Member

7sharp9 commented Jul 9, 2015

Issues #366 and #342 both require either assembly redirects in a seperate process or some form of reflective binding. I created this issue to discus how we want this implementing.

  • How do we want to proceed with this reflection or a separate process being called with assembly redirects
  • Do we want to add an extra parameter to the existing function to force running in a separate process, add a new function, or simply update the current function to always run in a separate process
  • Running via a separate process seems the simplest option but how to we represent the output data

Rather than a separate process, maybe we could use AppDomainSetup.ConfigurationFile and AppDomain.CreateDomain() before running checker.GetProjectOptionsFromProjectFile in the new appdomain.

//cc @dsyme @rneatherway

@rneatherway
Copy link
Member

How do we want to proceed with this reflection or a separate process being called with assembly redirects

How do you set assembly redirects on a new process?

Do we want to add an extra parameter to the existing function to force running in a separate process, add a new function, or simply update the current function to always run in a separate process

I think it is fine to always run in a new process.

Running via a separate process seems the simplest option but how to we represent the output data

You said before that XS runs the resolution in a separate process, would you mind linking to that (sorry if you already did before)? I'm wondering how they handle sending the data back and forth.

Rather than a separate process, maybe we could use AppDomainSetup.ConfigurationFile and AppDomain.CreateDomain() before running checker.GetProjectOptionsFromProjectFile in the new appdomain.

Nice idea, but I don't really know anything about AppDomains. Do they provide sufficient isolation?

@7sharp9
Copy link
Member Author

7sharp9 commented Jul 13, 2015

@rneatherway
Copy link
Member

Sorry, I don't know anything about .NET remoting. Is it possible to return .NET types? So the idea here is to have a little shim executable that uses MSBuild, and it uses an assembly redirect to get the most up to date version available? That sounds perfect, as presumably then FCS the library could lose the dependency it currently has. If you find time to start a branch, I will try to help testing and debugging it.

@7sharp9
Copy link
Member Author

7sharp9 commented Jul 31, 2015

Ive ended up doing this locally as part of the F# addin

@rneatherway
Copy link
Member

Ah cool, so it works for iOS and Android now? Could you link me to the implementation so I can copy it please?

@7sharp9
Copy link
Member Author

7sharp9 commented Jul 31, 2015

Ive only tried it as a prototype, Ive had to leave it for now to work on
even more serious critical fixes, as soon as thats done Ill test fully
before merging in.

On 31 July 2015 at 10:15, Robin Neatherway [email protected] wrote:

Ah cool, so it works for iOS and Android now? Could you link me to the
implementation so I can copy it please?


Reply to this email directly or view it on GitHub
#371 (comment)
.

@rneatherway
Copy link
Member

Implemented in #470

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants