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

Parallel type-checking in compilation (behind a feature flag) #14494

Merged
merged 88 commits into from Feb 10, 2023

Conversation

safesparrow
Copy link
Contributor

@safesparrow safesparrow commented Dec 19, 2022

This is the joint work of @nojaf and myself

This is a feature we have been working on and discussing for the last couple of months.

Extended documentation can be found in src/Compiler/Driver/GraphChecking/Docs.md
https://github.com/dotnet/fsharp/blob/0c5c1ffb93dce47004c32b9d71b9ea9cb22e4ead/src/Compiler/Driver/GraphChecking/Docs.md

The summary of the PR is:

  1. A new test compilation option GraphBasedChecking is added.
  2. Graph-based type-checking works in the following way:
    1. Use parsed AST to infer what files might/might not depend on each other.
    2. Perform type-checking in parallel, using the dependency graph.

The net result is a lot faster type-checking, with exact improvements being highly dependent on the structure of the project and the use of signature files.

Basic performance test:
FSharp.Compiler.Service, Server GC, ReadyToRun, release mode, 8-core/16-thread CPU:

Sequential:
Realdelta: 18.4

Parallel checking of files with backing signature files:
Realdelta: 8.1

Graph-based:
Realdelta: 6.1

The impact is much more relevant in projects without backing signature files, where the existing feature cannot bring any benefits.

TODO:

  • Remove any unwanted changes from the branch introduced for testing
  • Add more timing results, with projects without .fsi files used.
  • Cleanup

Pinging @vzarytovskii @0101 @T-Gro @baronfel.

Thanks to @nojaf who has been working with me on this change for months now 👏

commit 07cbd50
Merge: c1bf185 73714c9
Author: Janusz Wrobel <janusz.wrobel.2@gmail.com>
Date:   Mon Dec 19 19:27:46 2022 +0100

    Merge remote-tracking branch 'upstream/main' into graph-tc

commit c1bf185
Author: Janusz Wrobel <janusz.wrobel.2@gmail.com>
Date:   Mon Dec 19 19:03:36 2022 +0100

    Update Docs.md

commit 656fefd
Merge: a20c50d 9e244a2
Author: Florian Verdonck <florian.verdonck@outlook.com>
Date:   Mon Dec 19 09:08:02 2022 +0100

    Merge pull request #36 from safesparrow/move-code

    Port code to target projects.

commit 9e244a2
Author: nojaf <florian.verdonck@outlook.com>
Date:   Mon Dec 19 09:07:51 2022 +0100

    Remove quote in comment.

commit e4230eb
Author: nojaf <florian.verdonck@outlook.com>
Date:   Mon Dec 19 09:03:45 2022 +0100

    Remove user name from temporary example paths.

commit 7fb31ec
Author: nojaf <florian.verdonck@outlook.com>
Date:   Sat Dec 17 18:43:17 2022 +0100

    Port code to target projects.

commit a20c50d
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Thu Dec 15 21:03:55 2022 +0000

    Cleanup, updated a few comments.

commit 6c5af5d
Merge: ce1fdea 4ae81ee
Author: Florian Verdonck <florian.verdonck@outlook.com>
Date:   Thu Dec 15 18:23:42 2022 +0100

    Merge pull request #32 from safesparrow/pairs

    Pairs

commit 4ae81ee
Author: nojaf <florian.verdonck@outlook.com>
Date:   Thu Dec 15 16:15:05 2022 +0100

    Rename new types.

commit e6ee19f
Author: nojaf <florian.verdonck@outlook.com>
Date:   Thu Dec 15 14:40:27 2022 +0100

    Map graph to dependencies.

commit 0beff48
Author: nojaf <florian.verdonck@outlook.com>
Date:   Wed Dec 14 17:07:36 2022 +0100

    Correct sample

commit 1b2ba91
Author: nojaf <florian.verdonck@outlook.com>
Date:   Wed Dec 14 15:18:05 2022 +0100

    Add failing scenario.

commit ce1fdea
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Wed Dec 14 23:18:51 2022 +0000

    cleanup + fantomas

commit 1f9384c
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Wed Dec 14 23:06:31 2022 +0000

    Cleanup

commit a5a2bd1
Merge: 9e6c871 3225b45
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Wed Dec 14 19:55:00 2022 +0000

    Merge branch 'graph-tc' into cleanup-processing

commit 3225b45
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Tue Dec 13 18:34:29 2022 +0000

    Add a failing test showing issue with ILGen in FCS

commit 9e6c871
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Mon Dec 12 18:33:40 2022 +0000

    Run all compilation phases in tests

commit c9c4adc
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Mon Dec 12 00:15:58 2022 +0000

    Use simple async tasks rather than fixed number of worker tasks

commit 9deabfa
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sun Dec 11 22:43:37 2022 +0000

    Start cleaning up graph processing

commit e98948d
Merge: d4e8bbd c6aa06c
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sun Dec 11 13:21:23 2022 +0000

    Merge remote-tracking branch 'safesparrow/graph-tc' into graph-tc

