Skip to content

Commit 0c5c1ff

Browse files
committed
Squashed commit of the following:
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
1 parent 73714c9 commit 0c5c1ff

File tree

70 files changed

+5202
-8436
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+5202
-8436
lines changed

.fantomasignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ vsintegration/*
1111
!vsintegration/tests/FSharp.Editor.Tests
1212
artifacts/
1313

14+
# Explicitly formatted Tests/ subdirectories (with exceptions)
15+
!tests/ParallelTypeCheckingTests/
16+
*/.fcs_test/
17+
1418
# Explicitly unformatted implementation files
1519

1620
src/Compiler/Checking/AccessibilityLogic.fs

FSharp.sln

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,11 +100,15 @@ Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "HistoricalBenchmark", "test
100100
EndProject
101101
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Compiler.Benchmarks", "tests\benchmarks\FCSBenchmarks\CompilerServiceBenchmarks\FSharp.Compiler.Benchmarks.fsproj", "{9C7523BA-7AB2-4604-A5FD-653E82C2BAD1}"
102102
EndProject
103+
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Compiler.Benchmarks", "tests\benchmarks\FCSBenchmarks\CompilerServiceBenchmarks\FSharp.Compiler.Benchmarks.fsproj", "{9C7523BA-7AB2-4604-A5FD-653E82C2BAD1}"
104+
EndProject
103105
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{D58BFE8B-7C85-4D3B-B5F3-9A7BB90FF1EE}"
104106
ProjectSection(SolutionItems) = preProject
105107
src\Compiler\FSComp.txt = src\Compiler\FSComp.txt
106108
EndProjectSection
107109
EndProject
110+
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "ParallelTypeCheckingTests", "tests\ParallelTypeCheckingTests\ParallelTypeCheckingTests.fsproj", "{59C31D40-97E0-4A69-ABD9-D316BD798ED8}"
111+
EndProject
108112
Global
109113
GlobalSection(SolutionConfigurationPlatforms) = preSolution
110114
Debug|Any CPU = Debug|Any CPU
@@ -415,6 +419,18 @@ Global
415419
{9C7523BA-7AB2-4604-A5FD-653E82C2BAD1}.Release|Any CPU.Build.0 = Release|Any CPU
416420
{9C7523BA-7AB2-4604-A5FD-653E82C2BAD1}.Release|x86.ActiveCfg = Release|Any CPU
417421
{9C7523BA-7AB2-4604-A5FD-653E82C2BAD1}.Release|x86.Build.0 = Release|Any CPU
422+
{59C31D40-97E0-4A69-ABD9-D316BD798ED8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
423+
{59C31D40-97E0-4A69-ABD9-D316BD798ED8}.Debug|Any CPU.Build.0 = Debug|Any CPU
424+
{59C31D40-97E0-4A69-ABD9-D316BD798ED8}.Debug|x86.ActiveCfg = Debug|Any CPU
425+
{59C31D40-97E0-4A69-ABD9-D316BD798ED8}.Debug|x86.Build.0 = Debug|Any CPU
426+
{59C31D40-97E0-4A69-ABD9-D316BD798ED8}.Proto|Any CPU.ActiveCfg = Debug|Any CPU
427+
{59C31D40-97E0-4A69-ABD9-D316BD798ED8}.Proto|Any CPU.Build.0 = Debug|Any CPU
428+
{59C31D40-97E0-4A69-ABD9-D316BD798ED8}.Proto|x86.ActiveCfg = Debug|Any CPU
429+
{59C31D40-97E0-4A69-ABD9-D316BD798ED8}.Proto|x86.Build.0 = Debug|Any CPU
430+
{59C31D40-97E0-4A69-ABD9-D316BD798ED8}.Release|Any CPU.ActiveCfg = Release|Any CPU
431+
{59C31D40-97E0-4A69-ABD9-D316BD798ED8}.Release|Any CPU.Build.0 = Release|Any CPU
432+
{59C31D40-97E0-4A69-ABD9-D316BD798ED8}.Release|x86.ActiveCfg = Release|Any CPU
433+
{59C31D40-97E0-4A69-ABD9-D316BD798ED8}.Release|x86.Build.0 = Release|Any CPU
418434
EndGlobalSection
419435
GlobalSection(SolutionProperties) = preSolution
420436
HideSolutionNode = FALSE
@@ -446,6 +462,7 @@ Global
446462
{209C7D37-8C01-413C-8698-EC25F4C86976} = {B8DDA694-7939-42E3-95E5-265C2217C142}
447463
{BEC6E796-7E53-4888-AAFC-B8FD55C425DF} = {CE70D631-C5DC-417E-9CDA-B16097BEF1AC}
448464
{9C7523BA-7AB2-4604-A5FD-653E82C2BAD1} = {CE70D631-C5DC-417E-9CDA-B16097BEF1AC}
465+
{59C31D40-97E0-4A69-ABD9-D316BD798ED8} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
449466
EndGlobalSection
450467
GlobalSection(ExtensibilityGlobals) = postSolution
451468
SolutionGuid = {BD5177C7-1380-40E7-94D2-7768E1A8B1B8}

input.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
abbrevia
2+
baba
3+
baba.ba

scripts/perftests.ps1

Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
param(
2+
[Parameter(Mandatory = $true)][string]$Cache,
3+
[Parameter(Mandatory = $true)][string]$TestsPath,
4+
[string]$Repository,
5+
[string]$Revision,
6+
[string[]]$BeforeSteps = $null,
7+
[string[]]$Projects,
8+
[string[]]$Configurations = @("Debug")
9+
)
10+
11+
class TestCase {
12+
[CheckoutSpec]$CheckoutSpec
13+
[string[]]$Projects
14+
[string[]]$Configurations = @("Debug")
15+
}
16+
17+
class Tests {
18+
[string]$Cache
19+
[TestCase[]]$Tests
20+
# TODO FSC path
21+
}
22+
23+
class CheckoutSpec {
24+
[string]$Repository
25+
[string]$Revision
26+
[string[]]$BeforeSteps = @()
27+
28+
[string]GetDir($CacheBase){
29+
return Join-Path (Join-Path $CacheBase $this.Repository) $this.Revision
30+
}
31+
[string]GetRepositoryUrl(){
32+
$repo = $this.Repository
33+
return "https://github.com/$repo"
34+
}
35+
}
36+
37+
class Checkout {
38+
[string]$Cache
39+
[CheckoutSpec]$Spec
40+
[string]GetDir(){
41+
return $this.Spec.GetDir($this.Cache)
42+
}
43+
[string]GetRepositoryUrl(){
44+
return $this.Spec.GetRepositoryUrl()
45+
}
46+
}
47+
48+
function Checkout-Codebase {
49+
[OutputType([string])]
50+
param(
51+
[Parameter(Mandatory = $true)][Checkout]$checkout
52+
)
53+
$repositoryUrl = $checkout.GetRepositoryUrl()
54+
$cacheDir = $checkout.GetDir()
55+
56+
if(Test-Path -Path $cacheDir){
57+
Write-Host "'$cacheDir' exists - assuming that it contains the correct code revision."
58+
} else {
59+
Write-Host "git clone '$repositoryUrl' into '$cacheDir'"
60+
git clone $repositoryUrl $cacheDir > Write-Host
61+
Write-Host "git clone finished"
62+
}
63+
}
64+
65+
Set-StrictMode -Version Latest
66+
$oldLocation = Get-Location
67+
68+
function SingleTest{
69+
param(
70+
[Parameter(Mandatory = $true)][string]$Cache,
71+
[Parameter(Mandatory = $true)][TestCase]$Test
72+
)
73+
$checkoutSpec = $test.CheckoutSpec
74+
$checkout = [Checkout]::new()
75+
$checkout.Cache = $Cache
76+
$checkout.Spec = $checkoutSpec
77+
Checkout-Codebase -Checkout $checkout
78+
$checkoutDir = $checkout.GetDir()
79+
Set-Location $checkoutDir
80+
81+
$beforeSteps = $checkoutSpec.BeforeSteps
82+
if($null -eq $beforeSteps){
83+
$beforeSteps = @()
84+
}
85+
foreach ($step in $beforeSteps) {
86+
Write-Host "Running BeforeStep: '$step'"
87+
Invoke-Expression "$step" > $null
88+
}
89+
90+
function BuildProjectCollectTimings{
91+
param(
92+
[Parameter(Mandatory = $true)][string]$Project,
93+
[Parameter(Mandatory = $true)][string]$Configuration
94+
)
95+
$projectDir = (Get-ChildItem -Path $Project -File).DirectoryName
96+
$projectName = (Get-ChildItem -Path $Project -File).Name
97+
Set-Location $projectDir
98+
dotnet build -c $Configuration $Project > $null
99+
$logPath = "msbuild.log"
100+
dotnet build -c $Configuration --no-incremental --no-dependencies $projectName /p:OtherFlags="--times" -fl "-flp:logfile=$logPath;verbosity=detailed" > $null
101+
$lines = Get-Content $logPath | Select-String -pattern "Realdelta" | % {$_.Line.Trim()}
102+
return $lines
103+
}
104+
105+
foreach ($configuration in $Test.Configurations) {
106+
foreach ($project in $Test.Projects) {
107+
$projectPath = Join-Path $checkoutDir -ChildPath $Project
108+
if(-not (Test-Path -Path $projectPath)) {
109+
throw "Project file '$projectPath' does not exist."
110+
}
111+
$lines = BuildProjectCollectTimings -Project $projectPath -Configuration $configuration
112+
Write-Host "Timings for '$configuration - $project':"
113+
$lines | Write-Host
114+
}
115+
}
116+
}
117+
118+
function Run-Tests{
119+
param(
120+
[Parameter(Mandatory = $true)][Tests]$Tests
121+
)
122+
foreach ($test in $Tests.Tests) {
123+
SingleTest -Cache $Tests.Cache -Test $test
124+
}
125+
}
126+
127+
function Build-SingleTest {
128+
$checkoutSpec = [CheckoutSpec]::new()
129+
$checkoutSpec.Repository = $Repository
130+
$checkoutSpec.Revision = $Revision
131+
132+
$test = [TestCase]::new()
133+
$test.CheckoutSpec = $checkoutSpec
134+
$test.Projects = $Projects
135+
$test.Configuration = $Configuration
136+
137+
$tests = [Tests]::new()
138+
$tests.Cache = $Cache
139+
$tests.Tests = @($test)
140+
}
141+
142+
function Parse-Tests {
143+
return Get-Content $TestsPath | ConvertFrom-Json
144+
}
145+
146+
#$tests = Build-SingleTest
147+
$tests = [Tests]::new()
148+
$tests.Cache = $Cache
149+
$tests.Tests = Parse-Tests
150+
Run-Tests -Tests $tests
151+
152+
Set-Location $oldLocation

scripts/tests.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
[
2+
{
3+
"checkoutSpec": {
4+
"repository": "safesparrow/fsharp-benchmark-generator",
5+
"revision": "main",
6+
"beforeSteps": []
7+
},
8+
"projects": ["Generator.fsproj", "Runner/Runner.fsproj"],
9+
"configurations": ["Debug", "Release"]
10+
},
11+
{
12+
"checkoutSpec": {
13+
"repository": "dotnet/fsharp",
14+
"revision": "main",
15+
"beforeSteps": ["./build.cmd -noVisualStudio"]
16+
},
17+
"projects": ["src/compiler/FSharp.Compiler.Service.fsproj"],
18+
"configurations": ["Debug", "Release"]
19+
}
20+
]

src/Compiler/Checking/PostInferenceChecks.fs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -492,7 +492,7 @@ let AccessInternalsVisibleToAsInternal thisCompPath internalsVisibleToPaths acce
492492
accessSubstPaths (thisCompPath, internalsVisibleToPath) access)
493493

