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

Alternative Trie approach #24

Merged
merged 30 commits into from
Nov 30, 2022
Merged

Alternative Trie approach #24

merged 30 commits into from
Nov 30, 2022

Conversation

nojaf
Copy link
Collaborator

@nojaf nojaf commented Nov 18, 2022

This is an alternative take on the existing trie idea.

Some key differences:

  • There is a single trie that remains unaltered after its creation.
  • A trie node has metadata whether it is a module or namespace. In the case of a namespace, it only lists files that add types to the namespace
  • For each file FileContentEntries are constructed. This is a more specific representation of all the identifiers that are found in the file. An open statement is processed differently than an identifier for example.
  • The file content is being traversed with a state object. This is helpful to deal with a partial open namespace or dealing with nested modules.
  • Querying the trie is cached via memoization.

I believe we can create some good tooling around displaying the file contents processing and the trie.
This would allow the user to troubleshoot their own codebase in case we missed something.

Now the bad 😅, this PR contains a lot of hardcoded stuff and cannot be merged as is.
I'd like to get a yay or nay before I completely replace the existing code and clean everything up.
It did work fine for me on Fantomas.Core, Fantomas.Core.Tests, FSharp.Compiler.ComponentTests & FSharp.Compiler.Service. I'd be happy to show that during a call.

We should definitely continue to invest in #22.
Perhaps even in existing unit tests where possible.

Copy link
Owner

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

I like the idea of being more explicit, it's certainly something I would liked to have done in the first place if I had a little more knowledge of the syntax.

I added a few comments.

In general:

  • I tried to build it locally and for some reason getting EntryPoint-related errors.
  • I do have a genuine concern on whether in its current form it detects all links. I put one example in one of the comments.
  • It would be useful to get perf numbers, which I see you already did.
  • seq = 😢 for me 😉 I try to avoid them unless there is benefit (same with IEnumerable).

"AutoOpen"
|]

/// This isn't bullet proof but I wonder who would really alias this very core attribute.
Copy link
Owner

@safesparrow safesparrow Nov 18, 2022

Choose a reason for hiding this comment

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

Probably noone. But then it does break the language spec, which isn't nice to have, so it should at least be possible to fallback to a safer approach behind a feature flag - not a "disable graph-based TC" flag, but rather "use less effective, but bulletproof AutoOpen detection to be safe".

let private autoOpenShapes =
set
[|
"FSharp.Core.AutoOpenAttribute"
Copy link
Owner

Choose a reason for hiding this comment

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

I think instead of thse we could just check if the FQN contains autoopen and call it a day. Unlikely to have an attribute with that name that isn't actually doing what autoopen does.

|| hasNestedSigModuleWithAutoOpenAttribute decls
| _ -> false)

let hasAutoOpenAttributeInFile (ast: ParsedInput) : bool =
Copy link
Owner

Choose a reason for hiding this comment

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

This feels weird. If we're bringing back the ability to dig into the files, then we shouldn't be using a global "Does it have any autoopen anywhere?". What the existing, but disabled, code does is "When seeing an AutoOpen module, treat its contents as if it were defined in the parent module instead.". The only reason we disabled it was because of the issue when one file opens a module from another file but doesn't use any of its symbols.

AST: ParsedInput
}

/// There is a subtle difference a module and namespace.
Copy link
Owner

Choose a reason for hiding this comment

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

Is that really different for modules? I'd think it's exactly the same.

}

/// There is a subtle difference a module and namespace.
/// A namespace does not necessarily expose a set of dependent files.
Copy link
Owner

Choose a reason for hiding this comment

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

What do you mean here? How is that different for modules?

currentNode.Children
|> Seq.tryFind (fun (KeyValue (segment, _childNode)) -> segment = lastNodeFromPath)

match childResults with
Copy link
Owner

Choose a reason for hiding this comment

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

Unless Seq brings us some concrete value, I'd like to replace it with List, Array, or Dictionary as appropriate - having eagerly evaluated and concrete values is much better for debugging and reasoning about the code.

let ``FCS for realzies`` () = mkGraphAndReport fcsFiles

[<Test>]
let ``FCS for debugging`` () =
Copy link
Owner

Choose a reason for hiding this comment

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

I tried to test some edge cases, but I'm unable to build this branch - getting this for every executable project:

fscmain.fs(120, 5): [FS0433] A function labeled with the 'EntryPointAttribute' attribute must be the last declaration in the last file in the compilation sequence.

Copy link
Owner

Choose a reason for hiding this comment

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

Anyway, the case I wanted to test was this:

            "A.fs", """
module A
module B =
    type Person = {Name : string}
    type C =
        static member D: Person = failwith ""
"""
            "B.fs", """
module B
let person: string = A.B.C.D.Name
"""

Would the dependency be detected? What if static member D didn't exist?

My point being that we seem to try to reach the full identifier, and if we can't find the right child, we seem return no results - is that true? The other solution checks if it goes through any known module while trying to reach the final identifier.

match queryResult with
| QueryTrieNodeResult.NodeDoesNotExist -> state
| QueryTrieNodeResult.NodeDoesNotExposeData ->
// This can occur when you are have a file that uses a known namespace (for example namespace System).
Copy link
Owner

Choose a reason for hiding this comment

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

I guess there are more, more common examples like this one:

// A.fs
namespace A.B.C
let x = 3
// B.fs
module B
open A 

Or examples of non-compiling code, where we still want type-checking info of the A.fs file:

// A.fs
namespace A.B.C
let x = 3
// B.fs
module B
let x = A.B.C.xx

as it can be used for suggestions, eg. https://github.com/dotnet/fsharp/blob/b3d46d435eaf3aaf457b67e14f3634113e2f5888/tests/FSharp.Compiler.ComponentTests/ErrorMessages/SuggestionsTests.fs#L29
The latter case kind of makes me wonder... Anything that we do to trim the graph will limit the suggestions provided. Do we care?

@@ -0,0 +1,559 @@
module ParallelTypeCheckingTests.Code.TrieApproach.DependencyResolution
Copy link
Owner

Choose a reason for hiding this comment

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

Do we have some timings? Did you wire this up with type-checking?

result