commit d4e8bbd
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sun Dec 11 13:21:06 2022 +0000

    * Small cleanup
    * Bring back the state combination optimization where we reuse the results of the child with most transitive dependencies - 10x speedup of 'combineResults' method

commit c6aa06c
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Dec 10 18:02:11 2022 +0000

    perf tests script MVP

commit 881f572
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Wed Dec 7 09:03:50 2022 +0000

    Fix build after merge

commit 6a500d4
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Wed Dec 7 08:49:11 2022 +0000

    Apply Fantomas

commit 2e2c636
Merge: 785e6a7 b38116a
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Wed Dec 7 08:47:10 2022 +0000

    Merge upstream main

commit 785e6a7
Merge: 89d072d 5ff2fc3
Author: Janusz Wrobel <janusz.wrobel.2@gmail.com>
Date:   Wed Dec 7 08:42:55 2022 +0000

    Merge pull request #31 from nojaf/improve-auto-open

commit 5ff2fc3
Author: nojaf <florian.verdonck@outlook.com>
Date:   Tue Dec 6 15:58:53 2022 -0800

    Add test for what happens with module naming clash.

commit 51c6870
Author: nojaf <florian.verdonck@outlook.com>
Date:   Tue Dec 6 15:44:48 2022 -0800

    Don't fully process files that add to root.

commit 9867c09
Author: nojaf <florian.verdonck@outlook.com>
Date:   Mon Dec 5 16:18:49 2022 -0800

    Add additional test for nested AutoOpen module in a namespace.

commit d8d86c0
Author: nojaf <florian.verdonck@outlook.com>
Date:   Mon Dec 5 12:23:54 2022 -0800

    Allow file indexes to the trie root.

commit b3848a3
Author: nojaf <florian.verdonck@outlook.com>
Date:   Wed Nov 30 09:48:09 2022 -0600

    Improve top level auto open detection.

commit 89d072d
Merge: f9745ed 1cf73f2
Author: Florian Verdonck <florian.verdonck@outlook.com>
Date:   Wed Nov 30 15:53:46 2022 +0100

    Merge pull request #24 from nojaf/trie-approach

    Alternative Trie approach

commit 1cf73f2
Author: nojaf <florian.verdonck@outlook.com>
Date:   Tue Nov 29 15:39:43 2022 -0600

    Remove hardcoded local examples.

commit 48e4194
Author: nojaf <florian.verdonck@outlook.com>
Date:   Tue Nov 29 15:27:27 2022 -0600

    Add support for single identifier module abbreviations.

commit 789174c
Author: nojaf <florian.verdonck@outlook.com>
Date:   Tue Nov 29 15:07:04 2022 -0600

    Update dependencies indexes to use signature and add failing module abbreviation case.

commit 7435583
Author: nojaf <florian.verdonck@outlook.com>
Date:   Tue Nov 29 12:59:48 2022 -0600

    Correctly deal with merging the result of signature/implementation pair.

commit 46505f3
Author: nojaf <florian.verdonck@outlook.com>
Date:   Mon Nov 28 23:05:20 2022 +0100

    Remove implementation index for signature files in trie.

commit e96d98f
Author: nojaf <florian.verdonck@outlook.com>
Date:   Mon Nov 28 22:34:18 2022 +0100

    Revert "Type check backed implementation files in parallel in a second phase."

    This reverts commit a7cb8c9.

commit 203aee3
Author: nojaf <florian.verdonck@outlook.com>
Date:   Fri Nov 25 09:30:29 2022 +0100

    Disable some logs.

commit a7cb8c9
Author: nojaf <florian.verdonck@outlook.com>
Date:   Fri Nov 25 09:22:46 2022 +0100

    Type check backed implementation files in parallel in a second phase.

commit eb9b882
Author: nojaf <florian.verdonck@outlook.com>
Date:   Thu Nov 24 17:23:57 2022 +0100

    Choose correct index for AlwaysLinkDetection.

commit 6cb01a1
Author: nojaf <florian.verdonck@outlook.com>
Date:   Thu Nov 24 16:59:23 2022 +0100

    Add scenario with dependent signature files.

commit ec8fca7
Author: nojaf <florian.verdonck@outlook.com>
Date:   Thu Nov 24 16:30:49 2022 +0100

    Take impl/sig pairing into account in TrieMapping and DependencyResolution.

commit 43881d5
Author: nojaf <florian.verdonck@outlook.com>
Date:   Wed Nov 23 17:16:49 2022 +0100

    Try and type check scenarios.

commit a3a4958
Author: nojaf <florian.verdonck@outlook.com>
Date:   Wed Nov 23 16:53:46 2022 +0100

    Extract unit tests and add some basic regression tests.

commit a7a6c74
Author: nojaf <florian.verdonck@outlook.com>
Date:   Wed Nov 23 16:02:31 2022 +0100

    Initial replacement of heuristic code.

commit 2d98905
Author: nojaf <florian.verdonck@outlook.com>
Date:   Wed Nov 23 12:53:20 2022 +0100

    Hard coded test in entry point.

commit 18ef04e
Author: nojaf <florian.verdonck@outlook.com>
Date:   Tue Nov 22 16:54:54 2022 +0100

    Add unit test for nested scenario.

commit 8e85538
Author: nojaf <florian.verdonck@outlook.com>
Date:   Tue Nov 22 16:47:21 2022 +0100

    Return a graph of int in mkGraph.

commit 18657b1
Author: nojaf <florian.verdonck@outlook.com>
Date:   Tue Nov 22 14:56:56 2022 +0100

    Replace some Seq calls to increase performance.

commit 88d5f18
Author: nojaf <florian.verdonck@outlook.com>
Date:   Mon Nov 21 16:54:27 2022 +0100

    Global namespace and nested modules with AutoOpen.

commit d8f2579
Author: nojaf <florian.verdonck@outlook.com>
Date:   Mon Nov 21 14:13:29 2022 +0100

    Deal with ghost dependencies.

commit 742e6de
Author: nojaf <florian.verdonck@outlook.com>
Date:   Mon Nov 21 10:34:07 2022 +0100

    Only a top level auto open should always be considered as a dependency.

commit 87725ff
Author: nojaf <florian.verdonck@outlook.com>
Date:   Fri Nov 18 13:19:43 2022 +0100

    Try out the new approach on Fantomas.Core.Tests.

commit d320c81
Author: nojaf <florian.verdonck@outlook.com>
Date:   Fri Nov 18 12:45:53 2022 +0100

    Use indexes in TrieNodeInfo, consider auto open modules and do some stricter checks in the TypedTreeGraph.

commit dc7d2aa
Author: nojaf <florian.verdonck@outlook.com>
Date:   Thu Nov 17 18:13:37 2022 +0100

    Test all lengths of PrefixedIdentifier path.

commit 6edb042
Author: nojaf <florian.verdonck@outlook.com>
Date:   Thu Nov 17 18:12:29 2022 +0100

    Call continuation for SynExpr.Record.

commit 63539f8
Author: nojaf <florian.verdonck@outlook.com>
Date:   Thu Nov 17 16:26:19 2022 +0100

    queryTrieMemoized

commit 32dd4bf
Author: nojaf <florian.verdonck@outlook.com>
Date:   Thu Nov 17 16:12:46 2022 +0100

    Address SynModuleDecl.ModuleAbbrev.
    Verify locally with FCS project.

commit b69faba
Author: nojaf <florian.verdonck@outlook.com>
Date:   Thu Nov 17 13:53:15 2022 +0100

    Clean up

commit e5e769a
Author: nojaf <florian.verdonck@outlook.com>
Date:   Thu Nov 17 11:57:39 2022 +0100

    Dependency resolution with new trie approach.

commit b574074
Author: nojaf <florian.verdonck@outlook.com>
Date:   Tue Nov 15 14:34:44 2022 +0100

    Initial trie approach.

commit f9745ed
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Nov 19 17:03:29 2022 +0000

    Fix build

commit ae0e40b
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Mon Nov 14 23:03:55 2022 +0000

    Run Fantomas + fix build

commit ccffefe
Merge: 5f04801 4722c91
Author: Janusz Wrobel <janusz.wrobel.2@gmail.com>
Date:   Mon Nov 14 22:49:21 2022 +0000

    Merge pull request #18 from nojaf/typed-tree-graph

commit 4722c91
Author: nojaf <florian.verdonck@outlook.com>
Date:   Mon Nov 14 16:57:48 2022 +0100

    Update reference assemblies.

commit 43345fb
Author: nojaf <florian.verdonck@outlook.com>
Date:   Mon Nov 14 16:57:36 2022 +0100

    Remove PLinq.

commit f787435
Author: nojaf <florian.verdonck@outlook.com>
Date:   Mon Nov 14 16:36:46 2022 +0100

    Add tests that compare the heuristic with the typed tree information.

commit 5f04801
Merge: 9857439 01c28a3
Author: Janusz Wrobel <janusz.wrobel.2@gmail.com>
Date:   Sun Nov 13 23:49:23 2022 +0000

    Merge pull request #17 from safesparrow/speed

commit 01c28a3
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sun Nov 13 23:41:47 2022 +0000

    Cleanup

commit 136792b
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sun Nov 13 01:53:38 2022 +0000

    Some speed improvements

commit 3e4cd99
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sun Nov 13 00:17:51 2022 +0000

    Fix FCS type-checking - AutoOpen modules were being handled wrong.
    Add a test that was failing before the change.

commit 6a482d6
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Nov 12 23:42:51 2022 +0000

    Add tests for top-level modules and fix top-level item resolution in signature files - FCS now failing for a different reason.

commit 9048a96
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Fri Nov 11 11:39:40 2022 +0000

    not working

commit 7ffa15f
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Fri Nov 11 09:40:17 2022 +0000

    Some cleanup. FCS checking failing for unknown reason

commit 9857439
Merge: e550115 9fa6952
Author: Janusz Wrobel <janusz.wrobel.2@gmail.com>
Date:   Thu Nov 10 23:10:43 2022 +0000

    Merge pull request #14 from safesparrow/tcSigEnv-merging-updated

commit 9fa6952
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Thu Nov 10 23:04:15 2022 +0000

    Run Fantomas

commit a1fd757
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Thu Nov 10 23:00:16 2022 +0000

    Fix build

commit 59784a4
Merge: 0638d62 e550115
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Thu Nov 10 22:32:04 2022 +0000

    Merge heuristic_otel

commit e550115
Merge: b0d5af0 0b647aa
Author: Janusz Wrobel <janusz.wrobel.2@gmail.com>
Date:   Thu Nov 10 19:43:33 2022 +0000

    Merge pull request #13 from safesparrow/heuristic_otel_formatting3

commit 0b647aa
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Thu Nov 10 19:35:42 2022 +0000

    Add newline

commit ae23961
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Thu Nov 10 19:34:48 2022 +0000

    Format src/ and tests/ParallelTypeCheckingTests/

commit 0638d62
Author: nojaf <florian.verdonck@outlook.com>
Date:   Thu Nov 10 13:52:39 2022 +0100

    Use correct file name in graph.

commit b2dd4fe
Author: nojaf <florian.verdonck@outlook.com>
Date:   Thu Nov 10 13:52:10 2022 +0100

    Update tcSigEnv instead of overriding it in the callback for a signature file.

commit 7ce0ec4
Author: nojaf <florian.verdonck@outlook.com>
Date:   Thu Nov 10 13:47:13 2022 +0100

    Remove hardcoded signature dependency and add failing test.

commit b0d5af0
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Wed Nov 9 01:43:24 2022 +0000

    Cleanup

commit e4643f2
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Wed Nov 9 01:31:05 2022 +0000

    Cleanup

commit d6690eb
Merge: 83f671c dd7b1ea
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Wed Nov 9 01:21:30 2022 +0000

    Merge branch 'heuristic_otel' of https://github.com/safesparrow/fsharp into heuristic_otel

commit 83f671c
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Wed Nov 9 01:21:05 2022 +0000

    Fix Common.fs namespace

commit dd7b1ea
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Wed Nov 9 01:12:41 2022 +0000

    Cleanup

commit 716db8e
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Tue Nov 8 23:49:41 2022 +0000

    Start cleanup for sharing the branch

commit 6df43e9
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Tue Nov 8 04:47:39 2022 +0000

    changes

commit 783a253
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Tue Nov 8 04:35:59 2022 +0000

    FCS works.

commit 9beca10
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Tue Nov 8 03:38:44 2022 +0000

    Changes - FCS type-checking now broken - hangs early on...

commit 39d723b
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Tue Nov 8 02:04:33 2022 +0000

    changes

commit c488082
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Mon Nov 7 01:14:18 2022 +0000

    Changes

commit 0d5f07b
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Mon Nov 7 01:04:33 2022 +0000

    Cleanup. Generate fsc args for FCS and ComponentTests projects. Add a script for preparing the codebase

commit 2a6451b
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sun Nov 6 13:20:14 2022 +0000

    Cleanup

commit 4ebc64c
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sun Nov 6 13:08:41 2022 +0000

    * Cleanup
    * Start creating proper config

commit 0805660
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sun Nov 6 00:44:12 2022 +0000

    changes

commit 2cfcebe
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sun Nov 6 00:43:44 2022 +0000

    cleanup

commit 154134f
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sun Nov 6 00:29:12 2022 +0000

    more cleanup & fixes - all tests passing

commit 43dc18a
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Nov 5 23:11:13 2022 +0000

    Cleanup tests & namespaces. Basic compile test not working.

commit 991bf61
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Nov 5 15:40:50 2022 +0000

    Small cleanup, revert what's no longer needed.

commit 0f969d8
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Nov 5 10:27:14 2022 +0000

    changes

commit 8900e78
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Nov 5 01:21:36 2022 +0000

    Works by forcing full dep graph

commit 9d29b49
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Nov 5 00:06:39 2022 +0000

    * Lots of temporary hacks
    * Force edges to all files above - equivalent of sequential processing
    * Succeeds for full FCS project

commit fcc7537
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Fri Nov 4 18:27:28 2022 +0000

    Fix some errors - force .fsi files to depend on all previous .fsi files (short-term fix)

commit 9f83dc3
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Fri Nov 4 07:58:24 2022 +0000

    * Treat type abbreviations same as module abbreviations - assume file depends on everything
    * Add more tests
    * Add an edge case
    * Force add fs -> fsi edges to the graph
    * Short-circuit compilation with a flag for testing
    * Use concurrent dicts to avoid race conditions

commit b2879cf
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Thu Nov 3 09:38:10 2022 +0000

    Update

commit 6a44506
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Thu Nov 3 09:36:04 2022 +0000

    Fix tests, make them more generic

commit 7c6b54c
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Thu Nov 3 00:47:12 2022 +0000

    More cleanup - FCS tests not working - probably invalid paths.

commit c46dd31
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Thu Nov 3 00:38:25 2022 +0000

    Cleanup

commit 311e7dd
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Thu Nov 3 00:35:49 2022 +0000

    Finish unit test cleanup

commit 6d3d3cc
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Wed Nov 2 23:37:26 2022 +0000

    WIP Setup unit tests