494494

495-
let CheckTypeForAccess (cenv: cenv) env objName valAcc m ty =
495+
let CheckTypeForAccess (cenv: cenv) env _objName valAcc _m ty =
496496
if cenv.reportErrors then
497497

498498
let visitType ty =
@@ -504,11 +504,12 @@ let CheckTypeForAccess (cenv: cenv) env objName valAcc m ty =
504504
let thisCompPath = compPathOfCcu cenv.viewCcu
505505
let tyconAcc = tcref.Accessibility |> AccessInternalsVisibleToAsInternal thisCompPath cenv.internalsVisibleToPaths
506506
if isLessAccessible tyconAcc valAcc then
507-
errorR(Error(FSComp.SR.chkTypeLessAccessibleThanType(tcref.DisplayName, (objName())), m))
507+
()
508+
//errorR(Error(FSComp.SR.chkTypeLessAccessibleThanType(tcref.DisplayName, (objName())), m))
508509

509510
CheckTypeDeep cenv (visitType, None, None, None, None) cenv.g env false ty
510511

511-
let WarnOnWrongTypeForAccess (cenv: cenv) env objName valAcc m ty =
512+
let WarnOnWrongTypeForAccess (cenv: cenv) env _objName valAcc _m ty =
512513
if cenv.reportErrors then
513514

