Commit Graph

344 Commits (master)

Author SHA1 Message Date
Wilfred Hughes c503a7564e Update regex dependency 2024-05-25 15:02:57 +07:00
Wilfred Hughes 835c5eb757 Roll version following release 2024-05-11 13:54:42 +07:00
Wilfred Hughes 9d2574dbd1 Update assert_cmd dependency 2024-05-10 16:08:56 +07:00
Wilfred Hughes be95b31896 Tests do actually import predicates, so restore dependency with looser bounds 2024-05-10 16:02:21 +07:00
Wilfred Hughes f665c73fe0 Remove pin in dev dependencies that is no longer necessary 2024-05-10 15:57:14 +07:00
Wilfred Hughes d15d593708 Move to smallvec for seen vertices
This is a surprisingly large perf win. On my Thinkpad:

typing_before/after.ml:
before: 3.038B instructions
after:  2.870B instructions

slow_before/after.rs:
before: 2.381B instructions
after:  1.260B instructions (!)
2024-04-28 16:16:47 +07:00
Wilfred Hughes db281c682c Roll version 2024-04-02 08:17:24 +07:00
Wilfred Hughes 15977f6e25 Update to latest tree_magic_mini now PR was merged 2024-03-19 00:27:21 +07:00
Wilfred Hughes 627ebc5a4c Revert "Upgrade to latest tree_magic_mini"
This reverts commit b95c27a50a.
2024-03-15 08:33:06 +07:00
Wilfred Hughes b95c27a50a Upgrade to latest tree_magic_mini 2024-03-14 22:33:00 +07:00
Wilfred Hughes 2b19e59aeb 0.56.1 is released 2024-03-05 23:23:43 +07:00
Wilfred Hughes bf8fcab420 0.56 is released 2024-03-05 22:02:37 +07:00
Wilfred Hughes 607b5d2202 Update hashbrown 2024-02-19 12:53:59 +07:00
Wilfred Hughes ee76b308ad Update bumpalo 2024-02-19 12:48:07 +07:00
Wilfred Hughes c03d456462 Update regex crate 2024-02-19 12:43:16 +07:00
Wilfred Hughes 5bde9e0f20 Update to latest memchr 2024-02-19 12:40:24 +07:00
Wilfred Hughes 3f995191ac Enable the windows feature of the crossterm crate
Difftastic provides windows builds, and crossterm requires this
feature if you support windows.
2024-02-19 12:35:59 +07:00
Wilfred Hughes 17038f4261 aho-corasick no longer needs to be pinned
Its MSRV is effectively 1.61 on aarch64, which is sufficient.
2024-02-19 12:28:57 +07:00
Wilfred Hughes f8107f3e10 Update clap version to last 3.x 2024-02-19 12:24:35 +07:00
Wilfred Hughes 77c641748f 0.55 is released 2024-02-01 08:26:52 +07:00
Wilfred Hughes 982f2526fb Update to latest tree-sitter
Benchmarks are unchanged.

Fixes #570
2024-01-28 13:12:06 +07:00
Wilfred Hughes 6760559e6f Increase MSRV to 1.65
See discussion in #570
2024-01-28 12:55:07 +07:00
Wilfred Hughes 8eebc24165 Roll version 2024-01-07 00:33:16 +07:00
Wilfred Hughes 5984abf53a Remove pin of is-terminal 2023-11-26 01:36:38 +07:00
Wilfred Hughes b9a1302e54 Bump MSRV to 1.63
In the past I've been more cautious, but this is the version supported
by Debian Stable, and it's more than 12 months old.

A decent number of dependencies are only tested against newer rustc
versions (see e.g. the recent aho-coarasick pin due to no MSRV on that
library). I've filed bugs in some cases, but upgrading rustc versions
more aggressively should make this problem less common.
2023-11-26 01:24:29 +07:00
Wilfred Hughes 54b6ff8d2e Next release will be 0.54
skip-checks: true
2023-11-26 01:13:12 +07:00
Wilfred Hughes a67ad5b9af Next release will be 0.53.1 2023-11-26 01:03:56 +07:00
Wilfred Hughes a255fbc950 Pin aho-corasick to fix aarch64 build 2023-11-25 01:45:18 +07:00
Wilfred Hughes 7e50c2d8a2 Roll version 2023-11-24 01:22:49 +07:00
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 4284c3578a Increase MSRV to 1.60 2023-10-31 16:34:59 +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 4fdc8eebcd Increase MSRV to 1.59 2023-08-07 20:32:08 +07:00
Wilfred Hughes 2f3f0a875a Add note about how MSRV is chosen 2023-08-05 10:17:58 +07:00
Wilfred Hughes 448972f8a3 Roll version 2023-07-26 20:02:23 +07:00
Wilfred Hughes 0cb1cdbb3e Document MSRV for newer bumpalo 2023-07-26 15:12:55 +07:00
Wilfred Hughes 65b235be28 Move to edition 2021 2023-07-26 15:06:21 +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 b3acf48128 Bump minimum required Rust version to 1.58
Difftastic is generally conservative about MSRV, and will only
increase the version when there is a compelling reason (e.g. major
performance improvement, important bug fix in a dependendency).