let mkGraph (files: FileWithAST array) =
// Implementation files backed by signatures should be excluded to construct the trie.
Copy link
Owner

Choose a reason for hiding this comment

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

Worth noting that this is simply a performance optimisation, but if it's easy to make, then great.


let allDependencies =
if filesWithAutoOpen.Length > 0 then
// Automatically add all files that came before the current file that use the [<AutoOpen>] attribute.
Copy link
Owner

Choose a reason for hiding this comment

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

This bit we should change as mentioned in the other comment.

@safesparrow
Copy link
Owner

safesparrow commented Nov 19, 2022

Things to resolve:

  • Avoid creating a all-to-one or one-to-all link when encountering an AutoOpen - AutoOpen should only affect the contents of that single module (ie. pull it up, but also keep it accessible through the module).
  • Resolve the issue where simple module A; open B fails type-checking because it a link to B is not considered necessary.

@safesparrow
Copy link
Owner

safesparrow commented Nov 19, 2022

FYI I ran a profiler for dependency resolution for FCS. Below it takes ~660ms, despite the test logs showing the below:

TrieMapping.mkTrie took 00:00:00.0142921
FileContentMapping.mkFileContent took 00:00:00.0002153
mkGraph took 00:00:00.0000092

So I think we need to update the logs to include all the operations.

Snapshot:
image

40% of time is spent in GC and we allocate 686MB of memory. We might want to look at a few optimizations to reduce memory allocations.
Alternatively we can make GC faster in FSC by increasing heap count (we probably want to do that anyway, at least as an opt-in).

EDIT:
Here is a comparison of server GC with heap count of 12 (left) vs heap count of 2 (right).
Not sure why the one on the left has those long gaps during GC - maybe the profiler needs to do work at some point and blocks the app? Not sure.
image

@nojaf
Copy link
Collaborator Author

nojaf commented Nov 22, 2022

Hello, I believe I've addressed the open issues:

  • Avoid creating a all-to-one or one-to-all link when encountering an AutoOpen - AutoOpen should only affect the contents of that single module (ie. pull it up, but also keep it accessible through the module).

=> Only top-level [<AutoOpen>] and global namespace have this. Nested modules with [<AutoOpen>] will add the current file index to the trie (similar to types in namespaces).

  • Resolve the issue where simple module A; open B fails type-checking because it a link to B is not considered necessary.

=> See ghost dependency solution. (Scenario "A partial open statement still links to a file as a last resort" covers this).

I changed a couple of Seq calls to Array/List. I'm currently very confused about the timings. When profiling the unit test I think mkGraph still takes about 500 ms. I might be able to improve something on the file level.

The next thing is to integrate it with the actual type-checking code.
I would like to be able to re-use the scenario's in a compilation test.

@nojaf
Copy link
Collaborator Author

nojaf commented Nov 25, 2022

Hi again, I finished the implementation.
Some timings (from running 1. Test sequential type-checking and 3. Test graph-based type-checking):

Sequential:
Fantomas.Core: 1.865596s
FCS: 40.9183435s
FSharp.Compiler.ComponentTests: 2.9444694s

Graph:
Fantomas.Core: 1.2768386s
FCS: 21.1988973s
FSharp.Compiler.ComponentTests: 1.3280543s

I think this is good to go. I did have to remove most logs to see the improvement for Fantomas.Core.

Some highlights of these last changes:

  • When signature files are present, that content is being used to populate the trie. However, when a match is found in a query later on I return the index of the implementation file instead.
  • An implementation file will always have a dependency on its signature file.

=> I believe strictly for type-checking these aren't hard requirements but I got errors in the IlxGen code later on when not having these requirements. (See final fold experiment)

  • I re-enabled the behaviour of the --test:ParallelCheckingWithSignatureFilesOn. When a backed implementation file is encountered it will be skipped and type-checked in a second phase. I do believe this is the sweet spot. By using a signature file you can speed up the graph and type-check the implementation in parallel later on.
  • I added some unit tests on each level of the dependency resolution. The motivation for this is that users will have an easier time to pinpoint potential gaps with their own codebase.

If you are on board with this PR I can strip all the hardcoded stuff and we can merge this in.

@safesparrow
Copy link
Owner

safesparrow commented Nov 26, 2022

Thanks for all the work.

Some highlights of these last changes:

When signature files are present, that content is being used to populate the trie. However, when a match is found in a query later on I return the index of the implementation file instead.
An implementation file will always have a dependency on its signature file.
=> I believe strictly for type-checking these aren't hard requirements but I got errors in the IlxGen code later on when not having these requirements. (See final fold experiment)
I re-enabled the behaviour of the --test:ParallelCheckingWithSignatureFilesOn. When a backed implementation file is encountered it will be skipped and type-checked in a second phase. I do believe this is the sweet spot. By using a signature file you can speed up the graph and type-check the implementation in parallel later on.

This is slightly confusing to me. The existing algorithm already handles fs-fsi files, and makes sure the required dependencies exist. It doesn't need a second phase, because the .fs files are simply nodes in the graph that nothing else depends on.
Having a second phase to me is unnecessary complexity, which is already captured in the graph solution. Keeping both the graph and multiple phases seems unnecessary. What do you think is the advantage of not letting the graph sort out backed .fs files?

For A.fsi, A.fs, B.fs the existing algorithm should create the following graph:

A.fsi ->
A.fs -> A.fsi
A.fsix -> A.fsi
B.fs -> A.fsix

The nodes should be processed in the following order:

A.fsi
A.fs, A.fsix (both using results from `A.fsi`)
B.fs (using results from `A.fsix, A.fsi`)

and the final fold to create final TcState would process A.fsi, A.fs, B.fs in this exact order (A.fsix is excluded from the final fold).

10

partialResults |> Array.toList, tcState)
// Do the parallel phase, checking all implementation files that did have a signature, in parallel.
Copy link
Owner

Choose a reason for hiding this comment

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

I really think we do not need this. Let's chat about this one.

Copy link
Owner

Choose a reason for hiding this comment

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

Creating a second phase is not just more maintenance and more to think about, but it's also slower - with a single-phase approach we get more parallelisation by scheduling those backed .fs files earlier, while the rest of the graph is still being worked on.


