Skip to content

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

Merged
merged 40 commits into from
May 9, 2017
Merged

import remaining FCS code #2951

merged 40 commits into from
May 9, 2017

Conversation

dsyme
Copy link
Contributor

@dsyme dsyme commented Apr 29, 2017

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:

  1. 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

  2. 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/

  3. 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

  4. 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

  5. The project files didn't use a Proto compiler so some changes were needed there.

  6. 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

msbuild fcs\FSharp.Compiler.Service\FSharp.Compiler.Service.fsproj

@dsyme
Copy link
Contributor Author

dsyme commented May 2, 2017

Notes to self about this PR:

  1. 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

  2. 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/

  3. 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

  4. 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

  5. The project files didn't use a Proto compiler so some chagnes were needed there.

@dsyme
Copy link
Contributor Author

dsyme commented May 4, 2017

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 dsyme changed the title [WIP] import remaining FCS code import remaining FCS code May 6, 2017
@KevinRansom
Copy link
Member

@dsyme small conflict.

@dsyme
Copy link
Contributor Author

dsyme commented May 8, 2017

@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.

@dsyme dsyme merged commit de67934 into dotnet:master May 9, 2017
@7sharp9
Copy link
Contributor

7sharp9 commented Jul 6, 2017

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.

nosami pushed a commit to xamarin/visualfsharp that referenced this pull request Jan 26, 2022
* 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants