-
Notifications
You must be signed in to change notification settings - Fork 812
import remaining FCS code #2951
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
Conversation
Notes to self about this PR:
|
Note to self: Still a lot of errors in the VS unit tests, I need to track them down, the list is here https://gist.github.com/dsyme/4215d12211d6423d7622de15ff3e3352 Link to remaining failures: https://gist.github.com/dsyme/f43a4232f4d12f4ecdc6be4682569ac6 |
@dsyme small conflict. |
@KevinRansom this is now ready. It's a large PR but after this the codebases are aligned, at least where they overlap. There is still a lot of work to do before we can build valid FCS packages - and there are a lot of other things to do to - but after this we can channel all contributions to FCS via this repo. |
A single source of truth would indeed be great, even in just the cognitive load of knowing whats been fixed where, what compiler mono is using etc. |
* import remaining FCS code * add missing files * fix some parts of build * more FCS integration work * build fcs.dll and vs targets * revert changes to proj files * update sig files * various cleanup items * simplify #ifs * fix various tests * enable scripting testing * fix build * fix build * fix tests and build * fix tests and build * fix build * fix tests * fix tests * add diagnostic and fix coreclr build * fix printing tests * test updates * improve error logging * integrate visualfsharp master * dependency files * proj file * dependency files * fix build * fix fsi.exe in GUI mode * add end of line to source text if needed as before * fix many tests * fix remaining tests * better strong name logic to fix final test * reinstate all strong names * fix last tests * fix last test again
This is the start of the work to allow the FSharp.Compiler.Service component to be developed in this repository
This will take a while to get into shape..
Notes about this PR:
There are subtle differences between FSharp.Compiler.Service.dll (public API), FSharp.Compiler.dll (internal to fsc.exe and fsi.exe) and FSharp.LanguageService.Compiler.dll (internal to VS, some things trimmed out). Because of this we don't try to unify these, but I expect we'll be able to in a subsequent round of work
FCS includes the "Project Cracker". It's unclear if we should bring the code for that back as part of this PR. Probably we should for completeness so we can retire https://github.com/fsharp/FSharp.Compiler.Service/
FCS included a number of changes in fsi.fs to turn that into an API. Those changes hadn't yet been brought into this repo, and some of the changes use the Symbols API
FCS includes the "FSharpExpr" API which hadn't previously been brought into this repo. It's pretty well-tested through Fable so is reasonable to bring in, and there are additional tests as part of this PR
The project files didn't use a Proto compiler so some changes were needed there.
the FCS assembly is currently strong named with the Microsoft key. Whether this key is used in the long run is another matter (the community built nuget packages used no strong name)
Currently you compile the FSharp.Compiler.Service.dll for .NET 4.x using