let fileContents = Array.Parallel.map FileContentMapping.mkFileContent files

let filesWithAutoOpen =
Copy link
Owner

Choose a reason for hiding this comment

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

We discussed this earlier - this is a strict regression to the old behaviour.
When some module is marked/we think it's marked as AutoOpen, instead of making the whole file depended on by every other file, what we need to do instead is to 'pull up' the module's contents.
To be strict, we need to make module contents accessible through both the module, or through its parent.

This behaviour reduces the effectiveness of dependency resolution.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

This was updated to include only files with top-level auto opens or namespace global.
Nested auto opens are not included in this array and instead pull up the module's content.

Copy link
Owner

Choose a reason for hiding this comment

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

Even for top-level autoopens, you don't need a dependency necessarily. We should be able to do exactly what we do for nested autoopens - pull its contents up

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Well, for now, this seems reasonable. Consider

image

How would you solve this case? We don't keep track of what Meh exposes, so I don't really see how would approach this one.

Copy link
Owner

@safesparrow safesparrow Nov 29, 2022

Choose a reason for hiding this comment

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

The same way we (should) do for nested modules - we pull the contents of the module up, and make it accessible through both Parent.Module.X and Parent.X.

In your example Parent = '' and the module contains let bindings, so yes, in this particular example we need to make a link to this file everywhere.

However, consider other examples:
1.

[<AutoOpen>]
module A.B
let x = 3
[<AutoOpen>]
module A

module B =
  let x = 3

In both cases you don't need a dependency to that file unless you reference A or something inside A.

Again, I think we can do exactly what we do for nested [<AutoOpen>] modules. Is there something specific you think is different in the impact top-level [<AutoOpen>] modules have?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Oh, I see, thanks for the examples. I'll improve that bit.

@nojaf
Copy link
Collaborator Author

nojaf commented Nov 27, 2022

Hi, I'm definitely open to discussing this during a call sometime. (I can't tell just yet when I'm available).

Consider the case of the compiler where all files are backed.
What happens today is that signature files are processed sequentially and the implementation files are in parallel. With the heuristic, the sequential processing will be somewhat parallel while half of the files will still be processed in parallel to the maximum. Depending on what happens in the graph, are you not losing this benefit somewhat? We should try to compare it properly to see what it gives, but with the second phase thing, you know for sure upfront how many files will be processed in parallel.

@safesparrow
Copy link
Owner

I'm certain the single phase approach is strictly faster in your example. You start processing impl files before you finish processing other files, instead of waiting.

@safesparrow
Copy link
Owner

I can create some examples that should demonstrate the two points I made, but probably not today.

@nojaf
Copy link
Collaborator Author

nojaf commented Nov 27, 2022

Yes, that makes sense actually. For whatever the first phase could block the second and we don't want that. I'll revert those changes.

@nojaf
Copy link
Collaborator Author

nojaf commented Nov 29, 2022

So, I finished the PR.
These last commits do have the previous fsix awareness without having an explicit fsix node in the graph. This is very debatable of course, whether that really improves the readability of the code.
I personally like that the graph is made up of all the files on the disk.

I believe where you would filter the fsix nodes in the graph processing, I'm changing the logic of the fold function based on whether it is the final fold or not.

When it is not the final fold, I add the signature information twice to the tcState (once as the actual signature, and once as a skipped implementation file) and I don't add the implementation file result to the tcState.

When it is the final fold, everything plays out as you would expect.

@safesparrow
Copy link
Owner

safesparrow commented Nov 29, 2022

I'm very happy to merge this.

The comments I made are minor - the old solution is far from perfect and we can easily resolve any possibly outstanding minor issues afterwards.

So as soon as you're happy to, please merge the PR 👍

Thanks again for the contribution!

@nojaf nojaf merged commit 89d072d into safesparrow:graph-tc Nov 30, 2022
safesparrow added a commit that referenced this pull request Dec 19, 2022
commit 07cbd50
Merge: c1bf185 73714c9
Author: Janusz Wrobel <[email protected]>
Date:   Mon Dec 19 19:27:46 2022 +0100

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

commit c1bf185
Author: Janusz Wrobel <[email protected]>
Date:   Mon Dec 19 19:03:36 2022 +0100

    Update Docs.md

commit 656fefd
Merge: a20c50d 9e244a2
Author: Florian Verdonck <[email protected]>
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 <[email protected]>
Date:   Mon Dec 19 09:07:51 2022 +0100

    Remove quote in comment.

commit e4230eb
Author: nojaf <[email protected]>
Date:   Mon Dec 19 09:03:45 2022 +0100

    Remove user name from temporary example paths.

commit 7fb31ec
Author: nojaf <[email protected]>
Date:   Sat Dec 17 18:43:17 2022 +0100

    Port code to target projects.

commit a20c50d
Author: janusz <[email protected]>
Date:   Thu Dec 15 21:03:55 2022 +0000

    Cleanup, updated a few comments.

commit 6c5af5d
Merge: ce1fdea 4ae81ee
Author: Florian Verdonck <[email protected]>
Date:   Thu Dec 15 18:23:42 2022 +0100

    Merge pull request #32 from safesparrow/pairs

    Pairs

commit 4ae81ee
Author: nojaf <[email protected]>
Date:   Thu Dec 15 16:15:05 2022 +0100

    Rename new types.

commit e6ee19f
Author: nojaf <[email protected]>
Date:   Thu Dec 15 14:40:27 2022 +0100

    Map graph to dependencies.

commit 0beff48
Author: nojaf <[email protected]>
Date:   Wed Dec 14 17:07:36 2022 +0100

    Correct sample

commit 1b2ba91
Author: nojaf <[email protected]>
Date:   Wed Dec 14 15:18:05 2022 +0100

    Add failing scenario.

commit ce1fdea
Author: janusz <[email protected]>
Date:   Wed Dec 14 23:18:51 2022 +0000

    cleanup + fantomas

commit 1f9384c
Author: janusz <[email protected]>
Date:   Wed Dec 14 23:06:31 2022 +0000

    Cleanup