This version increase will enable us to upgrade crossterm to 0.26, which
has better detection of terminal width on Windows.

I've also clarified MSRV details for other dependencies that cannot
currently be upgraded.
2023-07-26 11:34:05 +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 857066e5d8 Another upgrade note 2023-04-30 11:31:37 +07:00
Wilfred Hughes 8b0a057861 Update to latest compatible regex version 2023-04-30 11:25:06 +07:00
Wilfred Hughes 5ed6f6e799 Use a consistent version for rayon between build and normal dependencies 2023-04-30 11:21:11 +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
Michel Alexandre Salim b4a764f286
Relax version dependencies
For dependencies we're pinning for Rust 1.57 compatibility, specify
the range of versions allowed rather than just pinning to the maximum
version allowed.

This makes it easier for Linux distribution packaging, where a different
version might already be packaged.

Signed-off-by: Michel Alexandre Salim <salimma@fedoraproject.org>
2023-03-06 13:29:10 +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 a3398b8808 Try to loosen assert_cmd for Windows CI 2023-02-21 21:39:16 +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 d8fa9f82b2 Update terminal_size 2023-01-15 23:24:51 +07:00
Wilfred Hughes 48c64297c5 Roll version 2023-01-15 20:15:40 +07:00
Wilfred Hughes 08b3ff138f Rename vendor/ directory
Closes #453
2023-01-10 08:35:01 +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 723e3dbd0e Roll version 2022-12-19 00:20:42 +07:00
Michel Alexandre Salim 08041e5793
Add `cargo binstall` metadata
Right now `cargo binstall` cannot find the pre-compiled `difftastic`
assets:

```
~
❯ cargo binstall difftastic
 INFO resolve: Resolving package: 'difftastic'
 WARN resolve: The package will be installed from source (with cargo)
Do you wish to continue? yes/[no]
? no
 WARN Installation cancelled

~ took 18s
❯ cargo binstall difftastic --pkg-url="{ repo }/releases/download/{ version }/difft-{ target }.{ archive-format }"
 INFO resolve: Resolving package: 'difftastic'
 WARN resolve: The package will be downloaded from github.com
 INFO resolve: This will install the following binaries:
 INFO resolve:   - difft (difft -> /home/michel/.cargo/bin/difft-v0.38.0)
 INFO resolve: And create (or update) the following symlinks:
 INFO resolve:   - difft (/home/michel/.cargo/bin/difft -> difft-v0.38.0)
Do you wish to continue? yes/[no]
? yes
 INFO install: Installing binaries...
 INFO Done in 9.277840305s
```

Adding this `pkg-url` override to `Cargo.toml` allows `binstall` to find
the pre-compiled archives:

```
~
❯ cargo binstall --manifest-path ~/src/github/Wilfred/difftastic/Cargo.toml difftastic
 INFO resolve: Resolving package: 'difftastic'
 INFO resolve: difftastic v0.38.0 is already installed, use --force to override
 INFO Done in 5.327886ms

~
❯ cargo binstall --manifest-path ~/src/github/Wilfred/difftastic/Cargo.toml difftastic --force
 INFO resolve: Resolving package: 'difftastic'
 WARN resolve: The package will be downloaded from github.com
 INFO resolve: This will install the following binaries:
 INFO resolve:   - difft (difft -> /home/michel/.cargo/bin/difft-v0.38.0)
 INFO resolve: And create (or update) the following symlinks:
 INFO resolve:   - difft (/home/michel/.cargo/bin/difft -> difft-v0.38.0)
Do you wish to continue? yes/[no]
? yes
 INFO install: Installing binaries...
 INFO Done in 5.484314255s
```

Signed-off-by: Michel Alexandre Salim <michel@michel-slm.name>
2022-11-23 14:01:25 +07:00
Wilfred Hughes 8e190677e7 Roll version 2022-11-14 00:30:56 +07:00
Wilfred Hughes 0603b9fb23 Include LICENSE in crates.io source files
Closes #423
2022-11-13 00:13:47 +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
Wilfred Hughes dd0c78fefa Remove setting that can be overridden with an environment variable 2022-10-09 11:25:57 +07:00
QuarticCat d48ee2dfdb
Use a faster stack impl 2022-09-28 04:08:42 +07:00
QuarticCat 06b46e9355
Enable thin-LTO 2022-09-28 00:24:18 +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 6ce0717447 Note the newer rustc requirement 2022-08-12 12:39:00 +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 39be777a13 Prefer a complete sentence 2022-05-29 09:57:54 +07:00
Wilfred Hughes 43a03d2939 Tweak slogan to clarify that difftastic understands structure
"Understands syntax" is sometimes confused with syntax highlighting.
2022-05-23 23:39:15 +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 d9ef270d27 Make include patterns stricter
This slightly reduces the size of the crate uploaded to crates.io.
2022-04-29 17:31:28 +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 ee0f1ee7f2 Diff files in directories in parallel 2022-04-24 20:17:47 +07:00
Wilfred Hughes e67ca22fc6 Roll version 2022-04-18 09:36:30 +07:00
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