commit cb4a99f
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Wed Nov 2 18:12:32 2022 +0000

    changes - not working

commit ed795dd
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Tue Nov 1 19:00:25 2022 +0000

    Add an broken example

commit aa126a4
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Tue Nov 1 03:09:35 2022 +0000

    Doesn't work - found a scenario

commit 9f991d4
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Tue Nov 1 02:56:56 2022 +0000

    still doesn't work

commit 3e65c3c
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Tue Nov 1 02:29:42 2022 +0000

    FSI files still don't work

commit c8098dc
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Tue Nov 1 01:32:30 2022 +0000

    NOT WORKING fsi stuff

commit dcafb5f
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Mon Oct 31 21:03:48 2022 +0000

    WIP - making .fsi files work

commit b8d45e0
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sun Oct 30 23:09:05 2022 +0000

    Python script for visualising a Trie

commit e1c5ae3
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sun Oct 30 19:05:58 2022 +0000

    Fix compilation and otel setup in compiler

commit 49eda4b
Merge: 35b7bc8 8767a5a
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sun Oct 30 18:42:28 2022 +0000

    Merge otel

commit 35b7bc8
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sun Oct 30 18:37:21 2022 +0000

    changes

commit 0388685
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sun Oct 30 18:18:01 2022 +0000

    changes

commit 58dcee6
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sun Oct 30 17:07:14 2022 +0000

    changes

commit 5721a21
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sun Oct 30 16:55:55 2022 +0000

    changes

commit d82c543
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sun Oct 30 13:13:38 2022 +0000

    changes

commit ae722fe
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sun Oct 30 10:29:26 2022 +0000

    changes - works end-to-end for .fs files and the diamond example

commit b2c265b
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Oct 29 21:24:42 2022 +0100

    changes

commit 10447af
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Oct 29 17:23:56 2022 +0100

    changes

commit 7fc73e0
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Oct 29 17:13:25 2022 +0100

    changes

commit b5d3367
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Oct 29 16:38:31 2022 +0100

    WIP

commit 73a100f
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Oct 29 13:45:03 2022 +0100

    changes

commit 89c44e0
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Oct 29 10:55:52 2022 +0100

    changes

commit 4288150
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Oct 29 03:16:23 2022 +0100

    changes

commit 56e2301
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Oct 29 02:40:58 2022 +0100

    changes

commit fd67ddb
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Oct 29 02:03:10 2022 +0100

    changes

commit 2ec476d
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Oct 29 01:11:40 2022 +0100

    changes

commit 39e59df
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Oct 29 00:02:31 2022 +0100

    changes

commit 9395a73
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Oct 29 00:01:00 2022 +0100

    changes

commit 66c747e
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Fri Oct 28 17:51:05 2022 +0100

    changes

commit b00ed8a
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Wed Oct 26 09:41:06 2022 +0100

    WIP - generalise the code

commit 6c47617
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Wed Oct 26 08:59:56 2022 +0100

    changes

commit 54ab09a
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Wed Oct 26 02:27:02 2022 +0100

    WIP

commit b9e1dde
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Wed Oct 26 02:05:23 2022 +0100

    WIP - start combining partial results in an efficient way

commit 8767a5a
Merge: 336b120 4ad5615
Author: Janusz Wrobel <janusz.wrobel.2@gmail.com>
Date:   Wed Oct 26 01:11:29 2022 +0100

    Merge branch 'main' into otel

commit 221f650
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Tue Oct 25 01:00:36 2022 +0100

    WIP

commit 336b120
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Mon Oct 24 02:09:21 2022 +0100

    Add a comment and move Activity.fs/fsi to Utilities/

commit 26ab7f5
Merge: ad91f8b ddbaafd
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Mon Oct 24 01:45:19 2022 +0100

    Merge remote-tracking branch 'upstream/main' into otel

commit ad91f8b
Merge: 03f6760 d59a2f4
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Mon Oct 24 01:36:05 2022 +0100

    Merge remote-tracking branch 'origin/main' into otel

commit a343a59
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sun Oct 23 02:15:41 2022 +0100

    Changes

commit 1af40cc
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sun Oct 23 01:39:44 2022 +0100

    Extract nested modules rather than just the top-level one as representatives of a file

commit cded6a0
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Oct 22 16:09:51 2022 +0100

    WIP

commit 126c584
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Oct 22 15:17:50 2022 +0100

    changes

commit ef5a332
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Oct 22 12:04:42 2022 +0100

    WIP Graph processing

commit 7522f86
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Oct 22 02:18:27 2022 +0100

    WIP parallel processor

commit d0f4180
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Oct 22 01:45:22 2022 +0100

    cleanup

commit d43e0c3
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Oct 22 01:01:25 2022 +0100

    cleanup

commit 42b90c9
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Fri Oct 21 18:45:39 2022 +0100

    Handle module abbreviations - files with them depend on all files and are depended upon by all other files

commit dc8904b
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Wed Oct 19 02:48:18 2022 +0100

    Update docs

commit 8909b7e
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Wed Oct 19 02:37:29 2022 +0100

    Update docs

commit 6e655df
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Wed Oct 19 01:05:29 2022 +0100

    WIP