commit a5a2bd1
Merge: 9e6c871 3225b45
Author: janusz <[email protected]>
Date:   Wed Dec 14 19:55:00 2022 +0000

    Merge branch 'graph-tc' into cleanup-processing

commit 3225b45
Author: janusz <[email protected]>
Date:   Tue Dec 13 18:34:29 2022 +0000

    Add a failing test showing issue with ILGen in FCS

commit 9e6c871
Author: janusz <[email protected]>
Date:   Mon Dec 12 18:33:40 2022 +0000

    Run all compilation phases in tests

commit c9c4adc
Author: janusz <[email protected]>
Date:   Mon Dec 12 00:15:58 2022 +0000

    Use simple async tasks rather than fixed number of worker tasks

commit 9deabfa
Author: janusz <[email protected]>
Date:   Sun Dec 11 22:43:37 2022 +0000

    Start cleaning up graph processing

commit e98948d
Merge: d4e8bbd c6aa06c
Author: janusz <[email protected]>
Date:   Sun Dec 11 13:21:23 2022 +0000

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

commit d4e8bbd
Author: janusz <[email protected]>
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 <[email protected]>
Date:   Sat Dec 10 18:02:11 2022 +0000

    perf tests script MVP

commit 881f572
Author: janusz <[email protected]>
Date:   Wed Dec 7 09:03:50 2022 +0000

    Fix build after merge

commit 6a500d4
Author: janusz <[email protected]>
Date:   Wed Dec 7 08:49:11 2022 +0000

    Apply Fantomas

commit 2e2c636
Merge: 785e6a7 b38116a
Author: janusz <[email protected]>
Date:   Wed Dec 7 08:47:10 2022 +0000

    Merge upstream main

commit 785e6a7
Merge: 89d072d 5ff2fc3
Author: Janusz Wrobel <[email protected]>
Date:   Wed Dec 7 08:42:55 2022 +0000

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

commit 5ff2fc3
Author: nojaf <[email protected]>
Date:   Tue Dec 6 15:58:53 2022 -0800

    Add test for what happens with module naming clash.

commit 51c6870
Author: nojaf <[email protected]>
Date:   Tue Dec 6 15:44:48 2022 -0800

    Don't fully process files that add to root.

commit 9867c09
Author: nojaf <[email protected]>
Date:   Mon Dec 5 16:18:49 2022 -0800

    Add additional test for nested AutoOpen module in a namespace.

commit d8d86c0
Author: nojaf <[email protected]>
Date:   Mon Dec 5 12:23:54 2022 -0800

    Allow file indexes to the trie root.

commit b3848a3
Author: nojaf <[email protected]>
Date:   Wed Nov 30 09:48:09 2022 -0600

    Improve top level auto open detection.

commit 89d072d
Merge: f9745ed 1cf73f2
Author: Florian Verdonck <[email protected]>
Date:   Wed Nov 30 15:53:46 2022 +0100

    Merge pull request #24 from nojaf/trie-approach

    Alternative Trie approach

commit 1cf73f2
Author: nojaf <[email protected]>
Date:   Tue Nov 29 15:39:43 2022 -0600

    Remove hardcoded local examples.

commit 48e4194
Author: nojaf <[email protected]>
Date:   Tue Nov 29 15:27:27 2022 -0600

    Add support for single identifier module abbreviations.

commit 789174c
Author: nojaf <[email protected]>
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 <[email protected]>
Date:   Tue Nov 29 12:59:48 2022 -0600

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

commit 46505f3
Author: nojaf <[email protected]>
Date:   Mon Nov 28 23:05:20 2022 +0100

    Remove implementation index for signature files in trie.

commit e96d98f
Author: nojaf <[email protected]>
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 <[email protected]>
Date:   Fri Nov 25 09:30:29 2022 +0100

    Disable some logs.

commit a7cb8c9
Author: nojaf <[email protected]>
Date:   Fri Nov 25 09:22:46 2022 +0100

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

commit eb9b882
Author: nojaf <[email protected]>
Date:   Thu Nov 24 17:23:57 2022 +0100

    Choose correct index for AlwaysLinkDetection.

commit 6cb01a1
Author: nojaf <[email protected]>
Date:   Thu Nov 24 16:59:23 2022 +0100

    Add scenario with dependent signature files.

commit ec8fca7
Author: nojaf <[email protected]>
Date:   Thu Nov 24 16:30:49 2022 +0100

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

commit 43881d5
Author: nojaf <[email protected]>
Date:   Wed Nov 23 17:16:49 2022 +0100

    Try and type check scenarios.

commit a3a4958
Author: nojaf <[email protected]>
Date:   Wed Nov 23 16:53:46 2022 +0100

    Extract unit tests and add some basic regression tests.

commit a7a6c74
Author: nojaf <[email protected]>
Date:   Wed Nov 23 16:02:31 2022 +0100

    Initial replacement of heuristic code.

commit 2d98905
Author: nojaf <[email protected]>
Date:   Wed Nov 23 12:53:20 2022 +0100

    Hard coded test in entry point.

commit 18ef04e
Author: nojaf <[email protected]>
Date:   Tue Nov 22 16:54:54 2022 +0100

    Add unit test for nested scenario.

commit 8e85538
Author: nojaf <[email protected]>
Date:   Tue Nov 22 16:47:21 2022 +0100

    Return a graph of int in mkGraph.

commit 18657b1
Author: nojaf <[email protected]>
Date:   Tue Nov 22 14:56:56 2022 +0100

    Replace some Seq calls to increase performance.

commit 88d5f18
Author: nojaf <[email protected]>
Date:   Mon Nov 21 16:54:27 2022 +0100

    Global namespace and nested modules with AutoOpen.

commit d8f2579
Author: nojaf <[email protected]>
Date:   Mon Nov 21 14:13:29 2022 +0100

    Deal with ghost dependencies.

commit 742e6de
Author: nojaf <[email protected]>
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 <[email protected]>
Date:   Fri Nov 18 13:19:43 2022 +0100

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

commit d320c81
Author: nojaf <[email protected]>
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 <[email protected]>
Date:   Thu Nov 17 18:13:37 2022 +0100

    Test all lengths of PrefixedIdentifier path.

