1
1
mirror of https://github.com/github/semantic.git synced 2024-12-22 06:11:49 +03:00
Commit Graph

19365 Commits

Author SHA1 Message Date
lalaition
28c26d015e Run stylish-haskell on changes, again 2019-06-06 21:25:47 -06:00
lalaition
be96fcf52f Refactored code to be in line with suggestions 2019-06-06 21:24:22 -06:00
joshvera
72b04d7c9c bring this Go assignment back 2019-06-06 18:57:35 -04:00
joshvera
6b13145862 Move jsxElements out of TypeScript grammar
Also removes typeAssertion from TSX grammar
2019-06-06 16:37:29 -04:00
joshvera
a8a36adc81 Merge remote-tracking branch 'origin/master' into typescript-mapped-types 2019-06-06 15:27:59 -04:00
lalaition
0abcac73b8 Run stylish-haskell on changes 2019-06-05 20:11:40 -06:00
lalaition
2ba61a21a0 Use Attoparsec to parse git output instead of manually splitting Text 2019-06-05 20:07:48 -06:00
Rob Rix
87209d3eee
🔥 MiniPython & MiniRuby. 2019-06-05 17:05:14 -04:00
Rob Rix
7fc70fdd59
Nest lets. 2019-06-05 16:43:21 -04:00
Rob Rix
26cd38f45d
Don’t double-nest Statements. 2019-06-05 16:42:58 -04:00
Rob Rix
16f6c72b19
Use makeTerm'' instead of mk. 2019-06-05 16:21:45 -04:00
Rob Rix
7ecebae144
Try harder to deal with blocks and things. 2019-06-05 16:20:31 -04:00
Rob Rix
3ea0bd957c
Add a rule to always insert nodes for blocks. 2019-06-05 16:20:12 -04:00
Rob Rix
669ffa656a
Don’t make nodes for blocks if we don’t have to. 2019-06-05 15:51:23 -04:00
Rob Rix
d7fedfdc3d
Leave functionDefinition the way it was. 2019-06-05 15:51:07 -04:00
Rob Rix
c550b6bbe1
Just use expressions. 2019-06-05 15:44:04 -04:00
Rob Rix
df59eaccdb
Blocks can be expressions. 2019-06-05 15:41:56 -04:00
Rob Rix
e106819e25
Use block in while. 2019-06-05 15:37:15 -04:00
Rob Rix
5c2329cde0
Use block in functionDefinition. 2019-06-05 15:35:48 -04:00
Rob Rix
e2438a49ac
Add a rule for blocks. 2019-06-05 15:34:33 -04:00
Rob Rix
eb6d12d661
Fail on incompatible parser versions. 2019-06-05 14:56:09 -04:00
joshvera
33e267151a WIP 2019-06-05 14:17:12 -04:00
Rob Rix
bc80f6dc20
Bump haskell-tree-sitter for bumps to the grammars. 2019-06-05 14:12:00 -04:00
Patrick Thomson
3e1f3bcb9f Remove redundant HasSpan class.
We already have a classy-lenses-style HasSpan class, provided by Data.Span itself, so we don't need Data.Abstract.HasSpan.
2019-06-04 14:40:09 -04:00
Patrick Thomson
0501336f26 Support --sha="HEAD" in semantic parse --symbols --gitdir.
This is a temporary bandaid to make performance debugging easier. We
are going to tackle the issue of proper Git integration in #38.
2019-06-04 11:43:33 -04:00
Rob Rix
f79ba2ae36
Merge branch 'master' into move-grammar-datatypes-to-the-parser-packages 2019-06-03 15:22:56 -04:00
Rob Rix
2646f89948
Move the grammar datatypes for all the other languages into their respective packages. 2019-06-03 14:14:04 -04:00
Rob Rix
0fa39f6131
🔥 Language.JSON.Grammar. 2019-06-03 13:23:16 -04:00
Rob Rix
5aee604964
Copy Freer & iterFreer in. 2019-06-03 12:17:54 -04:00
Rob Rix
2430e16f79
Avoid using wrap. 2019-06-03 12:17:39 -04:00
Rob Rix
40c467fc5d
🔥 the Show1 instances for Tracing and AssignmentF. 2019-06-03 12:16:32 -04:00
Rob Rix
2ccd8e10f3
Show the matched thing, not the rule that matched it. 2019-06-03 12:15:29 -04:00
Patrick Thomson
c2b46a6aba Simplify Data.Project.
We don't need this to be parameterized in terms of the filepath and
container type, because we no longer generate protobuf code from this
structure.