commit 5ba78e8
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Tue Oct 18 23:45:37 2022 +0100

    Start writing docs

commit 672e3a2
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Tue Oct 18 20:03:29 2022 +0100

    WIP

commit 9f336c9
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Tue Oct 18 09:35:57 2022 +0100

    WIP

commit 6e85994
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Tue Oct 18 01:39:44 2022 +0100

    WIP

commit a21d5ee
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Tue Oct 18 00:19:25 2022 +0100

    Support .fsi files (for now without the knowledge of the fs-fsi relationships)

commit 7ce5d00
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Tue Oct 18 00:02:05 2022 +0100

    WIP

commit 03d820a
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Mon Oct 17 09:10:25 2022 +0100

    WIP

commit 8610e14
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Mon Oct 17 08:49:14 2022 +0100

    WIP

commit b461abb
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sun Oct 16 21:11:52 2022 +0100

    WIP

commit b1ebfdb
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sun Oct 16 19:29:04 2022 +0100

    MVP finished

commit caee542
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sun Oct 16 17:50:10 2022 +0100

    WIP

commit 7bc03cc
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sun Oct 16 13:53:03 2022 +0100

    WIP

commit 8229cf6
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Oct 15 23:52:42 2022 +0100

    WIP

commit c9beb6c
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Oct 15 19:31:24 2022 +0100

    WIP

commit 47a8af6
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Oct 15 19:23:50 2022 +0100

    Finish?

commit c900602
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Oct 15 18:21:44 2022 +0100

    WIP

commit d8c60b1
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Oct 15 17:35:49 2022 +0100

    WIP

commit 88562d6
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Oct 15 17:05:31 2022 +0100

    WIP

commit d34459d
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Oct 15 16:19:00 2022 +0100

    WIP

commit e337ee9
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Oct 15 16:12:56 2022 +0100

    WIP

commit ddb2e72
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Oct 15 15:58:41 2022 +0100

    WIP

commit 2a36116
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Oct 15 15:43:16 2022 +0100

    Finished?

commit 1d08de5
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Oct 15 15:16:12 2022 +0100

    WIP

commit 4e5593b
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Oct 15 14:48:58 2022 +0100

    WIP

commit 7de1d91
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Oct 15 14:15:19 2022 +0100

    Start implementing AST visitor

commit 03f6760
Merge: ab1b693 889709d
Author: Janusz Wrobel <janusz.wrobel.2@gmail.com>
Date:   Wed Oct 12 22:45:34 2022 +0100

    Merge branch 'main' into otel

commit ab1b693
Author: Tomas Grosup <tomasgrosup@microsoft.com>
Date:   Tue Oct 11 20:43:10 2022 +0200

    Applying Fantomas

commit fb61e37
Author: Tomas Grosup <tomasgrosup@microsoft.com>
Date:   Tue Oct 11 20:33:34 2022 +0200

    Reflecting newer package version in the code (more overloads available)

commit 0c95dc9
Author: Tomas Grosup <tomasgrosup@microsoft.com>
Date:   Tue Oct 11 20:22:53 2022 +0200

    Updating DiagnosticSource version and reflecting in vsintegraion projects

commit d502913
Merge: 6fc7aeb 07b0a6b
Author: Tomas Grosup <tomasgrosup@microsoft.com>
Date:   Tue Oct 11 15:43:37 2022 +0200

    Merge branch 'main' into feature/activity-tracking-CI-fix

commit 6fc7aeb
Merge: 2b9210f 8c053c3
Author: Tomas Grosup <tomasgrosup@microsoft.com>
Date:   Tue Oct 11 12:37:31 2022 +0200

    Merge branch 'otel' of https://github.com/safesparrow/fsharp into pr/13835

commit 2b9210f
Author: Tomas Grosup <tomasgrosup@microsoft.com>
Date:   Tue Oct 11 12:37:13 2022 +0200

    Fix CI by nuspec dependency version assignment

commit 8c053c3
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Tue Oct 11 09:02:45 2022 +0100

    Fantomas formatting one more time

commit dcfea04
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Tue Oct 11 08:50:38 2022 +0100

    Apply fixes from T-Gro to avoid NRE

commit e1be127
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Mon Oct 10 21:17:06 2022 +0100

    Fantomas formatting

commit 549b3f8
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Mon Oct 10 21:13:18 2022 +0100

    Don't use dummyDisposable

commit 6684413
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Mon Oct 10 20:19:56 2022 +0100

    Fix build

commit b857487
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Mon Oct 10 20:07:38 2022 +0100

    Rename activity file, fix NRE, rename start methods

commit 1122aa6
Merge: b71bf73 26bc85e
Author: Janusz Wrobel <janusz.wrobel.2@gmail.com>
Date:   Mon Oct 10 19:48:39 2022 +0100

    Merge branch 'main' into otel

commit b71bf73
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Mon Oct 10 19:47:24 2022 +0100

    Remove old code

commit bca4a45
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Mon Oct 10 19:09:39 2022 +0100

    Use consistent casing in tag names

