-
Notifications
You must be signed in to change notification settings - Fork 789
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
[WIP] Add Reference Assembly support #11521
Closed
Closed
Changes from 11 commits
Commits
Show all changes
82 commits
Select commit
Hold shift + click to select a range
2411f75
Adding 'refonly' command line option
TIHan 1b6dc26
Added a simple test, but it needs to fail
TIHan ee89986
We need to emit two kinds of reference assemblies. one with optimizat…
TIHan 9dcdbb0
Passing reference assembly flag to IlxGen
TIHan 84cd6a8
Emit ReferenceAssemblyAttribute
TIHan 3a0a7be
Added ref-assembly rules for private and internal methods
TIHan 5d78b77
use --refonly for now
TIHan 2f1af9b
Use HasFSharpAttribute
TIHan 512743c
Added a failing test
TIHan 4af859b
Test passes
TIHan 6b5c032
Trying to handle anonymous record types
TIHan 84354ba
Cleaning up. Using ILMemberAccess instead of Accessibility due to how…
TIHan 6d93c92
Using notlazy
TIHan c31ce72
Added another comment
TIHan 0d02203
Added mkDummyParameterVal
TIHan 8f5cbf5
Using taccessPublic
TIHan daf1847
More cleanup
TIHan 9d0c7f6
Minor comment update
TIHan 47d3b5a
more cleanup
TIHan 5e4460e
merging
TIHan 3468094
Adding FreeAnonRecdTypeInfos set
TIHan 23d0da7
Adding options
TIHan 8a1504f
Flowing free anonrecdtypeinfos
TIHan d7e491e
Fixing build
TIHan 7ff20d6
Tests pass. Able to emit partial ref assembly with anon recds
TIHan a023c38
Minor rename
TIHan 6801573
Added a failing test
TIHan 91dbaa0
Added failing test
TIHan 4931062
Simpler handling of building lambdas
TIHan e5c1cc8
Trying to figure out default param names
TIHan bb26684
Adding TryEmitReferenceAssembly
TIHan 7415f4a
Merge remote-tracking branch 'remote/main' into ref-assembly-output
TIHan ee33c6d
Moving some reference assembly generation rules to ilwrite
TIHan 180f339
Fixing build
TIHan e36c696
Added new compiler option '--refout:<file>'
TIHan 32044c5
Fixing one of the tests
TIHan 3088747
refonly/refout should only be part of fsc
TIHan f475e58
Merge remote-tracking branch 'remote/main' into ref-assembly-output
TIHan cfa275c
Updating help baseline
TIHan 1604fa0
Merge remote-tracking branch 'remote/main' into ref-assembly-output
TIHan 6f6b2a6
Merging
TIHan f4c9980
fixed build
TIHan 193ba49
Fixing build. Added basic deterministic test
TIHan 4793882
Failing determinism test
TIHan 69fb788
Added DeterministicTests
TIHan 067091b
Adding determinism task for CI
TIHan 5e14bbc
moving yml to pipelines
TIHan 2a9bcf1
Trying to fix determinism CI
TIHan 7a5ba80
quick fix
TIHan cb85986
removing job
TIHan cebcc6c
Trying to fix ci
TIHan e4c046f
Removing this
TIHan 3bdd39d
Turn on determinism for build
TIHan c0c83e4
Trying to fix
TIHan d4984eb
This works
TIHan 1b3fdcf
Determinism
TIHan b6ac933
Building
TIHan 447ab7a
Forgot to run test
TIHan 2e4f679
Adding job
TIHan 6f22cb8
Trying to fix job
TIHan 50a041d
Remove job
TIHan 78f53ac
Trying to figure out jobs
TIHan 222dad3
Updating job
TIHan b22c2e5
Fixing determinism job
TIHan f1f2cc6
Fixing job
TIHan 3c2d413
Update test-determinism.ps1
TIHan 246bcfe
Update FSharp.Profiles.props
TIHan 1da9044
Update test-determinism.ps1
TIHan 9babedc
Update FSharpBuild.Directory.Build.props
TIHan c353628
Merged with main
TIHan 2e6caaa
Merge branch 'ref-assembly-output' of github.com:TIHan/visualfsharp i…
TIHan 62c3254
Merge branch 'main' into ref-assembly-output
vzarytovskii a452cba
Merge branch 'main' into ref-assembly-output
vzarytovskii 19e9ce5
Merged with main
TIHan eac93e3
Trying to fix build
TIHan ee90edc
Merge branch 'ref-assembly-output' of github.com:TIHan/visualfsharp i…
TIHan ee77c70
Trying to fix build
TIHan f868a05
fixing build
TIHan e4b2e1e
Fixing build
TIHan 70c2fb1
fixing build
TIHan a188671
Fixing build
TIHan ddd4103
Remove comment as it is not accurate
TIHan File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The
Accessibility
thing on Val and Entity is not complete unfortunately and most code relying on it alone is probably buggy. See #11528There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We'll be using
ILMemberAccess
here instead as it's the most accurate, so we don't have to do any extra work for accessibility.The only downside is that the compiler will always emit Internal for everything and never private. I'm wondering if we could change that in the future. Logically speaking, there are things that really should be emit
ILMemberAccess.Private
such as backing fields.