commit 6edb042
Author: nojaf <[email protected]>
Date:   Thu Nov 17 18:12:29 2022 +0100

    Call continuation for SynExpr.Record.

commit 63539f8
Author: nojaf <[email protected]>
Date:   Thu Nov 17 16:26:19 2022 +0100

    queryTrieMemoized

commit 32dd4bf
Author: nojaf <[email protected]>
Date:   Thu Nov 17 16:12:46 2022 +0100

    Address SynModuleDecl.ModuleAbbrev.
    Verify locally with FCS project.

commit b69faba
Author: nojaf <[email protected]>
Date:   Thu Nov 17 13:53:15 2022 +0100

    Clean up

commit e5e769a
Author: nojaf <[email protected]>
Date:   Thu Nov 17 11:57:39 2022 +0100

    Dependency resolution with new trie approach.

commit b574074
Author: nojaf <[email protected]>
Date:   Tue Nov 15 14:34:44 2022 +0100

    Initial trie approach.

commit f9745ed
Author: janusz <[email protected]>
Date:   Sat Nov 19 17:03:29 2022 +0000

    Fix build

commit ae0e40b
Author: janusz <[email protected]>
Date:   Mon Nov 14 23:03:55 2022 +0000

    Run Fantomas + fix build

commit ccffefe
Merge: 5f04801 4722c91
Author: Janusz Wrobel <[email protected]>
Date:   Mon Nov 14 22:49:21 2022 +0000

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

commit 4722c91
Author: nojaf <[email protected]>
Date:   Mon Nov 14 16:57:48 2022 +0100

    Update reference assemblies.

commit 43345fb
Author: nojaf <[email protected]>
Date:   Mon Nov 14 16:57:36 2022 +0100

    Remove PLinq.

commit f787435
Author: nojaf <[email protected]>
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 <[email protected]>
Date:   Sun Nov 13 23:49:23 2022 +0000

    Merge pull request #17 from safesparrow/speed

commit 01c28a3
Author: janusz <[email protected]>
Date:   Sun Nov 13 23:41:47 2022 +0000

    Cleanup

commit 136792b
Author: janusz <[email protected]>
Date:   Sun Nov 13 01:53:38 2022 +0000

    Some speed improvements

commit 3e4cd99
Author: janusz <[email protected]>
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 <[email protected]>
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 <[email protected]>
Date:   Fri Nov 11 11:39:40 2022 +0000

    not working

commit 7ffa15f
Author: janusz <[email protected]>
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 <[email protected]>
Date:   Thu Nov 10 23:10:43 2022 +0000

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

commit 9fa6952
Author: janusz <[email protected]>
Date:   Thu Nov 10 23:04:15 2022 +0000

    Run Fantomas

commit a1fd757
Author: janusz <[email protected]>
Date:   Thu Nov 10 23:00:16 2022 +0000

    Fix build

commit 59784a4
Merge: 0638d62 e550115
Author: janusz <[email protected]>
Date:   Thu Nov 10 22:32:04 2022 +0000

    Merge heuristic_otel

commit e550115
Merge: b0d5af0 0b647aa
Author: Janusz Wrobel <[email protected]>
Date:   Thu Nov 10 19:43:33 2022 +0000

    Merge pull request #13 from safesparrow/heuristic_otel_formatting3

commit 0b647aa
Author: janusz <[email protected]>
Date:   Thu Nov 10 19:35:42 2022 +0000

    Add newline

commit ae23961
Author: janusz <[email protected]>
Date:   Thu Nov 10 19:34:48 2022 +0000

    Format src/ and tests/ParallelTypeCheckingTests/

commit 0638d62
Author: nojaf <[email protected]>
Date:   Thu Nov 10 13:52:39 2022 +0100

    Use correct file name in graph.

commit b2dd4fe
Author: nojaf <[email protected]>
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 <[email protected]>
Date:   Thu Nov 10 13:47:13 2022 +0100

    Remove hardcoded signature dependency and add failing test.

commit b0d5af0
Author: janusz <[email protected]>
Date:   Wed Nov 9 01:43:24 2022 +0000

    Cleanup

commit e4643f2
Author: janusz <[email protected]>
Date:   Wed Nov 9 01:31:05 2022 +0000

    Cleanup

commit d6690eb
Merge: 83f671c dd7b1ea
Author: janusz <[email protected]>
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 <[email protected]>
Date:   Wed Nov 9 01:21:05 2022 +0000

    Fix Common.fs namespace

commit dd7b1ea
Author: janusz <[email protected]>
Date:   Wed Nov 9 01:12:41 2022 +0000

    Cleanup

commit 716db8e
Author: janusz <[email protected]>
Date:   Tue Nov 8 23:49:41 2022 +0000

    Start cleanup for sharing the branch

commit 6df43e9
Author: janusz <[email protected]>
Date:   Tue Nov 8 04:47:39 2022 +0000

    changes

commit 783a253
Author: janusz <[email protected]>
Date:   Tue Nov 8 04:35:59 2022 +0000

    FCS works.

commit 9beca10
Author: janusz <[email protected]>
Date:   Tue Nov 8 03:38:44 2022 +0000

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

commit 39d723b
Author: janusz <[email protected]>
Date:   Tue Nov 8 02:04:33 2022 +0000

    changes

commit c488082
Author: janusz <[email protected]>
Date:   Mon Nov 7 01:14:18 2022 +0000

    Changes

commit 0d5f07b
Author: janusz <[email protected]>
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 <[email protected]>
Date:   Sun Nov 6 13:20:14 2022 +0000

    Cleanup

commit 4ebc64c
Author: janusz <[email protected]>
Date:   Sun Nov 6 13:08:41 2022 +0000

    * Cleanup
    * Start creating proper config

commit 0805660
Author: janusz <[email protected]>
Date:   Sun Nov 6 00:44:12 2022 +0000

    changes

commit 2cfcebe
Author: janusz <[email protected]>
Date:   Sun Nov 6 00:43:44 2022 +0000

    cleanup

commit 154134f
Author: janusz <[email protected]>
Date:   Sun Nov 6 00:29:12 2022 +0000

    more cleanup & fixes - all tests passing

commit 43dc18a
Author: janusz <[email protected]>
Date:   Sat Nov 5 23:11:13 2022 +0000

    Cleanup tests & namespaces. Basic compile test not working.