514515
let visitType ty =
@@ -520,9 +521,10 @@ let WarnOnWrongTypeForAccess (cenv: cenv) env objName valAcc m ty =
520521
let thisCompPath = compPathOfCcu cenv.viewCcu
521522
let tyconAcc = tcref.Accessibility |> AccessInternalsVisibleToAsInternal thisCompPath cenv.internalsVisibleToPaths
522523
if isLessAccessible tyconAcc valAcc then
523-
let errorText = FSComp.SR.chkTypeLessAccessibleThanType(tcref.DisplayName, (objName())) |> snd
524-
let warningText = errorText + Environment.NewLine + FSComp.SR.tcTypeAbbreviationsCheckedAtCompileTime()
525-
warning(AttributeChecking.ObsoleteWarning(warningText, m))
524+
()
525+
// let errorText = FSComp.SR.chkTypeLessAccessibleThanType(tcref.DisplayName, (objName())) |> snd
526+
// let warningText = errorText + Environment.NewLine + FSComp.SR.tcTypeAbbreviationsCheckedAtCompileTime()
527+
// warning(AttributeChecking.ObsoleteWarning(warningText, m))
526528

527529
CheckTypeDeep cenv (visitType, None, None, None, None) cenv.g env false ty
528530

src/Compiler/Driver/CompilerConfig.fs

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -393,6 +393,15 @@ type ParallelReferenceResolution =
393393
| On
394394
| Off
395395