This should have no impact on tests or output.
2019-05-31 13:13:56 -04:00
Douglas Creager
cf803555e5 Make error reporter API generic
Instead of hard-coding the HTTP API we use for uploading errors to our
internal service, let the user provide an arbitrary function (in the IO
monad) for uploading them.  The default config will create an error
reporter that logs errors to the console, just like happened before if
you didn't set the `HAYSTACK_URL` environment variable.
2019-05-31 08:58:34 -04:00
Patrick Thomson
c34319c82e Fix lints. 2019-05-29 10:45:53 -04:00
Patrick Thomson
db8935d317 Merge remote-tracking branch 'origin/master' into remove-tagger 2019-05-29 10:38:21 -04:00
Patrick Thomson
830297cdb1 Remove Tagger DSL.
This doesn't do anything that just using Machine and Plan would do
more efficiently and with fewer LoC.
2019-05-27 09:50:32 -04:00
Patrick Thomson
af1f95f1d3 Remove Error effect from tagging internals.
This code was based on code I wrote for the reprinter, which had
different correctness constraints than does the tagging system:
specifically, the tagging code does not fail, as there is a
recoverable result even if we get pathological input. As such, there's
no need to wrap this in an Either that is always Right.
2019-05-25 14:33:18 -04:00
Patrick Thomson
0fb8595617 I guess GHC thinks these UNPACKs are unusable. 2019-05-24 11:55:31 -04:00
Patrick Thomson
2b6bc89d26 Merge branch 'blob-depends-on-file' of github.com:github/semantic into blob-depends-on-file 2019-05-24 11:53:34 -04:00
Patrick Thomson
8e0962712e legacyMakeBlob => makeBlob. Also unpack File. 2019-05-24 11:52:35 -04:00
Patrick Thomson
67ffebb9a1 Merge branch 'master' into blob-depends-on-file 2019-05-23 14:01:50 -04:00
Patrick Thomson
a3f54af945 Disable optimizations for Util and REPL to speed up -O1 builds.
Turns out you can disable optimizations per-module. This is a good
decision, as on my laptop GHC takes an appalling amount of time to
finish building at `-O1`. Let's see if this is reflected in the time
the builders take. (This should have no performance implications for
CLI use of `semantic`, as only SpecHelpers and REPL import Util.)
2019-05-22 17:43:57 -04:00
Patrick Thomson
63a7f117eb If we're not gonna rename File, give Blob the logical field name. 2019-05-21 22:58:25 -04:00
Patrick Thomson
00164372c9 Fix shadowing issues. 2019-05-21 22:43:16 -04:00
Patrick Thomson
b8d3a06a67 Fix all the test cases. 2019-05-21 22:28:32 -04:00
Patrick Thomson
9509ec37b8 absolutely massive patch that touches everything 2019-05-21 22:05:23 -04:00
Josh Vera
4bca62fd63 Merge branch 'master' into install-sig-handlers 2019-05-21 16:29:29 -04:00
Josh Vera
543734bc94 Merge branch 'master' into install-sig-handlers 2019-05-21 16:28:33 -04:00
joshvera
4f55f6a88f redundant import 2019-05-21 13:07:34 -04:00
Patrick Thomson
fa9f4ee559 Merge branch 'master' into upgrade-distribute 2019-05-21 13:05:55 -04:00
Patrick Thomson
162e8ec59a unused import 2019-05-21 12:06:28 -04:00
Patrick Thomson
c7105746c4 fix whitespace 2019-05-21 12:02:24 -04:00
Patrick Thomson
a8974e39d9 Second pass, imposing an export list. 2019-05-21 12:01:18 -04:00
Patrick Thomson
f89becc182 Disable functions in Semantic.Util not used by specs or tests. 2019-05-21 11:46:40 -04:00
joshvera
73a2bd0af2 donut snake case 2019-05-21 10:50:16 -04:00
Patrick Thomson
2f6ad83728 Decouple DistributeC from LiftC IO. 2019-05-21 10:42:20 -04:00
joshvera
76ece76746 lints 2019-05-20 18:52:58 -04:00
joshvera
b8634b07c8 Rethrow posix signals to the main thread 2019-05-20 18:48:27 -04:00
Patrick Thomson
0c55512221 Merge branch 'master' into ignore-minified-js 2019-05-16 13:41:59 -04:00
Patrick Thomson
6aaa2f47fd The hints... were wrong? 2019-05-15 18:33:22 -04:00
Patrick Thomson
f11a244f19 More lints. 2019-05-15 18:30:56 -04:00
Patrick Thomson
ad070aa1ab Lints. 2019-05-15 18:29:47 -04:00
Patrick Thomson
0197e40f38 Document rethrowing. 2019-05-15 18:28:21 -04:00
Patrick Thomson
e421dbeb20 We probably want to only catch sync errors here. 2019-05-15 18:25:09 -04:00
Patrick Thomson
70463f79f9 Remove cubic-caller problem. 2019-05-15 18:21:07 -04:00
Patrick Thomson
334243efc0 Make readFilePair fail in IO rather than require extra MonadFail. 2019-05-15 18:04:07 -04:00
Patrick Thomson
a544c2d6d8 Refactor internals of FilesC to use catch rather than Exc.catch. 2019-05-15 18:04:07 -04:00
Patrick Thomson
e18cb752ce Use Catch in the REPL. 2019-05-15 18:04:07 -04:00
Patrick Thomson
73b0b17ff0 Add Catch to the TaskEff stack. 2019-05-15 18:04:07 -04:00
Patrick Thomson
45492449c1 Ignore minified .js files (#2529)
aleph is doing more work than it needs to, as semantic is
all-too-enthusiastic to read in a whole node_modules directory of
minified .js files. A few well-placed boolean checks ensure that
we don't waste these cycles.

Fixes #2529.
2019-05-15 12:49:51 -04:00
Patrick Thomson
877e440800 Merge branch 'master' into remove-boring-instances 2019-05-13 13:29:31 -04:00
Timothy Clem
b2ff549d53 Remove this stat 2019-05-09 15:06:13 -07:00
Timothy Clem
7830fb9137 Cleanup to oneline 2019-05-09 13:19:43 -07:00
Timothy Clem
eae4bdb8c7 Allow passing excludes on stdin 2019-05-09 13:17:18 -07:00
Patrick Thomson
f31cc397ad For some reason, only Hlint died on this syntax error. 2019-05-08 11:17:49 -04:00
Patrick Thomson
039dca154a Forgot some newtype specifiers. 2019-05-08 11:15:21 -04:00
Patrick Thomson
65ca86534e 🔥 Semantic.Task.Files. 2019-05-08 11:06:28 -04:00
Patrick Thomson
ec03076cf1 🔥 Control.Effect.REPL. 2019-05-08 11:04:33 -04:00
Patrick Thomson
46bcc03437 🔥 Control.Abstract.Modules. 2019-05-08 11:03:16 -04:00
Patrick Thomson
f8a2cda0d0 🔥 Control.Abstract.ScopeGraph 2019-05-08 11:01:16 -04:00
Patrick Thomson
6024a7b0d9 🔥 Control.Abstract.Value. 2019-05-08 11:00:03 -04:00
Patrick Thomson
78c0158355 🔥 Control.Abstract.Heap 2019-05-08 10:59:45 -04:00
Patrick Thomson
11c9133202 🔥 Semantic.Telemetry. 2019-05-08 10:55:01 -04:00
Patrick Thomson
bb26b414c0 🔥 Semantic.Resolution. 2019-05-08 10:52:49 -04:00
Patrick Thomson
99fca869ff 🔥 Algorithm 2019-05-08 10:51:23 -04:00
Patrick Thomson
6748c13c79 Merge branch 'master' into remove-orphan-files 2019-05-03 15:26:26 -04:00
Timothy Clem
c6cc5cb459 Limit line we return to 180 2019-04-30 10:54:24 -07:00
Patrick Thomson
065c4688ef Remove unused protobuf-related files.
For some reason that escapes me at the moment, I chose to put these
files in the main tree rather than in services/alephd.
2019-04-29 10:58:51 -04:00
Patrick Thomson
396fce8ace Remove stray occurrences of Debug.Trace.traceM. 2019-04-24 12:13:08 -04:00
Timothy Clem
5de5e1d367 Done 2019-04-15 12:57:36 -07:00
Timothy Clem
834de443d3 Wire in list of paths to exclude 2019-04-15 12:50:56 -07:00
Timothy Clem
e381f4d95d Add bloboid (if exists) to proto output 2019-04-12 15:48:49 -07:00
Timothy Clem
abd0bf08af Narrow in on language support for now 2019-04-12 15:48:35 -07:00
Timothy Clem
a37a737562 Stub in an exclude list 2019-04-12 15:48:09 -07:00
Timothy Clem
eb0e820fe9 Stat how long it takes to read git repos 2019-04-12 14:41:01 -07:00
Timothy Clem
7840aec67b Fix specs 2019-04-12 12:50:30 -07:00
Timothy Clem
40c4c1f657 Cleanup 2019-04-12 11:45:07 -07:00
Timothy Clem
be17d782ad Handle dirs and git repos for parsing 2019-04-12 11:40:22 -07:00
Timothy Clem
aef2d62b1b Move Git functionality into semantic 2019-04-12 11:40:03 -07:00
Timothy Clem
8779d2c296 Enable proto output on the CLI for symbols 2019-04-12 09:55:53 -07:00
Timothy Clem
946b68eda8 Allow parsing entire directory 2019-04-12 09:55:40 -07:00
Timothy Clem
c8083a0470 This is no longer necessary 2019-03-29 07:59:33 -07:00
Timothy Clem
48a11d88e8 Merge remote-tracking branch 'origin/shelly-git-action' into alternative-schema 2019-03-28 17:39:56 -07:00
Patrick Thomson
e73b01f04b Merge remote-tracking branch 'origin/master' into shelly-git-action 2019-03-28 14:30:43 -04:00
Rick Winfrey
098fdd959a Merge branch 'master' into alephd-testing 2019-03-28 09:49:23 -07:00
Patrick Thomson
69c11c816e Merge remote-tracking branch 'origin/master' into shelly-git-action 2019-03-28 09:30:02 -04:00
Timothy Clem
13fe8e14bc Put extra info about the blob in ModuleInfo 2019-03-27 11:51:38 -07:00
Patrick Thomson
ffaba28677 Fix tests. 2019-03-27 09:03:49 -04:00
Timothy Clem
532c0e3770 Add blob oids into the symbols interface 2019-03-26 15:59:22 -07:00
Rick Winfrey
8e6561c487 Avoid exporting constructors for Name 2019-03-26 14:55:15 -07:00
Rick Winfrey
654259f367 Use enumBounded for EdgeLabel, Kind, and Relation 2019-03-26 11:20:39 -07:00
Timothy Clem
aa3d8d6a10 Merge remote-tracking branch 'origin/master' into shelly-git-action 2019-03-26 09:17:15 -07:00
Rick Winfrey
5824409984 Merge branch 'master' into alephd-testing 2019-03-25 15:30:41 -07:00
Timothy Clem
23920a04cd Capture and carry around blob oid 2019-03-25 12:21:32 -07:00
Patrick Thomson
cf52476d3b Fix compile errors. 2019-03-25 11:15:37 -04:00
Patrick Thomson
f82146ea58 No need to use type applications. 2019-03-22 16:52:07 -04:00
Patrick Thomson
272b5b3b64 Use flags for Options. 2019-03-22 16:37:17 -04:00
Patrick Thomson
5dfb7fb50d Stray LANGUAGE pragma. 2019-03-22 16:27:36 -04:00
Patrick Thomson
ecea375520 Eliminate boolean blindness with tagged flags a la olegfi. 2019-03-22 16:25:04 -04:00
Rick Winfrey
c2cef7dd03 Merge branch 'master' into alephd-testing 2019-03-21 17:31:25 -07:00
Rick Winfrey
02bb89c546 Make this easier to read 2019-03-20 13:08:17 -07:00
Rick Winfrey
2ccf2ae05c Export Name constructors (for now) 2019-03-20 13:08:05 -07:00
Rick Winfrey
66f5a06f1f Merge branch 'master' into alephd-testing 2019-03-19 13:47:48 -07:00
Josh Vera
f2c6a50c2d Merge branch 'master' into use-external-exceptions-package 2019-03-19 16:06:53 -04:00
Josh Vera
5f23615f17 Merge branch 'master' into use-external-exceptions-package 2019-03-19 15:01:06 -04:00
Josh Vera
b0309f86a2 Merge branch 'master' into tree-sitter-timeout 2019-03-19 14:42:36 -04:00
Max Brunsfeld
d153b6090b Remove redundant import 2019-03-19 10:40:32 -07:00
Patrick Thomson
ec76510534 Merge branch 'master' into index-calls 2019-03-19 10:36:34 -04:00
Patrick Thomson
139b0c5bd1 Use external fused-effects-exceptions package.
This was OSS'd because it turned out to be a little tricky and we
didn't want external consumers to have to implement it themselves. No
reason to keep it around in our tree.
2019-03-19 10:34:13 -04:00
Max Brunsfeld
3249307ccd Use Tree-sitter's built-in timeout API instead of a separate timeout thread 2019-03-18 16:30:15 -07:00
Rick Winfrey
e64fa5ad3b This should still be Prelude 2019-03-18 16:11:18 -07:00
Josh Vera
b59bf0622e Merge branch 'master' into signal-handling 2019-03-18 18:29:56 -04:00
Rick Winfrey
3a596f97e4 Merge branch 'master' into filter-gensymed-names 2019-03-18 13:51:50 -07:00
Josh Vera
bc4dce9725 Merge branch 'master' into signal-handling 2019-03-18 16:41:51 -04:00
Timothy Clem
a507a687be Just pick out the selector 2019-03-18 12:23:54 -07:00
Timothy Clem
8208a4154f Include function calls in symbols output 2019-03-18 10:53:02 -07:00
Patrick Thomson
1268b209de Regenerate data types from hydro.
Now that twirp-haskell generates significantly better code, we should
use it for our data types. This overcomes the significant problems
associated with JSON instances for protobuf objects, since now the
FromJSON and ToJSON instances are defined in terms of the JSONPB
instances, which brings them in line with the standard.

This is a breaking change, but we don't have any consumers of this API
yet, so @tclem gave me the all clear.
2019-03-18 13:14:39 -04:00
joshvera
9486196cb7 indentation 2019-03-18 13:08:21 -04:00
joshvera
a9e4a71fd0 Move catchSync to Control.Effect.Catch 2019-03-18 12:56:46 -04:00
Rick Winfrey
f6df1854d1 Add 📝 2019-03-15 16:06:29 -07:00
Rick Winfrey
864aa0af9f Remove comments, these are no captured as issues 2019-03-15 16:04:41 -07:00
Rick Winfrey
8d4bd5d944 Fix copy pasta mistake 2019-03-15 12:13:07 -07:00
Rick Winfrey
4714579627 Move for readability 2019-03-15 12:06:19 -07:00
Rick Winfrey
e572bcb5b3 Merge branch 'master' into filter-gensymed-names 2019-03-15 11:43:25 -07:00
Rick Winfrey
8d5f0bb549 Fix lint 2019-03-15 11:25:54 -07:00
Rick Winfrey
1af0ea0534 Update TypeScript syntax terms to avoid throwNoNameError where possible 2019-03-15 11:23:18 -07:00
Rick Winfrey
db6a207216 Update RequiredParameter 2019-03-15 11:23:00 -07:00
Rick Winfrey
b66188b1e6 Update import for typescript 2019-03-15 11:22:52 -07:00
Rick Winfrey
beea09beaf Update Ruby Syntax terms to not use throwNoNameError where possible 2019-03-15 11:22:32 -07:00
Rick Winfrey
1dbc7ca218 Also add note to investigate gensym'ed names and imports 2019-03-15 11:22:14 -07:00
Rick Winfrey
0b1df97163 Add note to investigate gensym'ed names with respect to References 2019-03-15 11:21:59 -07:00
Rick Winfrey
6197b9941b Update Go.QualifiedImport 2019-03-15 11:21:41 -07:00
Rick Winfrey
3cebf1ac15 Update Let 2019-03-15 11:21:26 -07:00
Rick Winfrey
0c6aa4e759 Add note about interplay between of throwNoNameError and AccessControlError 2019-03-15 11:21:09 -07:00
Rick Winfrey
09c0f4df3c Update TypeAlias 2019-03-15 11:20:43 -07:00
Rick Winfrey
30efba239c Update RequiredParameter 2019-03-14 17:20:41 -07:00
Rick Winfrey
e9b5e5760d Update VariableDeclarations 2019-03-14 17:20:29 -07:00
Rick Winfrey
79e144d73a Update PublicFieldDefinitions 2019-03-14 17:20:02 -07:00
Rick Winfrey
be3470fb36 Also ask about class' superscopes and their gensym names 2019-03-14 17:19:31 -07:00
Rick Winfrey
8711db798d Use declareMaybeName for classes 2019-03-14 17:19:03 -07:00
Rick Winfrey
19c9e7e4cf Change the way declareFunction works to also return a name 2019-03-14 17:17:50 -07:00
Rick Winfrey
aafe4d043a Add question 2019-03-14 17:17:13 -07:00
Rick Winfrey
ae8a8efe2c Use declareMaybeName for function parameters 2019-03-14 17:16:36 -07:00
Rick Winfrey
6cf15d4dac Simplify do 2019-03-14 17:15:59 -07:00
Rick Winfrey
7b21806c8b Use declareMaybeName for method parameters 2019-03-14 17:15:26 -07:00
Rick Winfrey
3031d40a7b Add declareMaybeName 2019-03-14 17:13:49 -07:00
Josh Vera
50d96751e3 Merge branch 'master' into alephd-threading 2019-03-14 12:02:04 -04:00
Timothy Clem
c20c214170 Merge branch 'master' into real-jsonpb 2019-03-13 16:28:35 -07:00
Rick Winfrey
d33df00f9c We implicitly gensym names when we throw NoNameError but we cannot alter the declaration 2019-03-13 16:20:11 -07:00
Timothy Clem
191000d1e9 ++generated pb code from twirp-haskell updates 2019-03-13 13:02:07 -07:00
joshvera
7c6ee7f94b Merge remote-tracking branch 'origin/master' into alephd-threading 2019-03-13 11:52:45 -04:00
joshvera
7bfe02c24c Remove Void hiding 2019-03-13 11:15:50 -04:00
Rick Winfrey
81808ccb37 Use Gensym relation 2019-03-12 18:38:27 -07:00
Rick Winfrey
a7f2decad0 Qualify 2019-03-12 18:36:05 -07:00
Rick Winfrey
3d14bcb829 Add a Gensym relation 2019-03-12 16:54:12 -07:00
joshvera
29b774c22d WIP async effect 2019-03-12 18:41:20 -04:00
Rick Winfrey
d16a56c664 Revert "Update ScopeGraph.Kind naming to avoid confusion"
This reverts commit 6ccdc3a70c984819d457412e113b7dcfce0e17f8.
2019-03-12 09:56:01 -07:00
Timothy Clem
3001cf1c0f Clean up, nothing to hide now 2019-03-11 14:35:47 -07:00
Timothy Clem
4094e29af0 More linting cleanup 2019-03-11 13:40:58 -07:00
Timothy Clem
2aa8b9fd85 Generated code cleanup 2019-03-11 13:31:47 -07:00
Timothy Clem
7b28712566 Try out Language as just a string 2019-03-11 13:21:27 -07:00
Timothy Clem
498bd79f25 Start vertex ids at 1 2019-03-11 13:10:37 -07:00
Timothy Clem
23bad2d665 Regen pb with latest twirp haskell, ++proto3-suite 2019-03-11 13:10:19 -07:00
Rick Winfrey
5368c6b37b Merge branch 'master' into scope-graph-indexer 2019-03-11 11:04:27 -07:00
Patrick Thomson
9fbc0ea0d0 Merge branch 'master' into bump-fused-effects-03-03-2019 2019-03-07 09:38:16 -05:00
Patrick Thomson
aac0dccb4f lints again 2019-03-07 09:25:13 -05:00
Patrick Thomson
8cbd955629 lint 2019-03-07 07:30:59 -05:00
Patrick Thomson
2784f14c51 Rob is the brain genious 2019-03-06 18:13:39 -05:00
Patrick Thomson
f28f23c97d infinite blessings upon @rob_rix 2019-03-06 17:39:24 -05:00
Patrick Thomson
9120c9858d more fixes 2019-03-06 17:10:32 -05:00
Rick Winfrey
84989eb538 Merge branch 'master' into scope-graph-indexer 2019-03-06 16:29:50 -05:00
Patrick Thomson
2bb5e8d9e1 restore the old definition of EavesdropC 2019-03-06 14:38:52 -05:00
Patrick Thomson
9845db1ac9 stuck on eavesdrop 2019-03-06 14:13:35 -05:00
Patrick Thomson
256d22c6d2 fix (?) PythonPackaging 2019-03-06 10:52:58 -05:00
Patrick Thomson
2fa32624ac lints 2019-03-06 10:43:12 -05:00
Patrick Thomson
79ae590376 compiles 2019-03-06 10:12:10 -05:00
Patrick Thomson
4cfcda5aaf WIP 2019-03-05 16:22:59 -05:00
Patrick Thomson
4eb7942709 Merge remote-tracking branch 'origin/master' into bump-fused-effects-03-03-2019 2019-03-05 15:57:36 -05:00
Patrick Thomson
d85f0e4823 Merge remote-tracking branch 'origin/master' into converting-api-rfc 2019-03-04 17:36:11 -05:00
Patrick Thomson
43bbcb01a5 WIP 2019-03-04 17:35:01 -05:00
Josh Vera
459bf810c4 Merge branch 'master' into alephd-feature-flag 2019-03-04 16:05:29 -05:00
Rick Winfrey
73bbc66a2f Update ScopeGraph.Kind naming to avoid confusion
This helps us disambiguate between syntax terms and scope graph kinds
2019-03-04 12:51:33 -08:00
Rick Winfrey
32db5f2ef3 Merge branch 'master' into scope-graph-indexer 2019-03-04 11:55:38 -08:00
Josh Vera
bfb844a3b5 Merge branch 'master' into alephd-feature-flag 2019-03-04 13:14:31 -05:00
Patrick Thomson
6eb1fe3403 WIP 2019-03-04 12:54:21 -05:00
Patrick Thomson
8285c3f680 WIP 2019-03-04 12:00:19 -05:00
Rob Rix
cd52b5d932 Update src/Semantic/Api/Bridge.hs
Co-Authored-By: patrickt <patrickt@github.com>
2019-03-04 10:44:20 -05:00
Patrick Thomson
aa2f6b2391 use #? properly 2019-03-04 10:34:48 -05:00
Patrick Thomson
9a71bdcc32 English is hard. 2019-03-04 10:31:43 -05:00
Patrick Thomson
5205e44e1c One more clarification in the docs. 2019-03-02 01:56:13 -05:00
Patrick Thomson
ebbe50a080 Stray import 2019-03-01 16:54:02 -05:00
Patrick Thomson
6a0c0e67c5 Document APIConvert and APIBridge. 2019-03-01 16:45:26 -05:00
Patrick Thomson
37d697f0da Remove unlawful lens. 2019-03-01 16:38:37 -05:00
Patrick Thomson
c316b20f07 Isolate the pattern of a ^? re b into its own combinator. 2019-03-01 16:25:59 -05:00
Patrick Thomson
e5563f39d5 Merge branch 'master' into pattern-synonyms-for-blobpair 2019-03-01 16:16:53 -05:00
Patrick Thomson
83322e9f94 Fix lints. 2019-03-01 15:28:22 -05:00
Patrick Thomson
b92d9a5382 Rename Helpers to Bridge. 2019-03-01 15:27:13 -05:00
Patrick Thomson
7204da3951 RFC: unified interface for converting API/legacy/native types.
As we've brought up a Twirp-based API, we've found a need to convert
between several different "views" of the same data, such as position
or span information. Because all protobuf fields are optional, we have
to juggle the `Maybe` values associated with the protobuf fields that
we are converting. While I think this approach has merit, there is a
complexity overhead associated with these conversions: we currently
have around ten ad-hoc functions that perform these conversions, often
containing superfluous `Maybe`s for the sake of convenience.

I've replaced these ad-hoc functions with two classes: `APIBridge` and
`APIConvert`. An instance of `APIBridge` between types `a` and `b`
means that we can convert between `a` and `b` and vice versa
losslessly; in other words, there is an isomorphism between them.
`APIConvert` means that you can convert from an `a` to a `b`, but you
may not be able to convert from all `b`s to an `a` (such as in the
case of missing fields); in other words, there is a partial isomorphism.

These are implemented with concepts from `lens`, namely an `Iso` for
`APIBridge` and a `Prism` for `APIConvert`.

Advantages of this approach:
* Lawful API. We can now clearly delineate the fact that converting a
  native data type to an API data type always succeeds, but the
  reverse may fail: an API `Span` may have missing position
  information, and we want to handle that explicitly, rather than
  paper over it with these helper functions. Both the APIBridge and
  APIConvert typeclasses provide a set of strong laws re. behavior,
  since they provide a lens-y interface.
* Unified API. No longer do we have to juggle a set of functions in
  our heads - no need to choose between `spanToSpan`,
  `spanToLegacySpan`, or `apiSpanToSpan`. `converting` and `bridging`
  do the work for you. Everything is much cleaner.
* Fewer partial functions. The converter from API blob pairs to native
  blob pairs no longer calls `error`, which is definitely a good
  thing.
* Historical precedent. Prisms and isomorphisms are a fluent way to
  express data transformations; the team behind Minecraft uses
  isomorphisms and prisms [to transfer data between versions][minecraft].

Disadvantages:
* Complexity overhead. You have to learn about prisms, reviews,
  isomorphisms, neither of which is the world's hardest concept but
  which take a little while to internalize.
* This might be polymorphism for polymorphism's sake.

Something we could do is postpone this patch until I have a chance to
give a lens tutorial in a Codex.

[minecraft]: https://github.com/Mojang/DataFixerUpper
2019-03-01 14:17:23 -05:00
Patrick Thomson
39ff80f652 Merge branch 'bump-python-ts' into converting-api-rfc 2019-03-01 14:01:40 -05:00
Patrick Thomson
2eb1280681 WIP 2019-03-01 14:01:27 -05:00
Patrick Thomson
e7c4884cb6 Otiose parentheses. 2019-03-01 13:00:12 -05:00
Patrick Thomson
77672564eb unused imports 2019-03-01 12:58:51 -05:00
Patrick Thomson
a2772e4338 Bump python-tree-sitter so to avoid dirty worktrees.
Because of Python grammar changes, this removes the `Identifier'` token.
2019-03-01 12:53:19 -05:00
Patrick Thomson
f29f26cc71 Fix some errors that crept in. 2019-03-01 12:36:16 -05:00
Patrick Thomson
079ce8baa0 Eliminate other places where These leaked to implementation. 2019-03-01 11:52:21 -05:00
Patrick Thomson
c41d60548c Use pattern synonyms in API helpers. 2019-03-01 11:50:46 -05:00
Patrick Thomson
060c8f50ff Refactor: use pattern synonyms to construct BlobPairs.
The `BlobPair` type is defined as an alias for `Join These Blob`. Though
this sacrifices a degree of type safety, it's extremely convenient, as
you can get to a Functor and Bifunctor instance very quickly.
Pattern-matching on `BlobPair` is less elegant though, as it requires
a nested Join then a match on `These`, which is not immediately
indicative of what a given pair might do.

This adds pattern synonyms for the `Inserting`, `Deleting`, and
`Diffing` cases, and removes the less-expressive functions returning such.
2019-03-01 11:19:24 -05:00
joshvera
7dad030d34 Update repository push proto schema using twirp-haskell 2019-02-28 16:05:00 -05:00
Rick Winfrey
0e23e4256d Merge branch 'master' into scope-graph-indexer 2019-02-27 17:03:08 -08:00
Timothy Clem
b1405fb9ec Change up the pipeline a bit 2019-02-26 14:17:11 -08:00
Timothy Clem
deddb2d82e Less noisy logging 2019-02-26 09:31:38 -08:00
joshvera
d586cfb8dd remove do block 2019-02-26 10:41:04 -05:00
joshvera
89a31a4d69 Change span issue to a TODO 2019-02-26 10:40:29 -05:00
joshvera
7fc7eb868a Add scope graph changes back 2019-02-22 17:56:42 -05:00
Josh Vera
8c654caacc Merge branch 'indexer-prototype' into merge-indexer-prototype 2019-02-22 17:33:53 -05:00
joshvera
f2aee684bc Merge remote-tracking branch 'origin/master' into indexer-prototype 2019-02-22 11:10:53 -05:00
joshvera
4f29332685 Merge branch 'deploy-to-moda' into merge-indexer-prototype 2019-02-21 12:23:20 -05:00
joshvera
ffc53d3877 Merge remote-tracking branch 'origin/indexer-prototype' into merge-indexer-prototype 2019-02-21 12:22:08 -05:00
Timothy Clem
b09e0c27bb Dont need args 2019-02-20 16:48:21 -08:00
Timothy Clem
53a068a71b Show entire arg 2019-02-20 15:59:36 -08:00
Timothy Clem
69b523593f Use parseLanguages 2019-02-20 15:41:51 -08:00
Timothy Clem
e12cea5e40 Whoops, got these backward 2019-02-20 14:51:21 -08:00
joshvera
fcf2c57bd1 more hints 2019-02-20 16:53:44 -05:00
joshvera
c34d4940f1 move the rest of the files as well 2019-02-20 16:39:39 -05:00
joshvera
91c0777782 Rename API.hs to Api.hs 2019-02-20 16:25:38 -05:00
joshvera
12f0f91a7b hints 2019-02-20 15:51:15 -05:00
joshvera
88c172c984 update tests 2019-02-20 15:45:52 -05:00
Patrick Thomson
47a7d945bc Remove otiose changes in Taggable. 2019-02-20 15:41:53 -05:00
joshvera
3510b81bcf Fix MemberAccess and instances 2019-02-20 15:40:42 -05:00
joshvera
166948ba6f Remove MessageField and Named 2019-02-20 15:19:17 -05:00
joshvera
0d1f6cdb70 Keep deriving on AccessControl 2019-02-20 15:18:43 -05:00
joshvera
4a4b153a38 revert 41ed8429d
41ed8429d578db0a540c4022f72f650ce2c15303
2019-02-20 15:17:31 -05:00
joshvera
be4250707d Merge remote-tracking branch 'origin/indexer-prototype' into deploy-to-moda 2019-02-20 14:23:18 -05:00
Patrick Thomson
0098376172 Merge remote-tracking branch 'origin/master' into indexer-prototype 2019-02-19 20:45:16 -05:00
Timothy Clem
9636fbd86f Merge remote-tracking branch 'origin/master' into embrace-new-api 2019-02-19 16:32:16 -08:00
Patrick Thomson
a69d420aee And switch over to RepositoryPush too. 2019-02-19 19:07:39 -05:00
Patrick Thomson
eb41ab89d1 move over User entity 2019-02-19 17:35:56 -05:00
Patrick Thomson
df22acfbb9 start migrating to generated code 2019-02-19 17:14:53 -05:00
Rick Winfrey
a387750c0f Merge branch 'master' into log-file-paths-part-duex 2019-02-19 13:24:10 -08:00
Timothy Clem
d85f36c210 Merge remote-tracking branch 'origin/master' into embrace-new-api 2019-02-19 12:22:19 -08:00
Timothy Clem
f0a5c26e9d Include docstrings in symbols response 2019-02-19 10:55:24 -08:00
Patrick Thomson
51e3160c7c Bad imports/merge fallout 2019-02-19 13:42:15 -05:00
Patrick Thomson
4f1bd8f5f7 Merge remote-tracking branch 'origin/master' into indexer-prototype-no-sg 2019-02-19 12:26:00 -05:00
Rick Winfrey
954bccbf05 Add TaskSesion to the Reader environment; conditionally log file paths for public repos 2019-02-15 16:39:59 -08:00
Rick Winfrey
9813ae2319 Parameterize TaskSession with isPublic 2019-02-15 16:22:51 -08:00
Patrick Thomson
e6219b67ba No need for this vestigial instance 2019-02-15 18:18:41 -05:00
Patrick Thomson
7c12476368 Unused pragma 2019-02-15 18:08:06 -05:00
Timothy Clem
d5a1fa45d0 One more import 2019-02-15 14:52:00 -08:00
Timothy Clem
2378f97b22 Don't need this import 2019-02-15 14:05:36 -08:00
Timothy Clem
0d3a2856c8 Fix up test due to breaking API change 2019-02-15 13:34:05 -08:00
Timothy Clem
f2af85704b Embrace proto schema for CLI diff --json-graph 2019-02-15 13:26:42 -08:00
Timothy Clem
2905569016 Embrace proto schema for CLI --json-graph 2019-02-15 13:23:54 -08:00
Timothy Clem
58e521d0d1 Embrace proto schema for CLI --symbols 2019-02-15 13:16:41 -08:00
Timothy Clem
444de2c260 Embrace proto schema for CLI --toc 2019-02-15 13:11:24 -08:00
Patrick Thomson
c7b41a3594 Merge remote-tracking branch 'origin/master' into indexer-prototype-no-sg 2019-02-15 14:05:23 -05:00
Patrick Thomson
0ea62e85ef further folderol 2019-02-15 13:54:05 -05:00
Patrick Thomson
fc42a90096 Remove ScopeGraph improvements from indexer tree. 2019-02-15 13:48:57 -05:00
Timothy Clem
92c2a5331e Merge branch 'master' into misc-fixes 2019-02-15 10:46:29 -08:00
Timothy Clem
e3029bd89b Allow unknown languages through so we can diff against /dev/null 2019-02-15 09:28:52 -08:00
Timothy Clem
6f76187c57 This help text was incorrect 2019-02-15 09:26:33 -08:00
joshvera
ea3909c5e4 Merge remote-tracking branch 'origin/master' into deploy-to-moda 2019-02-14 11:55:26 -05:00
Timothy Clem
785c74fffb Merge remote-tracking branch 'origin/master' into generated-twirp-service 2019-02-14 08:39:52 -08:00
Timothy Clem
05e381d0c7 Force git to do case sensitive move here too 2019-02-14 08:31:45 -08:00
Timothy Clem
e696f64c8e Force git to do a case sensitive move 2019-02-14 08:25:01 -08:00
Timothy Clem
112782a220 Merge remote-tracking branch 'origin/master' into generated-twirp-service 2019-02-14 08:17:08 -08:00
Patrick Thomson
7fede9ff0d Add disclaimer. 2019-02-14 10:40:24 -05:00
joshvera
b576ac9dd2 Add more type signatures 2019-02-12 19:41:35 -05:00
joshvera
10d25b4591 Merge remote-tracking branch 'origin/util-type-signatures' into deploy-to-moda 2019-02-12 19:20:50 -05:00
Patrick Thomson
d0828341fb Merge branch 'util-type-signatures' of github.com:github/semantic into util-type-signatures 2019-02-12 19:00:24 -05:00
Patrick Thomson
70aed63809 remove the signatures for evaluateProject' and evaluateProject fo rnow 2019-02-12 18:52:05 -05:00
joshvera
0d690dc2e1 Remove signature for now 2019-02-12 18:51:02 -05:00
Patrick Thomson
77d7b93f58 save characters on the typechecking functions 2019-02-12 18:27:21 -05:00
joshvera
984cb49513 don't qualify module 2019-02-12 18:25:02 -05:00
joshvera
dabcd10f69 remove duplicate import 2019-02-12 18:22:09 -05:00
joshvera
98813583a4 Merge branch 'util-type-signatures' of https://github.com/github/semantic into util-type-signatures 2019-02-12 18:20:44 -05:00
joshvera
3417c3108d Add signature to callGraphRubyProject 2019-02-12 18:19:51 -05:00
joshvera
32ba7adfc0 Add evaluatePythonProject signature 2019-02-12 18:19:03 -05:00
Patrick Thomson
2b99769c20 Use FileEvaluator synonym 2019-02-12 18:13:36 -05:00
joshvera
f3443476e9 Merge branch 'util-type-signatures' of https://github.com/github/semantic into util-type-signatures 2019-02-12 18:08:35 -05:00