Commit Graph

106 Commits (a91a3e5db073df6e95aec50c395ea17355d2c1c3)

Author SHA1 Message Date
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