1
1
mirror of https://github.com/github/semantic.git synced 2025-01-05 14:11:33 +03:00
Commit Graph

375 Commits

Author SHA1 Message Date
joshvera
0e853a5f38 Merge remote-tracking branch 'origin/master' into typescript-assignment 2017-09-13 18:40:29 -04:00
Rick Winfrey
dbaa0bde92 Merge branch 'master' into assignment-macro 2017-09-12 17:39:36 -07:00
Rick Winfrey
9d2469a2bf Add pretty-show / colourised pp function 2017-09-12 15:40:44 -07:00
Rick Winfrey
a6cbdab2e9 🔥 prettyprint 2017-09-12 15:40:24 -07:00
Rob Rix
2c83e7e283 Merge branch 'master' into specialized-terms-and-diffs 2017-09-11 16:01:20 -04:00
joshvera
e56374f8ba Cherry-pick d51d7a3aee4c3f8dbf3b54d0d83154506542c408 2017-09-11 15:51:24 -04:00
joshvera
692bc8ec96 Add diffWithParser for dedupe test in TOCSpec 2017-09-11 15:45:56 -04:00
Rob Rix
3cc8440fae Rename the TermF constructor to In. 2017-09-11 15:36:23 -04:00
Rob Rix
b7e211c9c2 Redefine Term as a wrapper for TermF. 2017-09-09 11:47:10 +01:00
Rob Rix
9e40e9a09a Give our own definition of Diff. 2017-09-09 11:23:57 +01:00
Rob Rix
aa9d4c4f19 Give our own definition of CofreeF. 2017-09-08 16:40:23 +01:00
Rob Rix
1a6af2179b Give our own definition of Cofree. 2017-09-08 16:24:11 +01:00
Rob Rix
3be8948e2e Correct the file util’s selection of the blob language. 2017-09-01 14:08:02 -04:00
Rob Rix
bbc20dc6ab Don’t log the blob language when we don’t have one. 2017-09-01 14:07:42 -04:00
Rob Rix
91b9cbcf76 Drop an import of Info. 2017-08-30 14:38:57 -04:00
Rob Rix
d8ee640ee0 Simplify the import of Info. 2017-08-30 14:38:05 -04:00
Rob Rix
a6790a24b4 🔥 the line-by-line parser. 2017-08-30 14:30:23 -04:00
Rob Rix
c18b7d4fff Merge branch 'task-errors' into 🔥-monolithic-syntax 2017-08-30 12:46:09 -04:00
Rob Rix
b0710ccfb8 Define the MonadError instance in terms of SomeException. 2017-08-29 18:22:40 -04:00
Rob Rix
568fce81d3 Use MonadError in runParser. 2017-08-29 18:20:03 -04:00
Rob Rix
a542607dd7 Add a MonadError instance to Task. 2017-08-29 17:20:21 -04:00
Rob Rix
d420f1460e Add Throw/Catch primitives to Task. 2017-08-29 17:20:15 -04:00
Rob Rix
500afcad42 📝 LiftIO. 2017-08-29 17:04:05 -04:00
Rob Rix
7ee1f0db6f 🔥 TreeSitterParser. 2017-08-29 15:57:09 -04:00
Rob Rix
84aaba64d9 Add a convenience to read a file and guess its language. 2017-08-25 12:25:18 -04:00
Rob Rix
c7b7d1516e Define a pretty-printing convenience. 2017-08-25 12:23:22 -04:00
Rob Rix
b318e31b2b Stub in a Semantic.Util module. 2017-08-25 12:22:22 -04:00
Rob Rix
40a5c5594b Rename assignBy to assign. 2017-08-16 13:21:57 -04:00
Rob Rix
496ee5a3c9 Assignment takes Cofree structures. 2017-08-16 12:07:53 -04:00
Rob Rix
3f981fbdf7 🔥 the redundant withSGRCode definition. 2017-08-08 11:37:50 -04:00
Rob Rix
c97808a0bd Disable colour if stderr is not a terminal. 2017-08-08 11:12:14 -04:00
Rob Rix
a1f1fc5048 🔥 redundant imports. 2017-08-08 09:16:36 -04:00
Rob Rix
fc299fe0e8 Fail fast on assignment errors. 2017-08-08 09:16:16 -04:00
Rob Rix
9e3e9736ed 🔥 a redundant do. 2017-08-08 09:16:03 -04:00
Rob Rix
1e7ca7de13 Constrain the types rather than the Unions. 2017-08-08 09:11:27 -04:00
Rob Rix
367c16a0cd Use the error syntax constructor in Task. 2017-08-06 18:56:03 -04:00
Rob Rix
fbb217f8e7 Add call stacks to Syntax.Error. 2017-08-06 18:56:02 -04:00
Rob Rix
14001ed70a Avoid re-showing errors in Task. 2017-08-06 18:56:02 -04:00
Rob Rix
8e58a76a01 formatError takes Error String. 2017-08-06 18:56:01 -04:00
Rob Rix
60bafabf17 Move error formatting into Data.Error. 2017-08-06 18:56:01 -04:00
Rob Rix
55683ea810 Errors carry a full Span. 2017-08-06 18:56:01 -04:00
Rob Rix
261fb37c44 Syntax.Error holds the expected/actual fields. 2017-08-06 18:56:01 -04:00
Rob Rix
880d26078e Rename formatErrorWithOptions to formatError. 2017-08-06 18:56:01 -04:00
Rob Rix
8a7911313a Pass the position, expected, & actual fields to formatErrorWithOptions separately. 2017-08-06 18:56:01 -04:00
Rob Rix
0a8411e534 Disambiguate assignment results. 2017-08-04 09:11:22 -04:00
Rob Rix
cbff2fee2d Take the first zero-error term, if any, before forcing the rest. 2017-08-03 21:04:38 -04:00
Rob Rix
cb58739e48 Select terms by the minimum error counter. 2017-08-03 20:26:51 -04:00
Rob Rix
143e6ec26d Select the result with the fewest errors. 2017-08-03 19:36:51 -04:00
Rob Rix
c0bdb15d61 Assignment ambiguously. 2017-08-03 19:17:17 -04:00
Rob Rix
6c9d23d827 Assignment produces a NonEmpty list of results. 2017-08-03 15:54:43 -04:00
Rob Rix
e8074d2955 Merge branch 'master' into delimited-control 2017-08-03 12:16:45 -04:00
Rob Rix
2529288f87 Merge branch 'master' into requiem-for-a-protolude 2017-08-03 11:51:09 -04:00
Rob Rix
918aeb5301 Recur via the worker function. 2017-08-02 17:37:34 -04:00
Rob Rix
79467e3be7 Wrap the body of runParser up in a worker function. 2017-08-02 17:36:48 -04:00
Rob Rix
8454e187d4 Swap the order of the parser & blob params. 2017-08-02 17:36:04 -04:00
Rob Rix
35a431f794 blobFields closes over the blob. 2017-08-02 17:35:08 -04:00
Rob Rix
02ddc4eb65 Show missing languages as the empty string. 2017-08-02 17:34:34 -04:00
Rob Rix
0c1d08d89d Produce a term when assignment fails at the root. 2017-08-02 17:32:12 -04:00
Rob Rix
b619389ec6 Don’t showBlob. 2017-08-02 17:28:53 -04:00
Rob Rix
38387be114 Don’t include the language key when there is no language. 2017-08-02 17:28:09 -04:00
Rob Rix
2d5a1746ba Merge branch 'master' into delimited-control 2017-08-02 17:23:26 -04:00
Rob Rix
29597fa165 Log the blob fields. 2017-08-02 17:21:45 -04:00
Rob Rix
066465e4d1 Syntax.Error always has an Assignment.Error. 2017-08-02 17:20:55 -04:00
Rob Rix
b6e064e187 Note that we should log assignment errors. 2017-08-02 15:50:22 -04:00
Rob Rix
69b66fcf21 Separate warnings for parsing & assignment errors in the tree. 2017-08-02 15:49:56 -04:00
Timothy Clem
10ad4e29f6 Autodetect print source 2017-08-01 15:05:25 -07:00
Timothy Clem
e087469624 Better logging keys 2017-07-31 15:22:11 -07:00
Timothy Clem
268563b929 queue log messages directly 2017-07-31 12:44:08 -07:00
Timothy Clem
613fd2c6fb Already in IO 2017-07-31 12:43:44 -07:00
Timothy Clem
ee18cfff39 Case id as ID 2017-07-31 09:05:55 -07:00
Timothy Clem
b5c1967440 Allow optional logging of request_id 2017-07-31 09:01:51 -07:00
Timothy Clem
87b2662b02 Log process ID 2017-07-31 08:56:17 -07:00
Timothy Clem
79b5509b00 Let the time task do it's own logging 2017-07-31 08:37:35 -07:00
Timothy Clem
6e682c880e Slightly cleaner nested eithers 2017-07-31 08:23:53 -07:00
Timothy Clem
6c44985e43 Switch disableColor to enableColor 2017-07-31 08:19:34 -07:00
Timothy Clem
e05b6e156e Cleanup use of showPairs 2017-07-31 08:14:32 -07:00
Timothy Clem
4ecbf51763 Extract Semantic.Log 2017-07-28 17:07:48 -07:00
Timothy Clem
d497df47c8 Rework error printing 2017-07-28 16:41:16 -07:00
Timothy Clem
ed76134965 Formatting 2017-07-28 16:20:55 -07:00
Timothy Clem
ec66f2405c Not using the nullFormatter 2017-07-28 16:20:47 -07:00
Timothy Clem
565c559b9a Pass around ZonedTime 2017-07-28 16:20:24 -07:00
Timothy Clem
409188753d New timing Task 2017-07-28 15:55:20 -07:00
Rob Rix
7da8799e08 🔥 Prologue & protolude. 2017-07-28 14:37:02 -04:00
Timothy Clem
8bc4db3e4b WIP - rework logging 2017-07-28 11:18:13 -07:00
Timothy Clem
709c4c98fc Use unwords and fmap instead of foldr and <> 2017-07-28 08:12:28 -07:00
Timothy Clem
2de353451d Just use a let here 2017-07-28 08:08:30 -07:00
Timothy Clem
162f25de9b Clean up lambdas for displayException 2017-07-28 08:05:08 -07:00
Timothy Clem
3ab53d77a8 Bit more cleanup 2017-07-27 13:38:30 -07:00
Timothy Clem
eb7f5277e0 Little bit of cleanup 2017-07-27 12:56:04 -07:00
Timothy Clem
11876f2dcd Write key/value logs and log timing 2017-07-27 11:21:59 -07:00
Timothy Clem
a00701f96f Basic ability to set exitStatus 2017-07-26 20:50:59 -07:00
Rob Rix
7902bf683d Pass blobs to parseToAST. 2017-07-23 15:06:21 -04:00
Rob Rix
999d2d1efb Remove the Language from TreeSitterParsers. 2017-07-23 14:56:44 -04:00
Rob Rix
5b8015311f Show the language of sources with parse errors. 2017-07-23 14:44:12 -04:00
Rob Rix
86823f75ad Log a warning on parse error. 2017-07-23 14:42:51 -04:00
Rob Rix
8b3b6f36e2 Define a catamorphism determining whether a term contains parse errors. 2017-07-23 14:40:30 -04:00
Rob Rix
2fb501ab30 Bind the current time instead of using do notation. 2017-07-23 14:27:24 -04:00
Rob Rix
77e7ed0ba5 Spacing. 2017-07-23 14:24:05 -04:00
Rob Rix
b7e776ee90 Add the hours, minutes, & seconds to timestamps. 2017-07-23 14:21:20 -04:00
Rob Rix
bbb0c307e5 Add timestamps to logged messages. 2017-07-23 14:16:15 -04:00
Rob Rix
adc71548e5 Pass Messages to formatMessage. 2017-07-23 14:15:53 -04:00
Rob Rix
69b9b1d6be Pass Messages over the queue with the current time. 2017-07-23 14:12:13 -04:00
Rob Rix
29fd11f96f Define a Message datatype. 2017-07-23 14:11:48 -04:00
Rob Rix
6358896dc5 Pass the option to print source when formatting assignment errors. 2017-07-23 13:45:12 -04:00
Rob Rix
a2f1a0cfe0 Add an option & CLI flag for including source. 2017-07-23 13:44:18 -04:00
Rob Rix
7a36a428da Merge branch 'run-assignment-worker-wrapper' into serialize-concurrent-logging 2017-07-22 18:10:56 -04:00
Rob Rix
9937a419d1 Add an option controlling the log level. 2017-07-21 16:04:35 -04:00
Rob Rix
94e8eb7f20 Separate log level & message. 2017-07-21 16:02:35 -04:00
Rob Rix
01ac5356cb Configure the passed-in options. 2017-07-21 15:59:28 -04:00
Rob Rix
293104b94a Colourize logged messages. 2017-07-21 15:53:53 -04:00
Rob Rix
22d81403f0 Pass the colourization flag to formatMessage. 2017-07-21 15:48:46 -04:00
Rob Rix
7d6aa01c93 Error & Message formatting produces a String. 2017-07-21 15:48:30 -04:00
Rob Rix
580b817b9f Rename sink to logSink. 2017-07-21 15:43:42 -04:00
Rob Rix
d1babd0fb7 Pass the options to the sink. 2017-07-21 15:43:28 -04:00
Rob Rix
e1c7fb438b Rename runTaskOptions to runTaskWithOptions. 2017-07-21 15:40:02 -04:00
Rob Rix
75721c09f0 Define options controlling Task running & output. 2017-07-21 14:45:38 -04:00
Rob Rix
d87c8a98b4 Move runParser into Task. 2017-07-21 14:19:19 -04:00
Rob Rix
dcd2e77704 Redistribute the parens. 2017-07-21 13:50:13 -04:00
Rob Rix
19bf5498f8 Move pure earlier in the chain. 2017-07-21 13:42:09 -04:00
Rob Rix
4c494a8c57 Revert "Run Tasks using foldFreer."
This reverts commit 8bbd7a0caa4c56a5d32c88af0a4b32837294cad0.
2017-07-21 13:41:16 -04:00
Rob Rix
d575ca6dce Revert "🔥 redundant parens."
This reverts commit 62cf5bd8ab878c0f6fbf62f5358ea90c7c9034dc.
2017-07-21 13:41:02 -04:00
Rob Rix
4be8ad55d1 🔥 redundant parens. 2017-07-21 13:35:36 -04:00
Rob Rix
4f8a42650d Run Tasks using foldFreer. 2017-07-21 13:34:51 -04:00
Rob Rix
3c0ed9029f Rename writeThread to sink. 2017-07-21 13:34:01 -04:00
Rob Rix
e6bb7d6863 Lift actions into IO. 2017-07-21 13:28:04 -04:00
Rob Rix
5e4f221585 Define a MonadIO instance for Task. 2017-07-21 13:09:51 -04:00
Rob Rix
d886ba21f0 Run tasks by refinement, writing log messages for each one. 2017-07-21 13:06:14 -04:00
Rob Rix
b51da4519e Log from a serializing background thread. 2017-07-21 12:13:50 -04:00
Rob Rix
8b4db1d3e8 Define a record selector for message content. 2017-07-21 12:10:34 -04:00
Rob Rix
86169b6eb6 Define informational messages. 2017-07-21 12:10:06 -04:00
Rob Rix
007fdd0e5c Define runTask using foldFreer. 2017-07-21 12:09:06 -04:00
Rob Rix
6a04e3843b Sort the import of Files down. 2017-07-21 11:42:06 -04:00
Rob Rix
e2a21addf2 Log messages to stderr. 2017-07-21 11:38:17 -04:00
Rob Rix
6c272105a4 Format messages as ByteStrings. 2017-07-21 11:38:02 -04:00
Rob Rix
03862a33f5 Define a Message type for logging. 2017-07-21 11:37:54 -04:00
Rob Rix
734e42802d Correct the docs for parse. 2017-07-20 10:23:35 -04:00
Rob Rix
6f1cf00255 Move the implementations of readBlobs/readBlobPairs into Task. 2017-07-19 20:20:20 -04:00
Rob Rix
e6739b5430 📝 writeToOutput. 2017-07-19 20:18:44 -04:00
Rob Rix
839c64b4a3 Rename Command.Files to Files. 2017-07-19 19:57:36 -04:00
Rob Rix
beb6c4788c WriteToOutput takes a handle or a path. 2017-07-19 17:29:38 -04:00
Rob Rix
2cce3dd671 Define a Task to write output. 2017-07-19 15:44:22 -04:00
Rob Rix
cbb6c885a4 Define Tasks to read blobs. 2017-07-19 15:41:40 -04:00
Rob Rix
97c8b90c83 runParser takes a Blob. 2017-07-19 14:47:07 -04:00
Rob Rix
6dd56e5bd9 Parse tasks take blobs. 2017-07-19 14:42:02 -04:00
Rob Rix
fc09d74b73 Rename the Source module to Data.Source. 2017-06-24 09:59:41 -04:00
Rob Rix
e5558c32a4 Evaluate the results of tasks to whnf in parallel. 2017-05-30 14:57:14 -04:00
Rob Rix
086a58932c 📝 distribute, distributeFor, & distributeFoldMap. 2017-05-30 12:57:23 -04:00
Rob Rix
ab91184f94 📝 parse, decorate, diff, & render. 2017-05-30 11:59:25 -04:00
Rob Rix
b9ee1564f4 📝 runTask. 2017-05-30 11:56:45 -04:00
Rob Rix
40262691bf 📝 Task, Differ, and Renderer. 2017-05-30 11:56:13 -04:00
Rob Rix
ed555c8be4 Decorate Tasks take R-algebras. 2017-05-29 17:25:37 -04:00
Rob Rix
228f79ac57 Move DiffRenderer and TermRenderer into Renderer. 2017-05-29 17:12:05 -04:00
Rob Rix
77ac9b02c3 🔥 NamedDecorator. 2017-05-29 16:43:52 -04:00
Rob Rix
940f1ec147 Handle ToC output in Task. 2017-05-29 16:23:02 -04:00
Rob Rix
b15c561800 Render diffs to patch format in Task. 2017-05-29 15:57:41 -04:00
Rob Rix
e7890fe71a Define a distributed foldMap over Tasks. 2017-05-29 15:44:22 -04:00
Rob Rix
5877e39c12 Define distributeFor in terms of distribute. 2017-05-29 15:43:10 -04:00
Rob Rix
9335b996ac Derive Eq & Show instances for DiffRenderer and TermRenderer. 2017-05-29 15:17:34 -04:00
Rob Rix
82d6288a52 Derive Eq & Show instances for NamedRenderer. 2017-05-29 15:16:22 -04:00
Rob Rix
9a9fe5f475 Task holds its renderer as a function. 2017-05-29 15:01:20 -04:00
Rob Rix
297348e95f Split term/diff renderers back up. 2017-05-29 14:56:06 -04:00
Rob Rix
a727203a3f Move parseDiffAndRenderBlobs into Semantic. 2017-05-29 14:52:04 -04:00
Rob Rix
b3fb50383e Move parseAndRenderBlob into Semantic. 2017-05-29 14:50:13 -04:00
Rob Rix
ec74497030 Export NamedDecorator and NamedRenderer. 2017-05-29 14:44:00 -04:00
Rob Rix
ac5cc1694a Define a named s-expression renderer. 2017-05-29 14:41:38 -04:00
Rob Rix
2e1146f40a Parse, diff, and render blobs using Task. 2017-05-29 13:59:11 -04:00
Rob Rix
cba2972731 Define a for-like convenience for distributing tasks. 2017-05-29 13:54:43 -04:00
Rob Rix
087f84a22a Define a Task for diffing terms. 2017-05-29 13:32:23 -04:00
Rob Rix
2b9ab0be58 Distributing tasks concurrently does not imply folding their results. 2017-05-29 13:25:58 -04:00
Rob Rix
341d7f0957 Add an explicit export list to Semantic.Task. 2017-05-29 13:19:39 -04:00
Rob Rix
8cae75e743 Switch on the decorator for à la carte assignment. 2017-05-29 13:18:12 -04:00
Rob Rix
f0354b8a6c Define the identity decorator for SyntaxTerms. 2017-05-29 13:17:24 -04:00
Rob Rix
e13f72fc85 Decorate SyntaxTerms with identifiers where requested. 2017-05-29 13:14:51 -04:00
Rob Rix
859ef1917e Move Task & friends into their own module. 2017-05-29 13:13:36 -04:00
Rob Rix
08fea4f15c Stub in a module for Task. 2017-05-29 13:11:17 -04:00