1
1
mirror of https://github.com/github/semantic.git synced 2024-12-26 16:33:03 +03:00
Commit Graph

28605 Commits

Author SHA1 Message Date
Rob Rix
694bafed7e
🔥 konst. 2019-06-27 12:13:53 -04:00
Rob Rix
1f3cf601ad
🔥 unP. 2019-06-27 12:12:29 -04:00
Rob Rix
e776cd4051
Avoid a lambda. 2019-06-27 12:10:59 -04:00
Rob Rix
bc8937e60a
Simplify prettify' using kfold. 2019-06-27 12:09:39 -04:00
Rob Rix
1247dffb8b
Split Core into a higher-order functor and its fixpoint. 2019-06-27 12:02:56 -04:00
Rob Rix
2c8e8dcf3c
Use Const instead of K. 2019-06-27 09:40:08 -04:00
Rob Rix
03749a7ef4
Define a constant fold over core. 2019-06-27 09:37:36 -04:00
Rob Rix
3e6b41a2c1
Dedent. 2019-06-26 14:56:56 -04:00
Rob Rix
7e8c06a0d6
🔥 a type signature. 2019-06-26 14:56:00 -04:00
Rob Rix
ae2ae625e0
Zero-index. 2019-06-26 14:55:11 -04:00
Rob Rix
9c6d400224
🔥 P. 2019-06-26 14:53:41 -04:00
Rob Rix
44c0e8a38f
Don’t bother passing a Gensym around. 2019-06-26 14:49:28 -04:00
Rob Rix
babeeea738
Print variables more deliberately. 2019-06-26 14:38:48 -04:00
Rob Rix
da8de1b907
Define unP pointfully. 2019-06-26 14:13:33 -04:00
Rob Rix
b9f286bad4
Move unP next to p. 2019-06-26 14:12:11 -04:00
Rob Rix
da29ba1bea
Give a root name to prettify'. 2019-06-26 14:00:20 -04:00
Rob Rix
1eb9199c58
🔥 a redundant sig. 2019-06-26 10:49:57 -04:00
Rob Rix
8610f62707
Don’t print a name with lambdas, we’re using de Bruijn for this. 2019-06-26 10:43:55 -04:00
Rob Rix
d8a76ee1e2
Give an alternative definition of prettify using gfold. 2019-06-26 10:38:07 -04:00
Rob Rix
cea99d2aae
Specialize the type of the k parameter. 2019-06-26 10:07:07 -04:00
Rob Rix
6e5d4baa5f
Decompose sequences deeply. 2019-06-26 08:41:25 -04:00
Rob Rix
4b11270791
Decompose sequences. 2019-06-26 08:41:15 -04:00
Rob Rix
4c439f9ae7
Spacing. 2019-06-25 23:03:11 -04:00
Rob Rix
6dec2691da
Improve sharing. 2019-06-25 21:49:12 -04:00
Rob Rix
56336ae59a
Rename the dist parameter to k. 2019-06-25 21:42:35 -04:00
Rob Rix
8e000365a1
🔥 the dependency on recursion-schemes. 2019-06-25 21:31:25 -04:00
Rob Rix
df2355d277
Fix naming across the board. 2019-06-25 21:30:54 -04:00
Rob Rix
2ad9b569dd
Unpack lambdas. 2019-06-25 21:17:46 -04:00
Rob Rix
d9dd852738
Rename gfoldT to gfold. 2019-06-25 21:16:43 -04:00
Rob Rix
e73f8fe345
Pretty-print using the new shapes. 2019-06-25 18:33:06 -04:00
Rob Rix
9790468ada
Define instantiation of Core terms. 2019-06-25 18:31:28 -04:00
Rob Rix
bde447c040
Export lam. 2019-06-25 18:30:59 -04:00
Rob Rix
a2c4ddad34
Correct a comment. 2019-06-25 18:30:03 -04:00
Rob Rix
978f66aca6
🔥 the base functor. 2019-06-25 18:21:57 -04:00
Rob Rix
1240265cde
Make Core scope-safe. 2019-06-25 18:01:56 -04:00
Rob Rix
ba8de743a0
Beautify. 2019-06-25 17:47:31 -04:00
Rob Rix
9db69d80fa
Add some helpers for Incr. 2019-06-25 17:39:15 -04:00
Rob Rix
1e3b473fc7
Define an Incr datatype for scoping. 2019-06-25 17:37:59 -04:00
Josh Vera
b4792db252
Merge pull request #179 from github/add-php
Fix PHP assignment parsing
2019-06-25 15:28:14 -04:00
Josh Vera
3dea3d7e34
Merge branch 'master' into add-php 2019-06-25 15:11:19 -04:00
Rob Rix
e0ff53e3f3
Merge pull request #180 from github/fix-bad-proto-type
Fix DiffTreeVertexDiffTerm definition to be a valid protobuf object.
2019-06-25 11:56:55 -07:00
Rob Rix
72ad90fcb6
Merge branch 'master' into fix-bad-proto-type 2019-06-25 11:46:17 -07:00
Rob Rix
4629d0c140
Merge pull request #119 from github/semantic-python
Python support using Core
2019-06-25 11:35:34 -07:00
Rob Rix
324e605c3c
Run the doctests in CI. 2019-06-25 14:28:40 -04:00
Rob Rix
ffdefb05e9
Fix the doctest for concrete. 2019-06-25 14:27:50 -04:00
Rob Rix
58d819f81a
Turn on overloaded strings in the doctests. 2019-06-25 14:26:46 -04:00
Rob Rix
ce1d209b5e
Correct the doctest runner. 2019-06-25 14:24:49 -04:00
Rob Rix
2009e4ab93
Fix the IsString instance. 2019-06-25 14:21:42 -04:00
Rob Rix
2f077365e2
Generate Text. 2019-06-25 14:21:36 -04:00
Patrick Thomson
90fabfe6f5 Fix DiffTreeVertexDiffTerm definition to be a valid protobuf object.
We define the DiffTreeVertex protobuf message like so:

```protobuf
message DiffTreeVertex {
  int32 diff_vertex_id = 1;
  oneof diff_term {
    DeletedTerm deleted = 2;
    InsertedTerm inserted = 3;
    ReplacedTerm replaced = 4;
    MergedTerm merged = 5;
  }
}
```

This is turned into two Haskell types, a toplevel `DiffTreeVertex` type
and a `DiffTreeVertexDiffTerm` type that represents the anonymous
`oneof` type. Said types looked like so:

```haskell
data DiffTreeVertexDiffTerm
  = Deleted (Maybe DeletedTerm)
  | Inserted (Maybe InsertedTerm)
  | Replaced (Maybe ReplacedTerm)
  | Merged (Maybe MergedTerm)
  deriving stock (Eq, Ord, Show, Generic)
  deriving anyclass (Proto3.Message, Proto3.Named, NFData)
```

This is the wrong representation, as it neglects to account for the
fact that options could be added to the `diff_term` stanza. A sum type
does not provide enough constructors to handle the case of when none
of `deleted`, `inserted`, `replaced` etc. is `Just` anything. A more
correct definition follows:

```haskell
data DiffTreeVertexDiffTerm = DiffTreeVertexDiffTerm
  { deleted :: Maybe DeletedTerm
  , inserted :: Maybe InsertedTerm
  , replaced :: Maybe ReplacedTerm
  , merged :: Maybe MergedTerm
  }
```

This patch applies the above change, using `-XPatternSynonyms` to
provide backwards-compatible API shims. Though this changes JSON
output format (through the `ToJSON` instance), it should have no
bearing on backwards compatibility in protobuf objects, since there is
no way to consume diff trees as protobufs as of this writing.

Fixes #168.
2019-06-25 13:31:36 -04:00