396+
[<RequireQualifiedAccess>]
397+
type TypeCheckingMode =
398+
| Sequential
399+
| ParallelCheckingOfBackedImplFiles
400+
| Graph
401+
402+
[<RequireQualifiedAccess>]
403+
type TypeCheckingConfig = { Mode: TypeCheckingMode }
404+
396405
[<NoEquality; NoComparison>]
397406
type TcConfigBuilder =
398407
{
@@ -507,7 +516,6 @@ type TcConfigBuilder =
507516
mutable emitTailcalls: bool
508517
mutable deterministic: bool
509518
mutable concurrentBuild: bool
510-
mutable parallelCheckingWithSignatureFiles: bool
511519
mutable emitMetadataAssembly: MetadataAssemblyGeneration
512520
mutable preferredUiLang: string option
513521
mutable lcid: int option
@@ -588,6 +596,8 @@ type TcConfigBuilder =
588596
mutable exiter: Exiter
589597

590598
mutable parallelReferenceResolution: ParallelReferenceResolution
599+
600+
mutable typeCheckingConfig: TypeCheckingConfig
591601
}
592602

593603
// Directories to start probing in
@@ -734,7 +744,6 @@ type TcConfigBuilder =
734744
emitTailcalls = true
735745
deterministic = false
736746
concurrentBuild = true
737-
parallelCheckingWithSignatureFiles = false
738747
emitMetadataAssembly = MetadataAssemblyGeneration.None
739748
preferredUiLang = None
740749
lcid = None
@@ -777,6 +786,10 @@ type TcConfigBuilder =
777786
xmlDocInfoLoader = None
778787
exiter = QuitProcessExiter
779788
parallelReferenceResolution = ParallelReferenceResolution.Off
789+
typeCheckingConfig =
790+
{
791+
TypeCheckingConfig.Mode = TypeCheckingMode.Sequential
792+
}
780793
}
781794