commit 4e23ca3
Merge: 80459f9 50fd7b5
Author: Janusz Wrobel <janusz.wrobel.2@gmail.com>
Date:   Mon Oct 10 18:25:56 2022 +0100

    Merge pull request #3 from T-Gro/feature/activity-tracing

commit 50fd7b5
Merge: 6ce22da 67f9ccf
Author: Tomas Grosup <tomasgrosup@microsoft.com>
Date:   Mon Oct 10 18:36:02 2022 +0200

    Merge remote-tracking branch 'origin/main' into feature/activity-tracing

commit 6ce22da
Author: Tomas Grosup <tomasgrosup@microsoft.com>
Date:   Mon Oct 10 18:17:27 2022 +0200

    Fantomas applied

commit 924097b
Merge: a776c86 8d27963
Author: Tomas Grosup <tomasgrosup@microsoft.com>
Date:   Mon Oct 10 18:09:31 2022 +0200

    Resolving conflicts

commit a776c86
Author: Tomas Grosup <tomasgrosup@microsoft.com>
Date:   Mon Oct 10 16:18:28 2022 +0200

    Tracing via dotnet ActivitySource

commit 80459f9
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Sep 17 16:39:14 2022 +0100

    Fix System.Diagnostics.DiagnosticSource package version

commit ea8a7ed
Merge: 6783b97 43579c0
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Sep 17 16:18:25 2022 +0100

    Merge upstream/main

commit 6783b97
Merge: 43394e6 cdc5963
Author: Janusz Wrobel <janusz.wrobel.2@gmail.com>
Date:   Tue Sep 13 17:36:10 2022 +0100

    Merge branch 'main' into otel

commit 43394e6
Merge: 83dcc97 38e7e57
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Mon Sep 12 22:19:45 2022 +0100

    Merge remote-tracking branch 'upstream/main' into otel

commit 83dcc97
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Mon Sep 5 20:55:48 2022 +0100

    Make the Activity module internal, remove from the surface

commit eabca75
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Mon Sep 5 01:31:11 2022 +0100

    Fantomas formatting

commit 3133d0c
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Mon Sep 5 00:48:44 2022 +0100

    Update baseline

commit bdb546b
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Mon Sep 5 00:46:08 2022 +0100

    Fantomas formatting

commit c86c851
Merge: 679d2aa e06e079
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Sep 3 17:33:19 2022 +0100

    Merge remote-tracking branch 'upstream/main' into otel

commit 679d2aa
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Sep 3 17:24:48 2022 +0100

    Remove nuget.org

commit e5a3816
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Sep 3 17:17:10 2022 +0100

    Revert unneeded changes/PR feedback

commit ca51e57
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Sep 3 15:42:00 2022 +0100

    Fix build

commit 057a110
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Sep 3 15:37:01 2022 +0100

    * Remove references to OpenTelemetry
    * Move activities to BackgroundChecker layer, deduplicate

commit 57ca46b
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Sep 3 15:29:51 2022 +0100

    Revert "Allow parallel project analysis with an environment variable"

    This reverts commit c62e89c

commit ad5d138
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Sep 3 15:28:25 2022 +0100

    Use Jaeger exporter in FSC

commit a1f74c9
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Sep 3 14:22:46 2022 +0100

    * Make the code do nothing if no listeners are hooked up.
    * Cleanup

commit f8170b8
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sat Sep 3 00:52:53 2022 +0100

    Improve activity logging for the background checker

commit f72b570
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Fri Sep 2 01:49:37 2022 +0100

    more hacks

commit c3d84f1
Merge: 0702fc1 4431af5
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Wed Aug 31 20:50:32 2022 +0100

    Merge remote-tracking branch 'origin/parallel-project-analysis' into otel_parallel

commit 0702fc1
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Wed Aug 31 02:34:47 2022 +0100

    More hacks to get nested project information in the trace

commit 16fcfd4
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Wed Aug 31 01:54:59 2022 +0100

    Hacks to make telemetry work in incremental builder

commit 30fd578
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Wed Aug 31 00:01:28 2022 +0100

    Don't dispose of the telemetry objects immediately

commit d4db68a
Merge: 01e165b 7c81ac0
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Tue Aug 30 23:11:07 2022 +0100

    Merge branch 'main' into otel

commit 01e165b
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Tue Aug 30 23:10:39 2022 +0100

    WIP

commit 906ed7a
Merge: 5658f02 0063f20
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Mon Aug 29 12:09:34 2022 +0100

    Merge branch 'main' into otel

commit 5658f02
Merge: a7b6681 4618764
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Wed Jul 27 20:12:39 2022 +0100

    Merge remote-tracking branch 'baronfel/activities' into otel

commit 4618764
Author: Chet Husk <chusk3@gmail.com>
Date:   Sun Jul 24 10:21:44 2022 -0500

    more granularity

commit 4431af5
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sun Jul 17 21:56:14 2022 +0100

    reformat CompilerImports.fs

commit c62e89c
Author: janusz <janusz.wrobel.2@gmail.com>
Date:   Sun Jul 17 20:54:26 2022 +0100

    Allow parallel project analysis with an environment variable

