Wilfred Hughes
2284a2366e
Update owo-colors
2022-04-14 22:12:56 +07:00
Wilfred Hughes
5bd8c01385
Update build deps
2022-04-14 22:12:49 +07:00
Wilfred Hughes
1d5b4e0055
Update mimalloc
2022-04-14 22:04:43 +07:00
Wilfred Hughes
e45dc8f2ba
Update to latest tree-sitter
2022-04-14 22:01:10 +07:00
Wilfred Hughes
279e4d72a9
Update to latest clap
2022-04-14 21:57:20 +07:00
Wilfred Hughes
92b3c6e932
Use clap's built-in env var feature
...
Fixes #239
2022-04-12 23:57:20 +07:00
Wilfred Hughes
db9ab874d8
Roll version
2022-04-10 16:00:31 +07:00
Wilfred Hughes
2a28bf6d54
Roll version to exercise release again
2022-04-10 15:39:25 +07:00
Wilfred Hughes
18126be646
Next release will be 0.26.2
2022-04-10 12:41:22 +07:00
Wilfred Hughes
10cd0d45b0
Next release will be 0.26.1
2022-04-10 12:25:54 +07:00
Wilfred Hughes
3c6db050dc
Roll version
2022-04-09 19:01:54 +07:00
Wilfred Hughes
bef93e9626
Roll version
2022-03-31 09:47:58 +07:00
Wilfred Hughes
d36224229e
Downgrade rpds to last Rust 2018 version
...
This will allow difftastic to build on earlier rust versions, and is
also a ~2% instruction count reduction on slow_before.rs.
2022-03-28 22:23:42 +07:00
Wilfred Hughes
bacefe5a58
Roll version
2022-03-26 16:02:51 +07:00
Wilfred Hughes
9435798c9c
Next release will be 0.24
2022-03-19 10:27:04 +07:00
Wilfred Hughes
06ffa0267a
Next release will be a patch release with a single crash fix
2022-03-19 10:24:30 +07:00
Wilfred Hughes
b5187d98d0
Roll version
2022-03-17 22:22:42 +07:00
Wilfred Hughes
6d9dc8322f
Tweak motto
2022-03-13 22:14:03 +07:00
Wilfred Hughes
dad463daf5
Use Myers' diff everywhere
...
The diff crate has a great ergonomic API, but it doesn't implement
Myers' algorithm and performs badly on large inputs.
https://github.com/utkarshkukreti/diff.rs/issues/1
Now that we have a wrapper wu_diff that provides a similar API,
replace the remaining call sites to diff::slice(). These are
relatively cold, so this is a small performance improvement (1%
instruction reduction).
2022-03-12 12:29:34 +07:00
Wilfred Hughes
afb1b369f4
Switch to wu-diff for textual diffing
...
In #153 a user reported difftastic never terminated on a 140,000
file. This was due to the diff crate using a very large amount of time
and memory.
The diff crate does not use Myers' algorithm, which has a
divide-and-conquer approach using snakes:
https://blog.jcoglan.com/2017/03/22/myers-diff-in-linear-space-theory/
wu-diff does implement Myer's algorithm and performs much better on
these large files.
2022-03-10 23:12:25 +07:00
Wilfred Hughes
a3a2bfb317
Roll version
2022-03-10 00:13:26 +07:00
Wilfred Hughes
00c7d73bdf
Version bump tree-sitter
2022-03-05 11:03:28 +07:00
Wilfred Hughes
2640f78f2f
Version bump radix-heap
2022-03-05 10:59:50 +07:00
Wilfred Hughes
2d4ec0a4be
Bump minimum Rust version to 1.56 for rpds support
2022-03-05 10:42:52 +07:00
Wilfred Hughes
4b674d4b8e
Use rpds rather than im for persistent data types
...
rpds is actively maintained and it's even a significant performance
win in my testing (40% time reduction on slow_before.rs).
2022-03-04 21:47:05 +07:00
Wilfred Hughes
cb0f1f3fe5
Roll version
2022-02-28 09:26:26 +07:00
Wilfred Hughes
d8e8e12bf8
Roll version
2022-02-20 16:50:05 +07:00
Wilfred Hughes
82890923cd
Track entering/leaving parents explicitly
...
This produces significantly better diffs, and fixes some cases that
were outright wrong before.
Fixes #30
2022-02-20 12:43:52 +07:00
Wilfred Hughes
3c1c5649f4
Ensure --color is still respected
...
This was broken in the port to owo_colors. owo_colors does not have a
global override: the override function only affects if_supports_color.
2022-02-13 16:54:57 +07:00
Wilfred Hughes
6004855206
Port to owo_colors
...
This library is faster and actively maintained.
Closes #107
2022-02-13 15:13:40 +07:00
Wilfred Hughes
d9ec560f0d
Roll version
2022-02-07 23:14:55 +07:00
Wilfred Hughes
e2832dabb3
Set a maximum size on syntactic diffing, and use line diffing otherwise
...
Fixes #82
2022-02-06 16:38:55 +07:00
Wilfred Hughes
0eba3ecabe
Update to the latest tree-sitter version
...
This is also a minor performance improvement (e.g. saves 1.3% time on
typing_old/new.ml or 3% on elisp_before/after.el).
2022-01-31 22:37:05 +07:00
Wilfred Hughes
4d3fac20d9
Next release will be 0.19
2022-01-30 22:58:22 +07:00
Wilfred Hughes
8f6b269492
Tag a 0.18.1 release
2022-01-30 22:56:19 +07:00
Wilfred Hughes
409f7aae75
Roll version
2022-01-30 18:03:45 +07:00
Wilfred Hughes
ebd923acbe
Use project and author information from Cargo.toml
...
Prevents duplication.
2022-01-29 15:38:44 +07:00
Wilfred Hughes
5a2e0379aa
Update to clap 3
2022-01-29 11:01:36 +07:00
Wilfred Hughes
69dbad35ad
Roll version
2022-01-25 22:32:18 +07:00
Wilfred Hughes
a2dc0b5109
Roll version
2022-01-22 19:03:58 +07:00
Wilfred Hughes
b270156e48
Update tree-sitter version
...
This is a small perf win (30ms runtime on my machine) due to faster
tree_sitter::Query creation.
2022-01-15 18:13:53 +07:00
Wilfred Hughes
a11e3081b2
Roll version
2022-01-06 01:00:48 +07:00
Wilfred Hughes
667a42d57b
Downgrade to tree-sitter 0.20.0
...
0.20.1 has a performance regression, which seems to particularly
affect Elixir parsing:
https://github.com/tree-sitter/tree-sitter/issues/1510
2021-12-29 14:59:12 +07:00
Wilfred Hughes
0cf68ef847
Roll version
2021-12-27 18:28:15 +07:00
Wilfred Hughes
cb900c3463
Revert to term_size
...
Git invokes difftastic and then pipes stdout to less, but stderr still
goes to the terminal. term_size queries both stdout and stderr, so it
can still find the terminal width in this situation.
Previously, we'd always use a width of 80 when invoked by git.
terminal_size discussion:
https://github.com/eminence/terminal-size/issues/23
term_size does claim to support Windows, and #71 was not fixed by
changing libraries, so this seems reasonable.
2021-12-19 12:48:52 +07:00
Wilfred Hughes
6f1baae23e
Prefer terminal_width crate so we support more platforms
...
term_width is unmaintained and does not support Windows.
Fixes #71
2021-12-07 23:24:13 +07:00
Wilfred Hughes
4948f59855
Roll version
2021-12-04 23:56:42 +07:00
Wilfred Hughes
fa17058f80
Bump libc version
2021-11-24 23:55:16 +07:00
Wilfred Hughes
7d1bf1e5f4
Update to latest tree-sitter
2021-11-24 23:29:41 +07:00
Wilfred Hughes
19feab9045
Change entry point to be main.rs
...
Now that we've removed criterion, a binary-only crate is better, as we
get more unused function warnings.
2021-11-21 11:45:48 +07:00