Wilfred Hughes
6eeb86addc
Use a newer version of the ignore crate
2023-11-24 01:01:21 +07:00
Nimrod Kor
e9a8fda9cb
Skip dirs specified in gitignore ( #574 )
...
Take ignored dirs into consideration when calculating diff
Co-authored-by: Nimrod <nimrod@getbaz.com>
2023-11-24 00:48:55 +07:00
Wilfred Hughes
1ec868e1df
Update to latest line-numbers
2023-11-19 13:11:07 +07:00
Wilfred Hughes
994dc95d96
Fix regex and memchr dependencies for rust 1.60
2023-10-31 21:16:00 +07:00
Wilfred Hughes
f4af58524e
Pin is-terminal for MSRV
2023-10-31 21:07:04 +07:00
Wilfred Hughes
74ee99b5ea
Bump regex version
2023-10-31 16:45:54 +07:00
Wilfred Hughes
debadb64f2
Update to latest pretty_env_logger
2023-10-31 16:32:42 +07:00
Wilfred Hughes
ca7cce01a4
Update to latest crossterm
2023-10-31 16:06:30 +07:00
Wilfred Hughes
b0dac91e50
Roll version
2023-10-08 20:07:24 +07:00
Wilfred Hughes
6ac7fd01a4
Revert "Enable the parallel feature on the cc crate"
...
This reverts commit 71bf6b6a97 .
Using the parallel feature on cc requires Rust 1.61 or higher, see
https://github.com/rust-lang/cc-rs/pull/849
2023-10-08 15:33:33 +07:00
Wilfred Hughes
71bf6b6a97
Enable the parallel feature on the cc crate
...
This doesn't seem to help much (libraries are already built in
parallel), but it doesn't hurt.
2023-10-05 00:49:15 +07:00
Wilfred Hughes
41c9165c79
Use my line_numbers crate for newline position calculations
2023-08-26 16:25:32 +07:00
Wilfred Hughes
79b4e44113
Update changelog for today's releases and roll version
2023-08-25 09:26:28 +07:00
Wilfred Hughes
5ef117e28d
Next release will be 0.51.1
2023-08-25 08:44:09 +07:00
Wilfred Hughes
21cdbe177c
Update to latest itertools
2023-08-24 08:52:42 +07:00
Wilfred Hughes
35bc02c599
Bump cc version
2023-08-22 23:53:16 +07:00
Wilfred Hughes
dac3cd9ed5
Update typed-arena library version
...
This is perf neutral: a tiny win for typing_before.ml, and an een
smaller regressio for slow_before.rs.
2023-08-17 23:55:24 +07:00
Alex Krantz
11a96e5aec
Add JSON cli flag
2023-08-17 08:49:59 +07:00
Wilfred Hughes
11899a237c
Roll version
2023-08-15 23:40:23 +07:00
Wilfred Hughes
3c702d0490
Use humansize for file size formatting
2023-08-12 22:34:11 +07:00
Wilfred Hughes
1e97003da9
Update to latest rayon
...
This is also a tiny perf win (2.467B instructions to 2.429B
instructions for slow_before.rs).
2023-08-08 08:22:30 +07:00
Wilfred Hughes
b2c8cb640f
Update crossbeam-channel dependency
...
0.5.x prior to 0.5.8 have been yanked:
https://github.com/crossbeam-rs/crossbeam/blob/master/crossbeam-channel/CHANGELOG.md
2023-07-26 20:38:34 +07:00
Wilfred Hughes
448972f8a3
Roll version
2023-07-26 20:02:23 +07:00
Wilfred Hughes
070dc3b4a5
Update crossterm version
...
This provides some minor bugfixes for Windows width detection:
https://github.com/crossterm-rs/crossterm/blob/master/CHANGELOG.md
This cherry-picks a525196635 , after the
MSRV bump.
2023-07-26 14:56:52 +07:00
Wilfred Hughes
721ad0863d
Revert "Update crossterm version"
...
This reverts commit a525196635 .
Looks like it doesn't compile on Rust 1.57.
2023-07-26 11:17:50 +07:00
Wilfred Hughes
ff5165ef72
Update strum dependency
2023-07-24 22:30:46 +07:00
Wilfred Hughes
a525196635
Update crossterm version
...
This provides some minor bugfixes for Windows width detection:
https://github.com/crossterm-rs/crossterm/blob/master/CHANGELOG.md
2023-07-23 10:32:49 +07:00
Wilfred Hughes
2d2a1484fd
Roll version
2023-07-12 17:10:34 +07:00
Wilfred Hughes
b1f7e21e83
Move to hashbrown 0.12 to meet our MSRV
...
Performance is unchanged too.
2023-07-09 22:03:24 +07:00
Wilfred Hughes
5f2d970ad2
Choose the last hashbrown version that supports our MSRV
2023-07-09 19:54:09 +07:00
Wilfred Hughes
f2456a12b2
Use hashbrown for the alloc_if_new data
...
This was intended to allow usage of .entry_ref(), but it's already a
performance win without using that API! It's around a 9% reduction in
instructions in slow_before.rs, and 2% reduction in typing_before.ml.
2023-07-09 11:11:03 +07:00
Wilfred Hughes
0c65731026
Revert "Update to tree-sitter 0.20.10"
...
0.20.10 requires rustc 1.65, which exceeds difftastistic's MSRV.
2023-05-21 23:33:02 +07:00
Wilfred Hughes
9ae6662e87
Update to tree-sitter 0.20.10
...
All the tests still pass, and no performance difference on the
benchmark files.
2023-05-20 20:17:44 +07:00
Wilfred Hughes
f1acd3aab4
Roll version
2023-05-16 21:13:51 +07:00
Wilfred Hughes
4d85b5c15e
Prefer pattern matching and EnumIter for Language rather than lists
2023-05-13 23:46:18 +07:00
Wilfred Hughes
22fadee91b
Add glob as a dependency
2023-05-13 22:59:18 +07:00
Wilfred Hughes
432e0f65d7
Update owo-colors
2023-04-30 11:32:40 +07:00
Wilfred Hughes
8b0a057861
Update to latest compatible regex version
2023-04-30 11:25:06 +07:00
Wilfred Hughes
31e6d443dc
Update pretty_assertions
2023-04-30 09:57:03 +07:00
Wilfred Hughes
15e9829c8a
Update walkdir dependency
2023-04-30 09:55:24 +07:00
Wilfred Hughes
2934c08d07
Revert "Update bumpalo version", to maintain rustc 1.57 support
...
This reverts commit 20e9ecaf72 .
2023-04-25 08:15:48 +07:00
Wilfred Hughes
20e9ecaf72
Update bumpalo version
2023-04-21 23:26:46 +07:00
Wilfred Hughes
81ac13cbd3
Roll version following release
2023-03-31 08:37:06 +07:00
Wilfred Hughes
ffd2c4a7fb
Roll version
2023-03-03 08:44:56 +07:00
Wilfred Hughes
0a060026e3
Roll version
2023-03-02 23:25:11 +07:00
Wilfred Hughes
2ff20e3aa8
Configure dependencies with a local rustc 1.57
2023-02-21 22:34:05 +07:00
Wilfred Hughes
b051df09ea
Pin assert_cmd to a lower version
2023-02-21 22:01:11 +07:00
Wilfred Hughes
b74ffdeee4
Pin predicates too
2023-02-21 21:57:59 +07:00
Wilfred Hughes
188fec4b2e
Choose a version of assert_cmd that meets difftastic's MSRV
2023-02-21 21:11:45 +07:00
Wilfred Hughes
5f2c9365a9
Add CLI integration tests
2023-02-21 18:14:33 +07:00
Wilfred Hughes
d425685284
Next version will be 0.44
2023-02-04 16:42:22 +07:00
Wilfred Hughes
829ab7b50c
Next release will be 0.43.1
2023-02-04 14:10:49 +07:00
Wilfred Hughes
eb8097f626
Bump version following release
2023-02-02 22:32:00 +07:00
Wilfred Hughes
fe68f43e93
Use crossterm for is_tty and terminal width
...
This is activly maintained, handles stdout being directed, and seems
to be tested more on Windows too (potentially improving #363 ).
2023-01-17 00:03:08 +07:00
Wilfred Hughes
64f8baf921
Update Cargo.lock for d8fa9f82b
2023-01-16 09:45:08 +07:00
Wilfred Hughes
48c64297c5
Roll version
2023-01-15 20:15:40 +07:00
Wilfred Hughes
44168638f4
Next release will be 0.42
2023-01-08 22:21:56 +07:00
Wilfred Hughes
7e560ec943
Use .link_lib_modifier() from latest cc version
...
https://github.com/rust-lang/cc-rs/pull/671 has now been merged and
released, so a247218811 is now unncessary.
2022-12-30 23:13:46 +07:00
Wilfred Hughes
2b00d9fb34
Update bumpalo
2022-12-30 11:35:17 +07:00
Wilfred Hughes
167217052e
Update rayon
2022-12-30 10:37:48 +07:00
Wilfred Hughes
3c95b2ebbb
Roll version
2022-12-28 15:12:58 +07:00
Wilfred Hughes
d169c7f96c
Update version in Cargo.lock
2022-12-19 01:00:48 +07:00
Wilfred Hughes
8e190677e7
Roll version
2022-11-14 00:30:56 +07:00
Wilfred Hughes
b662a2220b
Apply upstream tree_magic_mini patch to fix blank line crash
...
Fixes #378
2022-10-31 00:54:24 +07:00
Wilfred Hughes
e91878fb32
0.37 is now released
2022-10-14 16:10:27 +07:00
Wilfred Hughes
9e7c92eb57
Bump tree-sitter version
2022-10-09 14:59:30 +07:00
QuarticCat
d48ee2dfdb
Use a faster stack impl
2022-09-28 04:08:42 +07:00
Wilfred Hughes
17ec5de754
Next release should be 0.37
2022-09-18 15:07:31 +07:00
Wilfred Hughes
88222e83c4
Prepare for patch release with fixed Windows build
2022-09-17 23:55:00 +07:00
Wilfred Hughes
d5ae17d3d5
Roll version following release
2022-09-17 20:18:59 +07:00
Wilfred Hughes
e15244c8f6
Roll version
2022-09-02 18:24:08 +07:00
Wilfred Hughes
a04f867557
Fix terminal width detection
...
This was previously fixed in
cb900c3463 (see commit message), but
broken in #341 .
Instead, use both term_size and terminal_size, to maximise our chances
that we can detect the width. Also comment the code with the relevant
terminal_size issue.
Fixes #346
2022-09-02 11:07:48 +07:00
Wilfred Hughes
1d1d883a9b
Roll version
2022-08-27 23:00:33 +07:00
Wilfred Hughes
aca46af40f
Don't specify +whole-archive before rust 1.61
2022-08-27 17:51:54 +07:00
rhysd
f201b9e225
Use `terminal_size` crate instead of `term_size` crate
...
since `term_size` has stopped maintenance 2 years ago.
2022-08-23 10:36:54 +07:00
Wilfred Hughes
f3420df1ca
Roll version
2022-08-21 22:05:04 +07:00
Wilfred Hughes
0c03187b96
Roll version
2022-08-07 18:16:16 +07:00
Wilfred Hughes
3e320bb1cb
Bump version number
2022-07-12 00:12:21 +07:00
Wilfred Hughes
c745de51b0
Roll version
2022-07-04 20:05:31 +07:00
lilydjwg
c72626808f
use unicode-width to align CJK characters
2022-06-26 21:51:26 +07:00
Wilfred Hughes
e48c27cfb9
Next release will be 0.30
2022-06-13 16:51:16 +07:00
Wilfred Hughes
17f98a7f4d
Next release will be 0.29.1
2022-06-13 16:49:55 +07:00
Wilfred Hughes
ae42762a6d
Fix mimalloc perf regression in 57a4b6d6ce
...
It looks like we were allocating large buffers for wu-diff, and
mimalloc performance is much worse for this case in the new version.
This reverts performance back to that 0.28 for large files,
such as the example in #297 .
2022-06-13 02:02:01 +07:00
Wilfred Hughes
dd80e58640
Roll version
2022-06-09 10:12:46 +07:00
Wilfred Hughes
57a4b6d6ce
Update dependencies
2022-05-23 22:36:37 +07:00
Wilfred Hughes
df927eb713
Update pretty_assertions
2022-05-23 22:31:08 +07:00
Wilfred Hughes
1d4293864b
Prefer a bump allocator for graph vertices
...
This reduces instruction counts by around 14%.
2022-05-23 09:38:13 +07:00
Xuanwo
aee75d0bf4
feat: Improve binary content guess
...
Signed-off-by: Xuanwo <github@xuanwo.io>
2022-05-03 15:04:41 +07:00
Wilfred Hughes
77fb9cd179
Roll version
2022-04-29 16:52:45 +07:00
Wilfred Hughes
dd31fd3a2b
Wrap help messages according to the terminal width
2022-04-26 22:38:23 +07:00
Wilfred Hughes
e67ca22fc6
Roll version
2022-04-18 09:36:30 +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
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
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
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
2aaeb0e216
Update crossbeam-utils
...
We were previously on 0.8.5, which has been yanked.
2022-02-07 23:11:30 +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
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
7cc62a3835
Update Cargo.lock for latest dependencies
2021-12-27 18:02:26 +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
7fdbaff6fe
Update build dependencies
2021-11-19 23:29:17 +07:00
Wilfred Hughes
7f6b8174d5
Update pretty_assertions and use consistently
2021-11-19 23:27:41 +07:00
Wilfred Hughes
9079567695
Update radix-heap
...
Upstream has had some optimisations and it saves 7% in instructions
executed for slow_before/slow_after.rs according to `perf stat`.
2021-11-19 23:20:37 +07:00
Wilfred Hughes
e8f45d91b8
Roll version
2021-11-19 00:49:14 +07:00
Wilfred Hughes
86724658c0
Update radix-heap version
...
This avoids us depending on an old version of ordered_float, which has
a security advisory: https://rustsec.org/advisories/RUSTSEC-2020-0082
It also slightly reduces the number of dependencies of difftastic.
2021-10-28 00:51:37 +07:00
Wilfred Hughes
aa65b20665
Bump dependencies
2021-10-23 15:43:18 +07:00
Wilfred Hughes
44b025fdc5
Roll version
2021-10-18 22:42:17 +07:00
Wilfred Hughes
c92007e5b3
Remove criterion
...
I've found the numbers pretty noisy on my laptop, and `perf stat` is a
nice way of testing full size files for performance.
2021-10-02 22:00:12 +07:00
Wilfred Hughes
08c68de229
Run `cargo upgrade`
2021-09-26 23:09:20 +07:00
Wilfred Hughes
62b030195e
Upgrade to latest treesitter
2021-09-26 23:05:09 +07:00
Wilfred Hughes
ec37c5bef1
Add full Mercurial extdiff support
2021-09-26 21:23:22 +07:00
Wilfred Hughes
48efe9d7c4
Roll version
2021-09-24 23:40:07 +07:00
Wilfred Hughes
5991efdcc7
Build tree-sitter parsers in parallel
2021-09-22 22:02:07 +07:00