commit 524cd17
Author: Chet Husk <chusk3@gmail.com>
Date:   Sun Jul 17 14:06:46 2022 -0500

    better names

commit 237bf59
Author: Chet Husk <chusk3@gmail.com>
Date:   Sun Jul 17 12:29:51 2022 -0500

    very basic spans

commit 0dd5258
Author: Chet Husk <chusk3@gmail.com>
Date:   Sun Jul 17 10:16:26 2022 -0500

    first activity plumbing
Copy link
Contributor Author

@safesparrow safesparrow left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are quite a few temporary changes that we will need to revert - have commented on all that I could identify.

.fantomasignore Outdated Show resolved Hide resolved
FSharp.sln Outdated Show resolved Hide resolved
FSharp.sln Outdated Show resolved Hide resolved
FSharp.sln Outdated Show resolved Hide resolved
FSharp.sln Outdated Show resolved Hide resolved
tests/FSharp.Test.Utilities/TestFramework.fs Outdated Show resolved Hide resolved
tests/service/Common.fs Outdated Show resolved Hide resolved
trie_vis.py Outdated Show resolved Hide resolved
@vzarytovskii
Copy link
Member

Looks nice, will give it a proper review this week, will also think about testing matrix in CI!

@vzarytovskii
Copy link
Member

Could you also please mark new public APIs as experimental (via the attribute), repurpose CI leg(s) for parallel project checking to also include these changes, and expose a flag in VS settings to enable it?

@nojaf
Copy link
Contributor

nojaf commented Jan 4, 2023

@vzarytovskii, I've added a CI leg similar to --test:ParallelCheckingWithSignatureFilesOn.
Let me know if that needs any tweaks.

@T-Gro
Copy link
Member

T-Gro commented Jan 4, 2023

The new CI leg passes, good job.

The failing test is one I introduced (issue with different process locking a .csv file with timing), shall I have a look and fix it?

@nojaf
Copy link
Contributor

nojaf commented Jan 4, 2023

I don't think that failure is related to our changes. I triggered the CI again, if it still pops up I can take a look.

Copy link
Contributor

@0101 0101 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

src/Compiler/Driver/GraphChecking/Types.fsi Show resolved Hide resolved
src/Compiler/Driver/ParseAndCheckInputs.fs Outdated Show resolved Hide resolved
src/Compiler/Driver/GraphChecking/Graph.fs Outdated Show resolved Hide resolved
src/Compiler/Driver/GraphChecking/TrieMapping.fs Outdated Show resolved Hide resolved
src/Compiler/Driver/GraphChecking/TrieMapping.fs Outdated Show resolved Hide resolved
src/Compiler/Driver/ParseAndCheckInputs.fs Outdated Show resolved Hide resolved
src/Compiler/Driver/ParseAndCheckInputs.fs Show resolved Hide resolved
src/Compiler/Driver/GraphChecking/Graph.fsi Outdated Show resolved Hide resolved
src/Compiler/Driver/GraphChecking/Graph.fsi Outdated Show resolved Hide resolved
src/Compiler/Driver/ParseAndCheckInputs.fs Outdated Show resolved Hide resolved
@nojaf
Copy link
Contributor

nojaf commented Feb 7, 2023

Thank you @0101 for the review! Much appreciated!

@vzarytovskii
Copy link
Member

This looks good to me.

Since it's a separate compilation path under flag, I think we should get it in and start testing it on compiler itself, tests, pr ci (and turn off in signed builds).

I'm fine with merging it in.

@vzarytovskii
Copy link
Member

One thing I would like to ask is to make sure docs are up to date, but it can be done in separate pr.

@nojaf
Copy link
Contributor

nojaf commented Feb 8, 2023

One thing I would like to ask is to make sure docs are up to date, but it can be done in separate pr.

@safesparrow I added some notes on the algorithm. I think it is up to date otherwise.
Could you also please review the whole file please?

@safesparrow
Copy link
Contributor Author

One thing I would like to ask is to make sure docs are up to date, but it can be done in separate pr.

@safesparrow I added some notes on the algorithm. I think it is up to date otherwise. Could you also please review the whole file please?

I reviewed it and made changes. I think it's good enough now.

@safesparrow
Copy link
Contributor Author

@vzarytovskii @T-Gro @0101 We think this is now ready to merge. If you think it is too, could you please merge it?

@T-Gro
Copy link
Member

T-Gro commented Feb 10, 2023

I think so too.
Let's use it :)

@safesparrow
Copy link
Contributor Author

safesparrow commented Feb 11, 2023

Cheers @T-Gro

Just to note that as discussed above the nondeterministic pdb generation means that the feature auto-disables in default deterministic builds, so to start using it you'll have to disable determinism.

Fixing this is our plan but so far it's proving difficult to pinpoint what exactly causes it.

KevinRansom added a commit to KevinRansom/fsharp that referenced this pull request Feb 20, 2023
kant2002 pushed a commit to kant2002/fsharp that referenced this pull request Apr 1, 2023
…#14494)

Parallel type-checking in compilation (behind a feature flag)
---------
Co-authored-by: nojaf <florian.verdonck@outlook.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

None yet

8 participants