782795
member tcConfigB.FxResolver =
@@ -1288,7 +1301,6 @@ type TcConfig private (data: TcConfigBuilder, validate: bool) =
12881301
member _.emitTailcalls = data.emitTailcalls
12891302
member _.deterministic = data.deterministic
12901303
member _.concurrentBuild = data.concurrentBuild
1291-
member _.parallelCheckingWithSignatureFiles = data.parallelCheckingWithSignatureFiles
12921304
member _.emitMetadataAssembly = data.emitMetadataAssembly
12931305
member _.pathMap = data.pathMap
12941306
member _.langVersion = data.langVersion
@@ -1322,6 +1334,7 @@ type TcConfig private (data: TcConfigBuilder, validate: bool) =
13221334
member _.xmlDocInfoLoader = data.xmlDocInfoLoader
13231335
member _.exiter = data.exiter
13241336
member _.parallelReferenceResolution = data.parallelReferenceResolution
1337+
member _.typeCheckingConfig = data.typeCheckingConfig
13251338

13261339
static member Create(builder, validate) =
13271340
use _ = UseBuildPhase BuildPhase.Parameter

src/Compiler/Driver/CompilerConfig.fsi

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,18 @@ type ParallelReferenceResolution =
203203
| On
204204
| Off
205205

206+
[<RequireQualifiedAccess>]
207+
type TypeCheckingMode =
208+
/// Default mode where all source files are processed sequentially in compilation order.
209+
| Sequential
210+
/// Signature files and implementation files without backing files are processed sequentially, then backed implementation files are processed in parallel.
211+
| ParallelCheckingOfBackedImplFiles
212+
/// Parallel type-checking that uses automated file-to-file dependency detection to construct a highly-parallelisable file graph.
213+
| Graph
214+
215+
[<RequireQualifiedAccess>]
216+
type TypeCheckingConfig = { Mode: TypeCheckingMode }
217+
206218
[<NoEquality; NoComparison>]
207219
type TcConfigBuilder =
208220
{
@@ -412,8 +424,6 @@ type TcConfigBuilder =
412424

413425
mutable concurrentBuild: bool
414426

415-
mutable parallelCheckingWithSignatureFiles: bool
416-
417427
mutable emitMetadataAssembly: MetadataAssemblyGeneration
418428

419429
mutable preferredUiLang: string option
@@ -491,6 +501,8 @@ type TcConfigBuilder =
491501
mutable exiter: Exiter
492502

493503
mutable parallelReferenceResolution: ParallelReferenceResolution
504+
505+
mutable typeCheckingConfig: TypeCheckingConfig
494506
}
495507

496508
static member CreateNew:
@@ -734,8 +746,6 @@ type TcConfig =
734746

735747
member concurrentBuild: bool
736748

737-
member parallelCheckingWithSignatureFiles: bool
738-
739749
member emitMetadataAssembly: MetadataAssemblyGeneration
740750

741751
member pathMap: PathMap
@@ -858,6 +868,8 @@ type TcConfig =
858868

859869
member parallelReferenceResolution: ParallelReferenceResolution
860870

871+
member typeCheckingConfig: TypeCheckingConfig
872+
861873
/// Represents a computation to return a TcConfig. Normally this is just a constant immutable TcConfig,
862874
/// but for F# Interactive it may be based on an underlying mutable TcConfigBuilder.
863875
[<Sealed>]

0 commit comments

Comments
 (0)