1
1
mirror of https://github.com/github/semantic.git synced 2024-11-29 21:52:59 +03:00
Commit Graph

449 Commits

Author SHA1 Message Date
Rob Rix
d7db7415dc Patches have different costs. 2015-10-06 17:08:22 -04:00
Rob Rix
4fdbcf948f Patches have a cost.
This charges `Replace` patches at a higher cost than `Insert`/`Delete`
patches to avoid spurious replacements.
2015-10-06 17:07:16 -04:00
Rob Rix
bcc3da35f9 Recur at the corner.
This can’t be right.
2015-10-06 17:01:27 -04:00
Rob Rix
c7aad22838 Insert/delete/recur based on the edge being followed. 2015-10-06 17:01:17 -04:00
Rob Rix
c2d4c96d62 Recurrence checks for equality. 2015-10-06 16:59:29 -04:00
Rob Rix
a1a832012e Implement a function copying terms into diffs. 2015-10-06 16:59:11 -04:00
Rob Rix
a628177722 Move SES to its own file. 2015-10-06 16:50:23 -04:00
Rob Rix
8e0cafbac4 Info’s debug description uses its categories’ debug descriptions. 2015-10-06 16:49:14 -04:00
Rob Rix
606d721dea Category is CustomDebugStringConvertible. 2015-10-06 16:48:44 -04:00
Rob Rix
ee8794fd81 Patch is CustomDebugStringConvertible. 2015-10-06 16:45:36 -04:00
Rob Rix
0237d5991a Fix is CustomDebugStringConvertible. 2015-10-06 16:44:00 -04:00
Rob Rix
29d889ef95 Free is CustomDebugStringConvertible. 2015-10-06 16:43:20 -04:00
Rob Rix
64830960e5 Info is CustomDebugStringConvertible. 2015-10-06 16:41:54 -04:00
Rob Rix
db63777dd9 Represent Insert/Delete explicitly in Patch.
Fixes #60.
2015-10-06 16:31:44 -04:00
Rob Rix
0a6a136bff 🔥 Vertex & VertexTests. 2015-10-06 14:24:56 -04:00
Rob Rix
2726a43c83 Lazily, not eagerly.
`Memo.init` selected the eager version, of course, since the lazy
version takes a closure.
2015-10-06 14:19:39 -04:00
Rob Rix
1658219d59 Document constructRowMajor. 2015-10-06 14:17:14 -04:00
Rob Rix
092087fc54 Extract row-major ordering into a private function. 2015-10-06 14:15:21 -04:00
Rob Rix
934390a0d5 Retrieve in row-major order. 2015-10-06 14:11:36 -04:00
Rob Rix
d12c95e296 Insert in row-major order. 2015-10-06 14:11:26 -04:00
Rob Rix
e178745c56 Cache the costs for the rest of the graph at each vertex. 2015-10-06 13:33:38 -04:00
Rob Rix
6c8ce1bcb2 Append, don’t subscript.
Subscripting only replaces, never appends.
2015-10-06 13:29:43 -04:00
Rob Rix
648945fee0 FreeAlgorithm.evaluate() calls out to SES. 2015-10-06 13:09:17 -04:00
Rob Rix
d2b3f16cfc Document SES. 2015-10-06 13:08:17 -04:00
Rob Rix
90b404b3ee Extract the SES function. 2015-10-06 13:05:49 -04:00
Rob Rix
6cef3b9884 Matrix is public. 2015-10-06 13:00:07 -04:00
Rob Rix
bdabcc5c24 Matrix.values is private. 2015-10-06 13:00:01 -04:00
Rob Rix
e4689b9102 Fix hashing is public. 2015-10-06 12:59:13 -04:00
Rob Rix
900d364057 Link to @patrickt’s tutorials on recursion schemes. 2015-10-06 12:53:30 -04:00
Rob Rix
675d355b96 Document iterate. 2015-10-06 12:47:33 -04:00
Rob Rix
67d35078d8 Call a Term a Term. 2015-10-06 12:25:40 -04:00
Rob Rix
cce1ed61aa Document FreeAlgorithm.init. 2015-10-06 12:24:58 -04:00
Rob Rix
511ef4d1a1 Document that out-of-bound indices are safe. 2015-10-06 12:20:58 -04:00
Rob Rix
25f29c328c Document Matrix a little. 2015-10-06 12:19:59 -04:00
Rob Rix
cb33717fb9 🔥 Syntax.reduce. 2015-10-06 12:17:51 -04:00
Rob Rix
69b8028750 🔥 Term.swift. 2015-10-06 12:17:38 -04:00
Rob Rix
b1af1a63a4 🔥 Diff.swift. 2015-10-06 12:17:14 -04:00
Rob Rix
4f95704c97 Remove an obsolete fixme. 2015-10-06 12:16:37 -04:00
Rob Rix
c322386cb4 Recur in dictionary diffing. 2015-10-06 12:16:19 -04:00
Rob Rix
ebca63b01e Recur in SES. 2015-10-06 12:15:48 -04:00
Rob Rix
e14c5a7f9d FreeAlgorithm doesn’t need equals or recur when A: Equatable & B: FreeConvertible. 2015-10-06 12:15:28 -04:00
Rob Rix
36c8fa03c9 FreeAlgorithm doesn’t need recur when B: FreeConvertible. 2015-10-06 12:15:08 -04:00
Rob Rix
1fcba3fca0 recur actually has to return Diff.
`B` will only be identified with `Diff` when `B: FreeConvertible`.
2015-10-06 12:12:47 -04:00
Rob Rix
131ae72f1a Note that we can’t call recur in the Recursive strategy.
Paradox.
2015-10-06 12:09:18 -04:00
Rob Rix
ac0b142a40 Recur through a parameter pairing Terms. 2015-10-06 12:07:56 -04:00
Rob Rix
f30ebc8cdb Diff/Term typealiases are public. 2015-10-06 12:03:58 -04:00
Rob Rix
d020d17f60 Note that we need to recur in SES. 2015-10-06 12:01:39 -04:00
Rob Rix
6a11a88dea Compute the best diff to continue with. 2015-10-06 12:01:14 -04:00
Rob Rix
eb2b242d3a Extract the nominated next diff into a temporary. 2015-10-06 11:58:36 -04:00
Rob Rix
28d5612c44 Use costOfStream to implement cons. 2015-10-06 11:57:37 -04:00