commit 991bf61
Author: janusz <[email protected]>
Date:   Sat Nov 5 15:40:50 2022 +0000

    Small cleanup, revert what's no longer needed.

commit 0f969d8
Author: janusz <[email protected]>
Date:   Sat Nov 5 10:27:14 2022 +0000

    changes

commit 8900e78
Author: janusz <[email protected]>
Date:   Sat Nov 5 01:21:36 2022 +0000

    Works by forcing full dep graph

commit 9d29b49
Author: janusz <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Date:   Thu Nov 3 09:38:10 2022 +0000

    Update

commit 6a44506
Author: janusz <[email protected]>
Date:   Thu Nov 3 09:36:04 2022 +0000

    Fix tests, make them more generic

commit 7c6b54c
Author: janusz <[email protected]>
Date:   Thu Nov 3 00:47:12 2022 +0000

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

commit c46dd31
Author: janusz <[email protected]>
Date:   Thu Nov 3 00:38:25 2022 +0000

    Cleanup

commit 311e7dd
Author: janusz <[email protected]>
Date:   Thu Nov 3 00:35:49 2022 +0000

    Finish unit test cleanup

commit 6d3d3cc
Author: janusz <[email protected]>
Date:   Wed Nov 2 23:37:26 2022 +0000

    WIP Setup unit tests

commit cb4a99f
Author: janusz <[email protected]>
Date:   Wed Nov 2 18:12:32 2022 +0000

    changes - not working

commit ed795dd
Author: janusz <[email protected]>
Date:   Tue Nov 1 19:00:25 2022 +0000

    Add an broken example

commit aa126a4
Author: janusz <[email protected]>
Date:   Tue Nov 1 03:09:35 2022 +0000

    Doesn't work - found a scenario

commit 9f991d4
Author: janusz <[email protected]>
Date:   Tue Nov 1 02:56:56 2022 +0000

    still doesn't work

commit 3e65c3c
Author: janusz <[email protected]>
Date:   Tue Nov 1 02:29:42 2022 +0000

    FSI files still don't work

commit c8098dc
Author: janusz <[email protected]>
Date:   Tue Nov 1 01:32:30 2022 +0000

    NOT WORKING fsi stuff

commit dcafb5f
Author: janusz <[email protected]>
Date:   Mon Oct 31 21:03:48 2022 +0000

    WIP - making .fsi files work

commit b8d45e0
Author: janusz <[email protected]>
Date:   Sun Oct 30 23:09:05 2022 +0000

    Python script for visualising a Trie

commit e1c5ae3
Author: janusz <[email protected]>
Date:   Sun Oct 30 19:05:58 2022 +0000

    Fix compilation and otel setup in compiler

commit 49eda4b
Merge: 35b7bc8 8767a5a
Author: janusz <[email protected]>
Date:   Sun Oct 30 18:42:28 2022 +0000

    Merge otel

commit 35b7bc8
Author: janusz <[email protected]>
Date:   Sun Oct 30 18:37:21 2022 +0000

    changes

commit 0388685
Author: janusz <[email protected]>
Date:   Sun Oct 30 18:18:01 2022 +0000

    changes

commit 58dcee6
Author: janusz <[email protected]>
Date:   Sun Oct 30 17:07:14 2022 +0000

    changes

commit 5721a21
Author: janusz <[email protected]>
Date:   Sun Oct 30 16:55:55 2022 +0000

    changes

commit d82c543
Author: janusz <[email protected]>
Date:   Sun Oct 30 13:13:38 2022 +0000

    changes

commit ae722fe
Author: janusz <[email protected]>
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 <[email protected]>
Date:   Sat Oct 29 21:24:42 2022 +0100

    changes

commit 10447af
Author: janusz <[email protected]>
Date:   Sat Oct 29 17:23:56 2022 +0100

    changes

commit 7fc73e0
Author: janusz <[email protected]>
Date:   Sat Oct 29 17:13:25 2022 +0100

    changes

commit b5d3367
Author: janusz <[email protected]>
Date:   Sat Oct 29 16:38:31 2022 +0100

    WIP

commit 73a100f
Author: janusz <[email protected]>
Date:   Sat Oct 29 13:45:03 2022 +0100

    changes

commit 89c44e0
Author: janusz <[email protected]>
Date:   Sat Oct 29 10:55:52 2022 +0100

    changes

commit 4288150
Author: janusz <[email protected]>
Date:   Sat Oct 29 03:16:23 2022 +0100

    changes

commit 56e2301
Author: janusz <[email protected]>
Date:   Sat Oct 29 02:40:58 2022 +0100

    changes

commit fd67ddb
Author: janusz <[email protected]>
Date:   Sat Oct 29 02:03:10 2022 +0100

    changes

commit 2ec476d
Author: janusz <[email protected]>
Date:   Sat Oct 29 01:11:40 2022 +0100

    changes

commit 39e59df
Author: janusz <[email protected]>
Date:   Sat Oct 29 00:02:31 2022 +0100

    changes

commit 9395a73
Author: janusz <[email protected]>
Date:   Sat Oct 29 00:01:00 2022 +0100

    changes

commit 66c747e
Author: janusz <[email protected]>
Date:   Fri Oct 28 17:51:05 2022 +0100

    changes

commit b00ed8a
Author: janusz <[email protected]>
Date:   Wed Oct 26 09:41:06 2022 +0100

    WIP - generalise the code

commit 6c47617
Author: janusz <[email protected]>
Date:   Wed Oct 26 08:59:56 2022 +0100

    changes

commit 54ab09a
Author: janusz <[email protected]>
Date:   Wed Oct 26 02:27:02 2022 +0100

    WIP

commit b9e1dde
Author: janusz <[email protected]>
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 <[email protected]>
Date:   Wed Oct 26 01:11:29 2022 +0100

    Merge branch 'main' into otel

commit 221f650
Author: janusz <[email protected]>
Date:   Tue Oct 25 01:00:36 2022 +0100

    WIP

commit 336b120
Author: janusz <[email protected]>
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 <[email protected]>
Date:   Mon Oct 24 01:45:19 2022 +0100

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

commit ad91f8b
Merge: 03f6760 d59a2f4
Author: janusz <[email protected]>
Date:   Mon Oct 24 01:36:05 2022 +0100

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

commit a343a59
Author: janusz <[email protected]>
Date:   Sun Oct 23 02:15:41 2022 +0100

    Changes

commit 1af40cc
Author: janusz <[email protected]>
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 <[email protected]>
Date:   Sat Oct 22 16:09:51 2022 +0100

    WIP

commit 126c584
Author: janusz <[email protected]>
Date:   Sat Oct 22 15:17:50 2022 +0100

    changes

commit ef5a332
Author: janusz <[email protected]>
Date:   Sat Oct 22 12:04:42 2022 +0100

    WIP Graph processing

commit 7522f86
Author: janusz <[email protected]>
Date:   Sat Oct 22 02:18:27 2022 +0100

    WIP parallel processor

commit d0f4180
Author: janusz <[email protected]>
Date:   Sat Oct 22 01:45:22 2022 +0100

    cleanup

commit d43e0c3
Author: janusz <[email protected]>
Date:   Sat Oct 22 01:01:25 2022 +0100

    cleanup

commit 42b90c9
Author: janusz <[email protected]>
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 <[email protected]>
Date:   Wed Oct 19 02:48:18 2022 +0100

    Update docs

commit 8909b7e
Author: janusz <[email protected]>
Date:   Wed Oct 19 02:37:29 2022 +0100

    Update docs

commit 6e655df
Author: janusz <[email protected]>
Date:   Wed Oct 19 01:05:29 2022 +0100

    WIP

commit 5ba78e8
Author: janusz <[email protected]>
Date:   Tue Oct 18 23:45:37 2022 +0100

    Start writing docs

commit 672e3a2
Author: janusz <[email protected]>
Date:   Tue Oct 18 20:03:29 2022 +0100

    WIP

commit 9f336c9
Author: janusz <[email protected]>
Date:   Tue Oct 18 09:35:57 2022 +0100

    WIP

commit 6e85994
Author: janusz <[email protected]>
Date:   Tue Oct 18 01:39:44 2022 +0100

    WIP

commit a21d5ee
Author: janusz <[email protected]>
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 <[email protected]>
Date:   Tue Oct 18 00:02:05 2022 +0100

    WIP

commit 03d820a
Author: janusz <[email protected]>
Date:   Mon Oct 17 09:10:25 2022 +0100

    WIP

commit 8610e14
Author: janusz <[email protected]>
Date:   Mon Oct 17 08:49:14 2022 +0100

    WIP

commit b461abb
Author: janusz <[email protected]>
Date:   Sun Oct 16 21:11:52 2022 +0100

    WIP

commit b1ebfdb
Author: janusz <[email protected]>
Date:   Sun Oct 16 19:29:04 2022 +0100

    MVP finished

commit caee542
Author: janusz <[email protected]>
Date:   Sun Oct 16 17:50:10 2022 +0100

    WIP

commit 7bc03cc
Author: janusz <[email protected]>
Date:   Sun Oct 16 13:53:03 2022 +0100

    WIP

commit 8229cf6
Author: janusz <[email protected]>
Date:   Sat Oct 15 23:52:42 2022 +0100

    WIP

commit c9beb6c
Author: janusz <[email protected]>
Date:   Sat Oct 15 19:31:24 2022 +0100

    WIP

commit 47a8af6
Author: janusz <[email protected]>
Date:   Sat Oct 15 19:23:50 2022 +0100

    Finish?

commit c900602
Author: janusz <[email protected]>
Date:   Sat Oct 15 18:21:44 2022 +0100

    WIP

commit d8c60b1
Author: janusz <[email protected]>
Date:   Sat Oct 15 17:35:49 2022 +0100

    WIP

commit 88562d6
Author: janusz <[email protected]>
Date:   Sat Oct 15 17:05:31 2022 +0100

    WIP

commit d34459d
Author: janusz <[email protected]>
Date:   Sat Oct 15 16:19:00 2022 +0100

    WIP

commit e337ee9
Author: janusz <[email protected]>
Date:   Sat Oct 15 16:12:56 2022 +0100

    WIP

commit ddb2e72
Author: janusz <[email protected]>
Date:   Sat Oct 15 15:58:41 2022 +0100

    WIP

commit 2a36116
Author: janusz <[email protected]>
Date:   Sat Oct 15 15:43:16 2022 +0100

    Finished?

commit 1d08de5
Author: janusz <[email protected]>
Date:   Sat Oct 15 15:16:12 2022 +0100

    WIP

commit 4e5593b
Author: janusz <[email protected]>
Date:   Sat Oct 15 14:48:58 2022 +0100

    WIP

commit 7de1d91
Author: janusz <[email protected]>
Date:   Sat Oct 15 14:15:19 2022 +0100

    Start implementing AST visitor

commit 03f6760
Merge: ab1b693 889709d
Author: Janusz Wrobel <[email protected]>
Date:   Wed Oct 12 22:45:34 2022 +0100

    Merge branch 'main' into otel

commit ab1b693
Author: Tomas Grosup <[email protected]>
Date:   Tue Oct 11 20:43:10 2022 +0200

    Applying Fantomas

commit fb61e37
Author: Tomas Grosup <[email protected]>
Date:   Tue Oct 11 20:33:34 2022 +0200

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

commit 0c95dc9
Author: Tomas Grosup <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Date:   Tue Oct 11 12:37:13 2022 +0200

    Fix CI by nuspec dependency version assignment

commit 8c053c3
Author: janusz <[email protected]>
Date:   Tue Oct 11 09:02:45 2022 +0100

    Fantomas formatting one more time

commit dcfea04
Author: janusz <[email protected]>
Date:   Tue Oct 11 08:50:38 2022 +0100

    Apply fixes from T-Gro to avoid NRE

commit e1be127
Author: janusz <[email protected]>
Date:   Mon Oct 10 21:17:06 2022 +0100

    Fantomas formatting

commit 549b3f8
Author: janusz <[email protected]>
Date:   Mon Oct 10 21:13:18 2022 +0100

    Don't use dummyDisposable

commit 6684413
Author: janusz <[email protected]>
Date:   Mon Oct 10 20:19:56 2022 +0100

    Fix build

commit b857487
Author: janusz <[email protected]>
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 <[email protected]>
Date:   Mon Oct 10 19:48:39 2022 +0100

    Merge branch 'main' into otel

commit b71bf73
Author: janusz <[email protected]>
Date:   Mon Oct 10 19:47:24 2022 +0100

    Remove old code

commit bca4a45
Author: janusz <[email protected]>
Date:   Mon Oct 10 19:09:39 2022 +0100

    Use consistent casing in tag names

commit 4e23ca3
Merge: 80459f9 50fd7b5
Author: Janusz Wrobel <[email protected]>
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 <[email protected]>
Date:   Mon Oct 10 18:36:02 2022 +0200

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

commit 6ce22da
Author: Tomas Grosup <[email protected]>
Date:   Mon Oct 10 18:17:27 2022 +0200

    Fantomas applied

commit 924097b
Merge: a776c86 8d27963
Author: Tomas Grosup <[email protected]>
Date:   Mon Oct 10 18:09:31 2022 +0200

    Resolving conflicts

commit a776c86
Author: Tomas Grosup <[email protected]>
Date:   Mon Oct 10 16:18:28 2022 +0200

    Tracing via dotnet ActivitySource

commit 80459f9
Author: janusz <[email protected]>
Date:   Sat Sep 17 16:39:14 2022 +0100

    Fix System.Diagnostics.DiagnosticSource package version

commit ea8a7ed
Merge: 6783b97 43579c0
Author: janusz <[email protected]>
Date:   Sat Sep 17 16:18:25 2022 +0100

    Merge upstream/main

commit 6783b97
Merge: 43394e6 cdc5963
Author: Janusz Wrobel <[email protected]>
Date:   Tue Sep 13 17:36:10 2022 +0100

    Merge branch 'main' into otel

commit 43394e6
Merge: 83dcc97 38e7e57
Author: janusz <[email protected]>
Date:   Mon Sep 12 22:19:45 2022 +0100

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

commit 83dcc97
Author: janusz <[email protected]>
Date:   Mon Sep 5 20:55:48 2022 +0100

    Make the Activity module internal, remove from the surface

commit eabca75
Author: janusz <[email protected]>
Date:   Mon Sep 5 01:31:11 2022 +0100

    Fantomas formatting

commit 3133d0c
Author: janusz <[email protected]>
Date:   Mon Sep 5 00:48:44 2022 +0100

    Update baseline

commit bdb546b
Author: janusz <[email protected]>
Date:   Mon Sep 5 00:46:08 2022 +0100

    Fantomas formatting

commit c86c851
Merge: 679d2aa e06e079
Author: janusz <[email protected]>
Date:   Sat Sep 3 17:33:19 2022 +0100

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

commit 679d2aa
Author: janusz <[email protected]>
Date:   Sat Sep 3 17:24:48 2022 +0100

    Remove nuget.org

commit e5a3816
Author: janusz <[email protected]>
Date:   Sat Sep 3 17:17:10 2022 +0100

    Revert unneeded changes/PR feedback

commit ca51e57
Author: janusz <[email protected]>
Date:   Sat Sep 3 15:42:00 2022 +0100

    Fix build

commit 057a110
Author: janusz <[email protected]>
Date:   Sat Sep 3 15:37:01 2022 +0100

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

commit 57ca46b
Author: janusz <[email protected]>
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 <[email protected]>
Date:   Sat Sep 3 15:28:25 2022 +0100

    Use Jaeger exporter in FSC

commit a1f74c9
Author: janusz <[email protected]>
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 <[email protected]>
Date:   Sat Sep 3 00:52:53 2022 +0100

    Improve activity logging for the background checker

commit f72b570
Author: janusz <[email protected]>
Date:   Fri Sep 2 01:49:37 2022 +0100

    more hacks

commit c3d84f1
Merge: 0702fc1 4431af5
Author: janusz <[email protected]>
Date:   Wed Aug 31 20:50:32 2022 +0100

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

commit 0702fc1
Author: janusz <[email protected]>
Date:   Wed Aug 31 02:34:47 2022 +0100

    More hacks to get nested project information in the trace

commit 16fcfd4
Author: janusz <[email protected]>
Date:   Wed Aug 31 01:54:59 2022 +0100

    Hacks to make telemetry work in incremental builder

commit 30fd578
Author: janusz <[email protected]>
Date:   Wed Aug 31 00:01:28 2022 +0100

    Don't dispose of the telemetry objects immediately

commit d4db68a
Merge: 01e165b 7c81ac0
Author: janusz <[email protected]>
Date:   Tue Aug 30 23:11:07 2022 +0100

    Merge branch 'main' into otel

commit 01e165b
Author: janusz <[email protected]>
Date:   Tue Aug 30 23:10:39 2022 +0100

    WIP

commit 906ed7a
Merge: 5658f02 0063f20
Author: janusz <[email protected]>
Date:   Mon Aug 29 12:09:34 2022 +0100

    Merge branch 'main' into otel

commit 5658f02
Merge: a7b6681 4618764
Author: janusz <[email protected]>
Date:   Wed Jul 27 20:12:39 2022 +0100

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

commit 4618764
Author: Chet Husk <[email protected]>
Date:   Sun Jul 24 10:21:44 2022 -0500

    more granularity

commit 4431af5
Author: janusz <[email protected]>
Date:   Sun Jul 17 21:56:14 2022 +0100

    reformat CompilerImports.fs

commit c62e89c
Author: janusz <[email protected]>
Date:   Sun Jul 17 20:54:26 2022 +0100

    Allow parallel project analysis with an environment variable

commit 524cd17
Author: Chet Husk <[email protected]>
Date:   Sun Jul 17 14:06:46 2022 -0500

    better names

commit 237bf59
Author: Chet Husk <[email protected]>
Date:   Sun Jul 17 12:29:51 2022 -0500

    very basic spans

commit 0dd5258
Author: Chet Husk <[email protected]>
Date:   Sun Jul 17 10:16:26 2022 -0500

    first activity plumbing
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.

2 participants