2019-05-10 18:59:12 +02:00
|
|
|
# This file is automatically @generated by Cargo.
|
|
|
|
# It is not intended for manual editing.
|
2021-06-19 02:06:44 +02:00
|
|
|
version = 3
|
|
|
|
|
2023-07-06 17:31:31 +02:00
|
|
|
[[package]]
|
|
|
|
name = "addr2line"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.22.0"
|
2023-07-06 17:31:31 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678"
|
2023-07-06 17:31:31 +02:00
|
|
|
dependencies = [
|
|
|
|
"gimli",
|
|
|
|
]
|
|
|
|
|
2020-08-04 00:47:19 +02:00
|
|
|
[[package]]
|
|
|
|
name = "adler"
|
2021-03-12 06:20:54 +01:00
|
|
|
version = "1.0.2"
|
2020-08-04 00:47:19 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2021-03-12 06:20:54 +01:00
|
|
|
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
|
2020-08-04 00:47:19 +02:00
|
|
|
|
2024-08-24 00:35:42 +02:00
|
|
|
[[package]]
|
|
|
|
name = "adler2"
|
|
|
|
version = "2.0.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"
|
|
|
|
|
2023-08-16 03:31:49 +02:00
|
|
|
[[package]]
|
|
|
|
name = "adler32"
|
|
|
|
version = "1.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
|
|
|
|
|
2024-01-21 21:17:28 +01:00
|
|
|
[[package]]
|
|
|
|
name = "ahash"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "0.7.8"
|
2024-01-21 21:17:28 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9"
|
2024-01-21 21:17:28 +01:00
|
|
|
dependencies = [
|
|
|
|
"getrandom",
|
|
|
|
"once_cell",
|
|
|
|
"version_check",
|
|
|
|
]
|
|
|
|
|
2022-11-09 23:07:38 +01:00
|
|
|
[[package]]
|
|
|
|
name = "ahash"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "0.8.11"
|
2022-11-09 23:07:38 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
|
2022-11-09 23:07:38 +01:00
|
|
|
dependencies = [
|
2023-07-05 14:14:55 +02:00
|
|
|
"cfg-if",
|
2023-07-10 07:28:36 +02:00
|
|
|
"getrandom",
|
2022-11-09 23:07:38 +01:00
|
|
|
"once_cell",
|
|
|
|
"version_check",
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
"zerocopy",
|
2022-11-09 23:07:38 +01:00
|
|
|
]
|
|
|
|
|
2019-05-10 18:59:12 +02:00
|
|
|
[[package]]
|
|
|
|
name = "aho-corasick"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "1.1.3"
|
2019-05-10 18:59:12 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
|
2019-05-10 18:59:12 +02:00
|
|
|
dependencies = [
|
2019-11-28 03:21:00 +01:00
|
|
|
"memchr",
|
2019-05-10 18:59:12 +02:00
|
|
|
]
|
|
|
|
|
2021-05-18 21:33:10 +02:00
|
|
|
[[package]]
|
|
|
|
name = "alloc-no-stdlib"
|
2022-10-03 18:40:16 +02:00
|
|
|
version = "2.0.4"
|
2021-05-18 21:33:10 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-10-03 18:40:16 +02:00
|
|
|
checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3"
|
2021-05-18 21:33:10 +02:00
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "alloc-stdlib"
|
2022-10-03 18:40:16 +02:00
|
|
|
version = "0.2.2"
|
2021-05-18 21:33:10 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-10-03 18:40:16 +02:00
|
|
|
checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece"
|
2021-05-18 21:33:10 +02:00
|
|
|
dependencies = [
|
|
|
|
"alloc-no-stdlib",
|
|
|
|
]
|
|
|
|
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
[[package]]
|
|
|
|
name = "alloca"
|
|
|
|
version = "0.4.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "e5a7d05ea6aea7e9e64d25b9156ba2fee3fdd659e34e41063cd2fc7cd020d7f4"
|
|
|
|
dependencies = [
|
|
|
|
"cc",
|
|
|
|
]
|
|
|
|
|
2023-07-06 17:31:31 +02:00
|
|
|
[[package]]
|
|
|
|
name = "allocator-api2"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
version = "0.2.18"
|
2023-07-06 17:31:31 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f"
|
2023-07-06 17:31:31 +02:00
|
|
|
|
2022-05-06 14:58:32 +02:00
|
|
|
[[package]]
|
|
|
|
name = "alphanumeric-sort"
|
2023-12-06 01:09:34 +01:00
|
|
|
version = "1.5.3"
|
2022-05-06 14:58:32 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-12-06 01:09:34 +01:00
|
|
|
checksum = "d67c60c5f10f11c6ee04de72b2dd98bb9d2548cbc314d22a609bfa8bd9e87e8f"
|
2022-05-06 14:58:32 +02:00
|
|
|
|
2023-07-06 17:31:31 +02:00
|
|
|
[[package]]
|
|
|
|
name = "android-tzdata"
|
|
|
|
version = "0.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
|
|
|
|
|
2022-08-13 20:21:28 +02:00
|
|
|
[[package]]
|
|
|
|
name = "android_system_properties"
|
2022-08-31 13:19:20 +02:00
|
|
|
version = "0.1.5"
|
2022-08-13 20:21:28 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-08-31 13:19:20 +02:00
|
|
|
checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
|
2022-08-13 20:21:28 +02:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
2023-06-12 00:33:54 +02:00
|
|
|
[[package]]
|
|
|
|
name = "ansi-str"
|
|
|
|
version = "0.8.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1cf4578926a981ab0ca955dc023541d19de37112bc24c1a197bd806d3d86ad1d"
|
|
|
|
dependencies = [
|
|
|
|
"ansitok",
|
|
|
|
]
|
|
|
|
|
2022-07-19 19:35:25 +02:00
|
|
|
[[package]]
|
|
|
|
name = "ansitok"
|
2022-10-20 14:52:15 +02:00
|
|
|
version = "0.2.0"
|
2022-07-19 19:35:25 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-10-20 14:52:15 +02:00
|
|
|
checksum = "220044e6a1bb31ddee4e3db724d29767f352de47445a6cd75e1a173142136c83"
|
2022-07-19 19:35:25 +02:00
|
|
|
dependencies = [
|
2023-01-04 23:50:18 +01:00
|
|
|
"nom",
|
2023-08-08 22:20:37 +02:00
|
|
|
"vte 0.10.1",
|
2022-07-19 19:35:25 +02:00
|
|
|
]
|
|
|
|
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
[[package]]
|
|
|
|
name = "anstream"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.6.15"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
dependencies = [
|
|
|
|
"anstyle",
|
|
|
|
"anstyle-parse",
|
|
|
|
"anstyle-query",
|
|
|
|
"anstyle-wincon",
|
|
|
|
"colorchoice",
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
"is_terminal_polyfill",
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
"utf8parse",
|
|
|
|
]
|
|
|
|
|
2023-04-14 22:14:57 +02:00
|
|
|
[[package]]
|
|
|
|
name = "anstyle"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.0.8"
|
2023-04-14 22:14:57 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1"
|
2023-04-14 22:14:57 +02:00
|
|
|
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
[[package]]
|
|
|
|
name = "anstyle-parse"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.2.5"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
dependencies = [
|
|
|
|
"utf8parse",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "anstyle-query"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.1.1"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
dependencies = [
|
2023-12-06 01:09:34 +01:00
|
|
|
"windows-sys 0.52.0",
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "anstyle-wincon"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "3.0.4"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
dependencies = [
|
|
|
|
"anstyle",
|
2023-12-06 01:09:34 +01:00
|
|
|
"windows-sys 0.52.0",
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
]
|
|
|
|
|
`explore`: adopt `anyhow`, support `CustomValue`, remove help system (#12692)
This PR:
1. Adds basic support for `CustomValue` to `explore`. Previously `open
foo.db | explore` didn't really work, now we "materialize" the whole
database to a `Value` before loading it
2. Adopts `anyhow` for error handling in `explore`. Previously we were
kind of rolling our own version of `anyhow` by shoving all errors into a
`std::io::Error`; I think this is much nicer. This was necessary because
as part of 1), collecting input is now fallible...
3. Removes a lot of `explore`'s fancy command help system.
- Previously each command (`:help`, `:try`, etc.) had a sophisticated
help system with examples etc... but this was not very visible to users.
You had to know to run `:help :try` or view a list of commands with
`:help :`
- As discussed previously, we eventually want to move to a less modal
approach for `explore`, without the Vim-like commands. And so I don't
think it's worth keeping this command help system around (it's
intertwined with other stuff, and making these changes would have been
harder if keeping it).
4. Rename the `--reverse` flag to `--tail`. The flag scrolls to the end
of the data, which IMO is described better by "tail"
5. Does some renaming+commenting to clear up things I found difficult to
understand when navigating the `explore` code
I initially thought 1) would be just a few lines, and then this PR blew
up into much more extensive changes 😅
## Before
The whole database was being displayed as a single Nuon/JSON line 🤔
![image](https://github.com/nushell/nushell/assets/26268125/6383f43b-fdff-48b4-9604-398438ad1499)
## After
The database gets displayed like a record
![image](https://github.com/nushell/nushell/assets/26268125/2f00ed7b-a3c4-47f4-a08c-98d07efc7bb4)
## Future work
It is sort of annoying that we have to load a whole SQLite database into
memory to make this work; it will be impractical for large databases.
I'd like to explore improvements to `CustomValue` that can make this
work more efficiently.
2024-05-02 00:34:37 +02:00
|
|
|
[[package]]
|
|
|
|
name = "anyhow"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.0.86"
|
`explore`: adopt `anyhow`, support `CustomValue`, remove help system (#12692)
This PR:
1. Adds basic support for `CustomValue` to `explore`. Previously `open
foo.db | explore` didn't really work, now we "materialize" the whole
database to a `Value` before loading it
2. Adopts `anyhow` for error handling in `explore`. Previously we were
kind of rolling our own version of `anyhow` by shoving all errors into a
`std::io::Error`; I think this is much nicer. This was necessary because
as part of 1), collecting input is now fallible...
3. Removes a lot of `explore`'s fancy command help system.
- Previously each command (`:help`, `:try`, etc.) had a sophisticated
help system with examples etc... but this was not very visible to users.
You had to know to run `:help :try` or view a list of commands with
`:help :`
- As discussed previously, we eventually want to move to a less modal
approach for `explore`, without the Vim-like commands. And so I don't
think it's worth keeping this command help system around (it's
intertwined with other stuff, and making these changes would have been
harder if keeping it).
4. Rename the `--reverse` flag to `--tail`. The flag scrolls to the end
of the data, which IMO is described better by "tail"
5. Does some renaming+commenting to clear up things I found difficult to
understand when navigating the `explore` code
I initially thought 1) would be just a few lines, and then this PR blew
up into much more extensive changes 😅
## Before
The whole database was being displayed as a single Nuon/JSON line 🤔
![image](https://github.com/nushell/nushell/assets/26268125/6383f43b-fdff-48b4-9604-398438ad1499)
## After
The database gets displayed like a record
![image](https://github.com/nushell/nushell/assets/26268125/2f00ed7b-a3c4-47f4-a08c-98d07efc7bb4)
## Future work
It is sort of annoying that we have to load a whole SQLite database into
memory to make this work; it will be impractical for large databases.
I'd like to explore improvements to `CustomValue` that can make this
work more efficiently.
2024-05-02 00:34:37 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
|
`explore`: adopt `anyhow`, support `CustomValue`, remove help system (#12692)
This PR:
1. Adds basic support for `CustomValue` to `explore`. Previously `open
foo.db | explore` didn't really work, now we "materialize" the whole
database to a `Value` before loading it
2. Adopts `anyhow` for error handling in `explore`. Previously we were
kind of rolling our own version of `anyhow` by shoving all errors into a
`std::io::Error`; I think this is much nicer. This was necessary because
as part of 1), collecting input is now fallible...
3. Removes a lot of `explore`'s fancy command help system.
- Previously each command (`:help`, `:try`, etc.) had a sophisticated
help system with examples etc... but this was not very visible to users.
You had to know to run `:help :try` or view a list of commands with
`:help :`
- As discussed previously, we eventually want to move to a less modal
approach for `explore`, without the Vim-like commands. And so I don't
think it's worth keeping this command help system around (it's
intertwined with other stuff, and making these changes would have been
harder if keeping it).
4. Rename the `--reverse` flag to `--tail`. The flag scrolls to the end
of the data, which IMO is described better by "tail"
5. Does some renaming+commenting to clear up things I found difficult to
understand when navigating the `explore` code
I initially thought 1) would be just a few lines, and then this PR blew
up into much more extensive changes 😅
## Before
The whole database was being displayed as a single Nuon/JSON line 🤔
![image](https://github.com/nushell/nushell/assets/26268125/6383f43b-fdff-48b4-9604-398438ad1499)
## After
The database gets displayed like a record
![image](https://github.com/nushell/nushell/assets/26268125/2f00ed7b-a3c4-47f4-a08c-98d07efc7bb4)
## Future work
It is sort of annoying that we have to load a whole SQLite database into
memory to make this work; it will be impractical for large databases.
I'd like to explore improvements to `CustomValue` that can make this
work more efficiently.
2024-05-02 00:34:37 +02:00
|
|
|
|
2024-01-20 15:04:06 +01:00
|
|
|
[[package]]
|
|
|
|
name = "arboard"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
version = "3.4.0"
|
2024-01-20 15:04:06 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
checksum = "9fb4009533e8ff8f1450a5bcbc30f4242a1d34442221f72314bea1f5dc9c7f89"
|
2024-01-20 15:04:06 +01:00
|
|
|
dependencies = [
|
|
|
|
"clipboard-win",
|
|
|
|
"log",
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
"objc2",
|
|
|
|
"objc2-app-kit",
|
|
|
|
"objc2-foundation",
|
2024-01-20 15:04:06 +01:00
|
|
|
"parking_lot",
|
|
|
|
"wl-clipboard-rs",
|
|
|
|
"x11rb",
|
|
|
|
]
|
|
|
|
|
2023-05-12 14:44:35 +02:00
|
|
|
[[package]]
|
|
|
|
name = "argminmax"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "0.6.2"
|
2023-05-12 14:44:35 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "52424b59d69d69d5056d508b260553afd91c57e21849579cd1f50ee8b8b88eaa"
|
2023-05-12 14:44:35 +02:00
|
|
|
dependencies = [
|
|
|
|
"num-traits",
|
|
|
|
]
|
|
|
|
|
2022-02-27 17:10:29 +01:00
|
|
|
[[package]]
|
|
|
|
name = "array-init-cursor"
|
|
|
|
version = "0.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "bf7d0a018de4f6aa429b9d33d69edf69072b1c5b1cb8d3e4a5f7ef898fc3eb76"
|
|
|
|
|
2019-11-16 18:17:05 +01:00
|
|
|
[[package]]
|
|
|
|
name = "arrayvec"
|
2020-11-22 01:37:16 +01:00
|
|
|
version = "0.5.2"
|
2019-11-16 18:17:05 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-11-22 01:37:16 +01:00
|
|
|
checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
|
2019-11-16 18:17:05 +01:00
|
|
|
|
2022-04-04 22:45:01 +02:00
|
|
|
[[package]]
|
|
|
|
name = "arrayvec"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.7.6"
|
2022-04-04 22:45:01 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
|
2022-04-04 22:45:01 +02:00
|
|
|
|
2023-03-02 20:05:18 +01:00
|
|
|
[[package]]
|
|
|
|
name = "assert-json-diff"
|
|
|
|
version = "2.0.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "47e4f2b81832e72834d7518d8487a0396a28cc408186a2e8854c0f98011faf12"
|
|
|
|
dependencies = [
|
|
|
|
"serde",
|
|
|
|
"serde_json",
|
|
|
|
]
|
|
|
|
|
2021-08-30 20:36:07 +02:00
|
|
|
[[package]]
|
|
|
|
name = "assert_cmd"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "2.0.16"
|
2021-08-30 20:36:07 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "dc1835b7f27878de8525dc71410b5a31cdcc5f230aed5ba5df968e09c201b23d"
|
2021-08-30 20:36:07 +02:00
|
|
|
dependencies = [
|
2023-04-14 22:14:57 +02:00
|
|
|
"anstyle",
|
2023-10-09 14:31:50 +02:00
|
|
|
"bstr",
|
2021-08-30 20:36:07 +02:00
|
|
|
"doc-comment",
|
2024-08-24 00:35:42 +02:00
|
|
|
"libc",
|
2021-08-30 20:36:07 +02:00
|
|
|
"predicates",
|
|
|
|
"predicates-core",
|
|
|
|
"predicates-tree",
|
|
|
|
"wait-timeout",
|
|
|
|
]
|
|
|
|
|
2021-11-23 09:14:40 +01:00
|
|
|
[[package]]
|
2021-09-15 21:10:12 +02:00
|
|
|
name = "async-stream"
|
2023-04-14 22:14:57 +02:00
|
|
|
version = "0.3.5"
|
2021-09-15 21:10:12 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-04-14 22:14:57 +02:00
|
|
|
checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51"
|
2021-09-15 21:10:12 +02:00
|
|
|
dependencies = [
|
|
|
|
"async-stream-impl",
|
|
|
|
"futures-core",
|
2023-03-12 00:35:56 +01:00
|
|
|
"pin-project-lite",
|
2021-09-15 21:10:12 +02:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "async-stream-impl"
|
2023-04-14 22:14:57 +02:00
|
|
|
version = "0.3.5"
|
2021-09-15 21:10:12 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-04-14 22:14:57 +02:00
|
|
|
checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
|
2021-09-15 21:10:12 +02:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2024-08-24 00:35:42 +02:00
|
|
|
"syn 2.0.75",
|
2021-09-15 21:10:12 +02:00
|
|
|
]
|
|
|
|
|
2020-05-29 10:22:52 +02:00
|
|
|
[[package]]
|
|
|
|
name = "async-trait"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.1.81"
|
2020-05-29 10:22:52 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107"
|
2020-05-29 10:22:52 +02:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
2021-08-28 05:34:11 +02:00
|
|
|
"quote",
|
2024-08-24 00:35:42 +02:00
|
|
|
"syn 2.0.75",
|
2020-05-29 10:22:52 +02:00
|
|
|
]
|
|
|
|
|
2023-05-08 17:42:53 +02:00
|
|
|
[[package]]
|
|
|
|
name = "atoi"
|
|
|
|
version = "2.0.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528"
|
|
|
|
dependencies = [
|
|
|
|
"num-traits",
|
|
|
|
]
|
|
|
|
|
2023-12-06 01:09:34 +01:00
|
|
|
[[package]]
|
|
|
|
name = "atoi_simd"
|
2024-01-21 04:53:24 +01:00
|
|
|
version = "0.15.6"
|
2023-12-06 01:09:34 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 04:53:24 +01:00
|
|
|
checksum = "9ae037714f313c1353189ead58ef9eec30a8e8dc101b2622d461418fd59e28a9"
|
2023-12-06 01:09:34 +01:00
|
|
|
|
2024-08-07 05:09:23 +02:00
|
|
|
[[package]]
|
|
|
|
name = "atomic-waker"
|
|
|
|
version = "1.1.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
|
|
|
|
|
2020-01-17 21:35:48 +01:00
|
|
|
[[package]]
|
|
|
|
name = "autocfg"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.3.0"
|
2020-01-17 21:35:48 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
|
2020-01-17 21:35:48 +01:00
|
|
|
|
2023-08-16 03:31:49 +02:00
|
|
|
[[package]]
|
|
|
|
name = "avro-schema"
|
|
|
|
version = "0.3.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "b5281855b39aba9684d2f47bf96983fbfd8f1725f12fabb0513a8ab879647bbd"
|
|
|
|
dependencies = [
|
|
|
|
"crc",
|
|
|
|
"fallible-streaming-iterator",
|
|
|
|
"libflate",
|
|
|
|
"serde",
|
|
|
|
"serde_json",
|
|
|
|
"snap",
|
|
|
|
]
|
|
|
|
|
2023-07-06 17:31:31 +02:00
|
|
|
[[package]]
|
|
|
|
name = "backtrace"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.3.73"
|
2023-07-06 17:31:31 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a"
|
2023-07-06 17:31:31 +02:00
|
|
|
dependencies = [
|
|
|
|
"addr2line",
|
|
|
|
"cc",
|
|
|
|
"cfg-if",
|
|
|
|
"libc",
|
2024-08-24 00:35:42 +02:00
|
|
|
"miniz_oxide 0.7.4",
|
2023-07-06 17:31:31 +02:00
|
|
|
"object",
|
|
|
|
"rustc-demangle",
|
|
|
|
]
|
|
|
|
|
2024-02-22 19:14:10 +01:00
|
|
|
[[package]]
|
|
|
|
name = "backtrace-ext"
|
|
|
|
version = "0.2.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "537beee3be4a18fb023b570f80e3ae28003db9167a751266b259926e25539d50"
|
|
|
|
dependencies = [
|
|
|
|
"backtrace",
|
|
|
|
]
|
|
|
|
|
2023-01-13 14:16:14 +01:00
|
|
|
[[package]]
|
|
|
|
name = "base64"
|
2024-01-21 04:53:24 +01:00
|
|
|
version = "0.21.7"
|
2023-01-13 14:16:14 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 04:53:24 +01:00
|
|
|
checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
|
2023-01-13 14:16:14 +01:00
|
|
|
|
2024-03-21 20:17:36 +01:00
|
|
|
[[package]]
|
|
|
|
name = "base64"
|
2024-05-04 14:56:16 +02:00
|
|
|
version = "0.22.1"
|
2024-03-21 20:17:36 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-05-04 14:56:16 +02:00
|
|
|
checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
|
2024-03-21 20:17:36 +01:00
|
|
|
|
2022-07-11 18:18:06 +02:00
|
|
|
[[package]]
|
|
|
|
name = "bindgen"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "0.69.4"
|
2022-07-11 18:18:06 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0"
|
2022-07-11 18:18:06 +02:00
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"bitflags 2.6.0",
|
2022-07-11 18:18:06 +02:00
|
|
|
"cexpr",
|
|
|
|
"clang-sys",
|
2024-09-11 08:35:27 +02:00
|
|
|
"itertools 0.12.1",
|
2022-07-11 18:18:06 +02:00
|
|
|
"lazy_static",
|
|
|
|
"lazycell",
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"regex",
|
|
|
|
"rustc-hash",
|
|
|
|
"shlex",
|
2024-08-24 00:35:42 +02:00
|
|
|
"syn 2.0.75",
|
2022-07-11 18:18:06 +02:00
|
|
|
]
|
|
|
|
|
2022-08-04 21:51:02 +02:00
|
|
|
[[package]]
|
|
|
|
name = "bit-set"
|
|
|
|
version = "0.5.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1"
|
|
|
|
dependencies = [
|
|
|
|
"bit-vec",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "bit-vec"
|
|
|
|
version = "0.6.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
|
|
|
|
|
2019-05-18 03:24:13 +02:00
|
|
|
[[package]]
|
2021-08-30 20:36:07 +02:00
|
|
|
name = "bitflags"
|
|
|
|
version = "1.3.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
|
|
|
|
|
2023-05-26 17:32:48 +02:00
|
|
|
[[package]]
|
|
|
|
name = "bitflags"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "2.6.0"
|
2023-05-26 17:32:48 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
|
2023-08-30 00:13:34 +02:00
|
|
|
dependencies = [
|
|
|
|
"serde",
|
|
|
|
]
|
2023-05-26 17:32:48 +02:00
|
|
|
|
2024-01-21 21:17:28 +01:00
|
|
|
[[package]]
|
|
|
|
name = "bitvec"
|
|
|
|
version = "1.0.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c"
|
|
|
|
dependencies = [
|
|
|
|
"funty",
|
|
|
|
"radium",
|
|
|
|
"tap",
|
|
|
|
"wyz",
|
|
|
|
]
|
|
|
|
|
2021-12-16 10:40:05 +01:00
|
|
|
[[package]]
|
Autoenv rewrite, security and scripting (#2083)
* Add args in .nurc file to environment
* Working dummy version
* Add add_nurc to sync_env command
* Parse .nurc file
* Delete env vars after leaving directory
* Removing vals not working, strangely
* Refactoring, add comment
* Debugging
* Debug by logging to file
* Add and remove env var behavior appears correct
However, it does not use existing code that well.
* Move work to cli.rs
* Parse config directories
* I am in a state of distress
* Rename .nurc to .nu
* Some notes for me
* Refactoring
* Removing vars works, but not done in a very nice fashion
* Refactor env_vars_to_delete
* Refactor env_vars_to_add()
* Move directory environment code to separate file
* Refactor from_config
* Restore env values
* Working?
* Working?
* Update comments and change var name
* Formatting
* Remove vars after leaving dir
* Remove notes I made
* Rename config function
* Clippy
* Cleanup and handle errors
* cargo fmt
* Better error messages, remove last (?) unwrap
* FORMAT PLZ
* Rename whitelisted_directories to allowed_directories
* Add comment to clarify how overwritten values are restored.
* Change list of allowed dirs to indexmap
* Rewrite starting
* rewrite everything
* Overwritten env values tracks an indexmap instead of vector
* Refactor restore function
* Untrack removed vars properly
* Performance concerns
* Performance concerns
* Error handling
* Clippy
* Add type aliases for String and OsString
* Deletion almost works
* Working?
* Error handling and refactoring
* nicer errors
* Add TODO file
* Move outside of loop
* Error handling
* Reworking adding of vars
* Reworking adding of vars
* Ready for testing
* Refactoring
* Restore overwritten vals code
* todo.org
* Remove overwritten values tracking, as it is not needed
* Cleanup, stop tracking overwritten values as nu takes care of it
* Init autoenv command
* Initialize autoenv and autoenv trust
* autoenv trust toml
* toml
* Use serde for autoenv
* Optional directory arg
* Add autoenv untrust command
* ... actually add autoenv untrust this time
* OsString and paths
* Revert "OsString and paths"
This reverts commit e6eedf882498c1365ecfc899e5ec11bd83cb055c.
* Fix path
* Fix path
* Autoenv trust and untrust
* Start using autoenv
* Check hashes
* Use trust functionality when setting vars
* Remove unused code
* Clippy
* Nicer errors for autoenv commands
* Non-working errors
* Update error description
* Satisfy fmt
* Errors
* Errors print, but not nicely
* Nicer errors
* fmt
* Delete accidentally added todo.org file
* Rename direnv to autoenv
* Use ShellError instead of Error
* Change tests to pass, danger zone?
* Clippy and errors
* Clippy... again
* Replace match with or_else
* Use sha2 crate for hashing
* parsing and error msg
* Refactoring
* Only apply vars once
* if parent dir
* Delete vars
* Rework exit code
* Adding works
* restore
* Fix possibility of infinite loop
* Refactoring
* Non-working
* Revert "Non-working"
This reverts commit e231b85570bcb3fc838f950e9f5004c6a7c5a2ac.
* Revert "Revert "Non-working""
This reverts commit 804092e46a752266576b044401cc97c317e41f21.
* Autoenv trust works without restart
* Cargo fix
* Script vars
* Serde
* Serde errors
* Entry and exitscripts
* Clippy
* Support windows and handle errors
* Formatting
* Fix infinite loop on windows
* Debugging windows loop
* More windows infinite loop debugging
* Windows loop debugging #3
* windows loop #4
* Don't return err
* Cleanup unused code
* Infinite loop debug
* Loop debugging
* Check if infinite loop is vars_to_add
* env_vars_to_add does not terminate, skip loop as test
* Hypothesis: std::env::current_dir() is messing with something
* Hypothesis: std::env::current_dir() is messing with something
* plz
* make clippy happy
* debugging in env_vars_to_add
* Debbuging env_vars_to_add #2
* clippy
* clippy..
* Fool clippy
* Fix another infinite loop
* Binary search for error location x)
* Binary search #3
* fmt
* Binary search #4
* more searching...
* closing in... maybe
* PLZ
* Cleanup
* Restore commented out functionality
* Handle case when user gives the directory "."
* fmt
* Use fs::canonicalize for paths
* Create optional script section
* fmt
* Add exitscripts even if no entryscripts are defined
* All sections in .nu-env are now optional
* Re-read config file each directory change
* Hot reload after autoenv untrust, don't run exitscripts if untrusted
* Debugging
* Fix issue with recursive adding of vars
* Thank you for finding my issues Mr. Azure
* use std::env
2020-07-05 19:34:00 +02:00
|
|
|
name = "block-buffer"
|
2023-03-12 00:35:56 +01:00
|
|
|
version = "0.10.4"
|
2021-12-11 00:14:28 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-03-12 00:35:56 +01:00
|
|
|
checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
|
2021-12-11 00:14:28 +01:00
|
|
|
dependencies = [
|
2022-07-19 19:35:25 +02:00
|
|
|
"generic-array",
|
2020-05-17 00:34:10 +02:00
|
|
|
]
|
|
|
|
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
[[package]]
|
|
|
|
name = "block2"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.5.1"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
dependencies = [
|
|
|
|
"objc2",
|
|
|
|
]
|
|
|
|
|
2024-01-21 21:17:28 +01:00
|
|
|
[[package]]
|
|
|
|
name = "borsh"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.5.1"
|
2024-01-21 21:17:28 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "a6362ed55def622cddc70a4746a68554d7b687713770de539e59a739b249f8ed"
|
2024-01-21 21:17:28 +01:00
|
|
|
dependencies = [
|
|
|
|
"borsh-derive",
|
2024-08-24 00:35:42 +02:00
|
|
|
"cfg_aliases 0.2.1",
|
2024-01-21 21:17:28 +01:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "borsh-derive"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.5.1"
|
2024-01-21 21:17:28 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "c3ef8005764f53cd4dca619f5bf64cafd4664dada50ece25e4d81de54c80cc0b"
|
2024-01-21 21:17:28 +01:00
|
|
|
dependencies = [
|
|
|
|
"once_cell",
|
|
|
|
"proc-macro-crate",
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2024-08-24 00:35:42 +02:00
|
|
|
"syn 2.0.75",
|
2024-01-21 21:17:28 +01:00
|
|
|
"syn_derive",
|
|
|
|
]
|
|
|
|
|
2023-06-28 19:57:44 +02:00
|
|
|
[[package]]
|
|
|
|
name = "bracoxide"
|
2023-10-07 13:58:26 +02:00
|
|
|
version = "0.1.3"
|
2023-06-28 19:57:44 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 13:58:26 +02:00
|
|
|
checksum = "ada7f35ca622a86a4d6c27be2633fc6c243ecc834859628fcce0681d8e76e1c8"
|
2023-06-28 19:57:44 +02:00
|
|
|
|
2024-04-21 14:36:26 +02:00
|
|
|
[[package]]
|
|
|
|
name = "brotli"
|
|
|
|
version = "5.0.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "19483b140a7ac7174d34b5a581b406c64f84da5409d3e09cf4fff604f9270e67"
|
|
|
|
dependencies = [
|
|
|
|
"alloc-no-stdlib",
|
|
|
|
"alloc-stdlib",
|
2024-06-06 01:26:47 +02:00
|
|
|
"brotli-decompressor",
|
2021-05-18 21:33:10 +02:00
|
|
|
]
|
|
|
|
|
2024-04-21 14:36:26 +02:00
|
|
|
[[package]]
|
|
|
|
name = "brotli-decompressor"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "4.0.1"
|
2024-04-21 14:36:26 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "9a45bd2e4095a8b518033b128020dd4a55aab1c0a381ba4404a472630f4bc362"
|
2024-04-21 14:36:26 +02:00
|
|
|
dependencies = [
|
|
|
|
"alloc-no-stdlib",
|
|
|
|
"alloc-stdlib",
|
|
|
|
]
|
|
|
|
|
2023-03-12 00:35:56 +01:00
|
|
|
[[package]]
|
|
|
|
name = "bstr"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.10.0"
|
2023-03-12 00:35:56 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c"
|
2023-03-12 00:35:56 +01:00
|
|
|
dependencies = [
|
|
|
|
"memchr",
|
2023-10-23 16:11:32 +02:00
|
|
|
"regex-automata",
|
2023-03-12 00:35:56 +01:00
|
|
|
"serde",
|
|
|
|
]
|
|
|
|
|
2019-07-05 00:17:18 +02:00
|
|
|
[[package]]
|
|
|
|
name = "bumpalo"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "3.16.0"
|
2019-07-05 00:17:18 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
|
2019-07-05 00:17:18 +02:00
|
|
|
|
2019-05-15 20:14:51 +02:00
|
|
|
[[package]]
|
|
|
|
name = "byte-unit"
|
2024-01-25 05:57:15 +01:00
|
|
|
version = "5.1.4"
|
2019-05-15 20:14:51 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-25 05:57:15 +01:00
|
|
|
checksum = "33ac19bdf0b2665407c39d82dbc937e951e7e2001609f0fb32edd0af45a2d63e"
|
2020-09-09 00:35:45 +02:00
|
|
|
dependencies = [
|
2024-01-21 21:17:28 +01:00
|
|
|
"rust_decimal",
|
2023-03-12 00:35:56 +01:00
|
|
|
"serde",
|
2020-09-09 00:35:45 +02:00
|
|
|
"utf8-width",
|
|
|
|
]
|
2019-05-15 20:14:51 +02:00
|
|
|
|
2024-01-21 21:17:28 +01:00
|
|
|
[[package]]
|
|
|
|
name = "bytecheck"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "0.6.12"
|
2024-01-21 21:17:28 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2"
|
2024-01-21 21:17:28 +01:00
|
|
|
dependencies = [
|
|
|
|
"bytecheck_derive",
|
|
|
|
"ptr_meta",
|
|
|
|
"simdutf8",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "bytecheck_derive"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "0.6.12"
|
2024-01-21 21:17:28 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659"
|
2024-01-21 21:17:28 +01:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn 1.0.109",
|
|
|
|
]
|
|
|
|
|
2022-07-06 21:57:40 +02:00
|
|
|
[[package]]
|
|
|
|
name = "bytecount"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
version = "0.6.8"
|
2022-07-06 21:57:40 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
checksum = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce"
|
2022-07-06 21:57:40 +02:00
|
|
|
|
2022-02-27 17:10:29 +01:00
|
|
|
[[package]]
|
|
|
|
name = "bytemuck"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.17.0"
|
2022-02-27 17:10:29 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "6fd4c6dcc3b0aea2f5c0b4b82c2b15fe39ddbc76041a310848f4706edf76bb31"
|
2022-02-27 17:10:29 +01:00
|
|
|
dependencies = [
|
|
|
|
"bytemuck_derive",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "bytemuck_derive"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.7.1"
|
2022-02-27 17:10:29 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "0cc8b54b395f2fcfbb3d90c47b01c7f444d94d05bdeb775811dec868ac3bbc26"
|
2022-02-27 17:10:29 +01:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2024-08-24 00:35:42 +02:00
|
|
|
"syn 2.0.75",
|
2022-02-27 17:10:29 +01:00
|
|
|
]
|
|
|
|
|
2020-12-30 18:16:02 +01:00
|
|
|
[[package]]
|
2019-05-10 18:59:12 +02:00
|
|
|
name = "byteorder"
|
2023-10-10 14:57:36 +02:00
|
|
|
version = "1.5.0"
|
2019-05-10 18:59:12 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-10 14:57:36 +02:00
|
|
|
checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
|
2019-05-10 18:59:12 +02:00
|
|
|
|
2019-05-24 20:48:33 +02:00
|
|
|
[[package]]
|
|
|
|
name = "bytes"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.7.1"
|
2022-01-04 03:01:18 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50"
|
2022-01-04 03:01:18 +01:00
|
|
|
|
2021-10-12 22:22:12 +02:00
|
|
|
[[package]]
|
|
|
|
name = "bytesize"
|
2023-09-11 11:55:21 +02:00
|
|
|
version = "1.3.0"
|
2021-10-12 22:22:12 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-09-11 11:55:21 +02:00
|
|
|
checksum = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc"
|
2021-01-19 21:24:27 +01:00
|
|
|
|
2019-11-17 04:18:41 +01:00
|
|
|
[[package]]
|
|
|
|
name = "calamine"
|
2024-02-17 16:05:55 +01:00
|
|
|
version = "0.24.0"
|
2019-11-17 04:18:41 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-02-17 16:05:55 +01:00
|
|
|
checksum = "8a3a315226fdc5b1c3e33521073e1712a05944bc0664d665ff1f6ff0396334da"
|
2019-11-17 04:18:41 +01:00
|
|
|
dependencies = [
|
2019-11-28 03:21:00 +01:00
|
|
|
"byteorder",
|
2024-02-24 14:25:51 +01:00
|
|
|
"chrono",
|
2019-11-28 03:21:00 +01:00
|
|
|
"codepage",
|
|
|
|
"encoding_rs",
|
2021-07-09 21:28:07 +02:00
|
|
|
"log",
|
2024-02-24 14:25:51 +01:00
|
|
|
"once_cell",
|
2024-08-05 23:07:15 +02:00
|
|
|
"quick-xml 0.31.0",
|
2021-08-28 05:34:11 +02:00
|
|
|
"serde",
|
2019-11-28 03:21:00 +01:00
|
|
|
"zip",
|
2019-11-17 04:18:41 +01:00
|
|
|
]
|
|
|
|
|
[MVP][WIP] `less` like pager (#6984)
Run it as `explore`.
#### example
```nu
ls | explore
```
Configuration points in `config.nu` file.
```
# A 'explore' utility config
explore_config: {
highlight: { bg: 'yellow', fg: 'black' }
status_bar: { bg: '#C4C9C6', fg: '#1D1F21' }
command_bar: { fg: '#C4C9C6' }
split_line: '#404040'
cursor: true
# selected_column: 'blue'
# selected_row: { fg: 'yellow', bg: '#C1C2A3' }
# selected_cell: { fg: 'white', bg: '#777777' }
# line_shift: false,
# line_index: false,
# line_head_top: false,
# line_head_bottom: false,
}
```
You can start without a pipeline and type `explore` and it'll give you a
few tips.
![image](https://user-images.githubusercontent.com/343840/205088971-a8c0262f-f222-4641-b13a-027fbd4f5e1a.png)
If you type `:help` you an see the help screen with some information on
what tui keybindings are available.
![image](https://user-images.githubusercontent.com/343840/205089461-c4c54217-7ec4-4fa0-96c0-643d68dc0062.png)
From the `:help` screen you can now hit `i` and that puts you in
`cursor` aka `inspection` mode and you can move the cursor left right up
down and it you put it on an area such as `[table 5 rows]` and hit the
enter key, you'll see something like this, which shows all the `:`
commands. If you hit `esc` it will take you to the previous screen.
![image](https://user-images.githubusercontent.com/343840/205090155-3558a14b-87b7-4072-8dfb-dc8cc2ef4943.png)
If you then type `:try` you'll get this type of window where you can
type in the top portion and see results in the bottom.
![image](https://user-images.githubusercontent.com/343840/205089185-3c065551-0792-43d6-a13c-a52762856209.png)
The `:nu` command is interesting because you can type pipelines like
`:nu ls | sort-by type size` or another pipeline of your choosing such
as `:nu sys` and that will show the table that looks like this, which
we're calling "table mode".
![image](https://user-images.githubusercontent.com/343840/205090809-e686ff0f-6d0b-4347-8ed0-8c59adfbd741.png)
If you hit the `t` key it will now transpose the view to look like this.
![image](https://user-images.githubusercontent.com/343840/205090948-a834d7f2-1713-4dfe-92fe-5432f287df3d.png)
In table mode or transposed table mode you can use the `i` key to
inspect any collapsed field like `{record 8 fields}`, `[table 16 rows]`,
`[list x]`, etc.
One of the original benefits was that when you're in a view that has a
lot of columns, `explore` gives you the ability to scroll left, right,
up, and down.
`explore` is also smart enough to know when you're in table mode versus
preview mode. If you do `open Cargo.toml | explore` you get this.
![image](https://user-images.githubusercontent.com/343840/205091822-cac79130-3a52-4ca8-9210-eba5be30ed58.png)
If you type `open --raw Cargo.toml | explore` you get this where you can
scroll left, right, up, down. This is called preview mode.
![image](https://user-images.githubusercontent.com/343840/205091990-69455191-ab78-4fea-a961-feafafc16d70.png)
When you're in table mode, you can also type `:preview`. So, with `open
--raw Cargo.toml | explore`, if you type `:preview`, it will look like
this.
![image](https://user-images.githubusercontent.com/343840/205092569-436aa55a-0474-48d5-ab71-baddb1f43027.png)
Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2022-12-01 16:32:10 +01:00
|
|
|
[[package]]
|
|
|
|
name = "cassowary"
|
|
|
|
version = "0.3.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53"
|
|
|
|
|
2024-02-08 01:15:45 +01:00
|
|
|
[[package]]
|
|
|
|
name = "castaway"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.2.3"
|
2024-02-08 01:15:45 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "0abae9be0aaf9ea96a3b1b8b1b55c602ca751eba1b1500220cea4ecbafe7c0d5"
|
2024-02-08 01:15:45 +01:00
|
|
|
dependencies = [
|
|
|
|
"rustversion",
|
|
|
|
]
|
|
|
|
|
2019-05-10 18:59:12 +02:00
|
|
|
[[package]]
|
|
|
|
name = "cc"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.1.14"
|
2019-05-10 18:59:12 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "50d2eb3cd3d1bf4529e31c215ee6f93ec5a3d536d9f578f93d9d33ee19562932"
|
2019-09-13 05:44:21 +02:00
|
|
|
dependencies = [
|
2019-11-28 03:21:00 +01:00
|
|
|
"jobserver",
|
2023-10-07 13:58:26 +02:00
|
|
|
"libc",
|
2024-08-24 00:35:42 +02:00
|
|
|
"shlex",
|
2019-09-13 05:44:21 +02:00
|
|
|
]
|
2019-05-10 18:59:12 +02:00
|
|
|
|
2022-07-11 18:18:06 +02:00
|
|
|
[[package]]
|
|
|
|
name = "cexpr"
|
|
|
|
version = "0.6.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
|
|
|
|
dependencies = [
|
2023-01-04 23:50:18 +01:00
|
|
|
"nom",
|
2022-07-11 18:18:06 +02:00
|
|
|
]
|
|
|
|
|
2019-05-10 18:59:12 +02:00
|
|
|
[[package]]
|
|
|
|
name = "cfg-if"
|
2020-11-22 01:37:16 +01:00
|
|
|
version = "1.0.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
|
|
|
|
2024-01-21 21:17:28 +01:00
|
|
|
[[package]]
|
|
|
|
name = "cfg_aliases"
|
|
|
|
version = "0.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
|
|
|
|
|
2024-08-24 00:35:42 +02:00
|
|
|
[[package]]
|
|
|
|
name = "cfg_aliases"
|
|
|
|
version = "0.2.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
|
|
|
|
|
2023-08-25 02:21:17 +02:00
|
|
|
[[package]]
|
|
|
|
name = "chardetng"
|
|
|
|
version = "0.1.17"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "14b8f0b65b7b08ae3c8187e8d77174de20cb6777864c6b832d8ad365999cf1ea"
|
|
|
|
dependencies = [
|
|
|
|
"cfg-if",
|
|
|
|
"encoding_rs",
|
|
|
|
"memchr",
|
|
|
|
]
|
|
|
|
|
2023-12-06 01:09:34 +01:00
|
|
|
[[package]]
|
|
|
|
name = "charset"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.1.5"
|
2023-12-06 01:09:34 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "f1f927b07c74ba84c7e5fe4db2baeb3e996ab2688992e39ac68ce3220a677c7e"
|
2023-12-06 01:09:34 +01:00
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"base64 0.22.1",
|
2023-12-06 01:09:34 +01:00
|
|
|
"encoding_rs",
|
|
|
|
]
|
|
|
|
|
2019-05-10 18:59:12 +02:00
|
|
|
[[package]]
|
|
|
|
name = "chrono"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
version = "0.4.38"
|
2019-05-10 18:59:12 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
|
2019-05-10 18:59:12 +02:00
|
|
|
dependencies = [
|
2023-07-06 17:31:31 +02:00
|
|
|
"android-tzdata",
|
2022-08-13 20:21:28 +02:00
|
|
|
"iana-time-zone",
|
2023-11-16 00:43:37 +01:00
|
|
|
"js-sys",
|
2021-08-28 05:34:11 +02:00
|
|
|
"num-traits",
|
2022-08-14 15:07:04 +02:00
|
|
|
"pure-rust-locales",
|
2021-08-28 05:34:11 +02:00
|
|
|
"serde",
|
2023-11-16 00:43:37 +01:00
|
|
|
"wasm-bindgen",
|
2024-08-24 00:35:42 +02:00
|
|
|
"windows-targets 0.52.6",
|
2019-05-10 18:59:12 +02:00
|
|
|
]
|
|
|
|
|
2021-07-25 10:38:45 +02:00
|
|
|
[[package]]
|
|
|
|
name = "chrono-humanize"
|
2023-08-25 10:54:01 +02:00
|
|
|
version = "0.2.3"
|
2021-07-25 10:38:45 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-08-25 10:54:01 +02:00
|
|
|
checksum = "799627e6b4d27827a814e837b9d8a504832086081806d45b1afa34dc982b023b"
|
2021-07-25 10:38:45 +02:00
|
|
|
dependencies = [
|
|
|
|
"chrono",
|
|
|
|
]
|
|
|
|
|
2020-08-05 23:34:28 +02:00
|
|
|
[[package]]
|
|
|
|
name = "chrono-tz"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "0.8.6"
|
2021-11-02 04:08:05 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "d59ae0466b83e838b81a54256c39d5d7c20b9d7daa10510a242d9b75abd5936e"
|
2021-11-02 04:08:05 +01:00
|
|
|
dependencies = [
|
|
|
|
"chrono",
|
2024-04-13 20:00:04 +02:00
|
|
|
"chrono-tz-build 0.2.1",
|
|
|
|
"phf 0.11.2",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "chrono-tz"
|
|
|
|
version = "0.9.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "93698b29de5e97ad0ae26447b344c482a7284c737d9ddc5f9e52b74a336671bb"
|
|
|
|
dependencies = [
|
|
|
|
"chrono",
|
|
|
|
"chrono-tz-build 0.3.0",
|
2023-07-06 17:31:31 +02:00
|
|
|
"phf 0.11.2",
|
2021-11-02 04:08:05 +01:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "chrono-tz-build"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
version = "0.2.1"
|
2021-11-02 04:08:05 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
checksum = "433e39f13c9a060046954e0592a8d0a4bcb1040125cbf91cb8ee58964cfb350f"
|
2021-11-02 04:08:05 +01:00
|
|
|
dependencies = [
|
|
|
|
"parse-zoneinfo",
|
2023-07-06 17:31:31 +02:00
|
|
|
"phf 0.11.2",
|
|
|
|
"phf_codegen 0.11.2",
|
2021-06-03 08:25:28 +02:00
|
|
|
]
|
|
|
|
|
2024-04-13 20:00:04 +02:00
|
|
|
[[package]]
|
|
|
|
name = "chrono-tz-build"
|
|
|
|
version = "0.3.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "0c088aee841df9c3041febbb73934cfc39708749bf96dc827e3359cd39ef11b1"
|
|
|
|
dependencies = [
|
|
|
|
"parse-zoneinfo",
|
|
|
|
"phf 0.11.2",
|
|
|
|
"phf_codegen 0.11.2",
|
|
|
|
]
|
|
|
|
|
2023-12-06 01:09:34 +01:00
|
|
|
[[package]]
|
|
|
|
name = "chumsky"
|
|
|
|
version = "0.9.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "8eebd66744a15ded14960ab4ccdbfb51ad3b81f51f3f04a80adac98c985396c9"
|
|
|
|
dependencies = [
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
"hashbrown 0.14.5",
|
2023-12-06 01:09:34 +01:00
|
|
|
"stacker",
|
|
|
|
]
|
|
|
|
|
2022-07-11 18:18:06 +02:00
|
|
|
[[package]]
|
|
|
|
name = "clang-sys"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.8.1"
|
2022-07-11 18:18:06 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4"
|
2022-07-11 18:18:06 +02:00
|
|
|
dependencies = [
|
|
|
|
"glob",
|
|
|
|
"libc",
|
|
|
|
"libloading",
|
|
|
|
]
|
|
|
|
|
2022-08-23 18:49:51 +02:00
|
|
|
[[package]]
|
|
|
|
name = "clap"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "4.5.16"
|
2022-08-23 18:49:51 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019"
|
2022-08-23 18:49:51 +02:00
|
|
|
dependencies = [
|
2023-06-07 15:29:54 +02:00
|
|
|
"clap_builder",
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
"clap_derive",
|
2023-06-07 15:29:54 +02:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "clap_builder"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "4.5.15"
|
2023-06-07 15:29:54 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6"
|
2023-06-07 15:29:54 +02:00
|
|
|
dependencies = [
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
"anstream",
|
2023-06-07 15:29:54 +02:00
|
|
|
"anstyle",
|
2023-01-05 20:39:54 +01:00
|
|
|
"clap_lex",
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
"strsim",
|
2024-02-08 02:26:18 +01:00
|
|
|
"terminal_size",
|
2023-01-05 20:39:54 +01:00
|
|
|
]
|
|
|
|
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
[[package]]
|
|
|
|
name = "clap_derive"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "4.5.13"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"heck",
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2024-08-24 00:35:42 +02:00
|
|
|
"syn 2.0.75",
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
]
|
|
|
|
|
2023-01-05 20:39:54 +01:00
|
|
|
[[package]]
|
|
|
|
name = "clap_lex"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.7.2"
|
2023-01-05 20:39:54 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97"
|
2022-08-23 18:49:51 +02:00
|
|
|
|
2024-01-20 15:04:06 +01:00
|
|
|
[[package]]
|
|
|
|
name = "clipboard-win"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "5.4.0"
|
2024-01-20 15:04:06 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "15efe7a882b08f34e38556b14f2fb3daa98769d06c7f0c1b076dfd0d983bc892"
|
2024-01-20 15:04:06 +01:00
|
|
|
dependencies = [
|
|
|
|
"error-code",
|
|
|
|
]
|
|
|
|
|
2019-11-17 04:18:41 +01:00
|
|
|
[[package]]
|
|
|
|
name = "codepage"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.1.2"
|
2019-11-17 04:18:41 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "48f68d061bc2828ae826206326e61251aca94c1e4a5305cf52d9138639c918b4"
|
2019-11-17 04:18:41 +01:00
|
|
|
dependencies = [
|
2019-11-28 03:21:00 +01:00
|
|
|
"encoding_rs",
|
2019-11-17 04:18:41 +01:00
|
|
|
]
|
|
|
|
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
[[package]]
|
|
|
|
name = "colorchoice"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.0.2"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "colorz"
|
|
|
|
version = "1.1.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "bc2a5df6ee18d52a36920c93a7736761c6fcffa72b9d960fd9133dd8d57c5184"
|
|
|
|
dependencies = [
|
|
|
|
"supports-color 2.1.0",
|
|
|
|
]
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
|
2024-04-10 02:31:43 +02:00
|
|
|
[[package]]
|
|
|
|
name = "comfy-table"
|
|
|
|
version = "7.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "b34115915337defe99b2aff5c2ce6771e5fbc4079f4b506301f5cf394c8452f7"
|
|
|
|
dependencies = [
|
2024-09-06 16:57:45 +02:00
|
|
|
"crossterm 0.27.0",
|
2024-04-10 02:31:43 +02:00
|
|
|
"strum",
|
2024-06-06 01:26:47 +02:00
|
|
|
"strum_macros",
|
2024-04-10 02:31:43 +02:00
|
|
|
"unicode-width",
|
|
|
|
]
|
|
|
|
|
2024-02-08 01:15:45 +01:00
|
|
|
[[package]]
|
|
|
|
name = "compact_str"
|
|
|
|
version = "0.7.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f86b9c4c00838774a6d902ef931eff7470720c51d90c2e32cfe15dc304737b3f"
|
|
|
|
dependencies = [
|
|
|
|
"castaway",
|
|
|
|
"cfg-if",
|
|
|
|
"itoa",
|
|
|
|
"ryu",
|
|
|
|
"static_assertions",
|
|
|
|
]
|
|
|
|
|
2020-05-18 20:44:27 +02:00
|
|
|
[[package]]
|
2021-10-15 20:37:58 +02:00
|
|
|
name = "console"
|
2024-01-21 04:53:24 +01:00
|
|
|
version = "0.15.8"
|
2021-10-15 20:37:58 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 04:53:24 +01:00
|
|
|
checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb"
|
2021-10-15 20:37:58 +02:00
|
|
|
dependencies = [
|
|
|
|
"encode_unicode",
|
2022-10-03 18:40:16 +02:00
|
|
|
"lazy_static",
|
2021-10-15 20:37:58 +02:00
|
|
|
"libc",
|
|
|
|
"unicode-width",
|
2024-01-21 04:53:24 +01:00
|
|
|
"windows-sys 0.52.0",
|
2020-06-16 23:17:32 +02:00
|
|
|
]
|
|
|
|
|
2023-06-13 20:33:00 +02:00
|
|
|
[[package]]
|
|
|
|
name = "const-random"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "0.1.18"
|
2023-06-13 20:33:00 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359"
|
2023-06-13 20:33:00 +02:00
|
|
|
dependencies = [
|
|
|
|
"const-random-macro",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "const-random-macro"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
version = "0.1.16"
|
2023-06-13 20:33:00 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e"
|
2023-06-13 20:33:00 +02:00
|
|
|
dependencies = [
|
2023-07-10 07:28:36 +02:00
|
|
|
"getrandom",
|
2023-06-13 20:33:00 +02:00
|
|
|
"once_cell",
|
|
|
|
"tiny-keccak",
|
|
|
|
]
|
|
|
|
|
2022-04-04 16:59:59 +02:00
|
|
|
[[package]]
|
|
|
|
name = "const_format"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
version = "0.2.32"
|
2022-04-04 16:59:59 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
checksum = "e3a214c7af3d04997541b18d432afaff4c455e79e2029079647e72fc2bd27673"
|
2022-04-04 16:59:59 +02:00
|
|
|
dependencies = [
|
|
|
|
"const_format_proc_macros",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "const_format_proc_macros"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
version = "0.2.32"
|
2022-04-04 16:59:59 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
checksum = "c7f6ff08fd20f4f299298a28e2dfa8a8ba1036e6cd2460ac1de7b425d76f2500"
|
2022-04-04 16:59:59 +02:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"unicode-xid",
|
|
|
|
]
|
|
|
|
|
2019-12-14 14:27:14 +01:00
|
|
|
[[package]]
|
|
|
|
name = "core-foundation"
|
2023-12-06 01:09:34 +01:00
|
|
|
version = "0.9.4"
|
2019-12-14 14:27:14 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-12-06 01:09:34 +01:00
|
|
|
checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
|
2019-12-14 14:27:14 +01:00
|
|
|
dependencies = [
|
2021-01-20 08:18:38 +01:00
|
|
|
"core-foundation-sys",
|
2019-11-28 03:21:00 +01:00
|
|
|
"libc",
|
2019-06-08 20:09:17 +02:00
|
|
|
]
|
|
|
|
|
2020-11-22 01:37:16 +01:00
|
|
|
[[package]]
|
|
|
|
name = "core-foundation-sys"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.8.7"
|
2020-11-22 01:37:16 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
|
2020-11-22 01:37:16 +01:00
|
|
|
|
Autoenv rewrite, security and scripting (#2083)
* Add args in .nurc file to environment
* Working dummy version
* Add add_nurc to sync_env command
* Parse .nurc file
* Delete env vars after leaving directory
* Removing vals not working, strangely
* Refactoring, add comment
* Debugging
* Debug by logging to file
* Add and remove env var behavior appears correct
However, it does not use existing code that well.
* Move work to cli.rs
* Parse config directories
* I am in a state of distress
* Rename .nurc to .nu
* Some notes for me
* Refactoring
* Removing vars works, but not done in a very nice fashion
* Refactor env_vars_to_delete
* Refactor env_vars_to_add()
* Move directory environment code to separate file
* Refactor from_config
* Restore env values
* Working?
* Working?
* Update comments and change var name
* Formatting
* Remove vars after leaving dir
* Remove notes I made
* Rename config function
* Clippy
* Cleanup and handle errors
* cargo fmt
* Better error messages, remove last (?) unwrap
* FORMAT PLZ
* Rename whitelisted_directories to allowed_directories
* Add comment to clarify how overwritten values are restored.
* Change list of allowed dirs to indexmap
* Rewrite starting
* rewrite everything
* Overwritten env values tracks an indexmap instead of vector
* Refactor restore function
* Untrack removed vars properly
* Performance concerns
* Performance concerns
* Error handling
* Clippy
* Add type aliases for String and OsString
* Deletion almost works
* Working?
* Error handling and refactoring
* nicer errors
* Add TODO file
* Move outside of loop
* Error handling
* Reworking adding of vars
* Reworking adding of vars
* Ready for testing
* Refactoring
* Restore overwritten vals code
* todo.org
* Remove overwritten values tracking, as it is not needed
* Cleanup, stop tracking overwritten values as nu takes care of it
* Init autoenv command
* Initialize autoenv and autoenv trust
* autoenv trust toml
* toml
* Use serde for autoenv
* Optional directory arg
* Add autoenv untrust command
* ... actually add autoenv untrust this time
* OsString and paths
* Revert "OsString and paths"
This reverts commit e6eedf882498c1365ecfc899e5ec11bd83cb055c.
* Fix path
* Fix path
* Autoenv trust and untrust
* Start using autoenv
* Check hashes
* Use trust functionality when setting vars
* Remove unused code
* Clippy
* Nicer errors for autoenv commands
* Non-working errors
* Update error description
* Satisfy fmt
* Errors
* Errors print, but not nicely
* Nicer errors
* fmt
* Delete accidentally added todo.org file
* Rename direnv to autoenv
* Use ShellError instead of Error
* Change tests to pass, danger zone?
* Clippy and errors
* Clippy... again
* Replace match with or_else
* Use sha2 crate for hashing
* parsing and error msg
* Refactoring
* Only apply vars once
* if parent dir
* Delete vars
* Rework exit code
* Adding works
* restore
* Fix possibility of infinite loop
* Refactoring
* Non-working
* Revert "Non-working"
This reverts commit e231b85570bcb3fc838f950e9f5004c6a7c5a2ac.
* Revert "Revert "Non-working""
This reverts commit 804092e46a752266576b044401cc97c317e41f21.
* Autoenv trust works without restart
* Cargo fix
* Script vars
* Serde
* Serde errors
* Entry and exitscripts
* Clippy
* Support windows and handle errors
* Formatting
* Fix infinite loop on windows
* Debugging windows loop
* More windows infinite loop debugging
* Windows loop debugging #3
* windows loop #4
* Don't return err
* Cleanup unused code
* Infinite loop debug
* Loop debugging
* Check if infinite loop is vars_to_add
* env_vars_to_add does not terminate, skip loop as test
* Hypothesis: std::env::current_dir() is messing with something
* Hypothesis: std::env::current_dir() is messing with something
* plz
* make clippy happy
* debugging in env_vars_to_add
* Debbuging env_vars_to_add #2
* clippy
* clippy..
* Fool clippy
* Fix another infinite loop
* Binary search for error location x)
* Binary search #3
* fmt
* Binary search #4
* more searching...
* closing in... maybe
* PLZ
* Cleanup
* Restore commented out functionality
* Handle case when user gives the directory "."
* fmt
* Use fs::canonicalize for paths
* Create optional script section
* fmt
* Add exitscripts even if no entryscripts are defined
* All sections in .nu-env are now optional
* Re-read config file each directory change
* Hot reload after autoenv untrust, don't run exitscripts if untrusted
* Debugging
* Fix issue with recursive adding of vars
* Thank you for finding my issues Mr. Azure
* use std::env
2020-07-05 19:34:00 +02:00
|
|
|
[[package]]
|
2021-06-03 08:23:14 +02:00
|
|
|
name = "cpufeatures"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.2.13"
|
Autoenv rewrite, security and scripting (#2083)
* Add args in .nurc file to environment
* Working dummy version
* Add add_nurc to sync_env command
* Parse .nurc file
* Delete env vars after leaving directory
* Removing vals not working, strangely
* Refactoring, add comment
* Debugging
* Debug by logging to file
* Add and remove env var behavior appears correct
However, it does not use existing code that well.
* Move work to cli.rs
* Parse config directories
* I am in a state of distress
* Rename .nurc to .nu
* Some notes for me
* Refactoring
* Removing vars works, but not done in a very nice fashion
* Refactor env_vars_to_delete
* Refactor env_vars_to_add()
* Move directory environment code to separate file
* Refactor from_config
* Restore env values
* Working?
* Working?
* Update comments and change var name
* Formatting
* Remove vars after leaving dir
* Remove notes I made
* Rename config function
* Clippy
* Cleanup and handle errors
* cargo fmt
* Better error messages, remove last (?) unwrap
* FORMAT PLZ
* Rename whitelisted_directories to allowed_directories
* Add comment to clarify how overwritten values are restored.
* Change list of allowed dirs to indexmap
* Rewrite starting
* rewrite everything
* Overwritten env values tracks an indexmap instead of vector
* Refactor restore function
* Untrack removed vars properly
* Performance concerns
* Performance concerns
* Error handling
* Clippy
* Add type aliases for String and OsString
* Deletion almost works
* Working?
* Error handling and refactoring
* nicer errors
* Add TODO file
* Move outside of loop
* Error handling
* Reworking adding of vars
* Reworking adding of vars
* Ready for testing
* Refactoring
* Restore overwritten vals code
* todo.org
* Remove overwritten values tracking, as it is not needed
* Cleanup, stop tracking overwritten values as nu takes care of it
* Init autoenv command
* Initialize autoenv and autoenv trust
* autoenv trust toml
* toml
* Use serde for autoenv
* Optional directory arg
* Add autoenv untrust command
* ... actually add autoenv untrust this time
* OsString and paths
* Revert "OsString and paths"
This reverts commit e6eedf882498c1365ecfc899e5ec11bd83cb055c.
* Fix path
* Fix path
* Autoenv trust and untrust
* Start using autoenv
* Check hashes
* Use trust functionality when setting vars
* Remove unused code
* Clippy
* Nicer errors for autoenv commands
* Non-working errors
* Update error description
* Satisfy fmt
* Errors
* Errors print, but not nicely
* Nicer errors
* fmt
* Delete accidentally added todo.org file
* Rename direnv to autoenv
* Use ShellError instead of Error
* Change tests to pass, danger zone?
* Clippy and errors
* Clippy... again
* Replace match with or_else
* Use sha2 crate for hashing
* parsing and error msg
* Refactoring
* Only apply vars once
* if parent dir
* Delete vars
* Rework exit code
* Adding works
* restore
* Fix possibility of infinite loop
* Refactoring
* Non-working
* Revert "Non-working"
This reverts commit e231b85570bcb3fc838f950e9f5004c6a7c5a2ac.
* Revert "Revert "Non-working""
This reverts commit 804092e46a752266576b044401cc97c317e41f21.
* Autoenv trust works without restart
* Cargo fix
* Script vars
* Serde
* Serde errors
* Entry and exitscripts
* Clippy
* Support windows and handle errors
* Formatting
* Fix infinite loop on windows
* Debugging windows loop
* More windows infinite loop debugging
* Windows loop debugging #3
* windows loop #4
* Don't return err
* Cleanup unused code
* Infinite loop debug
* Loop debugging
* Check if infinite loop is vars_to_add
* env_vars_to_add does not terminate, skip loop as test
* Hypothesis: std::env::current_dir() is messing with something
* Hypothesis: std::env::current_dir() is messing with something
* plz
* make clippy happy
* debugging in env_vars_to_add
* Debbuging env_vars_to_add #2
* clippy
* clippy..
* Fool clippy
* Fix another infinite loop
* Binary search for error location x)
* Binary search #3
* fmt
* Binary search #4
* more searching...
* closing in... maybe
* PLZ
* Cleanup
* Restore commented out functionality
* Handle case when user gives the directory "."
* fmt
* Use fs::canonicalize for paths
* Create optional script section
* fmt
* Add exitscripts even if no entryscripts are defined
* All sections in .nu-env are now optional
* Re-read config file each directory change
* Hot reload after autoenv untrust, don't run exitscripts if untrusted
* Debugging
* Fix issue with recursive adding of vars
* Thank you for finding my issues Mr. Azure
* use std::env
2020-07-05 19:34:00 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad"
|
2021-06-03 08:23:14 +02:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
]
|
Autoenv rewrite, security and scripting (#2083)
* Add args in .nurc file to environment
* Working dummy version
* Add add_nurc to sync_env command
* Parse .nurc file
* Delete env vars after leaving directory
* Removing vals not working, strangely
* Refactoring, add comment
* Debugging
* Debug by logging to file
* Add and remove env var behavior appears correct
However, it does not use existing code that well.
* Move work to cli.rs
* Parse config directories
* I am in a state of distress
* Rename .nurc to .nu
* Some notes for me
* Refactoring
* Removing vars works, but not done in a very nice fashion
* Refactor env_vars_to_delete
* Refactor env_vars_to_add()
* Move directory environment code to separate file
* Refactor from_config
* Restore env values
* Working?
* Working?
* Update comments and change var name
* Formatting
* Remove vars after leaving dir
* Remove notes I made
* Rename config function
* Clippy
* Cleanup and handle errors
* cargo fmt
* Better error messages, remove last (?) unwrap
* FORMAT PLZ
* Rename whitelisted_directories to allowed_directories
* Add comment to clarify how overwritten values are restored.
* Change list of allowed dirs to indexmap
* Rewrite starting
* rewrite everything
* Overwritten env values tracks an indexmap instead of vector
* Refactor restore function
* Untrack removed vars properly
* Performance concerns
* Performance concerns
* Error handling
* Clippy
* Add type aliases for String and OsString
* Deletion almost works
* Working?
* Error handling and refactoring
* nicer errors
* Add TODO file
* Move outside of loop
* Error handling
* Reworking adding of vars
* Reworking adding of vars
* Ready for testing
* Refactoring
* Restore overwritten vals code
* todo.org
* Remove overwritten values tracking, as it is not needed
* Cleanup, stop tracking overwritten values as nu takes care of it
* Init autoenv command
* Initialize autoenv and autoenv trust
* autoenv trust toml
* toml
* Use serde for autoenv
* Optional directory arg
* Add autoenv untrust command
* ... actually add autoenv untrust this time
* OsString and paths
* Revert "OsString and paths"
This reverts commit e6eedf882498c1365ecfc899e5ec11bd83cb055c.
* Fix path
* Fix path
* Autoenv trust and untrust
* Start using autoenv
* Check hashes
* Use trust functionality when setting vars
* Remove unused code
* Clippy
* Nicer errors for autoenv commands
* Non-working errors
* Update error description
* Satisfy fmt
* Errors
* Errors print, but not nicely
* Nicer errors
* fmt
* Delete accidentally added todo.org file
* Rename direnv to autoenv
* Use ShellError instead of Error
* Change tests to pass, danger zone?
* Clippy and errors
* Clippy... again
* Replace match with or_else
* Use sha2 crate for hashing
* parsing and error msg
* Refactoring
* Only apply vars once
* if parent dir
* Delete vars
* Rework exit code
* Adding works
* restore
* Fix possibility of infinite loop
* Refactoring
* Non-working
* Revert "Non-working"
This reverts commit e231b85570bcb3fc838f950e9f5004c6a7c5a2ac.
* Revert "Revert "Non-working""
This reverts commit 804092e46a752266576b044401cc97c317e41f21.
* Autoenv trust works without restart
* Cargo fix
* Script vars
* Serde
* Serde errors
* Entry and exitscripts
* Clippy
* Support windows and handle errors
* Formatting
* Fix infinite loop on windows
* Debugging windows loop
* More windows infinite loop debugging
* Windows loop debugging #3
* windows loop #4
* Don't return err
* Cleanup unused code
* Infinite loop debug
* Loop debugging
* Check if infinite loop is vars_to_add
* env_vars_to_add does not terminate, skip loop as test
* Hypothesis: std::env::current_dir() is messing with something
* Hypothesis: std::env::current_dir() is messing with something
* plz
* make clippy happy
* debugging in env_vars_to_add
* Debbuging env_vars_to_add #2
* clippy
* clippy..
* Fool clippy
* Fix another infinite loop
* Binary search for error location x)
* Binary search #3
* fmt
* Binary search #4
* more searching...
* closing in... maybe
* PLZ
* Cleanup
* Restore commented out functionality
* Handle case when user gives the directory "."
* fmt
* Use fs::canonicalize for paths
* Create optional script section
* fmt
* Add exitscripts even if no entryscripts are defined
* All sections in .nu-env are now optional
* Re-read config file each directory change
* Hot reload after autoenv untrust, don't run exitscripts if untrusted
* Debugging
* Fix issue with recursive adding of vars
* Thank you for finding my issues Mr. Azure
* use std::env
2020-07-05 19:34:00 +02:00
|
|
|
|
2023-08-16 03:31:49 +02:00
|
|
|
[[package]]
|
|
|
|
name = "crc"
|
|
|
|
version = "2.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "49fc9a695bca7f35f5f4c15cddc84415f66a74ea78eef08e90c5024f2b540e23"
|
|
|
|
dependencies = [
|
|
|
|
"crc-catalog",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "crc-catalog"
|
|
|
|
version = "1.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "ccaeedb56da03b09f598226e25e80088cb4cd25f316e6e4df7d695f0feeb1403"
|
|
|
|
|
2019-05-18 03:24:13 +02:00
|
|
|
[[package]]
|
|
|
|
name = "crc32fast"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.4.2"
|
2019-05-18 03:24:13 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
|
2021-11-19 20:23:35 +01:00
|
|
|
dependencies = [
|
2023-07-05 14:14:55 +02:00
|
|
|
"cfg-if",
|
2019-05-18 03:24:13 +02:00
|
|
|
]
|
|
|
|
|
2020-08-27 07:58:01 +02:00
|
|
|
[[package]]
|
|
|
|
name = "crossbeam-channel"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.5.13"
|
2020-08-27 07:58:01 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2"
|
2021-10-01 08:53:47 +02:00
|
|
|
dependencies = [
|
2021-07-09 21:28:07 +02:00
|
|
|
"crossbeam-utils",
|
2019-10-08 15:47:30 +02:00
|
|
|
]
|
|
|
|
|
2020-11-22 01:37:16 +01:00
|
|
|
[[package]]
|
|
|
|
name = "crossbeam-deque"
|
2024-01-21 04:53:24 +01:00
|
|
|
version = "0.8.5"
|
2020-11-22 01:37:16 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 04:53:24 +01:00
|
|
|
checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
|
2020-11-22 01:37:16 +01:00
|
|
|
dependencies = [
|
2021-07-09 21:28:07 +02:00
|
|
|
"crossbeam-epoch",
|
|
|
|
"crossbeam-utils",
|
2019-10-08 15:47:30 +02:00
|
|
|
]
|
|
|
|
|
2020-11-22 01:37:16 +01:00
|
|
|
[[package]]
|
|
|
|
name = "crossbeam-epoch"
|
2024-01-21 04:53:24 +01:00
|
|
|
version = "0.9.18"
|
2020-11-22 01:37:16 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 04:53:24 +01:00
|
|
|
checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
|
2021-10-01 08:53:47 +02:00
|
|
|
dependencies = [
|
2021-07-09 21:28:07 +02:00
|
|
|
"crossbeam-utils",
|
2020-11-22 01:37:16 +01:00
|
|
|
]
|
|
|
|
|
2023-10-11 21:28:18 +02:00
|
|
|
[[package]]
|
|
|
|
name = "crossbeam-queue"
|
2024-01-21 04:53:24 +01:00
|
|
|
version = "0.3.11"
|
2023-10-11 21:28:18 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 04:53:24 +01:00
|
|
|
checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35"
|
2023-10-11 21:28:18 +02:00
|
|
|
dependencies = [
|
|
|
|
"crossbeam-utils",
|
|
|
|
]
|
|
|
|
|
2020-11-22 01:37:16 +01:00
|
|
|
[[package]]
|
|
|
|
name = "crossbeam-utils"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.8.20"
|
2020-11-22 01:37:16 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
|
2019-05-22 09:12:03 +02:00
|
|
|
|
2023-09-04 02:22:25 +02:00
|
|
|
[[package]]
|
|
|
|
name = "crossterm"
|
|
|
|
version = "0.27.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df"
|
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"bitflags 2.6.0",
|
2023-09-04 02:22:25 +02:00
|
|
|
"crossterm_winapi",
|
|
|
|
"libc",
|
2024-08-24 00:35:42 +02:00
|
|
|
"mio 0.8.11",
|
2023-09-04 02:22:25 +02:00
|
|
|
"parking_lot",
|
2024-09-06 16:57:45 +02:00
|
|
|
"signal-hook",
|
|
|
|
"signal-hook-mio",
|
|
|
|
"winapi",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "crossterm"
|
|
|
|
version = "0.28.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6"
|
|
|
|
dependencies = [
|
|
|
|
"bitflags 2.6.0",
|
|
|
|
"crossterm_winapi",
|
|
|
|
"mio 1.0.2",
|
|
|
|
"parking_lot",
|
|
|
|
"rustix",
|
2023-04-14 22:14:57 +02:00
|
|
|
"serde",
|
2021-08-30 20:36:07 +02:00
|
|
|
"signal-hook",
|
|
|
|
"signal-hook-mio",
|
2023-07-05 14:14:55 +02:00
|
|
|
"winapi",
|
2020-09-30 20:27:52 +02:00
|
|
|
]
|
|
|
|
|
2021-01-07 01:38:22 +01:00
|
|
|
[[package]]
|
|
|
|
name = "crossterm_winapi"
|
2023-07-06 17:31:31 +02:00
|
|
|
version = "0.9.1"
|
2021-08-30 20:36:07 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-07-06 17:31:31 +02:00
|
|
|
checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b"
|
2021-08-30 20:36:07 +02:00
|
|
|
dependencies = [
|
2023-07-05 14:14:55 +02:00
|
|
|
"winapi",
|
2021-01-07 01:38:22 +01:00
|
|
|
]
|
|
|
|
|
2023-06-13 20:33:00 +02:00
|
|
|
[[package]]
|
|
|
|
name = "crunchy"
|
|
|
|
version = "0.2.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
|
|
|
|
|
2020-08-12 19:20:22 +02:00
|
|
|
[[package]]
|
2021-12-11 00:14:28 +01:00
|
|
|
name = "crypto-common"
|
2022-07-26 04:09:32 +02:00
|
|
|
version = "0.1.6"
|
2021-12-11 00:14:28 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-07-26 04:09:32 +02:00
|
|
|
checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
|
2021-12-11 00:14:28 +01:00
|
|
|
dependencies = [
|
2022-07-19 19:35:25 +02:00
|
|
|
"generic-array",
|
2022-03-10 21:58:11 +01:00
|
|
|
"typenum",
|
2021-03-03 19:18:11 +01:00
|
|
|
]
|
|
|
|
|
2020-11-03 22:46:42 +01:00
|
|
|
[[package]]
|
|
|
|
name = "cssparser"
|
2023-07-10 07:28:36 +02:00
|
|
|
version = "0.31.2"
|
2020-11-03 22:46:42 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-07-10 07:28:36 +02:00
|
|
|
checksum = "5b3df4f93e5fbbe73ec01ec8d3f68bba73107993a5b1e7519273c32db9b0d5be"
|
2020-11-03 22:46:42 +01:00
|
|
|
dependencies = [
|
|
|
|
"cssparser-macros",
|
|
|
|
"dtoa-short",
|
2023-03-06 04:37:22 +01:00
|
|
|
"itoa",
|
2023-07-10 07:28:36 +02:00
|
|
|
"phf 0.11.2",
|
2021-07-09 21:28:07 +02:00
|
|
|
"smallvec",
|
2020-11-03 22:46:42 +01:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "cssparser-macros"
|
2023-07-06 17:31:31 +02:00
|
|
|
version = "0.6.1"
|
2020-11-03 22:46:42 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-07-06 17:31:31 +02:00
|
|
|
checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
|
2020-11-03 22:46:42 +01:00
|
|
|
dependencies = [
|
2021-08-28 05:34:11 +02:00
|
|
|
"quote",
|
2024-08-24 00:35:42 +02:00
|
|
|
"syn 2.0.75",
|
2020-11-03 22:46:42 +01:00
|
|
|
]
|
|
|
|
|
2019-05-10 18:59:12 +02:00
|
|
|
[[package]]
|
|
|
|
name = "csv"
|
2023-10-18 23:01:14 +02:00
|
|
|
version = "1.3.0"
|
2019-05-10 18:59:12 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-18 23:01:14 +02:00
|
|
|
checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe"
|
2019-05-10 18:59:12 +02:00
|
|
|
dependencies = [
|
2019-11-28 03:21:00 +01:00
|
|
|
"csv-core",
|
2023-03-06 04:37:22 +01:00
|
|
|
"itoa",
|
2019-11-28 03:21:00 +01:00
|
|
|
"ryu",
|
2021-08-28 05:34:11 +02:00
|
|
|
"serde",
|
2019-05-10 18:59:12 +02:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "csv-core"
|
2023-10-18 23:01:14 +02:00
|
|
|
version = "0.1.11"
|
2019-05-10 18:59:12 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-18 23:01:14 +02:00
|
|
|
checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70"
|
2019-05-10 18:59:12 +02:00
|
|
|
dependencies = [
|
2019-11-28 03:21:00 +01:00
|
|
|
"memchr",
|
2019-05-10 18:59:12 +02:00
|
|
|
]
|
|
|
|
|
2021-10-28 06:13:10 +02:00
|
|
|
[[package]]
|
|
|
|
name = "ctrlc"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "3.4.5"
|
2021-10-28 06:13:10 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "90eeab0aa92f3f9b4e87f258c72b139c207d251f9cbc1080a0086b86a8870dd3"
|
2021-10-28 06:13:10 +02:00
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"nix 0.29.0",
|
|
|
|
"windows-sys 0.59.0",
|
2019-06-07 02:31:22 +02:00
|
|
|
]
|
|
|
|
|
2024-06-29 23:13:31 +02:00
|
|
|
[[package]]
|
|
|
|
name = "curl"
|
|
|
|
version = "0.4.46"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1e2161dd6eba090ff1594084e95fd67aeccf04382ffea77999ea94ed42ec67b6"
|
|
|
|
dependencies = [
|
|
|
|
"curl-sys",
|
|
|
|
"libc",
|
|
|
|
"openssl-probe",
|
|
|
|
"openssl-sys",
|
|
|
|
"schannel",
|
|
|
|
"socket2",
|
|
|
|
"windows-sys 0.52.0",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "curl-sys"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.4.74+curl-8.9.0"
|
2024-06-29 23:13:31 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "8af10b986114528fcdc4b63b6f5f021b7057618411046a4de2ba0f0149a097bf"
|
2024-06-29 23:13:31 +02:00
|
|
|
dependencies = [
|
|
|
|
"cc",
|
|
|
|
"libc",
|
|
|
|
"libz-sys",
|
|
|
|
"openssl-sys",
|
|
|
|
"pkg-config",
|
|
|
|
"vcpkg",
|
|
|
|
"windows-sys 0.52.0",
|
|
|
|
]
|
|
|
|
|
2024-08-23 18:18:51 +02:00
|
|
|
[[package]]
|
|
|
|
name = "data-encoding"
|
|
|
|
version = "2.6.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2"
|
|
|
|
|
2023-10-07 13:58:26 +02:00
|
|
|
[[package]]
|
|
|
|
name = "deranged"
|
2024-01-21 04:53:24 +01:00
|
|
|
version = "0.3.11"
|
2023-10-07 13:58:26 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 04:53:24 +01:00
|
|
|
checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
dependencies = [
|
|
|
|
"powerfmt",
|
|
|
|
]
|
2023-10-07 13:58:26 +02:00
|
|
|
|
2024-01-20 15:04:06 +01:00
|
|
|
[[package]]
|
|
|
|
name = "derive-new"
|
2024-03-27 16:43:37 +01:00
|
|
|
version = "0.6.0"
|
2024-01-20 15:04:06 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-27 16:43:37 +01:00
|
|
|
checksum = "d150dea618e920167e5973d70ae6ece4385b7164e0d799fe7c122dd0a5d912ad"
|
2024-01-20 15:04:06 +01:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2024-08-24 00:35:42 +02:00
|
|
|
"syn 2.0.75",
|
2024-01-20 15:04:06 +01:00
|
|
|
]
|
|
|
|
|
2020-12-30 18:16:02 +01:00
|
|
|
[[package]]
|
2022-02-01 19:45:48 +01:00
|
|
|
name = "derive_more"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.99.18"
|
2022-02-01 19:45:48 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce"
|
2022-02-01 19:45:48 +01:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2024-08-24 00:35:42 +02:00
|
|
|
"syn 2.0.75",
|
2020-08-12 19:20:22 +02:00
|
|
|
]
|
|
|
|
|
Autoenv rewrite, security and scripting (#2083)
* Add args in .nurc file to environment
* Working dummy version
* Add add_nurc to sync_env command
* Parse .nurc file
* Delete env vars after leaving directory
* Removing vals not working, strangely
* Refactoring, add comment
* Debugging
* Debug by logging to file
* Add and remove env var behavior appears correct
However, it does not use existing code that well.
* Move work to cli.rs
* Parse config directories
* I am in a state of distress
* Rename .nurc to .nu
* Some notes for me
* Refactoring
* Removing vars works, but not done in a very nice fashion
* Refactor env_vars_to_delete
* Refactor env_vars_to_add()
* Move directory environment code to separate file
* Refactor from_config
* Restore env values
* Working?
* Working?
* Update comments and change var name
* Formatting
* Remove vars after leaving dir
* Remove notes I made
* Rename config function
* Clippy
* Cleanup and handle errors
* cargo fmt
* Better error messages, remove last (?) unwrap
* FORMAT PLZ
* Rename whitelisted_directories to allowed_directories
* Add comment to clarify how overwritten values are restored.
* Change list of allowed dirs to indexmap
* Rewrite starting
* rewrite everything
* Overwritten env values tracks an indexmap instead of vector
* Refactor restore function
* Untrack removed vars properly
* Performance concerns
* Performance concerns
* Error handling
* Clippy
* Add type aliases for String and OsString
* Deletion almost works
* Working?
* Error handling and refactoring
* nicer errors
* Add TODO file
* Move outside of loop
* Error handling
* Reworking adding of vars
* Reworking adding of vars
* Ready for testing
* Refactoring
* Restore overwritten vals code
* todo.org
* Remove overwritten values tracking, as it is not needed
* Cleanup, stop tracking overwritten values as nu takes care of it
* Init autoenv command
* Initialize autoenv and autoenv trust
* autoenv trust toml
* toml
* Use serde for autoenv
* Optional directory arg
* Add autoenv untrust command
* ... actually add autoenv untrust this time
* OsString and paths
* Revert "OsString and paths"
This reverts commit e6eedf882498c1365ecfc899e5ec11bd83cb055c.
* Fix path
* Fix path
* Autoenv trust and untrust
* Start using autoenv
* Check hashes
* Use trust functionality when setting vars
* Remove unused code
* Clippy
* Nicer errors for autoenv commands
* Non-working errors
* Update error description
* Satisfy fmt
* Errors
* Errors print, but not nicely
* Nicer errors
* fmt
* Delete accidentally added todo.org file
* Rename direnv to autoenv
* Use ShellError instead of Error
* Change tests to pass, danger zone?
* Clippy and errors
* Clippy... again
* Replace match with or_else
* Use sha2 crate for hashing
* parsing and error msg
* Refactoring
* Only apply vars once
* if parent dir
* Delete vars
* Rework exit code
* Adding works
* restore
* Fix possibility of infinite loop
* Refactoring
* Non-working
* Revert "Non-working"
This reverts commit e231b85570bcb3fc838f950e9f5004c6a7c5a2ac.
* Revert "Revert "Non-working""
This reverts commit 804092e46a752266576b044401cc97c317e41f21.
* Autoenv trust works without restart
* Cargo fix
* Script vars
* Serde
* Serde errors
* Entry and exitscripts
* Clippy
* Support windows and handle errors
* Formatting
* Fix infinite loop on windows
* Debugging windows loop
* More windows infinite loop debugging
* Windows loop debugging #3
* windows loop #4
* Don't return err
* Cleanup unused code
* Infinite loop debug
* Loop debugging
* Check if infinite loop is vars_to_add
* env_vars_to_add does not terminate, skip loop as test
* Hypothesis: std::env::current_dir() is messing with something
* Hypothesis: std::env::current_dir() is messing with something
* plz
* make clippy happy
* debugging in env_vars_to_add
* Debbuging env_vars_to_add #2
* clippy
* clippy..
* Fool clippy
* Fix another infinite loop
* Binary search for error location x)
* Binary search #3
* fmt
* Binary search #4
* more searching...
* closing in... maybe
* PLZ
* Cleanup
* Restore commented out functionality
* Handle case when user gives the directory "."
* fmt
* Use fs::canonicalize for paths
* Create optional script section
* fmt
* Add exitscripts even if no entryscripts are defined
* All sections in .nu-env are now optional
* Re-read config file each directory change
* Hot reload after autoenv untrust, don't run exitscripts if untrusted
* Debugging
* Fix issue with recursive adding of vars
* Thank you for finding my issues Mr. Azure
* use std::env
2020-07-05 19:34:00 +02:00
|
|
|
[[package]]
|
2021-10-15 20:37:58 +02:00
|
|
|
name = "dialoguer"
|
2023-09-26 18:00:16 +02:00
|
|
|
version = "0.11.0"
|
2021-10-15 20:37:58 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-09-26 18:00:16 +02:00
|
|
|
checksum = "658bce805d770f407bc62102fca7c2c64ceef2fbcb2b8bd19d2765ce093980de"
|
2021-10-15 20:37:58 +02:00
|
|
|
dependencies = [
|
2021-10-15 20:51:25 +02:00
|
|
|
"console",
|
2023-05-04 19:14:41 +02:00
|
|
|
"fuzzy-matcher",
|
2023-01-16 03:04:47 +01:00
|
|
|
"shell-words",
|
2023-09-26 18:00:16 +02:00
|
|
|
"thiserror",
|
2021-10-15 20:37:58 +02:00
|
|
|
]
|
|
|
|
|
2021-08-30 20:36:07 +02:00
|
|
|
[[package]]
|
|
|
|
name = "diff"
|
2022-07-26 04:09:32 +02:00
|
|
|
version = "0.1.13"
|
2021-08-30 20:36:07 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-07-26 04:09:32 +02:00
|
|
|
checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"
|
2021-08-30 20:36:07 +02:00
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "difflib"
|
|
|
|
version = "0.4.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
|
|
|
|
|
2021-12-16 10:40:05 +01:00
|
|
|
[[package]]
|
Autoenv rewrite, security and scripting (#2083)
* Add args in .nurc file to environment
* Working dummy version
* Add add_nurc to sync_env command
* Parse .nurc file
* Delete env vars after leaving directory
* Removing vals not working, strangely
* Refactoring, add comment
* Debugging
* Debug by logging to file
* Add and remove env var behavior appears correct
However, it does not use existing code that well.
* Move work to cli.rs
* Parse config directories
* I am in a state of distress
* Rename .nurc to .nu
* Some notes for me
* Refactoring
* Removing vars works, but not done in a very nice fashion
* Refactor env_vars_to_delete
* Refactor env_vars_to_add()
* Move directory environment code to separate file
* Refactor from_config
* Restore env values
* Working?
* Working?
* Update comments and change var name
* Formatting
* Remove vars after leaving dir
* Remove notes I made
* Rename config function
* Clippy
* Cleanup and handle errors
* cargo fmt
* Better error messages, remove last (?) unwrap
* FORMAT PLZ
* Rename whitelisted_directories to allowed_directories
* Add comment to clarify how overwritten values are restored.
* Change list of allowed dirs to indexmap
* Rewrite starting
* rewrite everything
* Overwritten env values tracks an indexmap instead of vector
* Refactor restore function
* Untrack removed vars properly
* Performance concerns
* Performance concerns
* Error handling
* Clippy
* Add type aliases for String and OsString
* Deletion almost works
* Working?
* Error handling and refactoring
* nicer errors
* Add TODO file
* Move outside of loop
* Error handling
* Reworking adding of vars
* Reworking adding of vars
* Ready for testing
* Refactoring
* Restore overwritten vals code
* todo.org
* Remove overwritten values tracking, as it is not needed
* Cleanup, stop tracking overwritten values as nu takes care of it
* Init autoenv command
* Initialize autoenv and autoenv trust
* autoenv trust toml
* toml
* Use serde for autoenv
* Optional directory arg
* Add autoenv untrust command
* ... actually add autoenv untrust this time
* OsString and paths
* Revert "OsString and paths"
This reverts commit e6eedf882498c1365ecfc899e5ec11bd83cb055c.
* Fix path
* Fix path
* Autoenv trust and untrust
* Start using autoenv
* Check hashes
* Use trust functionality when setting vars
* Remove unused code
* Clippy
* Nicer errors for autoenv commands
* Non-working errors
* Update error description
* Satisfy fmt
* Errors
* Errors print, but not nicely
* Nicer errors
* fmt
* Delete accidentally added todo.org file
* Rename direnv to autoenv
* Use ShellError instead of Error
* Change tests to pass, danger zone?
* Clippy and errors
* Clippy... again
* Replace match with or_else
* Use sha2 crate for hashing
* parsing and error msg
* Refactoring
* Only apply vars once
* if parent dir
* Delete vars
* Rework exit code
* Adding works
* restore
* Fix possibility of infinite loop
* Refactoring
* Non-working
* Revert "Non-working"
This reverts commit e231b85570bcb3fc838f950e9f5004c6a7c5a2ac.
* Revert "Revert "Non-working""
This reverts commit 804092e46a752266576b044401cc97c317e41f21.
* Autoenv trust works without restart
* Cargo fix
* Script vars
* Serde
* Serde errors
* Entry and exitscripts
* Clippy
* Support windows and handle errors
* Formatting
* Fix infinite loop on windows
* Debugging windows loop
* More windows infinite loop debugging
* Windows loop debugging #3
* windows loop #4
* Don't return err
* Cleanup unused code
* Infinite loop debug
* Loop debugging
* Check if infinite loop is vars_to_add
* env_vars_to_add does not terminate, skip loop as test
* Hypothesis: std::env::current_dir() is messing with something
* Hypothesis: std::env::current_dir() is messing with something
* plz
* make clippy happy
* debugging in env_vars_to_add
* Debbuging env_vars_to_add #2
* clippy
* clippy..
* Fool clippy
* Fix another infinite loop
* Binary search for error location x)
* Binary search #3
* fmt
* Binary search #4
* more searching...
* closing in... maybe
* PLZ
* Cleanup
* Restore commented out functionality
* Handle case when user gives the directory "."
* fmt
* Use fs::canonicalize for paths
* Create optional script section
* fmt
* Add exitscripts even if no entryscripts are defined
* All sections in .nu-env are now optional
* Re-read config file each directory change
* Hot reload after autoenv untrust, don't run exitscripts if untrusted
* Debugging
* Fix issue with recursive adding of vars
* Thank you for finding my issues Mr. Azure
* use std::env
2020-07-05 19:34:00 +02:00
|
|
|
name = "digest"
|
2023-05-26 17:32:48 +02:00
|
|
|
version = "0.10.7"
|
Autoenv rewrite, security and scripting (#2083)
* Add args in .nurc file to environment
* Working dummy version
* Add add_nurc to sync_env command
* Parse .nurc file
* Delete env vars after leaving directory
* Removing vals not working, strangely
* Refactoring, add comment
* Debugging
* Debug by logging to file
* Add and remove env var behavior appears correct
However, it does not use existing code that well.
* Move work to cli.rs
* Parse config directories
* I am in a state of distress
* Rename .nurc to .nu
* Some notes for me
* Refactoring
* Removing vars works, but not done in a very nice fashion
* Refactor env_vars_to_delete
* Refactor env_vars_to_add()
* Move directory environment code to separate file
* Refactor from_config
* Restore env values
* Working?
* Working?
* Update comments and change var name
* Formatting
* Remove vars after leaving dir
* Remove notes I made
* Rename config function
* Clippy
* Cleanup and handle errors
* cargo fmt
* Better error messages, remove last (?) unwrap
* FORMAT PLZ
* Rename whitelisted_directories to allowed_directories
* Add comment to clarify how overwritten values are restored.
* Change list of allowed dirs to indexmap
* Rewrite starting
* rewrite everything
* Overwritten env values tracks an indexmap instead of vector
* Refactor restore function
* Untrack removed vars properly
* Performance concerns
* Performance concerns
* Error handling
* Clippy
* Add type aliases for String and OsString
* Deletion almost works
* Working?
* Error handling and refactoring
* nicer errors
* Add TODO file
* Move outside of loop
* Error handling
* Reworking adding of vars
* Reworking adding of vars
* Ready for testing
* Refactoring
* Restore overwritten vals code
* todo.org
* Remove overwritten values tracking, as it is not needed
* Cleanup, stop tracking overwritten values as nu takes care of it
* Init autoenv command
* Initialize autoenv and autoenv trust
* autoenv trust toml
* toml
* Use serde for autoenv
* Optional directory arg
* Add autoenv untrust command
* ... actually add autoenv untrust this time
* OsString and paths
* Revert "OsString and paths"
This reverts commit e6eedf882498c1365ecfc899e5ec11bd83cb055c.
* Fix path
* Fix path
* Autoenv trust and untrust
* Start using autoenv
* Check hashes
* Use trust functionality when setting vars
* Remove unused code
* Clippy
* Nicer errors for autoenv commands
* Non-working errors
* Update error description
* Satisfy fmt
* Errors
* Errors print, but not nicely
* Nicer errors
* fmt
* Delete accidentally added todo.org file
* Rename direnv to autoenv
* Use ShellError instead of Error
* Change tests to pass, danger zone?
* Clippy and errors
* Clippy... again
* Replace match with or_else
* Use sha2 crate for hashing
* parsing and error msg
* Refactoring
* Only apply vars once
* if parent dir
* Delete vars
* Rework exit code
* Adding works
* restore
* Fix possibility of infinite loop
* Refactoring
* Non-working
* Revert "Non-working"
This reverts commit e231b85570bcb3fc838f950e9f5004c6a7c5a2ac.
* Revert "Revert "Non-working""
This reverts commit 804092e46a752266576b044401cc97c317e41f21.
* Autoenv trust works without restart
* Cargo fix
* Script vars
* Serde
* Serde errors
* Entry and exitscripts
* Clippy
* Support windows and handle errors
* Formatting
* Fix infinite loop on windows
* Debugging windows loop
* More windows infinite loop debugging
* Windows loop debugging #3
* windows loop #4
* Don't return err
* Cleanup unused code
* Infinite loop debug
* Loop debugging
* Check if infinite loop is vars_to_add
* env_vars_to_add does not terminate, skip loop as test
* Hypothesis: std::env::current_dir() is messing with something
* Hypothesis: std::env::current_dir() is messing with something
* plz
* make clippy happy
* debugging in env_vars_to_add
* Debbuging env_vars_to_add #2
* clippy
* clippy..
* Fool clippy
* Fix another infinite loop
* Binary search for error location x)
* Binary search #3
* fmt
* Binary search #4
* more searching...
* closing in... maybe
* PLZ
* Cleanup
* Restore commented out functionality
* Handle case when user gives the directory "."
* fmt
* Use fs::canonicalize for paths
* Create optional script section
* fmt
* Add exitscripts even if no entryscripts are defined
* All sections in .nu-env are now optional
* Re-read config file each directory change
* Hot reload after autoenv untrust, don't run exitscripts if untrusted
* Debugging
* Fix issue with recursive adding of vars
* Thank you for finding my issues Mr. Azure
* use std::env
2020-07-05 19:34:00 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-05-26 17:32:48 +02:00
|
|
|
checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
|
Autoenv rewrite, security and scripting (#2083)
* Add args in .nurc file to environment
* Working dummy version
* Add add_nurc to sync_env command
* Parse .nurc file
* Delete env vars after leaving directory
* Removing vals not working, strangely
* Refactoring, add comment
* Debugging
* Debug by logging to file
* Add and remove env var behavior appears correct
However, it does not use existing code that well.
* Move work to cli.rs
* Parse config directories
* I am in a state of distress
* Rename .nurc to .nu
* Some notes for me
* Refactoring
* Removing vars works, but not done in a very nice fashion
* Refactor env_vars_to_delete
* Refactor env_vars_to_add()
* Move directory environment code to separate file
* Refactor from_config
* Restore env values
* Working?
* Working?
* Update comments and change var name
* Formatting
* Remove vars after leaving dir
* Remove notes I made
* Rename config function
* Clippy
* Cleanup and handle errors
* cargo fmt
* Better error messages, remove last (?) unwrap
* FORMAT PLZ
* Rename whitelisted_directories to allowed_directories
* Add comment to clarify how overwritten values are restored.
* Change list of allowed dirs to indexmap
* Rewrite starting
* rewrite everything
* Overwritten env values tracks an indexmap instead of vector
* Refactor restore function
* Untrack removed vars properly
* Performance concerns
* Performance concerns
* Error handling
* Clippy
* Add type aliases for String and OsString
* Deletion almost works
* Working?
* Error handling and refactoring
* nicer errors
* Add TODO file
* Move outside of loop
* Error handling
* Reworking adding of vars
* Reworking adding of vars
* Ready for testing
* Refactoring
* Restore overwritten vals code
* todo.org
* Remove overwritten values tracking, as it is not needed
* Cleanup, stop tracking overwritten values as nu takes care of it
* Init autoenv command
* Initialize autoenv and autoenv trust
* autoenv trust toml
* toml
* Use serde for autoenv
* Optional directory arg
* Add autoenv untrust command
* ... actually add autoenv untrust this time
* OsString and paths
* Revert "OsString and paths"
This reverts commit e6eedf882498c1365ecfc899e5ec11bd83cb055c.
* Fix path
* Fix path
* Autoenv trust and untrust
* Start using autoenv
* Check hashes
* Use trust functionality when setting vars
* Remove unused code
* Clippy
* Nicer errors for autoenv commands
* Non-working errors
* Update error description
* Satisfy fmt
* Errors
* Errors print, but not nicely
* Nicer errors
* fmt
* Delete accidentally added todo.org file
* Rename direnv to autoenv
* Use ShellError instead of Error
* Change tests to pass, danger zone?
* Clippy and errors
* Clippy... again
* Replace match with or_else
* Use sha2 crate for hashing
* parsing and error msg
* Refactoring
* Only apply vars once
* if parent dir
* Delete vars
* Rework exit code
* Adding works
* restore
* Fix possibility of infinite loop
* Refactoring
* Non-working
* Revert "Non-working"
This reverts commit e231b85570bcb3fc838f950e9f5004c6a7c5a2ac.
* Revert "Revert "Non-working""
This reverts commit 804092e46a752266576b044401cc97c317e41f21.
* Autoenv trust works without restart
* Cargo fix
* Script vars
* Serde
* Serde errors
* Entry and exitscripts
* Clippy
* Support windows and handle errors
* Formatting
* Fix infinite loop on windows
* Debugging windows loop
* More windows infinite loop debugging
* Windows loop debugging #3
* windows loop #4
* Don't return err
* Cleanup unused code
* Infinite loop debug
* Loop debugging
* Check if infinite loop is vars_to_add
* env_vars_to_add does not terminate, skip loop as test
* Hypothesis: std::env::current_dir() is messing with something
* Hypothesis: std::env::current_dir() is messing with something
* plz
* make clippy happy
* debugging in env_vars_to_add
* Debbuging env_vars_to_add #2
* clippy
* clippy..
* Fool clippy
* Fix another infinite loop
* Binary search for error location x)
* Binary search #3
* fmt
* Binary search #4
* more searching...
* closing in... maybe
* PLZ
* Cleanup
* Restore commented out functionality
* Handle case when user gives the directory "."
* fmt
* Use fs::canonicalize for paths
* Create optional script section
* fmt
* Add exitscripts even if no entryscripts are defined
* All sections in .nu-env are now optional
* Re-read config file each directory change
* Hot reload after autoenv untrust, don't run exitscripts if untrusted
* Debugging
* Fix issue with recursive adding of vars
* Thank you for finding my issues Mr. Azure
* use std::env
2020-07-05 19:34:00 +02:00
|
|
|
dependencies = [
|
2022-10-03 18:40:16 +02:00
|
|
|
"block-buffer",
|
2021-12-11 00:14:28 +01:00
|
|
|
"crypto-common",
|
2020-05-14 10:17:23 +02:00
|
|
|
]
|
|
|
|
|
2021-01-07 01:38:22 +01:00
|
|
|
[[package]]
|
2024-07-16 14:16:26 +02:00
|
|
|
name = "dirs"
|
|
|
|
version = "5.0.1"
|
2021-01-07 01:38:22 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-07-16 14:16:26 +02:00
|
|
|
checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
|
2021-01-07 01:38:22 +01:00
|
|
|
dependencies = [
|
2024-07-16 14:16:26 +02:00
|
|
|
"dirs-sys",
|
2021-01-07 01:38:22 +01:00
|
|
|
]
|
|
|
|
|
2020-12-05 05:12:42 +01:00
|
|
|
[[package]]
|
2024-07-16 14:16:26 +02:00
|
|
|
name = "dirs-sys"
|
|
|
|
version = "0.4.1"
|
2020-12-05 05:12:42 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-07-16 14:16:26 +02:00
|
|
|
checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
|
2020-12-05 05:12:42 +01:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
2024-07-16 14:16:26 +02:00
|
|
|
"option-ext",
|
2022-03-19 12:13:34 +01:00
|
|
|
"redox_users",
|
2024-07-16 14:16:26 +02:00
|
|
|
"windows-sys 0.48.0",
|
2020-12-05 05:12:42 +01:00
|
|
|
]
|
|
|
|
|
2024-01-20 15:04:06 +01:00
|
|
|
[[package]]
|
|
|
|
name = "dlib"
|
|
|
|
version = "0.5.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412"
|
|
|
|
dependencies = [
|
|
|
|
"libloading",
|
|
|
|
]
|
|
|
|
|
2023-02-09 12:47:45 +01:00
|
|
|
[[package]]
|
|
|
|
name = "dlv-list"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
version = "0.5.2"
|
2023-02-09 12:47:45 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
checksum = "442039f5147480ba31067cb00ada1adae6892028e40e45fc5de7b7df6dcc1b5f"
|
2023-06-13 20:33:00 +02:00
|
|
|
dependencies = [
|
|
|
|
"const-random",
|
|
|
|
]
|
2023-02-09 12:47:45 +01:00
|
|
|
|
2021-01-20 08:18:38 +01:00
|
|
|
[[package]]
|
|
|
|
name = "doc-comment"
|
|
|
|
version = "0.3.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
|
|
|
|
|
2024-06-20 10:10:27 +02:00
|
|
|
[[package]]
|
|
|
|
name = "doctest-file"
|
|
|
|
version = "1.0.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "aac81fa3e28d21450aa4d2ac065992ba96a1d7303efbce51a95f4fd175b67562"
|
|
|
|
|
2024-01-20 15:04:06 +01:00
|
|
|
[[package]]
|
|
|
|
name = "downcast-rs"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "1.2.1"
|
2024-01-20 15:04:06 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2"
|
2024-01-20 15:04:06 +01:00
|
|
|
|
2019-06-03 09:41:28 +02:00
|
|
|
[[package]]
|
|
|
|
name = "dtoa"
|
2023-10-07 13:58:26 +02:00
|
|
|
version = "1.0.9"
|
2019-06-03 09:41:28 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 13:58:26 +02:00
|
|
|
checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653"
|
2019-06-03 09:41:28 +02:00
|
|
|
|
2020-11-03 22:46:42 +01:00
|
|
|
[[package]]
|
|
|
|
name = "dtoa-short"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.3.5"
|
2020-11-03 22:46:42 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87"
|
2020-11-03 22:46:42 +01:00
|
|
|
dependencies = [
|
|
|
|
"dtoa",
|
|
|
|
]
|
|
|
|
|
2020-08-05 23:34:28 +02:00
|
|
|
[[package]]
|
|
|
|
name = "dtparse"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "2.0.1"
|
2020-08-05 23:34:28 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "23fb403c0926d35af2cc54d961bc2696a10d40725c08360ef69db04a4c201fd7"
|
2020-08-05 23:34:28 +02:00
|
|
|
dependencies = [
|
|
|
|
"chrono",
|
2021-08-28 05:34:11 +02:00
|
|
|
"lazy_static",
|
|
|
|
"num-traits",
|
2020-08-05 23:34:28 +02:00
|
|
|
"rust_decimal",
|
|
|
|
]
|
|
|
|
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
[[package]]
|
|
|
|
name = "dunce"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.0.5"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
|
2022-08-12 14:10:36 +02:00
|
|
|
[[package]]
|
|
|
|
name = "dyn-clone"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "1.0.17"
|
2022-08-12 14:10:36 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125"
|
2022-08-12 14:10:36 +02:00
|
|
|
|
2021-02-05 21:54:54 +01:00
|
|
|
[[package]]
|
2021-09-16 16:02:30 +02:00
|
|
|
name = "ego-tree"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.6.3"
|
2021-09-16 16:02:30 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "12a0bb14ac04a9fcf170d0bbbef949b44cc492f4452bd20c095636956f653642"
|
2021-09-16 16:02:30 +02:00
|
|
|
|
2019-05-10 18:59:12 +02:00
|
|
|
[[package]]
|
|
|
|
name = "either"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.13.0"
|
2022-05-25 19:13:14 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
|
2024-06-06 01:26:47 +02:00
|
|
|
dependencies = [
|
|
|
|
"serde",
|
|
|
|
]
|
2022-05-25 19:13:14 +02:00
|
|
|
|
2020-04-26 07:32:17 +02:00
|
|
|
[[package]]
|
|
|
|
name = "eml-parser"
|
2023-12-06 01:09:34 +01:00
|
|
|
version = "0.1.4"
|
2020-04-26 07:32:17 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-12-06 01:09:34 +01:00
|
|
|
checksum = "a7db8d15f812e08f76427c555195583e3ab8a99fd8b208f8d9e2899262e80f2e"
|
2020-04-26 07:32:17 +02:00
|
|
|
dependencies = [
|
2021-07-09 21:28:07 +02:00
|
|
|
"regex",
|
2023-12-06 01:09:34 +01:00
|
|
|
"rfc2047-decoder",
|
2020-04-26 07:32:17 +02:00
|
|
|
]
|
|
|
|
|
2019-05-10 18:59:12 +02:00
|
|
|
[[package]]
|
|
|
|
name = "encode_unicode"
|
2019-10-13 06:53:58 +02:00
|
|
|
version = "0.3.6"
|
2019-06-12 19:44:45 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2019-11-28 03:21:00 +01:00
|
|
|
checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
|
2019-06-12 19:44:45 +02:00
|
|
|
|
2020-06-16 23:17:32 +02:00
|
|
|
[[package]]
|
2022-02-07 20:54:06 +01:00
|
|
|
name = "encoding_rs"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
version = "0.8.34"
|
2020-06-16 23:17:32 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59"
|
2020-06-16 23:17:32 +02:00
|
|
|
dependencies = [
|
2023-07-05 14:14:55 +02:00
|
|
|
"cfg-if",
|
2020-06-16 23:17:32 +02:00
|
|
|
]
|
|
|
|
|
2022-11-09 23:07:38 +01:00
|
|
|
[[package]]
|
|
|
|
name = "enum_dispatch"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "0.3.13"
|
2022-11-09 23:07:38 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd"
|
2022-11-09 23:07:38 +01:00
|
|
|
dependencies = [
|
|
|
|
"once_cell",
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2024-08-24 00:35:42 +02:00
|
|
|
"syn 2.0.75",
|
2022-11-09 23:07:38 +01:00
|
|
|
]
|
|
|
|
|
2024-06-28 01:56:56 +02:00
|
|
|
[[package]]
|
|
|
|
name = "env_filter"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.1.2"
|
2024-06-28 01:56:56 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab"
|
2024-06-28 01:56:56 +02:00
|
|
|
dependencies = [
|
|
|
|
"log",
|
|
|
|
"regex",
|
|
|
|
]
|
|
|
|
|
2020-06-16 23:17:32 +02:00
|
|
|
[[package]]
|
2022-02-07 20:54:06 +01:00
|
|
|
name = "env_logger"
|
|
|
|
version = "0.8.4"
|
2020-06-16 23:17:32 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-02-07 20:54:06 +01:00
|
|
|
checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
|
2020-06-16 23:17:32 +02:00
|
|
|
dependencies = [
|
2022-02-07 20:54:06 +01:00
|
|
|
"log",
|
|
|
|
"regex",
|
2020-06-16 23:17:32 +02:00
|
|
|
]
|
|
|
|
|
2024-06-28 01:56:56 +02:00
|
|
|
[[package]]
|
|
|
|
name = "env_logger"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.11.5"
|
2024-06-28 01:56:56 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d"
|
2024-06-28 01:56:56 +02:00
|
|
|
dependencies = [
|
|
|
|
"anstream",
|
|
|
|
"anstyle",
|
|
|
|
"env_filter",
|
|
|
|
"humantime",
|
|
|
|
"log",
|
|
|
|
]
|
|
|
|
|
2023-07-06 17:31:31 +02:00
|
|
|
[[package]]
|
|
|
|
name = "equivalent"
|
2023-10-07 13:58:26 +02:00
|
|
|
version = "1.0.1"
|
2023-07-06 17:31:31 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 13:58:26 +02:00
|
|
|
checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
|
2023-07-06 17:31:31 +02:00
|
|
|
|
2020-06-16 23:17:32 +02:00
|
|
|
[[package]]
|
2022-02-07 20:54:06 +01:00
|
|
|
name = "erased-serde"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.4.5"
|
2020-06-16 23:17:32 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "24e2389d65ab4fab27dc2a5de7b191e1f6617d1f1c8855c0dc569c94a4cbb18d"
|
2020-06-16 23:17:32 +02:00
|
|
|
dependencies = [
|
2022-02-07 20:54:06 +01:00
|
|
|
"serde",
|
2024-08-24 00:35:42 +02:00
|
|
|
"typeid",
|
2020-06-16 23:17:32 +02:00
|
|
|
]
|
|
|
|
|
2023-02-22 13:56:31 +01:00
|
|
|
[[package]]
|
|
|
|
name = "errno"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.3.9"
|
2023-02-22 13:56:31 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
|
2023-02-22 13:56:31 +01:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
2023-12-06 01:09:34 +01:00
|
|
|
"windows-sys 0.52.0",
|
2023-02-22 13:56:31 +01:00
|
|
|
]
|
|
|
|
|
2024-01-20 15:04:06 +01:00
|
|
|
[[package]]
|
|
|
|
name = "error-code"
|
2024-03-12 23:10:11 +01:00
|
|
|
version = "3.2.0"
|
2024-01-20 15:04:06 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-12 23:10:11 +01:00
|
|
|
checksum = "a0474425d51df81997e2f90a21591180b38eccf27292d755f3e30750225c175b"
|
2024-01-20 15:04:06 +01:00
|
|
|
|
2022-11-09 23:07:38 +01:00
|
|
|
[[package]]
|
|
|
|
name = "ethnum"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
version = "1.5.0"
|
2022-11-09 23:07:38 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
checksum = "b90ca2580b73ab6a1f724b76ca11ab632df820fd6040c336200d2c1df7b3c82c"
|
2022-11-09 23:07:38 +01:00
|
|
|
|
2022-04-14 05:15:02 +02:00
|
|
|
[[package]]
|
|
|
|
name = "fallible-iterator"
|
2024-02-17 16:32:17 +01:00
|
|
|
version = "0.3.0"
|
2022-04-14 05:15:02 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-02-17 16:32:17 +01:00
|
|
|
checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649"
|
2022-04-14 05:15:02 +02:00
|
|
|
|
2020-06-16 23:17:32 +02:00
|
|
|
[[package]]
|
2022-02-07 20:54:06 +01:00
|
|
|
name = "fallible-streaming-iterator"
|
|
|
|
version = "0.1.9"
|
2020-06-16 23:17:32 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-02-07 20:54:06 +01:00
|
|
|
checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a"
|
2020-06-16 23:17:32 +02:00
|
|
|
|
2023-12-06 01:09:34 +01:00
|
|
|
[[package]]
|
|
|
|
name = "fancy-regex"
|
2024-02-19 02:54:37 +01:00
|
|
|
version = "0.13.0"
|
2023-12-06 01:09:34 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-02-19 02:54:37 +01:00
|
|
|
checksum = "531e46835a22af56d1e3b66f04844bed63158bc094a628bec1d321d9b4c44bf2"
|
2023-12-06 01:09:34 +01:00
|
|
|
dependencies = [
|
|
|
|
"bit-set",
|
2024-02-19 02:54:37 +01:00
|
|
|
"regex-automata",
|
|
|
|
"regex-syntax",
|
2023-12-06 01:09:34 +01:00
|
|
|
]
|
|
|
|
|
2023-05-08 17:42:53 +02:00
|
|
|
[[package]]
|
|
|
|
name = "fast-float"
|
|
|
|
version = "0.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "95765f67b4b18863968b4a1bd5bb576f732b29a4a28c7cd84c09fa3e2875f33c"
|
|
|
|
|
2019-11-17 04:18:41 +01:00
|
|
|
[[package]]
|
2022-02-08 14:28:21 +01:00
|
|
|
name = "fastrand"
|
2024-10-02 08:17:03 +02:00
|
|
|
version = "2.1.1"
|
2019-11-17 04:18:41 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-10-02 08:17:03 +02:00
|
|
|
checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6"
|
2019-11-17 04:18:41 +01:00
|
|
|
|
|
|
|
[[package]]
|
2022-02-07 20:54:06 +01:00
|
|
|
name = "fd-lock"
|
2024-03-27 22:25:21 +01:00
|
|
|
version = "4.0.2"
|
2019-11-17 04:18:41 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-27 22:25:21 +01:00
|
|
|
checksum = "7e5768da2206272c81ef0b5e951a41862938a6070da63bcea197899942d3b947"
|
2019-11-17 04:18:41 +01:00
|
|
|
dependencies = [
|
2023-07-05 14:14:55 +02:00
|
|
|
"cfg-if",
|
2024-01-05 17:19:46 +01:00
|
|
|
"rustix",
|
2024-03-27 22:25:21 +01:00
|
|
|
"windows-sys 0.52.0",
|
2019-11-17 04:18:41 +01:00
|
|
|
]
|
|
|
|
|
2023-07-05 14:14:55 +02:00
|
|
|
[[package]]
|
|
|
|
name = "file-id"
|
2023-09-01 00:07:41 +02:00
|
|
|
version = "0.2.1"
|
2023-07-05 14:14:55 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-09-01 00:07:41 +02:00
|
|
|
checksum = "6584280525fb2059cba3db2c04abf947a1a29a45ddae89f3870f8281704fafc9"
|
2023-07-05 14:14:55 +02:00
|
|
|
dependencies = [
|
2023-09-01 00:07:41 +02:00
|
|
|
"windows-sys 0.48.0",
|
2023-07-05 14:14:55 +02:00
|
|
|
]
|
|
|
|
|
2021-03-14 03:13:31 +01:00
|
|
|
[[package]]
|
2022-02-07 20:54:06 +01:00
|
|
|
name = "filesize"
|
|
|
|
version = "0.2.0"
|
2020-02-10 21:32:18 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-04-07 09:51:17 +02:00
|
|
|
checksum = "12d741e2415d4e2e5bd1c1d00409d1a8865a57892c2d689b504365655d237d43"
|
2020-02-10 21:32:18 +01:00
|
|
|
dependencies = [
|
2023-07-05 14:14:55 +02:00
|
|
|
"winapi",
|
2020-02-10 21:32:18 +01:00
|
|
|
]
|
|
|
|
|
2022-04-07 13:44:05 +02:00
|
|
|
[[package]]
|
|
|
|
name = "filetime"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.2.24"
|
2022-04-07 13:44:05 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "bf401df4a4e3872c4fe8151134cf483738e74b67fc934d6532c882b3d24a4550"
|
2022-04-07 13:44:05 +02:00
|
|
|
dependencies = [
|
2023-07-05 14:14:55 +02:00
|
|
|
"cfg-if",
|
2022-04-07 13:44:05 +02:00
|
|
|
"libc",
|
2024-08-24 00:35:42 +02:00
|
|
|
"libredox",
|
|
|
|
"windows-sys 0.59.0",
|
2022-04-07 13:44:05 +02:00
|
|
|
]
|
|
|
|
|
2024-01-20 15:04:06 +01:00
|
|
|
[[package]]
|
|
|
|
name = "fixedbitset"
|
|
|
|
version = "0.4.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
|
|
|
|
|
2019-05-18 03:24:13 +02:00
|
|
|
[[package]]
|
|
|
|
name = "flate2"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.0.32"
|
2019-05-18 03:24:13 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "9c0596c1eac1f9e04ed902702e9878208b336edc9d6fddc8a48387349bab3666"
|
2019-05-18 03:24:13 +02:00
|
|
|
dependencies = [
|
2021-11-19 20:23:35 +01:00
|
|
|
"crc32fast",
|
2024-08-24 00:35:42 +02:00
|
|
|
"miniz_oxide 0.8.0",
|
2019-05-18 03:24:13 +02:00
|
|
|
]
|
|
|
|
|
2022-11-09 23:07:38 +01:00
|
|
|
[[package]]
|
|
|
|
name = "float-cmp"
|
|
|
|
version = "0.9.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4"
|
|
|
|
dependencies = [
|
|
|
|
"num-traits",
|
|
|
|
]
|
|
|
|
|
2019-05-18 03:24:13 +02:00
|
|
|
[[package]]
|
|
|
|
name = "fnv"
|
2020-05-16 05:18:24 +02:00
|
|
|
version = "1.0.7"
|
2019-05-18 03:24:13 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-05-16 05:18:24 +02:00
|
|
|
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
|
2019-05-18 03:24:13 +02:00
|
|
|
|
2020-03-20 08:53:49 +01:00
|
|
|
[[package]]
|
|
|
|
name = "foreign-types"
|
|
|
|
version = "0.3.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
|
|
|
|
dependencies = [
|
|
|
|
"foreign-types-shared",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "foreign-types-shared"
|
|
|
|
version = "0.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
|
|
|
|
|
2022-08-12 14:10:36 +02:00
|
|
|
[[package]]
|
|
|
|
name = "foreign_vec"
|
|
|
|
version = "0.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "ee1b05cbd864bcaecbd3455d6d967862d446e4ebfc3c2e5e5b9841e53cba6673"
|
|
|
|
|
2020-09-09 00:35:45 +02:00
|
|
|
[[package]]
|
|
|
|
name = "form_urlencoded"
|
2023-12-06 01:09:34 +01:00
|
|
|
version = "1.2.1"
|
2020-09-09 00:35:45 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-12-06 01:09:34 +01:00
|
|
|
checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
|
2020-09-09 00:35:45 +02:00
|
|
|
dependencies = [
|
2021-07-09 21:28:07 +02:00
|
|
|
"percent-encoding",
|
2020-09-09 00:35:45 +02:00
|
|
|
]
|
|
|
|
|
2022-02-09 15:56:27 +01:00
|
|
|
[[package]]
|
|
|
|
name = "fs_extra"
|
2023-02-06 10:59:58 +01:00
|
|
|
version = "1.3.0"
|
2022-02-09 15:56:27 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-02-06 10:59:58 +01:00
|
|
|
checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
|
2022-02-09 15:56:27 +01:00
|
|
|
|
2022-04-28 16:26:34 +02:00
|
|
|
[[package]]
|
|
|
|
name = "fsevent-sys"
|
2023-07-05 14:14:55 +02:00
|
|
|
version = "4.1.0"
|
2022-04-28 16:26:34 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-07-05 14:14:55 +02:00
|
|
|
checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2"
|
2022-04-28 16:26:34 +02:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
2024-01-21 21:17:28 +01:00
|
|
|
[[package]]
|
|
|
|
name = "funty"
|
|
|
|
version = "2.0.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
|
|
|
|
|
2020-09-04 01:44:53 +02:00
|
|
|
[[package]]
|
2020-11-03 22:46:42 +01:00
|
|
|
name = "futf"
|
2022-02-08 14:28:21 +01:00
|
|
|
version = "0.1.5"
|
2020-11-03 22:46:42 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-02-08 14:28:21 +01:00
|
|
|
checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843"
|
2020-11-03 22:46:42 +01:00
|
|
|
dependencies = [
|
|
|
|
"mac",
|
|
|
|
"new_debug_unreachable",
|
|
|
|
]
|
|
|
|
|
2020-01-01 07:45:27 +01:00
|
|
|
[[package]]
|
|
|
|
name = "futures"
|
2024-01-21 04:53:24 +01:00
|
|
|
version = "0.3.30"
|
2020-01-01 07:45:27 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 04:53:24 +01:00
|
|
|
checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
|
2020-01-01 07:45:27 +01:00
|
|
|
dependencies = [
|
|
|
|
"futures-channel",
|
|
|
|
"futures-core",
|
Futures v0.3 upgrade (#1344)
* Upgrade futures, async-stream, and futures_codec
These were the last three dependencies on futures-preview. `nu` itself
is now fully dependent on `futures@0.3`, as opposed to `futures-preview`
alpha.
Because the update to `futures` from `0.3.0-alpha.19` to `0.3.0` removed
the `Stream` implementation of `VecDeque` ([changelog][changelog]), most
commands that convert a `VecDeque` to an `OutputStream` broke and had to
be fixed.
The current solution is to now convert `VecDeque`s to a `Stream` via
`futures::stream::iter`. However, it may be useful for `futures` to
create an `IntoStream` trait, implemented on the `std::collections` (or
really any `IntoIterator`). If something like this happends, it may be
worthwhile to update the trait implementations on `OutputStream` and
refactor these commands again.
While upgrading `futures_codec`, we remove a custom implementation of
`LinesCodec`, as one has been added to the library. There's also a small
refactor to make the stream output more idiomatic.
[changelog]: https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md#030---2019-11-5
* Upgrade sys & ps plugin dependencies
They were previously dependent on `futures-preview`, and `nu_plugin_ps`
was dependent on an old version of `futures-timer`.
* Remove dependency on futures-timer from nu
* Update Cargo.lock
* Fix formatting
* Revert fmt regressions
CI is still on 1.40.0, but the latest rustfmt v1.41.0 has changes to the
`val @ pattern` syntax, causing the linting job to fail.
* Fix clippy warnings
2020-02-06 04:46:48 +01:00
|
|
|
"futures-executor",
|
2020-01-01 07:45:27 +01:00
|
|
|
"futures-io",
|
|
|
|
"futures-sink",
|
|
|
|
"futures-task",
|
|
|
|
"futures-util",
|
|
|
|
]
|
|
|
|
|
2019-12-14 14:27:14 +01:00
|
|
|
[[package]]
|
|
|
|
name = "futures-channel"
|
2024-01-21 04:53:24 +01:00
|
|
|
version = "0.3.30"
|
2019-12-14 14:27:14 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 04:53:24 +01:00
|
|
|
checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
|
2019-12-14 14:27:14 +01:00
|
|
|
dependencies = [
|
|
|
|
"futures-core",
|
2020-01-01 07:45:27 +01:00
|
|
|
"futures-sink",
|
2019-12-14 14:27:14 +01:00
|
|
|
]
|
|
|
|
|
2019-11-04 16:47:03 +01:00
|
|
|
[[package]]
|
|
|
|
name = "futures-core"
|
2024-01-21 04:53:24 +01:00
|
|
|
version = "0.3.30"
|
2019-11-04 16:47:03 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 04:53:24 +01:00
|
|
|
checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
|
2019-11-04 16:47:03 +01:00
|
|
|
|
Futures v0.3 upgrade (#1344)
* Upgrade futures, async-stream, and futures_codec
These were the last three dependencies on futures-preview. `nu` itself
is now fully dependent on `futures@0.3`, as opposed to `futures-preview`
alpha.
Because the update to `futures` from `0.3.0-alpha.19` to `0.3.0` removed
the `Stream` implementation of `VecDeque` ([changelog][changelog]), most
commands that convert a `VecDeque` to an `OutputStream` broke and had to
be fixed.
The current solution is to now convert `VecDeque`s to a `Stream` via
`futures::stream::iter`. However, it may be useful for `futures` to
create an `IntoStream` trait, implemented on the `std::collections` (or
really any `IntoIterator`). If something like this happends, it may be
worthwhile to update the trait implementations on `OutputStream` and
refactor these commands again.
While upgrading `futures_codec`, we remove a custom implementation of
`LinesCodec`, as one has been added to the library. There's also a small
refactor to make the stream output more idiomatic.
[changelog]: https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md#030---2019-11-5
* Upgrade sys & ps plugin dependencies
They were previously dependent on `futures-preview`, and `nu_plugin_ps`
was dependent on an old version of `futures-timer`.
* Remove dependency on futures-timer from nu
* Update Cargo.lock
* Fix formatting
* Revert fmt regressions
CI is still on 1.40.0, but the latest rustfmt v1.41.0 has changes to the
`val @ pattern` syntax, causing the linting job to fail.
* Fix clippy warnings
2020-02-06 04:46:48 +01:00
|
|
|
[[package]]
|
|
|
|
name = "futures-executor"
|
2024-01-21 04:53:24 +01:00
|
|
|
version = "0.3.30"
|
Futures v0.3 upgrade (#1344)
* Upgrade futures, async-stream, and futures_codec
These were the last three dependencies on futures-preview. `nu` itself
is now fully dependent on `futures@0.3`, as opposed to `futures-preview`
alpha.
Because the update to `futures` from `0.3.0-alpha.19` to `0.3.0` removed
the `Stream` implementation of `VecDeque` ([changelog][changelog]), most
commands that convert a `VecDeque` to an `OutputStream` broke and had to
be fixed.
The current solution is to now convert `VecDeque`s to a `Stream` via
`futures::stream::iter`. However, it may be useful for `futures` to
create an `IntoStream` trait, implemented on the `std::collections` (or
really any `IntoIterator`). If something like this happends, it may be
worthwhile to update the trait implementations on `OutputStream` and
refactor these commands again.
While upgrading `futures_codec`, we remove a custom implementation of
`LinesCodec`, as one has been added to the library. There's also a small
refactor to make the stream output more idiomatic.
[changelog]: https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md#030---2019-11-5
* Upgrade sys & ps plugin dependencies
They were previously dependent on `futures-preview`, and `nu_plugin_ps`
was dependent on an old version of `futures-timer`.
* Remove dependency on futures-timer from nu
* Update Cargo.lock
* Fix formatting
* Revert fmt regressions
CI is still on 1.40.0, but the latest rustfmt v1.41.0 has changes to the
`val @ pattern` syntax, causing the linting job to fail.
* Fix clippy warnings
2020-02-06 04:46:48 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 04:53:24 +01:00
|
|
|
checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
|
Futures v0.3 upgrade (#1344)
* Upgrade futures, async-stream, and futures_codec
These were the last three dependencies on futures-preview. `nu` itself
is now fully dependent on `futures@0.3`, as opposed to `futures-preview`
alpha.
Because the update to `futures` from `0.3.0-alpha.19` to `0.3.0` removed
the `Stream` implementation of `VecDeque` ([changelog][changelog]), most
commands that convert a `VecDeque` to an `OutputStream` broke and had to
be fixed.
The current solution is to now convert `VecDeque`s to a `Stream` via
`futures::stream::iter`. However, it may be useful for `futures` to
create an `IntoStream` trait, implemented on the `std::collections` (or
really any `IntoIterator`). If something like this happends, it may be
worthwhile to update the trait implementations on `OutputStream` and
refactor these commands again.
While upgrading `futures_codec`, we remove a custom implementation of
`LinesCodec`, as one has been added to the library. There's also a small
refactor to make the stream output more idiomatic.
[changelog]: https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md#030---2019-11-5
* Upgrade sys & ps plugin dependencies
They were previously dependent on `futures-preview`, and `nu_plugin_ps`
was dependent on an old version of `futures-timer`.
* Remove dependency on futures-timer from nu
* Update Cargo.lock
* Fix formatting
* Revert fmt regressions
CI is still on 1.40.0, but the latest rustfmt v1.41.0 has changes to the
`val @ pattern` syntax, causing the linting job to fail.
* Fix clippy warnings
2020-02-06 04:46:48 +01:00
|
|
|
dependencies = [
|
|
|
|
"futures-core",
|
|
|
|
"futures-task",
|
|
|
|
"futures-util",
|
|
|
|
]
|
|
|
|
|
2020-01-01 07:45:27 +01:00
|
|
|
[[package]]
|
|
|
|
name = "futures-io"
|
2024-01-21 04:53:24 +01:00
|
|
|
version = "0.3.30"
|
2020-11-22 01:37:16 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 04:53:24 +01:00
|
|
|
checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
|
2020-08-04 00:47:19 +02:00
|
|
|
|
2019-11-04 16:47:03 +01:00
|
|
|
[[package]]
|
|
|
|
name = "futures-macro"
|
2024-01-21 04:53:24 +01:00
|
|
|
version = "0.3.30"
|
2019-11-04 16:47:03 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 04:53:24 +01:00
|
|
|
checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
|
2019-11-04 16:47:03 +01:00
|
|
|
dependencies = [
|
2019-11-28 03:21:00 +01:00
|
|
|
"proc-macro2",
|
2021-08-28 05:34:11 +02:00
|
|
|
"quote",
|
2024-08-24 00:35:42 +02:00
|
|
|
"syn 2.0.75",
|
2019-11-04 16:47:03 +01:00
|
|
|
]
|
|
|
|
|
2020-01-01 07:45:27 +01:00
|
|
|
[[package]]
|
|
|
|
name = "futures-sink"
|
2024-01-21 04:53:24 +01:00
|
|
|
version = "0.3.30"
|
2020-01-01 07:45:27 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 04:53:24 +01:00
|
|
|
checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
|
2020-01-01 07:45:27 +01:00
|
|
|
|
2019-11-04 16:47:03 +01:00
|
|
|
[[package]]
|
|
|
|
name = "futures-task"
|
2024-01-21 04:53:24 +01:00
|
|
|
version = "0.3.30"
|
2019-11-04 16:47:03 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 04:53:24 +01:00
|
|
|
checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
|
2019-11-04 16:47:03 +01:00
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "futures-util"
|
2024-01-21 04:53:24 +01:00
|
|
|
version = "0.3.30"
|
2019-11-04 16:47:03 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 04:53:24 +01:00
|
|
|
checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
|
2019-11-04 16:47:03 +01:00
|
|
|
dependencies = [
|
2020-01-01 07:45:27 +01:00
|
|
|
"futures-channel",
|
2019-11-28 03:21:00 +01:00
|
|
|
"futures-core",
|
2020-01-01 07:45:27 +01:00
|
|
|
"futures-io",
|
2019-11-28 03:21:00 +01:00
|
|
|
"futures-macro",
|
2020-01-01 07:45:27 +01:00
|
|
|
"futures-sink",
|
2019-11-28 03:21:00 +01:00
|
|
|
"futures-task",
|
2020-01-01 07:45:27 +01:00
|
|
|
"memchr",
|
2021-08-28 05:34:11 +02:00
|
|
|
"pin-project-lite",
|
2019-11-28 03:21:00 +01:00
|
|
|
"pin-utils",
|
2021-07-09 21:28:07 +02:00
|
|
|
"slab",
|
2019-11-04 16:47:03 +01:00
|
|
|
]
|
|
|
|
|
2022-04-24 23:43:18 +02:00
|
|
|
[[package]]
|
|
|
|
name = "fuzzy-matcher"
|
|
|
|
version = "0.3.7"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "54614a3312934d066701a80f20f15fa3b56d67ac7722b39eea5b4c9dd1d66c94"
|
|
|
|
dependencies = [
|
|
|
|
"thread_local",
|
|
|
|
]
|
|
|
|
|
2020-11-03 22:46:42 +01:00
|
|
|
[[package]]
|
|
|
|
name = "fxhash"
|
|
|
|
version = "0.2.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
|
|
|
|
dependencies = [
|
|
|
|
"byteorder",
|
|
|
|
]
|
|
|
|
|
2021-11-15 21:09:17 +01:00
|
|
|
[[package]]
|
|
|
|
name = "generic-array"
|
2023-04-14 22:14:57 +02:00
|
|
|
version = "0.14.7"
|
2021-11-15 21:09:17 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-04-14 22:14:57 +02:00
|
|
|
checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
|
2021-11-15 21:09:17 +01:00
|
|
|
dependencies = [
|
|
|
|
"typenum",
|
2022-07-19 19:35:25 +02:00
|
|
|
"version_check",
|
Autoenv rewrite, security and scripting (#2083)
* Add args in .nurc file to environment
* Working dummy version
* Add add_nurc to sync_env command
* Parse .nurc file
* Delete env vars after leaving directory
* Removing vals not working, strangely
* Refactoring, add comment
* Debugging
* Debug by logging to file
* Add and remove env var behavior appears correct
However, it does not use existing code that well.
* Move work to cli.rs
* Parse config directories
* I am in a state of distress
* Rename .nurc to .nu
* Some notes for me
* Refactoring
* Removing vars works, but not done in a very nice fashion
* Refactor env_vars_to_delete
* Refactor env_vars_to_add()
* Move directory environment code to separate file
* Refactor from_config
* Restore env values
* Working?
* Working?
* Update comments and change var name
* Formatting
* Remove vars after leaving dir
* Remove notes I made
* Rename config function
* Clippy
* Cleanup and handle errors
* cargo fmt
* Better error messages, remove last (?) unwrap
* FORMAT PLZ
* Rename whitelisted_directories to allowed_directories
* Add comment to clarify how overwritten values are restored.
* Change list of allowed dirs to indexmap
* Rewrite starting
* rewrite everything
* Overwritten env values tracks an indexmap instead of vector
* Refactor restore function
* Untrack removed vars properly
* Performance concerns
* Performance concerns
* Error handling
* Clippy
* Add type aliases for String and OsString
* Deletion almost works
* Working?
* Error handling and refactoring
* nicer errors
* Add TODO file
* Move outside of loop
* Error handling
* Reworking adding of vars
* Reworking adding of vars
* Ready for testing
* Refactoring
* Restore overwritten vals code
* todo.org
* Remove overwritten values tracking, as it is not needed
* Cleanup, stop tracking overwritten values as nu takes care of it
* Init autoenv command
* Initialize autoenv and autoenv trust
* autoenv trust toml
* toml
* Use serde for autoenv
* Optional directory arg
* Add autoenv untrust command
* ... actually add autoenv untrust this time
* OsString and paths
* Revert "OsString and paths"
This reverts commit e6eedf882498c1365ecfc899e5ec11bd83cb055c.
* Fix path
* Fix path
* Autoenv trust and untrust
* Start using autoenv
* Check hashes
* Use trust functionality when setting vars
* Remove unused code
* Clippy
* Nicer errors for autoenv commands
* Non-working errors
* Update error description
* Satisfy fmt
* Errors
* Errors print, but not nicely
* Nicer errors
* fmt
* Delete accidentally added todo.org file
* Rename direnv to autoenv
* Use ShellError instead of Error
* Change tests to pass, danger zone?
* Clippy and errors
* Clippy... again
* Replace match with or_else
* Use sha2 crate for hashing
* parsing and error msg
* Refactoring
* Only apply vars once
* if parent dir
* Delete vars
* Rework exit code
* Adding works
* restore
* Fix possibility of infinite loop
* Refactoring
* Non-working
* Revert "Non-working"
This reverts commit e231b85570bcb3fc838f950e9f5004c6a7c5a2ac.
* Revert "Revert "Non-working""
This reverts commit 804092e46a752266576b044401cc97c317e41f21.
* Autoenv trust works without restart
* Cargo fix
* Script vars
* Serde
* Serde errors
* Entry and exitscripts
* Clippy
* Support windows and handle errors
* Formatting
* Fix infinite loop on windows
* Debugging windows loop
* More windows infinite loop debugging
* Windows loop debugging #3
* windows loop #4
* Don't return err
* Cleanup unused code
* Infinite loop debug
* Loop debugging
* Check if infinite loop is vars_to_add
* env_vars_to_add does not terminate, skip loop as test
* Hypothesis: std::env::current_dir() is messing with something
* Hypothesis: std::env::current_dir() is messing with something
* plz
* make clippy happy
* debugging in env_vars_to_add
* Debbuging env_vars_to_add #2
* clippy
* clippy..
* Fool clippy
* Fix another infinite loop
* Binary search for error location x)
* Binary search #3
* fmt
* Binary search #4
* more searching...
* closing in... maybe
* PLZ
* Cleanup
* Restore commented out functionality
* Handle case when user gives the directory "."
* fmt
* Use fs::canonicalize for paths
* Create optional script section
* fmt
* Add exitscripts even if no entryscripts are defined
* All sections in .nu-env are now optional
* Re-read config file each directory change
* Hot reload after autoenv untrust, don't run exitscripts if untrusted
* Debugging
* Fix issue with recursive adding of vars
* Thank you for finding my issues Mr. Azure
* use std::env
2020-07-05 19:34:00 +02:00
|
|
|
]
|
|
|
|
|
2024-01-20 15:04:06 +01:00
|
|
|
[[package]]
|
|
|
|
name = "gethostname"
|
2024-03-12 23:10:11 +01:00
|
|
|
version = "0.4.3"
|
2024-01-20 15:04:06 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-12 23:10:11 +01:00
|
|
|
checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818"
|
2024-01-20 15:04:06 +01:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
2024-03-12 23:10:11 +01:00
|
|
|
"windows-targets 0.48.5",
|
2024-01-20 15:04:06 +01:00
|
|
|
]
|
|
|
|
|
2021-01-19 21:24:27 +01:00
|
|
|
[[package]]
|
|
|
|
name = "getrandom"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.2.15"
|
2021-01-19 21:24:27 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
|
2021-08-30 20:36:07 +02:00
|
|
|
dependencies = [
|
2023-07-05 14:14:55 +02:00
|
|
|
"cfg-if",
|
2022-11-09 23:07:38 +01:00
|
|
|
"js-sys",
|
2021-01-19 21:24:27 +01:00
|
|
|
"libc",
|
2023-08-25 10:54:01 +02:00
|
|
|
"wasi",
|
2022-11-09 23:07:38 +01:00
|
|
|
"wasm-bindgen",
|
2021-01-19 21:24:27 +01:00
|
|
|
]
|
|
|
|
|
2020-05-16 05:18:24 +02:00
|
|
|
[[package]]
|
2023-07-06 17:31:31 +02:00
|
|
|
name = "gimli"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.29.0"
|
2021-11-23 09:14:40 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd"
|
2021-06-03 08:25:28 +02:00
|
|
|
|
2021-12-06 18:28:11 +01:00
|
|
|
[[package]]
|
2019-06-01 23:11:28 +02:00
|
|
|
name = "git2"
|
2024-06-19 03:09:25 +02:00
|
|
|
version = "0.19.0"
|
2019-06-01 23:11:28 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-06-19 03:09:25 +02:00
|
|
|
checksum = "b903b73e45dc0c6c596f2d37eccece7c1c8bb6e4407b001096387c63d0d93724"
|
2019-06-01 23:11:28 +02:00
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"bitflags 2.6.0",
|
2019-11-28 03:21:00 +01:00
|
|
|
"libc",
|
|
|
|
"libgit2-sys",
|
2021-07-09 21:28:07 +02:00
|
|
|
"log",
|
2021-12-06 18:28:11 +01:00
|
|
|
"openssl-probe",
|
|
|
|
"openssl-sys",
|
2020-11-22 01:37:16 +01:00
|
|
|
"url",
|
2019-06-01 23:11:28 +02:00
|
|
|
]
|
|
|
|
|
2021-04-19 18:19:06 +02:00
|
|
|
[[package]]
|
|
|
|
name = "gjson"
|
2022-04-15 13:04:15 +02:00
|
|
|
version = "0.8.1"
|
2021-04-19 18:19:06 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-04-15 13:04:15 +02:00
|
|
|
checksum = "43503cc176394dd30a6525f5f36e838339b8b5619be33ed9a7783841580a97b6"
|
2021-04-19 18:19:06 +02:00
|
|
|
|
2019-07-27 09:45:00 +02:00
|
|
|
[[package]]
|
|
|
|
name = "glob"
|
2023-03-12 00:35:56 +01:00
|
|
|
version = "0.3.1"
|
2019-07-27 09:45:00 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-03-12 00:35:56 +01:00
|
|
|
checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
|
2019-07-27 09:45:00 +02:00
|
|
|
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
[[package]]
|
|
|
|
name = "glob-match"
|
|
|
|
version = "0.2.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "9985c9503b412198aa4197559e9a318524ebc4519c229bfa05a535828c950b9d"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "goblin"
|
|
|
|
version = "0.7.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f27c1b4369c2cd341b5de549380158b105a04c331be5db9110eef7b6d2742134"
|
|
|
|
dependencies = [
|
|
|
|
"log",
|
|
|
|
"plain",
|
|
|
|
"scroll",
|
|
|
|
]
|
|
|
|
|
2021-07-09 21:28:07 +02:00
|
|
|
[[package]]
|
|
|
|
name = "h2"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.4.6"
|
2021-07-09 21:28:07 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205"
|
2022-01-04 03:01:18 +01:00
|
|
|
dependencies = [
|
2024-08-07 05:09:23 +02:00
|
|
|
"atomic-waker",
|
2022-01-04 03:01:18 +01:00
|
|
|
"bytes",
|
2021-07-09 21:28:07 +02:00
|
|
|
"fnv",
|
|
|
|
"futures-core",
|
|
|
|
"futures-sink",
|
|
|
|
"http",
|
2023-12-06 01:09:34 +01:00
|
|
|
"indexmap",
|
2021-07-09 21:28:07 +02:00
|
|
|
"slab",
|
2021-08-28 05:34:11 +02:00
|
|
|
"tokio",
|
|
|
|
"tokio-util",
|
2021-07-09 21:28:07 +02:00
|
|
|
"tracing",
|
|
|
|
]
|
|
|
|
|
2022-11-09 23:07:38 +01:00
|
|
|
[[package]]
|
|
|
|
name = "halfbrown"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "0.2.5"
|
2022-11-09 23:07:38 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "8588661a8607108a5ca69cab034063441a0413a0b041c13618a7dd348021ef6f"
|
2022-11-09 23:07:38 +01:00
|
|
|
dependencies = [
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
"hashbrown 0.14.5",
|
2022-11-09 23:07:38 +01:00
|
|
|
"serde",
|
|
|
|
]
|
|
|
|
|
2021-12-24 08:22:11 +01:00
|
|
|
[[package]]
|
|
|
|
name = "hash32"
|
2024-01-24 16:55:13 +01:00
|
|
|
version = "0.3.1"
|
2021-05-01 18:12:25 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-24 16:55:13 +01:00
|
|
|
checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606"
|
2021-05-01 18:12:25 +02:00
|
|
|
dependencies = [
|
|
|
|
"byteorder",
|
|
|
|
]
|
|
|
|
|
2024-01-21 21:17:28 +01:00
|
|
|
[[package]]
|
|
|
|
name = "hashbrown"
|
|
|
|
version = "0.12.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
|
|
|
|
dependencies = [
|
2024-04-10 02:31:43 +02:00
|
|
|
"ahash 0.7.8",
|
2020-11-22 01:37:16 +01:00
|
|
|
]
|
|
|
|
|
2023-07-06 17:31:31 +02:00
|
|
|
[[package]]
|
|
|
|
name = "hashbrown"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
version = "0.14.5"
|
2023-07-06 17:31:31 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
|
2023-07-06 17:31:31 +02:00
|
|
|
dependencies = [
|
2024-04-10 02:31:43 +02:00
|
|
|
"ahash 0.8.11",
|
2023-07-06 17:31:31 +02:00
|
|
|
"allocator-api2",
|
2023-08-30 00:13:34 +02:00
|
|
|
"rayon",
|
2024-06-06 01:26:47 +02:00
|
|
|
"serde",
|
2023-07-06 17:31:31 +02:00
|
|
|
]
|
|
|
|
|
2024-10-09 02:07:21 +02:00
|
|
|
[[package]]
|
|
|
|
name = "hashbrown"
|
|
|
|
version = "0.15.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb"
|
|
|
|
|
2022-04-14 05:15:02 +02:00
|
|
|
[[package]]
|
|
|
|
name = "hashlink"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.9.1"
|
2022-04-14 05:15:02 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af"
|
2022-04-14 05:15:02 +02:00
|
|
|
dependencies = [
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
"hashbrown 0.14.5",
|
2022-04-14 05:15:02 +02:00
|
|
|
]
|
|
|
|
|
2021-05-01 18:12:25 +02:00
|
|
|
[[package]]
|
|
|
|
name = "heapless"
|
2024-01-24 16:55:13 +01:00
|
|
|
version = "0.8.0"
|
2021-05-01 18:12:25 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-24 16:55:13 +01:00
|
|
|
checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad"
|
2021-12-24 08:22:11 +01:00
|
|
|
dependencies = [
|
2022-07-19 19:35:25 +02:00
|
|
|
"hash32",
|
2021-05-01 18:12:25 +02:00
|
|
|
"stable_deref_trait",
|
|
|
|
]
|
|
|
|
|
2024-03-21 20:17:30 +01:00
|
|
|
[[package]]
|
|
|
|
name = "heck"
|
|
|
|
version = "0.5.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
|
|
|
|
|
2023-03-12 00:35:56 +01:00
|
|
|
[[package]]
|
|
|
|
name = "hermit-abi"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "0.3.9"
|
2023-03-24 10:55:25 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
|
2023-03-24 10:55:25 +01:00
|
|
|
|
2024-08-24 00:35:42 +02:00
|
|
|
[[package]]
|
|
|
|
name = "hermit-abi"
|
|
|
|
version = "0.4.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc"
|
|
|
|
|
2019-09-24 21:02:35 +02:00
|
|
|
[[package]]
|
|
|
|
name = "hex"
|
2021-03-12 06:20:54 +01:00
|
|
|
version = "0.4.3"
|
2019-09-24 21:02:35 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2021-03-12 06:20:54 +01:00
|
|
|
checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
|
2019-09-24 21:02:35 +02:00
|
|
|
|
2023-05-12 14:44:35 +02:00
|
|
|
[[package]]
|
|
|
|
name = "home"
|
2024-01-21 04:53:24 +01:00
|
|
|
version = "0.5.9"
|
2023-05-12 14:44:35 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 04:53:24 +01:00
|
|
|
checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
|
2023-05-12 14:44:35 +02:00
|
|
|
dependencies = [
|
2024-01-21 04:53:24 +01:00
|
|
|
"windows-sys 0.52.0",
|
2023-05-12 14:44:35 +02:00
|
|
|
]
|
|
|
|
|
2024-06-29 23:13:31 +02:00
|
|
|
[[package]]
|
|
|
|
name = "html5ever"
|
|
|
|
version = "0.27.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "c13771afe0e6e846f1e67d038d4cb29998a6779f93c809212e4e9c32efd244d4"
|
|
|
|
dependencies = [
|
|
|
|
"log",
|
|
|
|
"mac",
|
2024-08-07 03:07:19 +02:00
|
|
|
"markup5ever",
|
2024-06-29 23:13:31 +02:00
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2024-08-24 00:35:42 +02:00
|
|
|
"syn 2.0.75",
|
2024-06-29 23:13:31 +02:00
|
|
|
]
|
|
|
|
|
2020-11-22 01:37:16 +01:00
|
|
|
[[package]]
|
|
|
|
name = "http"
|
2024-08-07 05:09:23 +02:00
|
|
|
version = "1.1.0"
|
2020-11-22 01:37:16 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-07 05:09:23 +02:00
|
|
|
checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258"
|
2022-01-04 03:01:18 +01:00
|
|
|
dependencies = [
|
|
|
|
"bytes",
|
|
|
|
"fnv",
|
2023-03-06 04:37:22 +01:00
|
|
|
"itoa",
|
2020-11-22 01:37:16 +01:00
|
|
|
]
|
|
|
|
|
2021-07-30 23:04:01 +02:00
|
|
|
[[package]]
|
|
|
|
name = "http-body"
|
2024-08-07 05:09:23 +02:00
|
|
|
version = "1.0.1"
|
2021-07-09 21:28:07 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-07 05:09:23 +02:00
|
|
|
checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184"
|
2021-07-09 21:28:07 +02:00
|
|
|
dependencies = [
|
2022-01-04 03:01:18 +01:00
|
|
|
"bytes",
|
2021-07-09 21:28:07 +02:00
|
|
|
"http",
|
2024-08-07 05:09:23 +02:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "http-body-util"
|
|
|
|
version = "0.1.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f"
|
|
|
|
dependencies = [
|
|
|
|
"bytes",
|
|
|
|
"futures-util",
|
|
|
|
"http",
|
|
|
|
"http-body",
|
2021-08-28 05:34:11 +02:00
|
|
|
"pin-project-lite",
|
2021-03-03 19:18:11 +01:00
|
|
|
]
|
|
|
|
|
2020-08-12 19:20:22 +02:00
|
|
|
[[package]]
|
|
|
|
name = "httparse"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.9.4"
|
2021-07-30 23:04:01 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9"
|
2021-07-30 23:04:01 +02:00
|
|
|
|
2021-07-09 21:28:07 +02:00
|
|
|
[[package]]
|
|
|
|
name = "httpdate"
|
2023-10-07 13:58:26 +02:00
|
|
|
version = "1.0.3"
|
2021-07-09 21:28:07 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 13:58:26 +02:00
|
|
|
checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
|
2021-07-09 21:28:07 +02:00
|
|
|
|
2023-11-16 00:43:37 +01:00
|
|
|
[[package]]
|
|
|
|
name = "human-date-parser"
|
2024-09-30 18:47:50 +02:00
|
|
|
version = "0.2.0"
|
2023-11-16 00:43:37 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-09-30 18:47:50 +02:00
|
|
|
checksum = "1116cf4debfe770c12168458321c4a8591b71c4c19f7100de07c84cf81701c63"
|
2023-11-16 00:43:37 +01:00
|
|
|
dependencies = [
|
|
|
|
"chrono",
|
|
|
|
"pest",
|
|
|
|
"pest_derive",
|
|
|
|
"thiserror",
|
|
|
|
]
|
|
|
|
|
2024-06-28 01:56:56 +02:00
|
|
|
[[package]]
|
|
|
|
name = "humantime"
|
|
|
|
version = "2.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
|
|
|
|
|
2021-07-30 23:04:01 +02:00
|
|
|
[[package]]
|
|
|
|
name = "hyper"
|
2024-08-07 05:09:23 +02:00
|
|
|
version = "1.4.1"
|
2021-07-30 23:04:01 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-07 05:09:23 +02:00
|
|
|
checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05"
|
2022-01-04 03:01:18 +01:00
|
|
|
dependencies = [
|
|
|
|
"bytes",
|
2020-11-22 01:37:16 +01:00
|
|
|
"futures-channel",
|
|
|
|
"futures-util",
|
2021-08-28 05:34:11 +02:00
|
|
|
"h2",
|
2021-06-01 10:11:21 +02:00
|
|
|
"http",
|
2021-08-28 05:34:11 +02:00
|
|
|
"http-body",
|
2020-08-12 19:20:22 +02:00
|
|
|
"httparse",
|
2021-08-28 05:34:11 +02:00
|
|
|
"httpdate",
|
2023-03-06 04:37:22 +01:00
|
|
|
"itoa",
|
2021-08-28 05:34:11 +02:00
|
|
|
"pin-project-lite",
|
2024-08-07 05:09:23 +02:00
|
|
|
"smallvec",
|
|
|
|
"tokio",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "hyper-util"
|
|
|
|
version = "0.1.7"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9"
|
|
|
|
dependencies = [
|
|
|
|
"bytes",
|
|
|
|
"futures-util",
|
|
|
|
"http",
|
|
|
|
"http-body",
|
|
|
|
"hyper",
|
|
|
|
"pin-project-lite",
|
2021-08-28 05:34:11 +02:00
|
|
|
"tokio",
|
2020-08-12 19:20:22 +02:00
|
|
|
]
|
|
|
|
|
2022-07-26 04:09:32 +02:00
|
|
|
[[package]]
|
|
|
|
name = "iana-time-zone"
|
2024-03-11 21:37:34 +01:00
|
|
|
version = "0.1.60"
|
2022-07-26 04:09:32 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-11 21:37:34 +01:00
|
|
|
checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
|
2022-07-26 04:09:32 +02:00
|
|
|
dependencies = [
|
2022-08-13 20:21:28 +02:00
|
|
|
"android_system_properties",
|
|
|
|
"core-foundation-sys",
|
2023-03-12 00:35:56 +01:00
|
|
|
"iana-time-zone-haiku",
|
2022-07-26 04:09:32 +02:00
|
|
|
"js-sys",
|
|
|
|
"wasm-bindgen",
|
2024-03-08 01:36:28 +01:00
|
|
|
"windows-core 0.52.0",
|
2022-07-26 04:09:32 +02:00
|
|
|
]
|
|
|
|
|
2023-03-12 00:35:56 +01:00
|
|
|
[[package]]
|
|
|
|
name = "iana-time-zone-haiku"
|
2023-05-18 01:32:28 +02:00
|
|
|
version = "0.1.2"
|
2023-03-12 00:35:56 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-05-18 01:32:28 +02:00
|
|
|
checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
|
2023-03-12 00:35:56 +01:00
|
|
|
dependencies = [
|
2023-05-18 01:32:28 +02:00
|
|
|
"cc",
|
2023-03-12 00:35:56 +01:00
|
|
|
]
|
|
|
|
|
2020-03-20 20:35:09 +01:00
|
|
|
[[package]]
|
|
|
|
name = "ical"
|
2024-03-27 07:44:33 +01:00
|
|
|
version = "0.11.0"
|
2020-03-20 20:35:09 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-27 07:44:33 +01:00
|
|
|
checksum = "9b7cab7543a8b7729a19e2c04309f902861293dcdae6558dfbeb634454d279f6"
|
2020-03-20 20:35:09 +01:00
|
|
|
dependencies = [
|
2021-01-07 01:38:22 +01:00
|
|
|
"thiserror",
|
2020-03-20 20:35:09 +01:00
|
|
|
]
|
|
|
|
|
2019-07-29 09:46:24 +02:00
|
|
|
[[package]]
|
|
|
|
name = "idna"
|
2023-12-06 01:09:34 +01:00
|
|
|
version = "0.5.0"
|
2019-07-29 09:46:24 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-12-06 01:09:34 +01:00
|
|
|
checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
|
2019-07-29 09:46:24 +02:00
|
|
|
dependencies = [
|
2019-11-28 03:21:00 +01:00
|
|
|
"unicode-bidi",
|
|
|
|
"unicode-normalization",
|
2019-07-29 09:46:24 +02:00
|
|
|
]
|
|
|
|
|
2023-07-06 17:31:31 +02:00
|
|
|
[[package]]
|
|
|
|
name = "indexmap"
|
2024-10-09 02:07:21 +02:00
|
|
|
version = "2.6.0"
|
2023-07-06 17:31:31 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-10-09 02:07:21 +02:00
|
|
|
checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da"
|
2023-07-06 17:31:31 +02:00
|
|
|
dependencies = [
|
|
|
|
"equivalent",
|
2024-10-09 02:07:21 +02:00
|
|
|
"hashbrown 0.15.0",
|
2023-08-30 00:13:34 +02:00
|
|
|
"serde",
|
2023-07-06 17:31:31 +02:00
|
|
|
]
|
|
|
|
|
2023-01-11 02:57:48 +01:00
|
|
|
[[package]]
|
|
|
|
name = "indicatif"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "0.17.8"
|
2023-01-11 02:57:48 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3"
|
2023-01-11 02:57:48 +01:00
|
|
|
dependencies = [
|
|
|
|
"console",
|
2023-07-06 17:31:31 +02:00
|
|
|
"instant",
|
2023-01-11 02:57:48 +01:00
|
|
|
"number_prefix",
|
2023-07-06 17:31:31 +02:00
|
|
|
"portable-atomic",
|
2023-01-11 02:57:48 +01:00
|
|
|
"unicode-width",
|
|
|
|
]
|
|
|
|
|
2022-04-28 16:26:34 +02:00
|
|
|
[[package]]
|
|
|
|
name = "inotify"
|
2023-07-05 14:14:55 +02:00
|
|
|
version = "0.9.6"
|
2022-04-28 16:26:34 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-07-05 14:14:55 +02:00
|
|
|
checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff"
|
2022-04-28 16:26:34 +02:00
|
|
|
dependencies = [
|
2023-05-26 17:32:48 +02:00
|
|
|
"bitflags 1.3.2",
|
2022-04-28 16:26:34 +02:00
|
|
|
"inotify-sys",
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "inotify-sys"
|
|
|
|
version = "0.1.5"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb"
|
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
2021-08-01 05:03:13 +02:00
|
|
|
[[package]]
|
2020-06-27 09:54:31 +02:00
|
|
|
name = "instant"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.1.13"
|
2020-06-27 09:54:31 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222"
|
2020-10-07 00:21:24 +02:00
|
|
|
dependencies = [
|
2023-07-05 14:14:55 +02:00
|
|
|
"cfg-if",
|
2020-10-07 00:21:24 +02:00
|
|
|
]
|
2020-06-27 09:54:31 +02:00
|
|
|
|
Local socket mode and foreground terminal control for plugins (#12448)
# Description
Adds support for running plugins using local socket communication
instead of stdio. This will be an optional thing that not all plugins
have to support.
This frees up stdio for use to make plugins that use stdio to create
terminal UIs, cc @amtoine, @fdncred.
This uses the [`interprocess`](https://crates.io/crates/interprocess)
crate (298 stars, MIT license, actively maintained), which seems to be
the best option for cross-platform local socket support in Rust. On
Windows, a local socket name is provided. On Unixes, it's a path. The
socket name is kept to a relatively small size because some operating
systems have pretty strict limits on the whole path (~100 chars), so on
macOS for example we prefer `/tmp/nu.{pid}.{hash64}.sock` where the hash
includes the plugin filename and timestamp to be unique enough.
This also adds an API for moving plugins in and out of the foreground
group, which is relevant for Unixes where direct terminal control
depends on that.
TODO:
- [x] Generate local socket path according to OS conventions
- [x] Add support for passing `--local-socket` to the plugin executable
instead of `--stdio`, and communicating over that instead
- [x] Test plugins that were broken, including
[amtoine/nu_plugin_explore](https://github.com/amtoine/nu_plugin_explore)
- [x] Automatically upgrade to using local sockets when supported,
falling back if it doesn't work, transparently to the user without any
visible error messages
- Added protocol feature: `LocalSocket`
- [x] Reset preferred mode to `None` on `register`
- [x] Allow plugins to detect whether they're running on a local socket
and can use stdio freely, so that TUI plugins can just produce an error
message otherwise
- Implemented via `EngineInterface::is_using_stdio()`
- [x] Clean up foreground state when plugin command exits on the engine
side too, not just whole plugin
- [x] Make sure tests for failure cases work as intended
- `nu_plugin_stress_internals` added
# User-Facing Changes
- TUI plugins work
- Non-Rust plugins could optionally choose to use this
- This might behave differently, so will need to test it carefully
across different operating systems
# Tests + Formatting
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# After Submitting
- [ ] Document local socket option in plugin contrib docs
- [ ] Document how to do a terminal UI plugin in plugin contrib docs
- [ ] Document: `EnterForeground` engine call
- [ ] Document: `LeaveForeground` engine call
- [ ] Document: `LocalSocket` protocol feature
2024-04-15 20:28:18 +02:00
|
|
|
[[package]]
|
|
|
|
name = "interprocess"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "2.2.1"
|
Local socket mode and foreground terminal control for plugins (#12448)
# Description
Adds support for running plugins using local socket communication
instead of stdio. This will be an optional thing that not all plugins
have to support.
This frees up stdio for use to make plugins that use stdio to create
terminal UIs, cc @amtoine, @fdncred.
This uses the [`interprocess`](https://crates.io/crates/interprocess)
crate (298 stars, MIT license, actively maintained), which seems to be
the best option for cross-platform local socket support in Rust. On
Windows, a local socket name is provided. On Unixes, it's a path. The
socket name is kept to a relatively small size because some operating
systems have pretty strict limits on the whole path (~100 chars), so on
macOS for example we prefer `/tmp/nu.{pid}.{hash64}.sock` where the hash
includes the plugin filename and timestamp to be unique enough.
This also adds an API for moving plugins in and out of the foreground
group, which is relevant for Unixes where direct terminal control
depends on that.
TODO:
- [x] Generate local socket path according to OS conventions
- [x] Add support for passing `--local-socket` to the plugin executable
instead of `--stdio`, and communicating over that instead
- [x] Test plugins that were broken, including
[amtoine/nu_plugin_explore](https://github.com/amtoine/nu_plugin_explore)
- [x] Automatically upgrade to using local sockets when supported,
falling back if it doesn't work, transparently to the user without any
visible error messages
- Added protocol feature: `LocalSocket`
- [x] Reset preferred mode to `None` on `register`
- [x] Allow plugins to detect whether they're running on a local socket
and can use stdio freely, so that TUI plugins can just produce an error
message otherwise
- Implemented via `EngineInterface::is_using_stdio()`
- [x] Clean up foreground state when plugin command exits on the engine
side too, not just whole plugin
- [x] Make sure tests for failure cases work as intended
- `nu_plugin_stress_internals` added
# User-Facing Changes
- TUI plugins work
- Non-Rust plugins could optionally choose to use this
- This might behave differently, so will need to test it carefully
across different operating systems
# Tests + Formatting
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# After Submitting
- [ ] Document local socket option in plugin contrib docs
- [ ] Document how to do a terminal UI plugin in plugin contrib docs
- [ ] Document: `EnterForeground` engine call
- [ ] Document: `LeaveForeground` engine call
- [ ] Document: `LocalSocket` protocol feature
2024-04-15 20:28:18 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "d2f4e4a06d42fab3e85ab1b419ad32b09eab58b901d40c57935ff92db3287a13"
|
Local socket mode and foreground terminal control for plugins (#12448)
# Description
Adds support for running plugins using local socket communication
instead of stdio. This will be an optional thing that not all plugins
have to support.
This frees up stdio for use to make plugins that use stdio to create
terminal UIs, cc @amtoine, @fdncred.
This uses the [`interprocess`](https://crates.io/crates/interprocess)
crate (298 stars, MIT license, actively maintained), which seems to be
the best option for cross-platform local socket support in Rust. On
Windows, a local socket name is provided. On Unixes, it's a path. The
socket name is kept to a relatively small size because some operating
systems have pretty strict limits on the whole path (~100 chars), so on
macOS for example we prefer `/tmp/nu.{pid}.{hash64}.sock` where the hash
includes the plugin filename and timestamp to be unique enough.
This also adds an API for moving plugins in and out of the foreground
group, which is relevant for Unixes where direct terminal control
depends on that.
TODO:
- [x] Generate local socket path according to OS conventions
- [x] Add support for passing `--local-socket` to the plugin executable
instead of `--stdio`, and communicating over that instead
- [x] Test plugins that were broken, including
[amtoine/nu_plugin_explore](https://github.com/amtoine/nu_plugin_explore)
- [x] Automatically upgrade to using local sockets when supported,
falling back if it doesn't work, transparently to the user without any
visible error messages
- Added protocol feature: `LocalSocket`
- [x] Reset preferred mode to `None` on `register`
- [x] Allow plugins to detect whether they're running on a local socket
and can use stdio freely, so that TUI plugins can just produce an error
message otherwise
- Implemented via `EngineInterface::is_using_stdio()`
- [x] Clean up foreground state when plugin command exits on the engine
side too, not just whole plugin
- [x] Make sure tests for failure cases work as intended
- `nu_plugin_stress_internals` added
# User-Facing Changes
- TUI plugins work
- Non-Rust plugins could optionally choose to use this
- This might behave differently, so will need to test it carefully
across different operating systems
# Tests + Formatting
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# After Submitting
- [ ] Document local socket option in plugin contrib docs
- [ ] Document how to do a terminal UI plugin in plugin contrib docs
- [ ] Document: `EnterForeground` engine call
- [ ] Document: `LeaveForeground` engine call
- [ ] Document: `LocalSocket` protocol feature
2024-04-15 20:28:18 +02:00
|
|
|
dependencies = [
|
2024-06-20 10:10:27 +02:00
|
|
|
"doctest-file",
|
Local socket mode and foreground terminal control for plugins (#12448)
# Description
Adds support for running plugins using local socket communication
instead of stdio. This will be an optional thing that not all plugins
have to support.
This frees up stdio for use to make plugins that use stdio to create
terminal UIs, cc @amtoine, @fdncred.
This uses the [`interprocess`](https://crates.io/crates/interprocess)
crate (298 stars, MIT license, actively maintained), which seems to be
the best option for cross-platform local socket support in Rust. On
Windows, a local socket name is provided. On Unixes, it's a path. The
socket name is kept to a relatively small size because some operating
systems have pretty strict limits on the whole path (~100 chars), so on
macOS for example we prefer `/tmp/nu.{pid}.{hash64}.sock` where the hash
includes the plugin filename and timestamp to be unique enough.
This also adds an API for moving plugins in and out of the foreground
group, which is relevant for Unixes where direct terminal control
depends on that.
TODO:
- [x] Generate local socket path according to OS conventions
- [x] Add support for passing `--local-socket` to the plugin executable
instead of `--stdio`, and communicating over that instead
- [x] Test plugins that were broken, including
[amtoine/nu_plugin_explore](https://github.com/amtoine/nu_plugin_explore)
- [x] Automatically upgrade to using local sockets when supported,
falling back if it doesn't work, transparently to the user without any
visible error messages
- Added protocol feature: `LocalSocket`
- [x] Reset preferred mode to `None` on `register`
- [x] Allow plugins to detect whether they're running on a local socket
and can use stdio freely, so that TUI plugins can just produce an error
message otherwise
- Implemented via `EngineInterface::is_using_stdio()`
- [x] Clean up foreground state when plugin command exits on the engine
side too, not just whole plugin
- [x] Make sure tests for failure cases work as intended
- `nu_plugin_stress_internals` added
# User-Facing Changes
- TUI plugins work
- Non-Rust plugins could optionally choose to use this
- This might behave differently, so will need to test it carefully
across different operating systems
# Tests + Formatting
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# After Submitting
- [ ] Document local socket option in plugin contrib docs
- [ ] Document how to do a terminal UI plugin in plugin contrib docs
- [ ] Document: `EnterForeground` engine call
- [ ] Document: `LeaveForeground` engine call
- [ ] Document: `LocalSocket` protocol feature
2024-04-15 20:28:18 +02:00
|
|
|
"libc",
|
2024-05-03 07:31:33 +02:00
|
|
|
"recvmsg",
|
|
|
|
"widestring",
|
|
|
|
"windows-sys 0.52.0",
|
Local socket mode and foreground terminal control for plugins (#12448)
# Description
Adds support for running plugins using local socket communication
instead of stdio. This will be an optional thing that not all plugins
have to support.
This frees up stdio for use to make plugins that use stdio to create
terminal UIs, cc @amtoine, @fdncred.
This uses the [`interprocess`](https://crates.io/crates/interprocess)
crate (298 stars, MIT license, actively maintained), which seems to be
the best option for cross-platform local socket support in Rust. On
Windows, a local socket name is provided. On Unixes, it's a path. The
socket name is kept to a relatively small size because some operating
systems have pretty strict limits on the whole path (~100 chars), so on
macOS for example we prefer `/tmp/nu.{pid}.{hash64}.sock` where the hash
includes the plugin filename and timestamp to be unique enough.
This also adds an API for moving plugins in and out of the foreground
group, which is relevant for Unixes where direct terminal control
depends on that.
TODO:
- [x] Generate local socket path according to OS conventions
- [x] Add support for passing `--local-socket` to the plugin executable
instead of `--stdio`, and communicating over that instead
- [x] Test plugins that were broken, including
[amtoine/nu_plugin_explore](https://github.com/amtoine/nu_plugin_explore)
- [x] Automatically upgrade to using local sockets when supported,
falling back if it doesn't work, transparently to the user without any
visible error messages
- Added protocol feature: `LocalSocket`
- [x] Reset preferred mode to `None` on `register`
- [x] Allow plugins to detect whether they're running on a local socket
and can use stdio freely, so that TUI plugins can just produce an error
message otherwise
- Implemented via `EngineInterface::is_using_stdio()`
- [x] Clean up foreground state when plugin command exits on the engine
side too, not just whole plugin
- [x] Make sure tests for failure cases work as intended
- `nu_plugin_stress_internals` added
# User-Facing Changes
- TUI plugins work
- Non-Rust plugins could optionally choose to use this
- This might behave differently, so will need to test it carefully
across different operating systems
# Tests + Formatting
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# After Submitting
- [ ] Document local socket option in plugin contrib docs
- [ ] Document how to do a terminal UI plugin in plugin contrib docs
- [ ] Document: `EnterForeground` engine call
- [ ] Document: `LeaveForeground` engine call
- [ ] Document: `LocalSocket` protocol feature
2024-04-15 20:28:18 +02:00
|
|
|
]
|
|
|
|
|
2019-05-24 20:48:33 +02:00
|
|
|
[[package]]
|
2021-11-23 09:14:40 +01:00
|
|
|
name = "inventory"
|
2024-01-27 01:33:15 +01:00
|
|
|
version = "0.3.15"
|
2021-11-23 09:14:40 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-27 01:33:15 +01:00
|
|
|
checksum = "f958d3d68f4167080a18141e10381e7634563984a537f2a49a30fd8e53ac5767"
|
2021-11-23 09:14:40 +01:00
|
|
|
|
2023-04-17 07:05:40 +02:00
|
|
|
[[package]]
|
|
|
|
name = "is-docker"
|
|
|
|
version = "0.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3"
|
|
|
|
dependencies = [
|
|
|
|
"once_cell",
|
|
|
|
]
|
|
|
|
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
[[package]]
|
|
|
|
name = "is-terminal"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.4.13"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"hermit-abi 0.4.0",
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
"libc",
|
|
|
|
"windows-sys 0.52.0",
|
|
|
|
]
|
|
|
|
|
2023-04-17 07:05:40 +02:00
|
|
|
[[package]]
|
|
|
|
name = "is-wsl"
|
|
|
|
version = "0.4.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5"
|
|
|
|
dependencies = [
|
|
|
|
"is-docker",
|
|
|
|
"once_cell",
|
|
|
|
]
|
|
|
|
|
2021-12-01 20:48:03 +01:00
|
|
|
[[package]]
|
2021-09-23 01:49:39 +02:00
|
|
|
name = "is_ci"
|
2024-02-08 02:26:18 +01:00
|
|
|
version = "1.2.0"
|
2021-09-23 01:49:39 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-02-08 02:26:18 +01:00
|
|
|
checksum = "7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45"
|
2021-09-23 01:49:39 +02:00
|
|
|
|
2021-12-11 21:40:16 +01:00
|
|
|
[[package]]
|
2021-12-01 20:48:03 +01:00
|
|
|
name = "is_debug"
|
|
|
|
version = "1.0.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "06d198e9919d9822d5f7083ba8530e04de87841eaf21ead9af8f2304efd57c89"
|
|
|
|
|
2021-06-21 23:39:21 +02:00
|
|
|
[[package]]
|
|
|
|
name = "is_executable"
|
|
|
|
version = "1.0.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "fa9acdc6d67b75e626ad644734e8bc6df893d9cd2a834129065d3dd6158ea9c8"
|
|
|
|
dependencies = [
|
2023-07-05 14:14:55 +02:00
|
|
|
"winapi",
|
2021-06-21 23:39:21 +02:00
|
|
|
]
|
|
|
|
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
[[package]]
|
|
|
|
name = "is_terminal_polyfill"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.70.1"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
|
2023-09-04 02:22:25 +02:00
|
|
|
[[package]]
|
|
|
|
name = "itertools"
|
|
|
|
version = "0.11.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
|
|
|
|
dependencies = [
|
|
|
|
"either",
|
|
|
|
]
|
|
|
|
|
Bump itertools from 0.11.0 to 0.12.0 (#11360)
Bumps [itertools](https://github.com/rust-itertools/itertools) from
0.11.0 to 0.12.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-itertools/itertools/blob/master/CHANGELOG.md">itertools's
changelog</a>.</em></p>
<blockquote>
<h2>0.12.0</h2>
<h3>Breaking</h3>
<ul>
<li>Made <code>take_while_inclusive</code> consume iterator by value (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/709">#709</a>)</li>
<li>Added <code>Clone</code> bound to <code>Unique</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/777">#777</a>)</li>
</ul>
<h3>Added</h3>
<ul>
<li>Added <code>Itertools::try_len</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/723">#723</a>)</li>
<li>Added free function <code>sort_unstable</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/796">#796</a>)</li>
<li>Added <code>GroupMap::fold_with</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/778">#778</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/785">#785</a>)</li>
<li>Added <code>PeekNth::{peek_mut, peek_nth_mut}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/716">#716</a>)</li>
<li>Added <code>PeekNth::{next_if, next_if_eq}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/734">#734</a>)</li>
<li>Added conversion into <code>(Option<A>,Option<B>)</code>
to <code>EitherOrBoth</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/713">#713</a>)</li>
<li>Added conversion from <code>Either<A, B></code> to
<code>EitherOrBoth<A, B></code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/715">#715</a>)</li>
<li>Implemented <code>ExactSizeIterator</code> for <code>Tuples</code>
(<a
href="https://redirect.github.com/rust-itertools/itertools/issues/761">#761</a>)</li>
<li>Implemented <code>ExactSizeIterator</code> for
<code>(Circular)TupleWindows</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/752">#752</a>)</li>
<li>Made <code>EitherOrBoth<T></code> a shorthand for
<code>EitherOrBoth<T, T></code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/719">#719</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Added missing <code>#[must_use]</code> annotations on iterator
adaptors (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/794">#794</a>)</li>
<li>Made <code>Combinations</code> lazy (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/795">#795</a>)</li>
<li>Made <code>Intersperse(With)</code> lazy (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/797">#797</a>)</li>
<li>Made <code>Permutations</code> lazy (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/793">#793</a>)</li>
<li>Made <code>Product</code> lazy (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/800">#800</a>)</li>
<li>Made <code>TupleWindows</code> lazy (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/602">#602</a>)</li>
<li>Specialized <code>Combinations::{count, size_hint}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/729">#729</a>)</li>
<li>Specialized <code>CombinationsWithReplacement::{count,
size_hint}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/737">#737</a>)</li>
<li>Specialized <code>Powerset::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/765">#765</a>)</li>
<li>Specialized <code>Powerset::count</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/735">#735</a>)</li>
<li>Specialized <code>TupleCombinations::{count, size_hint}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/763">#763</a>)</li>
<li>Specialized <code>TupleCombinations::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/775">#775</a>)</li>
<li>Specialized <code>WhileSome::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/780">#780</a>)</li>
<li>Specialized <code>WithPosition::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/772">#772</a>)</li>
<li>Specialized <code>ZipLongest::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/774">#774</a>)</li>
<li>Changed <code>{min, max}_set*</code> operations require
<code>alloc</code> feature, instead of <code>std</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/760">#760</a>)</li>
<li>Improved documentation of <code>tree_fold1</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/787">#787</a>)</li>
<li>Improved documentation of <code>permutations</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/724">#724</a>)</li>
<li>Fixed typo in documentation of <code>multiunzip</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/770">#770</a>)</li>
</ul>
<h3>Notable Internal Changes</h3>
<ul>
<li>Improved specialization tests (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/799">#799</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/786">#786</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/782">#782</a>)</li>
<li>Simplified implementation of <code>Permutations</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/739">#739</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/748">#748</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/790">#790</a>)</li>
<li>Combined
<code>Merge</code>/<code>MergeBy</code>/<code>MergeJoinBy</code>
implementations (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/736">#736</a>)</li>
<li>Simplified <code>Permutations::size_hint</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/739">#739</a>)</li>
<li>Fix wrapping arithmetic in benchmarks (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/770">#770</a>)</li>
<li>Enforced <code>rustfmt</code> in CI (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/751">#751</a>)</li>
<li>Disallowed compile warnings in CI (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/720">#720</a>)</li>
<li>Used <code>cargo hack</code> to check MSRV (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/754">#754</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/rust-itertools/itertools/commit/98ecabb47d7147dae06fc3fa400ec758947194f3"><code>98ecabb</code></a>
chore: Release itertools version 0.12.0</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/22fc427ac5282cbdafccfe38a686ec1d3b720120"><code>22fc427</code></a>
prepare v0.12.0 release</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/6d291786a9c9686a3997d93c513bd18326611fe5"><code>6d29178</code></a>
Document the field <code>a_cur</code> of <code>Product</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/bf2b0129d1d3cc1ffa733059f3088adb6d745fe6"><code>bf2b012</code></a>
Better <code>Product::size_hint</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/8d07f6b8566a515118ca8b119f358b73d483152b"><code>8d07f6b</code></a>
Make <code>Product</code> lazy</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/d7e6bab9fd0ad79130692f8e48e21375362a7614"><code>d7e6bab</code></a>
Document the field <code>peek</code> of
<code>IntersperseWith</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/9b01a118919f0d1f7c3327d1a15a5eb660f3912e"><code>9b01a11</code></a>
Make <code>IntersperseWith</code> lazy</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/4f22173b93a2eb58da16b7da6d08e6c3f1c56544"><code>4f22173</code></a>
Refactor <code>IntersperseWith::next</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/b76172b412116356ebef05b884a6e4def63a4d17"><code>b76172b</code></a>
chore: adjust docs to reflect discussion in the PR</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/955927f6c424f895ad7519d413bc5718e6ad26bf"><code>955927f</code></a>
chore: fixup docs of tree_fold1</li>
<li>Additional commits viewable in <a
href="https://github.com/rust-itertools/itertools/compare/v0.11.0...v0.12.0">compare
view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=itertools&package-manager=cargo&previous-version=0.11.0&new-version=0.12.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-20 15:58:07 +01:00
|
|
|
[[package]]
|
|
|
|
name = "itertools"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "0.12.1"
|
Bump itertools from 0.11.0 to 0.12.0 (#11360)
Bumps [itertools](https://github.com/rust-itertools/itertools) from
0.11.0 to 0.12.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-itertools/itertools/blob/master/CHANGELOG.md">itertools's
changelog</a>.</em></p>
<blockquote>
<h2>0.12.0</h2>
<h3>Breaking</h3>
<ul>
<li>Made <code>take_while_inclusive</code> consume iterator by value (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/709">#709</a>)</li>
<li>Added <code>Clone</code> bound to <code>Unique</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/777">#777</a>)</li>
</ul>
<h3>Added</h3>
<ul>
<li>Added <code>Itertools::try_len</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/723">#723</a>)</li>
<li>Added free function <code>sort_unstable</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/796">#796</a>)</li>
<li>Added <code>GroupMap::fold_with</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/778">#778</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/785">#785</a>)</li>
<li>Added <code>PeekNth::{peek_mut, peek_nth_mut}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/716">#716</a>)</li>
<li>Added <code>PeekNth::{next_if, next_if_eq}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/734">#734</a>)</li>
<li>Added conversion into <code>(Option<A>,Option<B>)</code>
to <code>EitherOrBoth</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/713">#713</a>)</li>
<li>Added conversion from <code>Either<A, B></code> to
<code>EitherOrBoth<A, B></code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/715">#715</a>)</li>
<li>Implemented <code>ExactSizeIterator</code> for <code>Tuples</code>
(<a
href="https://redirect.github.com/rust-itertools/itertools/issues/761">#761</a>)</li>
<li>Implemented <code>ExactSizeIterator</code> for
<code>(Circular)TupleWindows</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/752">#752</a>)</li>
<li>Made <code>EitherOrBoth<T></code> a shorthand for
<code>EitherOrBoth<T, T></code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/719">#719</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Added missing <code>#[must_use]</code> annotations on iterator
adaptors (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/794">#794</a>)</li>
<li>Made <code>Combinations</code> lazy (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/795">#795</a>)</li>
<li>Made <code>Intersperse(With)</code> lazy (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/797">#797</a>)</li>
<li>Made <code>Permutations</code> lazy (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/793">#793</a>)</li>
<li>Made <code>Product</code> lazy (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/800">#800</a>)</li>
<li>Made <code>TupleWindows</code> lazy (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/602">#602</a>)</li>
<li>Specialized <code>Combinations::{count, size_hint}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/729">#729</a>)</li>
<li>Specialized <code>CombinationsWithReplacement::{count,
size_hint}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/737">#737</a>)</li>
<li>Specialized <code>Powerset::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/765">#765</a>)</li>
<li>Specialized <code>Powerset::count</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/735">#735</a>)</li>
<li>Specialized <code>TupleCombinations::{count, size_hint}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/763">#763</a>)</li>
<li>Specialized <code>TupleCombinations::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/775">#775</a>)</li>
<li>Specialized <code>WhileSome::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/780">#780</a>)</li>
<li>Specialized <code>WithPosition::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/772">#772</a>)</li>
<li>Specialized <code>ZipLongest::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/774">#774</a>)</li>
<li>Changed <code>{min, max}_set*</code> operations require
<code>alloc</code> feature, instead of <code>std</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/760">#760</a>)</li>
<li>Improved documentation of <code>tree_fold1</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/787">#787</a>)</li>
<li>Improved documentation of <code>permutations</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/724">#724</a>)</li>
<li>Fixed typo in documentation of <code>multiunzip</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/770">#770</a>)</li>
</ul>
<h3>Notable Internal Changes</h3>
<ul>
<li>Improved specialization tests (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/799">#799</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/786">#786</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/782">#782</a>)</li>
<li>Simplified implementation of <code>Permutations</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/739">#739</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/748">#748</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/790">#790</a>)</li>
<li>Combined
<code>Merge</code>/<code>MergeBy</code>/<code>MergeJoinBy</code>
implementations (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/736">#736</a>)</li>
<li>Simplified <code>Permutations::size_hint</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/739">#739</a>)</li>
<li>Fix wrapping arithmetic in benchmarks (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/770">#770</a>)</li>
<li>Enforced <code>rustfmt</code> in CI (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/751">#751</a>)</li>
<li>Disallowed compile warnings in CI (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/720">#720</a>)</li>
<li>Used <code>cargo hack</code> to check MSRV (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/754">#754</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/rust-itertools/itertools/commit/98ecabb47d7147dae06fc3fa400ec758947194f3"><code>98ecabb</code></a>
chore: Release itertools version 0.12.0</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/22fc427ac5282cbdafccfe38a686ec1d3b720120"><code>22fc427</code></a>
prepare v0.12.0 release</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/6d291786a9c9686a3997d93c513bd18326611fe5"><code>6d29178</code></a>
Document the field <code>a_cur</code> of <code>Product</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/bf2b0129d1d3cc1ffa733059f3088adb6d745fe6"><code>bf2b012</code></a>
Better <code>Product::size_hint</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/8d07f6b8566a515118ca8b119f358b73d483152b"><code>8d07f6b</code></a>
Make <code>Product</code> lazy</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/d7e6bab9fd0ad79130692f8e48e21375362a7614"><code>d7e6bab</code></a>
Document the field <code>peek</code> of
<code>IntersperseWith</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/9b01a118919f0d1f7c3327d1a15a5eb660f3912e"><code>9b01a11</code></a>
Make <code>IntersperseWith</code> lazy</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/4f22173b93a2eb58da16b7da6d08e6c3f1c56544"><code>4f22173</code></a>
Refactor <code>IntersperseWith::next</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/b76172b412116356ebef05b884a6e4def63a4d17"><code>b76172b</code></a>
chore: adjust docs to reflect discussion in the PR</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/955927f6c424f895ad7519d413bc5718e6ad26bf"><code>955927f</code></a>
chore: fixup docs of tree_fold1</li>
<li>Additional commits viewable in <a
href="https://github.com/rust-itertools/itertools/compare/v0.11.0...v0.12.0">compare
view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=itertools&package-manager=cargo&previous-version=0.11.0&new-version=0.12.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-20 15:58:07 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
|
Bump itertools from 0.11.0 to 0.12.0 (#11360)
Bumps [itertools](https://github.com/rust-itertools/itertools) from
0.11.0 to 0.12.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-itertools/itertools/blob/master/CHANGELOG.md">itertools's
changelog</a>.</em></p>
<blockquote>
<h2>0.12.0</h2>
<h3>Breaking</h3>
<ul>
<li>Made <code>take_while_inclusive</code> consume iterator by value (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/709">#709</a>)</li>
<li>Added <code>Clone</code> bound to <code>Unique</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/777">#777</a>)</li>
</ul>
<h3>Added</h3>
<ul>
<li>Added <code>Itertools::try_len</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/723">#723</a>)</li>
<li>Added free function <code>sort_unstable</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/796">#796</a>)</li>
<li>Added <code>GroupMap::fold_with</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/778">#778</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/785">#785</a>)</li>
<li>Added <code>PeekNth::{peek_mut, peek_nth_mut}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/716">#716</a>)</li>
<li>Added <code>PeekNth::{next_if, next_if_eq}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/734">#734</a>)</li>
<li>Added conversion into <code>(Option<A>,Option<B>)</code>
to <code>EitherOrBoth</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/713">#713</a>)</li>
<li>Added conversion from <code>Either<A, B></code> to
<code>EitherOrBoth<A, B></code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/715">#715</a>)</li>
<li>Implemented <code>ExactSizeIterator</code> for <code>Tuples</code>
(<a
href="https://redirect.github.com/rust-itertools/itertools/issues/761">#761</a>)</li>
<li>Implemented <code>ExactSizeIterator</code> for
<code>(Circular)TupleWindows</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/752">#752</a>)</li>
<li>Made <code>EitherOrBoth<T></code> a shorthand for
<code>EitherOrBoth<T, T></code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/719">#719</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Added missing <code>#[must_use]</code> annotations on iterator
adaptors (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/794">#794</a>)</li>
<li>Made <code>Combinations</code> lazy (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/795">#795</a>)</li>
<li>Made <code>Intersperse(With)</code> lazy (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/797">#797</a>)</li>
<li>Made <code>Permutations</code> lazy (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/793">#793</a>)</li>
<li>Made <code>Product</code> lazy (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/800">#800</a>)</li>
<li>Made <code>TupleWindows</code> lazy (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/602">#602</a>)</li>
<li>Specialized <code>Combinations::{count, size_hint}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/729">#729</a>)</li>
<li>Specialized <code>CombinationsWithReplacement::{count,
size_hint}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/737">#737</a>)</li>
<li>Specialized <code>Powerset::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/765">#765</a>)</li>
<li>Specialized <code>Powerset::count</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/735">#735</a>)</li>
<li>Specialized <code>TupleCombinations::{count, size_hint}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/763">#763</a>)</li>
<li>Specialized <code>TupleCombinations::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/775">#775</a>)</li>
<li>Specialized <code>WhileSome::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/780">#780</a>)</li>
<li>Specialized <code>WithPosition::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/772">#772</a>)</li>
<li>Specialized <code>ZipLongest::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/774">#774</a>)</li>
<li>Changed <code>{min, max}_set*</code> operations require
<code>alloc</code> feature, instead of <code>std</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/760">#760</a>)</li>
<li>Improved documentation of <code>tree_fold1</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/787">#787</a>)</li>
<li>Improved documentation of <code>permutations</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/724">#724</a>)</li>
<li>Fixed typo in documentation of <code>multiunzip</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/770">#770</a>)</li>
</ul>
<h3>Notable Internal Changes</h3>
<ul>
<li>Improved specialization tests (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/799">#799</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/786">#786</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/782">#782</a>)</li>
<li>Simplified implementation of <code>Permutations</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/739">#739</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/748">#748</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/790">#790</a>)</li>
<li>Combined
<code>Merge</code>/<code>MergeBy</code>/<code>MergeJoinBy</code>
implementations (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/736">#736</a>)</li>
<li>Simplified <code>Permutations::size_hint</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/739">#739</a>)</li>
<li>Fix wrapping arithmetic in benchmarks (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/770">#770</a>)</li>
<li>Enforced <code>rustfmt</code> in CI (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/751">#751</a>)</li>
<li>Disallowed compile warnings in CI (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/720">#720</a>)</li>
<li>Used <code>cargo hack</code> to check MSRV (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/754">#754</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/rust-itertools/itertools/commit/98ecabb47d7147dae06fc3fa400ec758947194f3"><code>98ecabb</code></a>
chore: Release itertools version 0.12.0</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/22fc427ac5282cbdafccfe38a686ec1d3b720120"><code>22fc427</code></a>
prepare v0.12.0 release</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/6d291786a9c9686a3997d93c513bd18326611fe5"><code>6d29178</code></a>
Document the field <code>a_cur</code> of <code>Product</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/bf2b0129d1d3cc1ffa733059f3088adb6d745fe6"><code>bf2b012</code></a>
Better <code>Product::size_hint</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/8d07f6b8566a515118ca8b119f358b73d483152b"><code>8d07f6b</code></a>
Make <code>Product</code> lazy</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/d7e6bab9fd0ad79130692f8e48e21375362a7614"><code>d7e6bab</code></a>
Document the field <code>peek</code> of
<code>IntersperseWith</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/9b01a118919f0d1f7c3327d1a15a5eb660f3912e"><code>9b01a11</code></a>
Make <code>IntersperseWith</code> lazy</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/4f22173b93a2eb58da16b7da6d08e6c3f1c56544"><code>4f22173</code></a>
Refactor <code>IntersperseWith::next</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/b76172b412116356ebef05b884a6e4def63a4d17"><code>b76172b</code></a>
chore: adjust docs to reflect discussion in the PR</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/955927f6c424f895ad7519d413bc5718e6ad26bf"><code>955927f</code></a>
chore: fixup docs of tree_fold1</li>
<li>Additional commits viewable in <a
href="https://github.com/rust-itertools/itertools/compare/v0.11.0...v0.12.0">compare
view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=itertools&package-manager=cargo&previous-version=0.11.0&new-version=0.12.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-20 15:58:07 +01:00
|
|
|
dependencies = [
|
|
|
|
"either",
|
|
|
|
]
|
|
|
|
|
2024-08-24 00:35:42 +02:00
|
|
|
[[package]]
|
|
|
|
name = "itertools"
|
|
|
|
version = "0.13.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
|
|
|
|
dependencies = [
|
|
|
|
"either",
|
|
|
|
]
|
|
|
|
|
2022-02-08 14:28:21 +01:00
|
|
|
[[package]]
|
|
|
|
name = "itoa"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "1.0.11"
|
2022-02-08 14:28:21 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
|
2022-02-08 14:28:21 +01:00
|
|
|
|
2024-02-13 13:27:30 +01:00
|
|
|
[[package]]
|
|
|
|
name = "itoap"
|
|
|
|
version = "1.0.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "9028f49264629065d057f340a86acb84867925865f73bbf8d47b4d149a7e88b8"
|
|
|
|
|
2019-09-13 05:44:21 +02:00
|
|
|
[[package]]
|
|
|
|
name = "jobserver"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.1.32"
|
2019-09-13 05:44:21 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0"
|
2019-09-13 05:44:21 +02:00
|
|
|
dependencies = [
|
2019-11-28 03:21:00 +01:00
|
|
|
"libc",
|
2019-09-13 05:44:21 +02:00
|
|
|
]
|
|
|
|
|
2022-04-04 22:45:01 +02:00
|
|
|
[[package]]
|
|
|
|
name = "joinery"
|
|
|
|
version = "2.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "72167d68f5fce3b8655487b8038691a3c9984ee769590f93f2a631f4ad64e4f5"
|
|
|
|
|
2019-08-24 21:36:19 +02:00
|
|
|
[[package]]
|
|
|
|
name = "js-sys"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.3.70"
|
2019-08-24 21:36:19 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a"
|
2019-08-24 21:36:19 +02:00
|
|
|
dependencies = [
|
2019-11-28 03:21:00 +01:00
|
|
|
"wasm-bindgen",
|
2019-08-24 21:36:19 +02:00
|
|
|
]
|
|
|
|
|
2024-04-13 20:00:04 +02:00
|
|
|
[[package]]
|
|
|
|
name = "jsonpath_lib_polars_vendor"
|
|
|
|
version = "0.0.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f4bd9354947622f7471ff713eacaabdb683ccb13bba4edccaab9860abf480b7d"
|
|
|
|
dependencies = [
|
|
|
|
"log",
|
|
|
|
"serde",
|
|
|
|
"serde_json",
|
|
|
|
]
|
|
|
|
|
2022-04-28 16:26:34 +02:00
|
|
|
[[package]]
|
2023-07-05 14:14:55 +02:00
|
|
|
name = "kqueue"
|
2023-10-07 13:58:26 +02:00
|
|
|
version = "1.0.8"
|
Dependency update: update notify version to v5 (#8114)
# Description
Relative: #8060
While investigating, I found we need to update notify, which is a good
step to remove some duplicate dependencies.
As title, here are some goods and bads after updating:
## Good
keep dependency up to date, and remove duplidate dependency(cfg-if,
winapi) in Cargo.lock.
## Bad
Introduce some breaking changes:
After updating to notify v5, I found that we have to remove `Rename`
events.
But I've testing under notify v4, and it doesn't work good if we running
the following command on MacOS:
```
touch a
mv a b
```
It fires file create event, but no file rename event. So `rename` event
is not really reliable, so I think it's ok for us to remove `Rename`
events.
The reason to remove `--debounce-ms` flag:
It's not provided by defualt file watcher, we can use
[PollWatcher](https://docs.rs/notify/latest/notify/poll/struct.PollWatcher.html),
but it scans filesystem, which is really expensive. So I just remove the
flag.
# User-Facing Changes
1. `--debounce-ms` flag is removed
2. no longer watch `Rename` event.
# Tests + Formatting
Don't forget to add tests that cover your changes.
Make sure you've run and fixed any issues with these commands:
- `cargo fmt --all -- --check` to check standard code formatting (`cargo
fmt --all` applies these changes)
- `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A
clippy::needless_collect` to check that you're using the standard code
style
- `cargo test --workspace` to check that all tests pass
# After Submitting
If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
2023-02-22 22:35:09 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 13:58:26 +02:00
|
|
|
checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c"
|
Dependency update: update notify version to v5 (#8114)
# Description
Relative: #8060
While investigating, I found we need to update notify, which is a good
step to remove some duplicate dependencies.
As title, here are some goods and bads after updating:
## Good
keep dependency up to date, and remove duplidate dependency(cfg-if,
winapi) in Cargo.lock.
## Bad
Introduce some breaking changes:
After updating to notify v5, I found that we have to remove `Rename`
events.
But I've testing under notify v4, and it doesn't work good if we running
the following command on MacOS:
```
touch a
mv a b
```
It fires file create event, but no file rename event. So `rename` event
is not really reliable, so I think it's ok for us to remove `Rename`
events.
The reason to remove `--debounce-ms` flag:
It's not provided by defualt file watcher, we can use
[PollWatcher](https://docs.rs/notify/latest/notify/poll/struct.PollWatcher.html),
but it scans filesystem, which is really expensive. So I just remove the
flag.
# User-Facing Changes
1. `--debounce-ms` flag is removed
2. no longer watch `Rename` event.
# Tests + Formatting
Don't forget to add tests that cover your changes.
Make sure you've run and fixed any issues with these commands:
- `cargo fmt --all -- --check` to check standard code formatting (`cargo
fmt --all` applies these changes)
- `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A
clippy::needless_collect` to check that you're using the standard code
style
- `cargo test --workspace` to check that all tests pass
# After Submitting
If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
2023-02-22 22:35:09 +01:00
|
|
|
dependencies = [
|
2023-07-05 14:14:55 +02:00
|
|
|
"kqueue-sys",
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "kqueue-sys"
|
2023-10-07 13:58:26 +02:00
|
|
|
version = "1.0.4"
|
2023-07-05 14:14:55 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 13:58:26 +02:00
|
|
|
checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b"
|
2023-07-05 14:14:55 +02:00
|
|
|
dependencies = [
|
|
|
|
"bitflags 1.3.2",
|
|
|
|
"libc",
|
2022-04-28 16:26:34 +02:00
|
|
|
]
|
|
|
|
|
2019-05-10 18:59:12 +02:00
|
|
|
[[package]]
|
|
|
|
name = "lazy_static"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.5.0"
|
2019-05-10 18:59:12 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
|
2019-05-10 18:59:12 +02:00
|
|
|
|
2022-04-28 16:26:34 +02:00
|
|
|
[[package]]
|
|
|
|
name = "lazycell"
|
|
|
|
version = "1.3.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
|
|
|
|
|
2020-09-09 00:35:45 +02:00
|
|
|
[[package]]
|
|
|
|
name = "lexical-core"
|
2022-05-25 19:13:14 +02:00
|
|
|
version = "0.8.5"
|
2020-09-09 00:35:45 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-05-25 19:13:14 +02:00
|
|
|
checksum = "2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46"
|
2020-09-09 00:35:45 +02:00
|
|
|
dependencies = [
|
2021-09-15 21:10:12 +02:00
|
|
|
"lexical-parse-float",
|
|
|
|
"lexical-parse-integer",
|
|
|
|
"lexical-util",
|
|
|
|
"lexical-write-float",
|
|
|
|
"lexical-write-integer",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "lexical-parse-float"
|
2022-05-25 19:13:14 +02:00
|
|
|
version = "0.8.5"
|
2021-09-15 21:10:12 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-05-25 19:13:14 +02:00
|
|
|
checksum = "683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f"
|
2021-09-15 21:10:12 +02:00
|
|
|
dependencies = [
|
|
|
|
"lexical-parse-integer",
|
|
|
|
"lexical-util",
|
|
|
|
"static_assertions",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "lexical-parse-integer"
|
2022-06-14 22:53:33 +02:00
|
|
|
version = "0.8.6"
|
2021-09-15 21:10:12 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-06-14 22:53:33 +02:00
|
|
|
checksum = "6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9"
|
2021-09-15 21:10:12 +02:00
|
|
|
dependencies = [
|
|
|
|
"lexical-util",
|
|
|
|
"static_assertions",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "lexical-util"
|
2022-05-25 19:13:14 +02:00
|
|
|
version = "0.8.5"
|
2021-09-15 21:10:12 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-05-25 19:13:14 +02:00
|
|
|
checksum = "5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc"
|
2021-09-15 21:10:12 +02:00
|
|
|
dependencies = [
|
|
|
|
"static_assertions",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "lexical-write-float"
|
2022-05-25 19:13:14 +02:00
|
|
|
version = "0.8.5"
|
2021-09-15 21:10:12 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-05-25 19:13:14 +02:00
|
|
|
checksum = "accabaa1c4581f05a3923d1b4cfd124c329352288b7b9da09e766b0668116862"
|
2021-09-15 21:10:12 +02:00
|
|
|
dependencies = [
|
|
|
|
"lexical-util",
|
|
|
|
"lexical-write-integer",
|
|
|
|
"static_assertions",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "lexical-write-integer"
|
2022-05-25 19:13:14 +02:00
|
|
|
version = "0.8.5"
|
2021-09-15 21:10:12 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-05-25 19:13:14 +02:00
|
|
|
checksum = "e1b6f3d1f4422866b68192d62f77bc5c700bee84f3069f2469d7bc8c77852446"
|
2021-09-15 21:10:12 +02:00
|
|
|
dependencies = [
|
|
|
|
"lexical-util",
|
2020-09-09 00:35:45 +02:00
|
|
|
"static_assertions",
|
|
|
|
]
|
|
|
|
|
2019-05-10 18:59:12 +02:00
|
|
|
[[package]]
|
|
|
|
name = "libc"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.2.158"
|
2019-05-10 18:59:12 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439"
|
2019-05-10 18:59:12 +02:00
|
|
|
|
2023-08-16 03:31:49 +02:00
|
|
|
[[package]]
|
|
|
|
name = "libflate"
|
|
|
|
version = "1.4.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "5ff4ae71b685bbad2f2f391fe74f6b7659a34871c08b210fdc039e43bee07d18"
|
|
|
|
dependencies = [
|
|
|
|
"adler32",
|
|
|
|
"crc32fast",
|
|
|
|
"libflate_lz77",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "libflate_lz77"
|
|
|
|
version = "1.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "a52d3a8bfc85f250440e4424db7d857e241a3aebbbe301f3eb606ab15c39acbf"
|
|
|
|
dependencies = [
|
|
|
|
"rle-decode-fast",
|
|
|
|
]
|
|
|
|
|
2019-06-01 23:11:28 +02:00
|
|
|
[[package]]
|
|
|
|
name = "libgit2-sys"
|
2024-06-19 03:09:25 +02:00
|
|
|
version = "0.17.0+1.8.1"
|
2019-06-01 23:11:28 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-06-19 03:09:25 +02:00
|
|
|
checksum = "10472326a8a6477c3c20a64547b0059e4b0d086869eee31e6d7da728a8eb7224"
|
2019-06-01 23:11:28 +02:00
|
|
|
dependencies = [
|
2019-11-28 03:21:00 +01:00
|
|
|
"cc",
|
|
|
|
"libc",
|
2021-12-06 18:28:11 +01:00
|
|
|
"libssh2-sys",
|
2019-11-28 03:21:00 +01:00
|
|
|
"libz-sys",
|
2021-12-06 18:28:11 +01:00
|
|
|
"openssl-sys",
|
2019-11-28 03:21:00 +01:00
|
|
|
"pkg-config",
|
2019-06-01 23:11:28 +02:00
|
|
|
]
|
|
|
|
|
2022-07-11 18:18:06 +02:00
|
|
|
[[package]]
|
|
|
|
name = "libloading"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.8.5"
|
2022-07-11 18:18:06 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4"
|
2022-07-11 18:18:06 +02:00
|
|
|
dependencies = [
|
2023-07-05 14:14:55 +02:00
|
|
|
"cfg-if",
|
2024-08-24 00:35:42 +02:00
|
|
|
"windows-targets 0.52.6",
|
2022-07-11 18:18:06 +02:00
|
|
|
]
|
|
|
|
|
2021-05-27 07:09:48 +02:00
|
|
|
[[package]]
|
|
|
|
name = "libm"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
version = "0.2.8"
|
2021-05-27 07:09:48 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
|
2021-05-27 07:09:48 +02:00
|
|
|
|
2023-06-15 00:27:12 +02:00
|
|
|
[[package]]
|
|
|
|
name = "libmimalloc-sys"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.1.39"
|
2023-06-15 00:27:12 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "23aa6811d3bd4deb8a84dde645f943476d13b248d818edcf8ce0b2f37f036b44"
|
2023-06-15 00:27:12 +02:00
|
|
|
dependencies = [
|
|
|
|
"cc",
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
2019-08-27 23:45:18 +02:00
|
|
|
[[package]]
|
2022-01-14 07:20:53 +01:00
|
|
|
name = "libproc"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
version = "0.14.8"
|
2022-01-14 07:20:53 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
checksum = "ae9ea4b75e1a81675429dafe43441df1caea70081e82246a8cccf514884a88bb"
|
2022-01-14 07:20:53 +01:00
|
|
|
dependencies = [
|
2022-07-11 18:18:06 +02:00
|
|
|
"bindgen",
|
2023-07-10 07:10:36 +02:00
|
|
|
"errno",
|
2022-01-14 07:20:53 +01:00
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
[[package]]
|
|
|
|
name = "libredox"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "0.1.3"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"bitflags 2.6.0",
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
"libc",
|
2024-08-24 00:35:42 +02:00
|
|
|
"redox_syscall",
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
]
|
|
|
|
|
2022-04-14 05:15:02 +02:00
|
|
|
[[package]]
|
|
|
|
name = "libsqlite3-sys"
|
2024-02-17 16:32:17 +01:00
|
|
|
version = "0.28.0"
|
2022-04-14 05:15:02 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-02-17 16:32:17 +01:00
|
|
|
checksum = "0c10584274047cb335c23d3e61bcef8e323adae7c5c8c760540f73610177fc3f"
|
2022-04-14 05:15:02 +02:00
|
|
|
dependencies = [
|
|
|
|
"cc",
|
|
|
|
"pkg-config",
|
|
|
|
"vcpkg",
|
|
|
|
]
|
|
|
|
|
2021-12-06 18:28:11 +01:00
|
|
|
[[package]]
|
|
|
|
name = "libssh2-sys"
|
2023-04-05 21:20:58 +02:00
|
|
|
version = "0.3.0"
|
2021-12-06 18:28:11 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-04-05 21:20:58 +02:00
|
|
|
checksum = "2dc8a030b787e2119a731f1951d6a773e2280c660f8ec4b0f5e1505a386e71ee"
|
2021-12-06 18:28:11 +01:00
|
|
|
dependencies = [
|
|
|
|
"cc",
|
|
|
|
"libc",
|
|
|
|
"libz-sys",
|
|
|
|
"openssl-sys",
|
2019-11-28 03:21:00 +01:00
|
|
|
"pkg-config",
|
|
|
|
"vcpkg",
|
2019-08-27 23:45:18 +02:00
|
|
|
]
|
|
|
|
|
2019-06-01 23:11:28 +02:00
|
|
|
[[package]]
|
|
|
|
name = "libz-sys"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.1.19"
|
2019-06-01 23:11:28 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "fdc53a7799a7496ebc9fd29f31f7df80e83c9bda5299768af5f9e59eeea74647"
|
2019-06-01 23:11:28 +02:00
|
|
|
dependencies = [
|
2019-11-28 03:21:00 +01:00
|
|
|
"cc",
|
|
|
|
"libc",
|
|
|
|
"pkg-config",
|
|
|
|
"vcpkg",
|
2019-06-01 23:11:28 +02:00
|
|
|
]
|
|
|
|
|
2019-05-18 03:24:13 +02:00
|
|
|
[[package]]
|
|
|
|
name = "linked-hash-map"
|
2022-07-26 04:09:32 +02:00
|
|
|
version = "0.5.6"
|
2019-05-18 03:24:13 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-07-26 04:09:32 +02:00
|
|
|
checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
|
2021-03-04 07:35:13 +01:00
|
|
|
dependencies = [
|
2021-08-28 05:34:11 +02:00
|
|
|
"serde",
|
2021-03-04 07:35:13 +01:00
|
|
|
]
|
2019-05-18 03:24:13 +02:00
|
|
|
|
2023-07-06 17:31:31 +02:00
|
|
|
[[package]]
|
|
|
|
name = "linux-raw-sys"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.4.14"
|
2023-07-06 17:31:31 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
|
2023-07-06 17:31:31 +02:00
|
|
|
|
2021-08-30 20:36:07 +02:00
|
|
|
[[package]]
|
|
|
|
name = "lock_api"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
version = "0.4.12"
|
2021-08-30 20:36:07 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
|
2020-06-27 09:54:31 +02:00
|
|
|
dependencies = [
|
2022-04-15 13:04:15 +02:00
|
|
|
"autocfg",
|
2020-06-27 09:54:31 +02:00
|
|
|
"scopeguard",
|
|
|
|
]
|
|
|
|
|
2019-05-10 18:59:12 +02:00
|
|
|
[[package]]
|
|
|
|
name = "log"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.4.22"
|
2020-06-24 19:57:27 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
|
2021-08-30 20:36:07 +02:00
|
|
|
|
Add LRU regex cache (#7587)
Closes #7572 by adding a cache for compiled regexes of type
`Arc<Mutex<LruCache<String, Regex>>>` to `EngineState` .
The cache is limited to 100 entries (limit chosen arbitrarily) and
evicts least-recently-used items first.
This PR makes a noticeable difference when using regexes for
`color_config`, e.g.:
```bash
#first set string formatting in config.nu like:
string: { if $in =~ '^#\w{6}$' { $in } else { 'white' } }`
# then try displaying and exploring a table with many strings
# this is instant after the PR, but takes hundreds of milliseconds before
['#ff0033', '#0025ee', '#0087aa', 'string', '#4101ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff']
```
## New dependency (`lru`)
This uses [the popular `lru` crate](https://lib.rs/crates/lru). The new
dependency adds 19.8KB to a Linux release build of Nushell. I think this
is OK, especially since the crate can be useful elsewhere in Nu.
2022-12-23 23:30:04 +01:00
|
|
|
[[package]]
|
|
|
|
name = "lru"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.12.4"
|
Add LRU regex cache (#7587)
Closes #7572 by adding a cache for compiled regexes of type
`Arc<Mutex<LruCache<String, Regex>>>` to `EngineState` .
The cache is limited to 100 entries (limit chosen arbitrarily) and
evicts least-recently-used items first.
This PR makes a noticeable difference when using regexes for
`color_config`, e.g.:
```bash
#first set string formatting in config.nu like:
string: { if $in =~ '^#\w{6}$' { $in } else { 'white' } }`
# then try displaying and exploring a table with many strings
# this is instant after the PR, but takes hundreds of milliseconds before
['#ff0033', '#0025ee', '#0087aa', 'string', '#4101ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff']
```
## New dependency (`lru`)
This uses [the popular `lru` crate](https://lib.rs/crates/lru). The new
dependency adds 19.8KB to a Linux release build of Nushell. I think this
is OK, especially since the crate can be useful elsewhere in Nu.
2022-12-23 23:30:04 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "37ee39891760e7d94734f6f63fedc29a2e4a152f836120753a72503f09fcf904"
|
Add LRU regex cache (#7587)
Closes #7572 by adding a cache for compiled regexes of type
`Arc<Mutex<LruCache<String, Regex>>>` to `EngineState` .
The cache is limited to 100 entries (limit chosen arbitrarily) and
evicts least-recently-used items first.
This PR makes a noticeable difference when using regexes for
`color_config`, e.g.:
```bash
#first set string formatting in config.nu like:
string: { if $in =~ '^#\w{6}$' { $in } else { 'white' } }`
# then try displaying and exploring a table with many strings
# this is instant after the PR, but takes hundreds of milliseconds before
['#ff0033', '#0025ee', '#0087aa', 'string', '#4101ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff']
```
## New dependency (`lru`)
This uses [the popular `lru` crate](https://lib.rs/crates/lru). The new
dependency adds 19.8KB to a Linux release build of Nushell. I think this
is OK, especially since the crate can be useful elsewhere in Nu.
2022-12-23 23:30:04 +01:00
|
|
|
dependencies = [
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
"hashbrown 0.14.5",
|
Add LRU regex cache (#7587)
Closes #7572 by adding a cache for compiled regexes of type
`Arc<Mutex<LruCache<String, Regex>>>` to `EngineState` .
The cache is limited to 100 entries (limit chosen arbitrarily) and
evicts least-recently-used items first.
This PR makes a noticeable difference when using regexes for
`color_config`, e.g.:
```bash
#first set string formatting in config.nu like:
string: { if $in =~ '^#\w{6}$' { $in } else { 'white' } }`
# then try displaying and exploring a table with many strings
# this is instant after the PR, but takes hundreds of milliseconds before
['#ff0033', '#0025ee', '#0087aa', 'string', '#4101ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff']
```
## New dependency (`lru`)
This uses [the popular `lru` crate](https://lib.rs/crates/lru). The new
dependency adds 19.8KB to a Linux release build of Nushell. I think this
is OK, especially since the crate can be useful elsewhere in Nu.
2022-12-23 23:30:04 +01:00
|
|
|
]
|
|
|
|
|
2021-10-08 16:40:20 +02:00
|
|
|
[[package]]
|
|
|
|
name = "lscolors"
|
2024-01-25 05:57:15 +01:00
|
|
|
version = "0.17.0"
|
2022-08-10 21:56:15 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-25 05:57:15 +01:00
|
|
|
checksum = "53304fff6ab1e597661eee37e42ea8c47a146fca280af902bb76bff8a896e523"
|
2021-10-08 16:40:20 +02:00
|
|
|
dependencies = [
|
2023-07-24 13:16:18 +02:00
|
|
|
"nu-ansi-term",
|
2019-08-27 23:45:18 +02:00
|
|
|
]
|
|
|
|
|
2023-11-02 16:18:57 +01:00
|
|
|
[[package]]
|
|
|
|
name = "lsp-server"
|
2024-01-21 04:53:24 +01:00
|
|
|
version = "0.7.6"
|
2023-12-07 00:19:03 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 04:53:24 +01:00
|
|
|
checksum = "248f65b78f6db5d8e1b1604b4098a28b43d21a8eb1deeca22b1c421b276c7095"
|
2023-11-02 16:18:57 +01:00
|
|
|
dependencies = [
|
|
|
|
"crossbeam-channel",
|
|
|
|
"log",
|
|
|
|
"serde",
|
|
|
|
"serde_json",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "lsp-types"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "0.95.1"
|
2023-11-02 16:18:57 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "8e34d33a8e9b006cd3fc4fe69a921affa097bae4bb65f76271f4644f9a334365"
|
2023-11-02 16:18:57 +01:00
|
|
|
dependencies = [
|
|
|
|
"bitflags 1.3.2",
|
|
|
|
"serde",
|
|
|
|
"serde_json",
|
|
|
|
"serde_repr",
|
|
|
|
"url",
|
|
|
|
]
|
|
|
|
|
2021-05-18 21:33:10 +02:00
|
|
|
[[package]]
|
|
|
|
name = "lz4"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.26.0"
|
2021-05-18 21:33:10 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "958b4caa893816eea05507c20cfe47574a43d9a697138a7872990bba8a0ece68"
|
2021-05-18 21:33:10 +02:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
"lz4-sys",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "lz4-sys"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.10.0"
|
2021-05-18 21:33:10 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "109de74d5d2353660401699a4174a4ff23fcc649caf553df71933c7fb45ad868"
|
2021-05-18 21:33:10 +02:00
|
|
|
dependencies = [
|
|
|
|
"cc",
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
2020-11-03 22:46:42 +01:00
|
|
|
[[package]]
|
|
|
|
name = "mac"
|
|
|
|
version = "0.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4"
|
|
|
|
|
2022-09-01 08:09:52 +02:00
|
|
|
[[package]]
|
|
|
|
name = "mach2"
|
2024-01-21 04:53:24 +01:00
|
|
|
version = "0.4.2"
|
2022-09-01 08:09:52 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 04:53:24 +01:00
|
|
|
checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709"
|
2022-09-01 08:09:52 +02:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
2024-06-29 23:13:31 +02:00
|
|
|
[[package]]
|
|
|
|
name = "markup5ever"
|
|
|
|
version = "0.12.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "16ce3abbeba692c8b8441d036ef91aea6df8da2c6b6e21c7e14d3c18e526be45"
|
|
|
|
dependencies = [
|
|
|
|
"log",
|
|
|
|
"phf 0.11.2",
|
|
|
|
"phf_codegen 0.11.2",
|
|
|
|
"string_cache",
|
|
|
|
"string_cache_codegen",
|
|
|
|
"tendril",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "markup5ever_rcdom"
|
|
|
|
version = "0.3.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "edaa21ab3701bfee5099ade5f7e1f84553fd19228cf332f13cd6e964bf59be18"
|
|
|
|
dependencies = [
|
2024-08-07 03:07:19 +02:00
|
|
|
"html5ever",
|
|
|
|
"markup5ever",
|
2024-06-29 23:13:31 +02:00
|
|
|
"tendril",
|
|
|
|
"xml5ever",
|
|
|
|
]
|
|
|
|
|
2021-07-25 21:08:08 +02:00
|
|
|
[[package]]
|
|
|
|
name = "md-5"
|
2023-10-07 13:58:26 +02:00
|
|
|
version = "0.10.6"
|
2021-12-11 00:14:28 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 13:58:26 +02:00
|
|
|
checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
|
2021-12-11 00:14:28 +01:00
|
|
|
dependencies = [
|
2023-10-07 13:58:26 +02:00
|
|
|
"cfg-if",
|
2022-10-03 18:40:16 +02:00
|
|
|
"digest",
|
2021-12-11 00:14:28 +01:00
|
|
|
]
|
|
|
|
|
2021-08-30 20:36:07 +02:00
|
|
|
[[package]]
|
2019-05-10 18:59:12 +02:00
|
|
|
name = "memchr"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "2.7.4"
|
2019-05-10 18:59:12 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
|
2021-05-12 03:01:31 +02:00
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "memmap2"
|
2023-08-30 00:13:34 +02:00
|
|
|
version = "0.7.1"
|
2021-05-12 03:01:31 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-08-30 00:13:34 +02:00
|
|
|
checksum = "f49388d20533534cd19360ad3d6a7dadc885944aa802ba3995040c5ec11288c6"
|
2021-05-12 03:01:31 +02:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
]
|
2019-05-10 18:59:12 +02:00
|
|
|
|
2021-09-20 23:37:26 +02:00
|
|
|
[[package]]
|
|
|
|
name = "miette"
|
2024-03-13 02:35:40 +01:00
|
|
|
version = "7.2.0"
|
2021-09-23 01:49:39 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-13 02:35:40 +01:00
|
|
|
checksum = "4edc8853320c2a0dab800fbda86253c8938f6ea88510dc92c5f1ed20e794afc1"
|
2021-09-20 23:37:26 +02:00
|
|
|
dependencies = [
|
2024-02-22 19:14:10 +01:00
|
|
|
"backtrace",
|
|
|
|
"backtrace-ext",
|
2024-03-13 02:35:40 +01:00
|
|
|
"cfg-if",
|
2022-10-24 21:42:32 +02:00
|
|
|
"miette-derive",
|
2021-09-20 23:37:26 +02:00
|
|
|
"owo-colors",
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
"supports-color 3.0.0",
|
2021-09-20 23:37:26 +02:00
|
|
|
"supports-hyperlinks",
|
|
|
|
"supports-unicode",
|
2024-02-08 02:26:18 +01:00
|
|
|
"terminal_size",
|
2023-06-07 15:29:54 +02:00
|
|
|
"textwrap",
|
2021-09-20 23:37:26 +02:00
|
|
|
"thiserror",
|
2022-02-21 04:31:50 +01:00
|
|
|
"unicode-width",
|
2021-09-20 23:37:26 +02:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "miette-derive"
|
2024-03-13 02:35:40 +01:00
|
|
|
version = "7.2.0"
|
2021-09-23 01:49:39 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-13 02:35:40 +01:00
|
|
|
checksum = "dcf09caffaac8068c346b6df2a7fc27a177fd20b39421a39ce0a211bde679a6c"
|
2021-09-20 23:37:26 +02:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2024-08-24 00:35:42 +02:00
|
|
|
"syn 2.0.75",
|
2021-09-20 23:37:26 +02:00
|
|
|
]
|
|
|
|
|
2023-06-15 00:27:12 +02:00
|
|
|
[[package]]
|
|
|
|
name = "mimalloc"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.1.43"
|
2023-06-15 00:27:12 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "68914350ae34959d83f732418d51e2427a794055d0b9529f48259ac07af65633"
|
2023-06-15 00:27:12 +02:00
|
|
|
dependencies = [
|
|
|
|
"libmimalloc-sys",
|
|
|
|
]
|
|
|
|
|
2022-01-04 03:01:18 +01:00
|
|
|
[[package]]
|
|
|
|
name = "mime"
|
2023-04-14 22:14:57 +02:00
|
|
|
version = "0.3.17"
|
2022-01-04 03:01:18 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-04-14 22:14:57 +02:00
|
|
|
checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
|
2020-09-09 00:35:45 +02:00
|
|
|
|
2022-12-27 19:46:23 +01:00
|
|
|
[[package]]
|
|
|
|
name = "mime_guess"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "2.0.5"
|
2022-12-27 19:46:23 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e"
|
2022-12-27 19:46:23 +01:00
|
|
|
dependencies = [
|
|
|
|
"mime",
|
|
|
|
"unicase",
|
|
|
|
]
|
|
|
|
|
2022-04-04 22:45:01 +02:00
|
|
|
[[package]]
|
|
|
|
name = "minimal-lexical"
|
|
|
|
version = "0.2.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
|
|
|
|
|
2020-01-01 07:45:27 +01:00
|
|
|
[[package]]
|
2022-04-15 13:04:15 +02:00
|
|
|
name = "miniz_oxide"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.7.4"
|
2020-01-01 07:45:27 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08"
|
2020-01-01 07:45:27 +01:00
|
|
|
dependencies = [
|
2022-04-15 13:04:15 +02:00
|
|
|
"adler",
|
2020-01-01 07:45:27 +01:00
|
|
|
]
|
|
|
|
|
2024-08-24 00:35:42 +02:00
|
|
|
[[package]]
|
|
|
|
name = "miniz_oxide"
|
|
|
|
version = "0.8.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1"
|
|
|
|
dependencies = [
|
|
|
|
"adler2",
|
|
|
|
]
|
|
|
|
|
2022-03-10 21:58:11 +01:00
|
|
|
[[package]]
|
|
|
|
name = "mio"
|
2024-03-05 10:46:11 +01:00
|
|
|
version = "0.8.11"
|
2022-03-10 21:58:11 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-05 10:46:11 +01:00
|
|
|
checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
|
2022-03-10 21:58:11 +01:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
"log",
|
2023-08-25 10:54:01 +02:00
|
|
|
"wasi",
|
2023-07-06 17:31:31 +02:00
|
|
|
"windows-sys 0.48.0",
|
2022-04-28 16:26:34 +02:00
|
|
|
]
|
|
|
|
|
2024-08-24 00:35:42 +02:00
|
|
|
[[package]]
|
|
|
|
name = "mio"
|
|
|
|
version = "1.0.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec"
|
|
|
|
dependencies = [
|
|
|
|
"hermit-abi 0.3.9",
|
|
|
|
"libc",
|
2024-09-06 16:57:45 +02:00
|
|
|
"log",
|
2024-08-24 00:35:42 +02:00
|
|
|
"wasi",
|
|
|
|
"windows-sys 0.52.0",
|
|
|
|
]
|
|
|
|
|
2023-03-02 20:05:18 +01:00
|
|
|
[[package]]
|
|
|
|
name = "mockito"
|
2024-08-07 05:09:23 +02:00
|
|
|
version = "1.5.0"
|
2023-03-02 20:05:18 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-07 05:09:23 +02:00
|
|
|
checksum = "09b34bd91b9e5c5b06338d392463e1318d683cf82ec3d3af4014609be6e2108d"
|
2023-03-02 20:05:18 +01:00
|
|
|
dependencies = [
|
|
|
|
"assert-json-diff",
|
2024-08-07 05:09:23 +02:00
|
|
|
"bytes",
|
|
|
|
"futures-util",
|
|
|
|
"http",
|
|
|
|
"http-body",
|
|
|
|
"http-body-util",
|
2023-03-02 20:05:18 +01:00
|
|
|
"hyper",
|
2024-08-07 05:09:23 +02:00
|
|
|
"hyper-util",
|
2023-03-02 20:05:18 +01:00
|
|
|
"log",
|
2023-07-10 07:28:36 +02:00
|
|
|
"rand",
|
2023-03-02 20:05:18 +01:00
|
|
|
"regex",
|
|
|
|
"serde_json",
|
|
|
|
"serde_urlencoded",
|
|
|
|
"similar",
|
|
|
|
"tokio",
|
|
|
|
]
|
|
|
|
|
2024-08-06 22:28:38 +02:00
|
|
|
[[package]]
|
|
|
|
name = "multipart-rs"
|
|
|
|
version = "0.1.11"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "22ea34e5c0fa65ba84707cfaf5bf43d500f1c5a4c6c36327bf5541c5bcd17e98"
|
|
|
|
dependencies = [
|
|
|
|
"bytes",
|
|
|
|
"futures-core",
|
|
|
|
"futures-util",
|
|
|
|
"memchr",
|
|
|
|
"mime",
|
|
|
|
"uuid",
|
|
|
|
]
|
|
|
|
|
2021-05-12 03:01:31 +02:00
|
|
|
[[package]]
|
|
|
|
name = "multiversion"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "0.7.4"
|
2021-05-12 03:01:31 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "c4851161a11d3ad0bf9402d90ffc3967bf231768bfd7aeb61755ad06dbf1a142"
|
2021-05-12 03:01:31 +02:00
|
|
|
dependencies = [
|
|
|
|
"multiversion-macros",
|
2023-05-08 17:42:53 +02:00
|
|
|
"target-features",
|
2021-05-12 03:01:31 +02:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "multiversion-macros"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "0.7.4"
|
2021-05-12 03:01:31 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "79a74ddee9e0c27d2578323c13905793e91622148f138ba29738f9dddb835e90"
|
2021-05-12 03:01:31 +02:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
2021-08-28 05:34:11 +02:00
|
|
|
"quote",
|
2023-04-06 22:39:54 +02:00
|
|
|
"syn 1.0.109",
|
2023-05-08 17:42:53 +02:00
|
|
|
"target-features",
|
2021-05-12 03:01:31 +02:00
|
|
|
]
|
|
|
|
|
2020-03-20 08:53:49 +01:00
|
|
|
[[package]]
|
|
|
|
name = "native-tls"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.2.12"
|
2020-03-20 08:53:49 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466"
|
2020-03-20 08:53:49 +01:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
2021-07-09 21:28:07 +02:00
|
|
|
"log",
|
2020-03-20 08:53:49 +01:00
|
|
|
"openssl",
|
|
|
|
"openssl-probe",
|
|
|
|
"openssl-sys",
|
|
|
|
"schannel",
|
|
|
|
"security-framework",
|
|
|
|
"security-framework-sys",
|
|
|
|
"tempfile",
|
|
|
|
]
|
|
|
|
|
2019-07-05 00:17:18 +02:00
|
|
|
[[package]]
|
2020-11-03 22:46:42 +01:00
|
|
|
name = "new_debug_unreachable"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "1.0.6"
|
2020-11-03 22:46:42 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086"
|
2020-11-03 22:46:42 +01:00
|
|
|
|
2024-03-25 22:51:50 +01:00
|
|
|
[[package]]
|
|
|
|
name = "nix"
|
|
|
|
version = "0.28.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
|
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"bitflags 2.6.0",
|
|
|
|
"cfg-if",
|
|
|
|
"cfg_aliases 0.1.1",
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "nix"
|
|
|
|
version = "0.29.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46"
|
|
|
|
dependencies = [
|
|
|
|
"bitflags 2.6.0",
|
2024-03-25 22:51:50 +01:00
|
|
|
"cfg-if",
|
2024-08-24 00:35:42 +02:00
|
|
|
"cfg_aliases 0.2.1",
|
2024-03-25 22:51:50 +01:00
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
2022-04-04 22:45:01 +02:00
|
|
|
[[package]]
|
|
|
|
name = "nom"
|
2023-03-12 00:35:56 +01:00
|
|
|
version = "7.1.3"
|
2022-04-04 22:45:01 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-03-12 00:35:56 +01:00
|
|
|
checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
|
2022-04-04 22:45:01 +02:00
|
|
|
dependencies = [
|
|
|
|
"memchr",
|
|
|
|
"minimal-lexical",
|
|
|
|
]
|
|
|
|
|
2022-04-28 16:26:34 +02:00
|
|
|
[[package]]
|
|
|
|
name = "notify"
|
2023-09-01 00:07:41 +02:00
|
|
|
version = "6.1.1"
|
2022-04-28 16:26:34 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-09-01 00:07:41 +02:00
|
|
|
checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d"
|
2022-04-28 16:26:34 +02:00
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"bitflags 2.6.0",
|
2023-07-05 14:14:55 +02:00
|
|
|
"crossbeam-channel",
|
2022-04-28 16:26:34 +02:00
|
|
|
"filetime",
|
|
|
|
"fsevent-sys",
|
|
|
|
"inotify",
|
2023-07-05 14:14:55 +02:00
|
|
|
"kqueue",
|
2022-04-28 16:26:34 +02:00
|
|
|
"libc",
|
2023-09-01 00:07:41 +02:00
|
|
|
"log",
|
2024-08-24 00:35:42 +02:00
|
|
|
"mio 0.8.11",
|
2023-07-05 14:14:55 +02:00
|
|
|
"walkdir",
|
2023-09-01 00:07:41 +02:00
|
|
|
"windows-sys 0.48.0",
|
2023-07-05 14:14:55 +02:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "notify-debouncer-full"
|
2023-09-01 00:07:41 +02:00
|
|
|
version = "0.3.1"
|
2023-07-05 14:14:55 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-09-01 00:07:41 +02:00
|
|
|
checksum = "49f5dab59c348b9b50cf7f261960a20e389feb2713636399cd9082cd4b536154"
|
2023-07-05 14:14:55 +02:00
|
|
|
dependencies = [
|
|
|
|
"file-id",
|
2023-09-01 00:07:41 +02:00
|
|
|
"log",
|
2023-07-05 14:14:55 +02:00
|
|
|
"notify",
|
2023-08-30 00:13:34 +02:00
|
|
|
"parking_lot",
|
2022-04-28 16:26:34 +02:00
|
|
|
"walkdir",
|
|
|
|
]
|
|
|
|
|
2023-01-13 16:27:37 +01:00
|
|
|
[[package]]
|
|
|
|
name = "now"
|
|
|
|
version = "0.1.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "6d89e9874397a1f0a52fc1f197a8effd9735223cb2390e9dcc83ac6cd02923d0"
|
|
|
|
dependencies = [
|
|
|
|
"chrono",
|
|
|
|
]
|
|
|
|
|
2022-10-03 18:40:16 +02:00
|
|
|
[[package]]
|
|
|
|
name = "ntapi"
|
2023-05-18 01:32:28 +02:00
|
|
|
version = "0.4.1"
|
2022-10-03 18:40:16 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-05-18 01:32:28 +02:00
|
|
|
checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4"
|
2022-10-03 18:40:16 +02:00
|
|
|
dependencies = [
|
2023-07-05 14:14:55 +02:00
|
|
|
"winapi",
|
2022-10-03 18:40:16 +02:00
|
|
|
]
|
|
|
|
|
2019-05-17 01:39:58 +02:00
|
|
|
[[package]]
|
|
|
|
name = "nu"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
2022-02-02 21:59:01 +01:00
|
|
|
dependencies = [
|
|
|
|
"assert_cmd",
|
2024-09-06 16:57:45 +02:00
|
|
|
"crossterm 0.28.1",
|
2022-02-02 21:59:01 +01:00
|
|
|
"ctrlc",
|
2024-07-16 14:16:26 +02:00
|
|
|
"dirs",
|
2022-02-02 21:59:01 +01:00
|
|
|
"log",
|
2022-10-24 21:42:32 +02:00
|
|
|
"miette",
|
2023-06-15 00:27:12 +02:00
|
|
|
"mimalloc",
|
2024-08-06 22:28:38 +02:00
|
|
|
"multipart-rs",
|
2024-09-04 04:03:02 +02:00
|
|
|
"nix 0.29.0",
|
2022-02-02 21:59:01 +01:00
|
|
|
"nu-cli",
|
2023-06-23 21:23:08 +02:00
|
|
|
"nu-cmd-base",
|
2023-06-14 23:12:55 +02:00
|
|
|
"nu-cmd-extra",
|
2023-02-24 16:54:42 +01:00
|
|
|
"nu-cmd-lang",
|
2024-04-21 14:36:26 +02:00
|
|
|
"nu-cmd-plugin",
|
2022-02-02 21:59:01 +01:00
|
|
|
"nu-command",
|
|
|
|
"nu-engine",
|
2023-06-14 01:18:36 +02:00
|
|
|
"nu-explore",
|
2023-11-02 16:18:57 +01:00
|
|
|
"nu-lsp",
|
2022-02-02 21:59:01 +01:00
|
|
|
"nu-parser",
|
|
|
|
"nu-path",
|
2024-04-27 19:08:12 +02:00
|
|
|
"nu-plugin-core",
|
|
|
|
"nu-plugin-engine",
|
|
|
|
"nu-plugin-protocol",
|
2022-02-02 21:59:01 +01:00
|
|
|
"nu-protocol",
|
2023-04-07 22:12:27 +02:00
|
|
|
"nu-std",
|
2024-03-27 16:43:37 +01:00
|
|
|
"nu-system",
|
2022-02-02 21:59:01 +01:00
|
|
|
"nu-test-support",
|
2022-05-17 20:28:18 +02:00
|
|
|
"nu-utils",
|
2022-04-28 02:25:09 +02:00
|
|
|
"openssl",
|
2022-02-02 21:59:01 +01:00
|
|
|
"pretty_assertions",
|
|
|
|
"reedline",
|
Internal representation (IR) compiler and evaluator (#13330)
# Description
This PR adds an internal representation language to Nushell, offering an
alternative evaluator based on simple instructions, stream-containing
registers, and indexed control flow. The number of registers required is
determined statically at compile-time, and the fixed size required is
allocated upon entering the block.
Each instruction is associated with a span, which makes going backwards
from IR instructions to source code very easy.
Motivations for IR:
1. **Performance.** By simplifying the evaluation path and making it
more cache-friendly and branch predictor-friendly, code that does a lot
of computation in Nushell itself can be sped up a decent bit. Because
the IR is fairly easy to reason about, we can also implement
optimization passes in the future to eliminate and simplify code.
2. **Correctness.** The instructions mostly have very simple and
easily-specified behavior, so hopefully engine changes are a little bit
easier to reason about, and they can be specified in a more formal way
at some point. I have made an effort to document each of the
instructions in the docs for the enum itself in a reasonably specific
way. Some of the errors that would have happened during evaluation
before are now moved to the compilation step instead, because they don't
make sense to check during evaluation.
3. **As an intermediate target.** This is a good step for us to bring
the [`new-nu-parser`](https://github.com/nushell/new-nu-parser) in at
some point, as code generated from new AST can be directly compared to
code generated from old AST. If the IR code is functionally equivalent,
it will behave the exact same way.
4. **Debugging.** With a little bit more work, we can probably give
control over advancing the virtual machine that `IrBlock`s run on to
some sort of external driver, making things like breakpoints and single
stepping possible. Tools like `view ir` and [`explore
ir`](https://github.com/devyn/nu_plugin_explore_ir) make it easier than
before to see what exactly is going on with your Nushell code.
The goal is to eventually replace the AST evaluator entirely, once we're
sure it's working just as well. You can help dogfood this by running
Nushell with `$env.NU_USE_IR` set to some value. The environment
variable is checked when Nushell starts, so config runs with IR, or it
can also be set on a line at the REPL to change it dynamically. It is
also checked when running `do` in case within a script you want to just
run a specific piece of code with or without IR.
# Example
```nushell
view ir { |data|
mut sum = 0
for n in $data {
$sum += $n
}
$sum
}
```
```gas
# 3 registers, 19 instructions, 0 bytes of data
0: load-literal %0, int(0)
1: store-variable var 904, %0 # let
2: drain %0
3: drop %0
4: load-variable %1, var 903
5: iterate %0, %1, end 15 # for, label(1), from(14:)
6: store-variable var 905, %0
7: load-variable %0, var 904
8: load-variable %2, var 905
9: binary-op %0, Math(Plus), %2
10: span %0
11: store-variable var 904, %0
12: load-literal %0, nothing
13: drain %0
14: jump 5
15: drop %0 # label(0), from(5:)
16: drain %0
17: load-variable %0, var 904
18: return %0
```
# Benchmarks
All benchmarks run on a base model Mac Mini M1.
## Iterative Fibonacci sequence
This is about as best case as possible, making use of the much faster
control flow. Most code will not experience a speed improvement nearly
this large.
```nushell
def fib [n: int] {
mut a = 0
mut b = 1
for _ in 2..=$n {
let c = $a + $b
$a = $b
$b = $c
}
$b
}
use std bench
bench { 0..50 | each { |n| fib $n } }
```
IR disabled:
```
╭───────┬─────────────────╮
│ mean │ 1ms 924µs 665ns │
│ min │ 1ms 700µs 83ns │
│ max │ 3ms 450µs 125ns │
│ std │ 395µs 759ns │
│ times │ [list 50 items] │
╰───────┴─────────────────╯
```
IR enabled:
```
╭───────┬─────────────────╮
│ mean │ 452µs 820ns │
│ min │ 427µs 417ns │
│ max │ 540µs 167ns │
│ std │ 17µs 158ns │
│ times │ [list 50 items] │
╰───────┴─────────────────╯
```
![explore ir
view](https://github.com/nushell/nushell/assets/10729/d7bccc03-5222-461c-9200-0dce71b83b83)
##
[gradient_benchmark_no_check.nu](https://github.com/nushell/nu_scripts/blob/main/benchmarks/gradient_benchmark_no_check.nu)
IR disabled:
```
╭───┬──────────────────╮
│ 0 │ 27ms 929µs 958ns │
│ 1 │ 21ms 153µs 459ns │
│ 2 │ 18ms 639µs 666ns │
│ 3 │ 19ms 554µs 583ns │
│ 4 │ 13ms 383µs 375ns │
│ 5 │ 11ms 328µs 208ns │
│ 6 │ 5ms 659µs 542ns │
╰───┴──────────────────╯
```
IR enabled:
```
╭───┬──────────────────╮
│ 0 │ 22ms 662µs │
│ 1 │ 17ms 221µs 792ns │
│ 2 │ 14ms 786µs 708ns │
│ 3 │ 13ms 876µs 834ns │
│ 4 │ 13ms 52µs 875ns │
│ 5 │ 11ms 269µs 666ns │
│ 6 │ 6ms 942µs 500ns │
╰───┴──────────────────╯
```
##
[random-bytes.nu](https://github.com/nushell/nu_scripts/blob/main/benchmarks/random-bytes.nu)
I got pretty random results out of this benchmark so I decided not to
include it. Not clear why.
# User-Facing Changes
- IR compilation errors may appear even if the user isn't evaluating
with IR.
- IR evaluation can be enabled by setting the `NU_USE_IR` environment
variable to any value.
- New command `view ir` pretty-prints the IR for a block, and `view ir
--json` can be piped into an external tool like [`explore
ir`](https://github.com/devyn/nu_plugin_explore_ir).
# Tests + Formatting
All tests are passing with `NU_USE_IR=1`, and I've added some more eval
tests to compare the results for some very core operations. I will
probably want to add some more so we don't have to always check
`NU_USE_IR=1 toolkit test --workspace` on a regular basis.
# After Submitting
- [ ] release notes
- [ ] further documentation of instructions?
- [ ] post-release: publish `nu_plugin_explore_ir`
2024-07-11 02:33:59 +02:00
|
|
|
"regex",
|
2023-08-08 19:11:05 +02:00
|
|
|
"rstest",
|
2023-04-05 21:34:47 +02:00
|
|
|
"serde_json",
|
2022-02-02 21:59:01 +01:00
|
|
|
"serial_test",
|
2022-08-09 18:44:37 +02:00
|
|
|
"simplelog",
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
"tango-bench",
|
2022-02-02 21:59:01 +01:00
|
|
|
"tempfile",
|
2023-08-25 10:54:01 +02:00
|
|
|
"time",
|
2023-04-26 14:14:55 +02:00
|
|
|
"winresource",
|
2020-03-04 19:58:20 +01:00
|
|
|
]
|
|
|
|
|
2021-02-22 19:33:34 +01:00
|
|
|
[[package]]
|
|
|
|
name = "nu-ansi-term"
|
2024-07-24 00:54:54 +02:00
|
|
|
version = "0.50.1"
|
2023-07-06 17:31:31 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-07-24 00:54:54 +02:00
|
|
|
checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399"
|
2023-07-06 17:31:31 +02:00
|
|
|
dependencies = [
|
2024-07-24 00:54:54 +02:00
|
|
|
"windows-sys 0.52.0",
|
2023-07-06 17:31:31 +02:00
|
|
|
]
|
|
|
|
|
2020-03-04 19:58:20 +01:00
|
|
|
[[package]]
|
|
|
|
name = "nu-cli"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
2021-08-30 20:36:07 +02:00
|
|
|
dependencies = [
|
2022-06-14 22:53:33 +02:00
|
|
|
"chrono",
|
2024-09-06 16:57:45 +02:00
|
|
|
"crossterm 0.28.1",
|
2023-12-21 17:10:33 +01:00
|
|
|
"fancy-regex",
|
2022-04-24 23:43:18 +02:00
|
|
|
"fuzzy-matcher",
|
2022-01-20 19:02:53 +01:00
|
|
|
"is_executable",
|
2022-01-01 22:42:50 +01:00
|
|
|
"log",
|
2024-02-08 21:29:28 +01:00
|
|
|
"lscolors",
|
2022-10-24 21:42:32 +02:00
|
|
|
"miette",
|
2023-07-24 13:16:18 +02:00
|
|
|
"nu-ansi-term",
|
2023-06-23 21:23:08 +02:00
|
|
|
"nu-cmd-base",
|
2023-06-14 23:12:55 +02:00
|
|
|
"nu-cmd-lang",
|
2021-12-16 13:17:29 +01:00
|
|
|
"nu-color-config",
|
2022-04-20 06:54:00 +02:00
|
|
|
"nu-command",
|
2021-08-30 20:36:07 +02:00
|
|
|
"nu-engine",
|
|
|
|
"nu-parser",
|
2021-10-04 21:21:31 +02:00
|
|
|
"nu-path",
|
2024-04-27 19:08:12 +02:00
|
|
|
"nu-plugin-engine",
|
2021-09-02 03:29:43 +02:00
|
|
|
"nu-protocol",
|
2022-04-20 06:54:00 +02:00
|
|
|
"nu-test-support",
|
2022-03-16 23:21:06 +01:00
|
|
|
"nu-utils",
|
2022-12-17 19:30:04 +01:00
|
|
|
"once_cell",
|
2022-09-13 14:36:53 +02:00
|
|
|
"percent-encoding",
|
2021-08-30 20:36:07 +02:00
|
|
|
"reedline",
|
2023-08-08 19:11:05 +02:00
|
|
|
"rstest",
|
2024-10-17 19:12:45 +02:00
|
|
|
"sysinfo 0.32.0",
|
2024-05-10 18:06:33 +02:00
|
|
|
"tempfile",
|
2023-04-10 00:56:47 +02:00
|
|
|
"unicode-segmentation",
|
2023-09-29 16:36:03 +02:00
|
|
|
"uuid",
|
2024-01-22 16:28:47 +01:00
|
|
|
"which",
|
2021-08-30 20:36:07 +02:00
|
|
|
]
|
|
|
|
|
2023-06-22 23:45:54 +02:00
|
|
|
[[package]]
|
|
|
|
name = "nu-cmd-base"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
2023-06-22 23:45:54 +02:00
|
|
|
dependencies = [
|
2023-12-06 01:09:34 +01:00
|
|
|
"indexmap",
|
2023-08-29 23:46:50 +02:00
|
|
|
"miette",
|
2023-06-23 21:23:08 +02:00
|
|
|
"nu-engine",
|
2023-08-29 23:46:50 +02:00
|
|
|
"nu-parser",
|
2023-06-23 21:23:08 +02:00
|
|
|
"nu-path",
|
2023-06-22 23:45:54 +02:00
|
|
|
"nu-protocol",
|
|
|
|
]
|
|
|
|
|
2023-06-01 19:46:16 +02:00
|
|
|
[[package]]
|
|
|
|
name = "nu-cmd-extra"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
2023-06-01 19:46:16 +02:00
|
|
|
dependencies = [
|
2023-12-21 17:10:33 +01:00
|
|
|
"fancy-regex",
|
2024-08-24 00:35:42 +02:00
|
|
|
"heck",
|
Bump itertools from 0.12.1 to 0.13.0 (#13774)
Bumps [itertools](https://github.com/rust-itertools/itertools) from
0.12.1 to 0.13.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-itertools/itertools/blob/master/CHANGELOG.md">itertools's
changelog</a>.</em></p>
<blockquote>
<h2>0.13.0</h2>
<h3>Breaking</h3>
<ul>
<li>Removed implementation of <code>DoubleEndedIterator</code> for
<code>ConsTuples</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/853">#853</a>)</li>
<li>Made <code>MultiProduct</code> fused and fixed on an empty iterator
(<a
href="https://redirect.github.com/rust-itertools/itertools/issues/835">#835</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/834">#834</a>)</li>
<li>Changed <code>iproduct!</code> to return tuples for maxi one
iterator too (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/870">#870</a>)</li>
<li>Changed <code>PutBack::put_back</code> to return the old value (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/880">#880</a>)</li>
<li>Removed deprecated <code>repeat_call, Itertools::{foreach, step,
map_results, fold_results}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/878">#878</a>)</li>
<li>Removed <code>TakeWhileInclusive::new</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/912">#912</a>)</li>
</ul>
<h3>Added</h3>
<ul>
<li>Added <code>Itertools::{smallest_by, smallest_by_key, largest,
largest_by, largest_by_key}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/654">#654</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/885">#885</a>)</li>
<li>Added <code>Itertools::tail</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/899">#899</a>)</li>
<li>Implemented <code>DoubleEndedIterator</code> for
<code>ProcessResults</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/910">#910</a>)</li>
<li>Implemented <code>Debug</code> for <code>FormatWith</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/931">#931</a>)</li>
<li>Added <code>Itertools::get</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/891">#891</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Deprecated <code>Itertools::group_by</code> (renamed
<code>chunk_by</code>) (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/866">#866</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/879">#879</a>)</li>
<li>Deprecated <code>unfold</code> (use <code>std::iter::from_fn</code>
instead) (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/871">#871</a>)</li>
<li>Optimized <code>GroupingMapBy</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/873">#873</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/876">#876</a>)</li>
<li>Relaxed <code>Fn</code> bounds to <code>FnMut</code> in
<code>diff_with, Itertools::into_group_map_by</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/886">#886</a>)</li>
<li>Relaxed <code>Debug/Clone</code> bounds for <code>MapInto</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/889">#889</a>)</li>
<li>Documented the <code>use_alloc</code> feature (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/887">#887</a>)</li>
<li>Optimized <code>Itertools::set_from</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/888">#888</a>)</li>
<li>Removed badges in <code>README.md</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/890">#890</a>)</li>
<li>Added "no-std" categories in <code>Cargo.toml</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/894">#894</a>)</li>
<li>Fixed <code>Itertools::k_smallest</code> on short unfused iterators
(<a
href="https://redirect.github.com/rust-itertools/itertools/issues/900">#900</a>)</li>
<li>Deprecated <code>Itertools::tree_fold1</code> (renamed
<code>tree_reduce</code>) (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/895">#895</a>)</li>
<li>Deprecated <code>GroupingMap::fold_first</code> (renamed
<code>reduce</code>) (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/902">#902</a>)</li>
<li>Fixed <code>Itertools::k_smallest(0)</code> to consume the iterator,
optimized <code>Itertools::k_smallest(1)</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/909">#909</a>)</li>
<li>Specialized <code>Combinations::nth</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/914">#914</a>)</li>
<li>Specialized <code>MergeBy::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/920">#920</a>)</li>
<li>Specialized <code>CombinationsWithReplacement::nth</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/923">#923</a>)</li>
<li>Specialized <code>FlattenOk::{fold, rfold}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/927">#927</a>)</li>
<li>Specialized <code>Powerset::nth</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/924">#924</a>)</li>
<li>Documentation fixes (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/882">#882</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/936">#936</a>)</li>
<li>Fixed <code>assert_equal</code> for iterators longer than
<code>i32::MAX</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/932">#932</a>)</li>
<li>Updated the <code>must_use</code> message of non-lazy
<code>KMergeBy</code> and <code>TupleCombinations</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/939">#939</a>)</li>
</ul>
<h3>Notable Internal Changes</h3>
<ul>
<li>Tested iterator laziness (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/792">#792</a>)</li>
<li>Created <code>CONTRIBUTING.md</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/767">#767</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/rust-itertools/itertools/commit/d5084d15e959b85d89a49e5cd33ad6267bc541a3"><code>d5084d1</code></a>
Prepare v0.13.0 release (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/937">#937</a>)</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/d7c99d55daeaa76f482444e95beb99f5744ced4e"><code>d7c99d5</code></a>
<code>TupleCombinations</code> is not lazy but must be used
nonetheless</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/074c7fcc07c2bfd60f238585c05134ea3eb43f77"><code>074c7fc</code></a>
<code>KMergeBy</code> is not lazy but must be used nonetheless</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/2ad9e07ae860bb891e48b35edfea5b3286dcb4ab"><code>2ad9e07</code></a>
<code>assert_equal</code>: fix
<code>clippy::default_numeric_fallback</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/0d4efc84323399b47b09ae9da1ff3fdfc2cf95e1"><code>0d4efc8</code></a>
Remove free function <code>get</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/05cc0ee256e84d665e34209053ebc62ef7e4463d"><code>05cc0ee</code></a>
<code>get(s..=usize::MAX)</code> should be fine when <code>s !=
0</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/3c16f14baa5515376adcd8c530f6d3d275b14f44"><code>3c16f14</code></a>
<code>get</code>: when is it ESI and/or DEI</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/4dd6ba0e7c44bb287dff1098d8fb6ab77c32bf87"><code>4dd6ba0</code></a>
<code>get</code>: panics if the range includes
<code>usize::MAX</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/7a9ce56fc59489668178d696db76afb3580a359c"><code>7a9ce56</code></a>
<code>get(r: Range)</code> as <code>Skip\<Take></code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/f676f2f96451220c827c62f714d79ce6454d0184"><code>f676f2f</code></a>
Remove the unspecified check about
<code>.get(exhausted_range_inclusive)</code></li>
<li>Additional commits viewable in <a
href="https://github.com/rust-itertools/itertools/compare/v0.12.1...v0.13.0">compare
view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=itertools&package-manager=cargo&previous-version=0.12.1&new-version=0.13.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-04 04:02:48 +02:00
|
|
|
"itertools 0.13.0",
|
2023-07-24 13:16:18 +02:00
|
|
|
"nu-ansi-term",
|
2023-06-23 21:23:08 +02:00
|
|
|
"nu-cmd-base",
|
2023-06-01 19:46:16 +02:00
|
|
|
"nu-cmd-lang",
|
2023-07-06 17:31:31 +02:00
|
|
|
"nu-command",
|
2023-06-01 19:46:16 +02:00
|
|
|
"nu-engine",
|
2023-07-06 17:31:31 +02:00
|
|
|
"nu-json",
|
2023-06-01 19:46:16 +02:00
|
|
|
"nu-parser",
|
2023-07-06 17:31:31 +02:00
|
|
|
"nu-pretty-hex",
|
2023-06-01 19:46:16 +02:00
|
|
|
"nu-protocol",
|
|
|
|
"nu-test-support",
|
2023-06-23 21:23:08 +02:00
|
|
|
"nu-utils",
|
2023-06-01 19:46:16 +02:00
|
|
|
"num-traits",
|
2023-07-06 17:31:31 +02:00
|
|
|
"rust-embed",
|
|
|
|
"serde",
|
|
|
|
"serde_urlencoded",
|
2024-01-18 19:58:35 +01:00
|
|
|
"v_htmlescape",
|
2023-06-01 19:46:16 +02:00
|
|
|
]
|
|
|
|
|
2023-02-24 16:54:42 +01:00
|
|
|
[[package]]
|
|
|
|
name = "nu-cmd-lang"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
2023-02-24 16:54:42 +01:00
|
|
|
dependencies = [
|
Bump itertools from 0.12.1 to 0.13.0 (#13774)
Bumps [itertools](https://github.com/rust-itertools/itertools) from
0.12.1 to 0.13.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-itertools/itertools/blob/master/CHANGELOG.md">itertools's
changelog</a>.</em></p>
<blockquote>
<h2>0.13.0</h2>
<h3>Breaking</h3>
<ul>
<li>Removed implementation of <code>DoubleEndedIterator</code> for
<code>ConsTuples</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/853">#853</a>)</li>
<li>Made <code>MultiProduct</code> fused and fixed on an empty iterator
(<a
href="https://redirect.github.com/rust-itertools/itertools/issues/835">#835</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/834">#834</a>)</li>
<li>Changed <code>iproduct!</code> to return tuples for maxi one
iterator too (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/870">#870</a>)</li>
<li>Changed <code>PutBack::put_back</code> to return the old value (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/880">#880</a>)</li>
<li>Removed deprecated <code>repeat_call, Itertools::{foreach, step,
map_results, fold_results}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/878">#878</a>)</li>
<li>Removed <code>TakeWhileInclusive::new</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/912">#912</a>)</li>
</ul>
<h3>Added</h3>
<ul>
<li>Added <code>Itertools::{smallest_by, smallest_by_key, largest,
largest_by, largest_by_key}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/654">#654</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/885">#885</a>)</li>
<li>Added <code>Itertools::tail</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/899">#899</a>)</li>
<li>Implemented <code>DoubleEndedIterator</code> for
<code>ProcessResults</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/910">#910</a>)</li>
<li>Implemented <code>Debug</code> for <code>FormatWith</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/931">#931</a>)</li>
<li>Added <code>Itertools::get</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/891">#891</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Deprecated <code>Itertools::group_by</code> (renamed
<code>chunk_by</code>) (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/866">#866</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/879">#879</a>)</li>
<li>Deprecated <code>unfold</code> (use <code>std::iter::from_fn</code>
instead) (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/871">#871</a>)</li>
<li>Optimized <code>GroupingMapBy</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/873">#873</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/876">#876</a>)</li>
<li>Relaxed <code>Fn</code> bounds to <code>FnMut</code> in
<code>diff_with, Itertools::into_group_map_by</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/886">#886</a>)</li>
<li>Relaxed <code>Debug/Clone</code> bounds for <code>MapInto</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/889">#889</a>)</li>
<li>Documented the <code>use_alloc</code> feature (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/887">#887</a>)</li>
<li>Optimized <code>Itertools::set_from</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/888">#888</a>)</li>
<li>Removed badges in <code>README.md</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/890">#890</a>)</li>
<li>Added "no-std" categories in <code>Cargo.toml</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/894">#894</a>)</li>
<li>Fixed <code>Itertools::k_smallest</code> on short unfused iterators
(<a
href="https://redirect.github.com/rust-itertools/itertools/issues/900">#900</a>)</li>
<li>Deprecated <code>Itertools::tree_fold1</code> (renamed
<code>tree_reduce</code>) (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/895">#895</a>)</li>
<li>Deprecated <code>GroupingMap::fold_first</code> (renamed
<code>reduce</code>) (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/902">#902</a>)</li>
<li>Fixed <code>Itertools::k_smallest(0)</code> to consume the iterator,
optimized <code>Itertools::k_smallest(1)</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/909">#909</a>)</li>
<li>Specialized <code>Combinations::nth</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/914">#914</a>)</li>
<li>Specialized <code>MergeBy::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/920">#920</a>)</li>
<li>Specialized <code>CombinationsWithReplacement::nth</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/923">#923</a>)</li>
<li>Specialized <code>FlattenOk::{fold, rfold}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/927">#927</a>)</li>
<li>Specialized <code>Powerset::nth</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/924">#924</a>)</li>
<li>Documentation fixes (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/882">#882</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/936">#936</a>)</li>
<li>Fixed <code>assert_equal</code> for iterators longer than
<code>i32::MAX</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/932">#932</a>)</li>
<li>Updated the <code>must_use</code> message of non-lazy
<code>KMergeBy</code> and <code>TupleCombinations</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/939">#939</a>)</li>
</ul>
<h3>Notable Internal Changes</h3>
<ul>
<li>Tested iterator laziness (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/792">#792</a>)</li>
<li>Created <code>CONTRIBUTING.md</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/767">#767</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/rust-itertools/itertools/commit/d5084d15e959b85d89a49e5cd33ad6267bc541a3"><code>d5084d1</code></a>
Prepare v0.13.0 release (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/937">#937</a>)</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/d7c99d55daeaa76f482444e95beb99f5744ced4e"><code>d7c99d5</code></a>
<code>TupleCombinations</code> is not lazy but must be used
nonetheless</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/074c7fcc07c2bfd60f238585c05134ea3eb43f77"><code>074c7fc</code></a>
<code>KMergeBy</code> is not lazy but must be used nonetheless</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/2ad9e07ae860bb891e48b35edfea5b3286dcb4ab"><code>2ad9e07</code></a>
<code>assert_equal</code>: fix
<code>clippy::default_numeric_fallback</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/0d4efc84323399b47b09ae9da1ff3fdfc2cf95e1"><code>0d4efc8</code></a>
Remove free function <code>get</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/05cc0ee256e84d665e34209053ebc62ef7e4463d"><code>05cc0ee</code></a>
<code>get(s..=usize::MAX)</code> should be fine when <code>s !=
0</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/3c16f14baa5515376adcd8c530f6d3d275b14f44"><code>3c16f14</code></a>
<code>get</code>: when is it ESI and/or DEI</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/4dd6ba0e7c44bb287dff1098d8fb6ab77c32bf87"><code>4dd6ba0</code></a>
<code>get</code>: panics if the range includes
<code>usize::MAX</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/7a9ce56fc59489668178d696db76afb3580a359c"><code>7a9ce56</code></a>
<code>get(r: Range)</code> as <code>Skip\<Take></code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/f676f2f96451220c827c62f714d79ce6454d0184"><code>f676f2f</code></a>
Remove the unspecified check about
<code>.get(exhausted_range_inclusive)</code></li>
<li>Additional commits viewable in <a
href="https://github.com/rust-itertools/itertools/compare/v0.12.1...v0.13.0">compare
view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=itertools&package-manager=cargo&previous-version=0.12.1&new-version=0.13.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-04 04:02:48 +02:00
|
|
|
"itertools 0.13.0",
|
2023-02-24 16:54:42 +01:00
|
|
|
"nu-engine",
|
|
|
|
"nu-parser",
|
|
|
|
"nu-protocol",
|
|
|
|
"nu-utils",
|
|
|
|
"shadow-rs",
|
|
|
|
]
|
|
|
|
|
2024-04-21 14:36:26 +02:00
|
|
|
[[package]]
|
|
|
|
name = "nu-cmd-plugin"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
2024-04-21 14:36:26 +02:00
|
|
|
dependencies = [
|
Bump itertools from 0.12.1 to 0.13.0 (#13774)
Bumps [itertools](https://github.com/rust-itertools/itertools) from
0.12.1 to 0.13.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-itertools/itertools/blob/master/CHANGELOG.md">itertools's
changelog</a>.</em></p>
<blockquote>
<h2>0.13.0</h2>
<h3>Breaking</h3>
<ul>
<li>Removed implementation of <code>DoubleEndedIterator</code> for
<code>ConsTuples</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/853">#853</a>)</li>
<li>Made <code>MultiProduct</code> fused and fixed on an empty iterator
(<a
href="https://redirect.github.com/rust-itertools/itertools/issues/835">#835</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/834">#834</a>)</li>
<li>Changed <code>iproduct!</code> to return tuples for maxi one
iterator too (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/870">#870</a>)</li>
<li>Changed <code>PutBack::put_back</code> to return the old value (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/880">#880</a>)</li>
<li>Removed deprecated <code>repeat_call, Itertools::{foreach, step,
map_results, fold_results}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/878">#878</a>)</li>
<li>Removed <code>TakeWhileInclusive::new</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/912">#912</a>)</li>
</ul>
<h3>Added</h3>
<ul>
<li>Added <code>Itertools::{smallest_by, smallest_by_key, largest,
largest_by, largest_by_key}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/654">#654</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/885">#885</a>)</li>
<li>Added <code>Itertools::tail</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/899">#899</a>)</li>
<li>Implemented <code>DoubleEndedIterator</code> for
<code>ProcessResults</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/910">#910</a>)</li>
<li>Implemented <code>Debug</code> for <code>FormatWith</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/931">#931</a>)</li>
<li>Added <code>Itertools::get</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/891">#891</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Deprecated <code>Itertools::group_by</code> (renamed
<code>chunk_by</code>) (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/866">#866</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/879">#879</a>)</li>
<li>Deprecated <code>unfold</code> (use <code>std::iter::from_fn</code>
instead) (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/871">#871</a>)</li>
<li>Optimized <code>GroupingMapBy</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/873">#873</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/876">#876</a>)</li>
<li>Relaxed <code>Fn</code> bounds to <code>FnMut</code> in
<code>diff_with, Itertools::into_group_map_by</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/886">#886</a>)</li>
<li>Relaxed <code>Debug/Clone</code> bounds for <code>MapInto</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/889">#889</a>)</li>
<li>Documented the <code>use_alloc</code> feature (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/887">#887</a>)</li>
<li>Optimized <code>Itertools::set_from</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/888">#888</a>)</li>
<li>Removed badges in <code>README.md</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/890">#890</a>)</li>
<li>Added "no-std" categories in <code>Cargo.toml</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/894">#894</a>)</li>
<li>Fixed <code>Itertools::k_smallest</code> on short unfused iterators
(<a
href="https://redirect.github.com/rust-itertools/itertools/issues/900">#900</a>)</li>
<li>Deprecated <code>Itertools::tree_fold1</code> (renamed
<code>tree_reduce</code>) (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/895">#895</a>)</li>
<li>Deprecated <code>GroupingMap::fold_first</code> (renamed
<code>reduce</code>) (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/902">#902</a>)</li>
<li>Fixed <code>Itertools::k_smallest(0)</code> to consume the iterator,
optimized <code>Itertools::k_smallest(1)</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/909">#909</a>)</li>
<li>Specialized <code>Combinations::nth</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/914">#914</a>)</li>
<li>Specialized <code>MergeBy::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/920">#920</a>)</li>
<li>Specialized <code>CombinationsWithReplacement::nth</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/923">#923</a>)</li>
<li>Specialized <code>FlattenOk::{fold, rfold}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/927">#927</a>)</li>
<li>Specialized <code>Powerset::nth</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/924">#924</a>)</li>
<li>Documentation fixes (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/882">#882</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/936">#936</a>)</li>
<li>Fixed <code>assert_equal</code> for iterators longer than
<code>i32::MAX</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/932">#932</a>)</li>
<li>Updated the <code>must_use</code> message of non-lazy
<code>KMergeBy</code> and <code>TupleCombinations</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/939">#939</a>)</li>
</ul>
<h3>Notable Internal Changes</h3>
<ul>
<li>Tested iterator laziness (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/792">#792</a>)</li>
<li>Created <code>CONTRIBUTING.md</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/767">#767</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/rust-itertools/itertools/commit/d5084d15e959b85d89a49e5cd33ad6267bc541a3"><code>d5084d1</code></a>
Prepare v0.13.0 release (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/937">#937</a>)</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/d7c99d55daeaa76f482444e95beb99f5744ced4e"><code>d7c99d5</code></a>
<code>TupleCombinations</code> is not lazy but must be used
nonetheless</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/074c7fcc07c2bfd60f238585c05134ea3eb43f77"><code>074c7fc</code></a>
<code>KMergeBy</code> is not lazy but must be used nonetheless</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/2ad9e07ae860bb891e48b35edfea5b3286dcb4ab"><code>2ad9e07</code></a>
<code>assert_equal</code>: fix
<code>clippy::default_numeric_fallback</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/0d4efc84323399b47b09ae9da1ff3fdfc2cf95e1"><code>0d4efc8</code></a>
Remove free function <code>get</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/05cc0ee256e84d665e34209053ebc62ef7e4463d"><code>05cc0ee</code></a>
<code>get(s..=usize::MAX)</code> should be fine when <code>s !=
0</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/3c16f14baa5515376adcd8c530f6d3d275b14f44"><code>3c16f14</code></a>
<code>get</code>: when is it ESI and/or DEI</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/4dd6ba0e7c44bb287dff1098d8fb6ab77c32bf87"><code>4dd6ba0</code></a>
<code>get</code>: panics if the range includes
<code>usize::MAX</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/7a9ce56fc59489668178d696db76afb3580a359c"><code>7a9ce56</code></a>
<code>get(r: Range)</code> as <code>Skip\<Take></code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/f676f2f96451220c827c62f714d79ce6454d0184"><code>f676f2f</code></a>
Remove the unspecified check about
<code>.get(exhausted_range_inclusive)</code></li>
<li>Additional commits viewable in <a
href="https://github.com/rust-itertools/itertools/compare/v0.12.1...v0.13.0">compare
view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=itertools&package-manager=cargo&previous-version=0.12.1&new-version=0.13.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-04 04:02:48 +02:00
|
|
|
"itertools 0.13.0",
|
2024-04-21 14:36:26 +02:00
|
|
|
"nu-engine",
|
|
|
|
"nu-path",
|
2024-04-27 19:08:12 +02:00
|
|
|
"nu-plugin-engine",
|
2024-04-21 14:36:26 +02:00
|
|
|
"nu-protocol",
|
|
|
|
]
|
|
|
|
|
2021-12-16 13:17:29 +01:00
|
|
|
[[package]]
|
|
|
|
name = "nu-color-config"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
2021-12-16 13:17:29 +01:00
|
|
|
dependencies = [
|
2023-07-24 13:16:18 +02:00
|
|
|
"nu-ansi-term",
|
color_config now accepts closures as color values (#7141)
# Description
Closes #6909. You can now add closures to your `color_config` themes.
Whenever a value would be printed with `table`, the closure is run with
the value piped-in. The closure must return either a {fg,bg,attr} record
or a color name (`'light_red'` etc.). This returned style is used to
colour the value.
This is entirely backwards-compatible with existing config.nu files.
Example code excerpt:
```
let my_theme = {
header: green_bold
bool: { if $in { 'light_cyan' } else { 'light_red' } }
int: purple_bold
filesize: { |e| if $e == 0b { 'gray' } else if $e < 1mb { 'purple_bold' } else { 'cyan_bold' } }
duration: purple_bold
date: { (date now) - $in | if $in > 1wk { 'cyan_bold' } else if $in > 1day { 'green_bold' } else { 'yellow_bold' } }
range: yellow_bold
string: { if $in =~ '^#\w{6}$' { $in } else { 'white' } }
nothing: white
```
Example output with this in effect:
![2022-11-16 12 47 23 AM - style_computer
rs_-_nushell_-_VSCodium](https://user-images.githubusercontent.com/83939/201952558-482de05d-69c7-4bf2-91fc-d0964bf71264.png)
![2022-11-16 12 39 41 AM - style_computer
rs_-_nushell_-_VSCodium](https://user-images.githubusercontent.com/83939/201952580-2384bb86-b680-40fe-8192-71bae396c738.png)
![2022-11-15 09 21 54 PM - run_external
rs_-_nushell_-_VSCodium](https://user-images.githubusercontent.com/83939/201952601-343fc15d-e4a8-4a92-ad89-9a7d17d42748.png)
Slightly important notes:
* Some color_config names, namely "separator", "empty" and "hints", pipe
in `null` instead of a value.
* Currently, doing anything non-trivial inside a closure has an
understandably big perf hit. I currently do not actually recommend
something like `string: { if $in =~ '^#\w{6}$' { $in } else { 'white' }
}` for serious work, mainly because of the abundance of string-type data
in the world. Nevertheless, lesser-used types like "date" and "duration"
work well with this.
* I had to do some reorganisation in order to make it possible to call
`eval_block()` that late in table rendering. I invented a new struct
called "StyleComputer" which holds the engine_state and stack of the
initial `table` command (implicit or explicit).
* StyleComputer has a `compute()` method which takes a color_config name
and a nu value, and always returns the correct Style, so you don't have
to worry about A) the color_config value was set at all, B) whether it
was set to a closure or not, or C) which default style to use in those
cases.
* Currently, errors encountered during execution of the closures are
thrown in the garbage. Any other ideas are welcome. (Nonetheless, errors
result in a huge perf hit when they are encountered. I think what should
be done is to assume something terrible happened to the user's config
and invalidate the StyleComputer for that `table` run, thus causing
subsequent output to just be Style::default().)
* More thorough tests are forthcoming - ran into some difficulty using
`nu!` to take an alternative config, and for some reason `let-env config
=` statements don't seem to work inside `nu!` pipelines(???)
* The default config.nu has not been updated to make use of this yet. Do
tell if you think I should incorporate that into this.
# User-Facing Changes
See above.
# Tests + Formatting
Don't forget to add tests that cover your changes.
Make sure you've run and fixed any issues with these commands:
- `cargo fmt --all -- --check` to check standard code formatting (`cargo
fmt --all` applies these changes)
- `cargo clippy --workspace --features=extra -- -D warnings -D
clippy::unwrap_used -A clippy::needless_collect` to check that you're
using the standard code style
- `cargo test --workspace --features=extra` to check that all tests pass
# After Submitting
If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
2022-12-17 14:07:56 +01:00
|
|
|
"nu-engine",
|
2022-12-18 15:43:15 +01:00
|
|
|
"nu-json",
|
2021-12-16 13:17:29 +01:00
|
|
|
"nu-protocol",
|
color_config now accepts closures as color values (#7141)
# Description
Closes #6909. You can now add closures to your `color_config` themes.
Whenever a value would be printed with `table`, the closure is run with
the value piped-in. The closure must return either a {fg,bg,attr} record
or a color name (`'light_red'` etc.). This returned style is used to
colour the value.
This is entirely backwards-compatible with existing config.nu files.
Example code excerpt:
```
let my_theme = {
header: green_bold
bool: { if $in { 'light_cyan' } else { 'light_red' } }
int: purple_bold
filesize: { |e| if $e == 0b { 'gray' } else if $e < 1mb { 'purple_bold' } else { 'cyan_bold' } }
duration: purple_bold
date: { (date now) - $in | if $in > 1wk { 'cyan_bold' } else if $in > 1day { 'green_bold' } else { 'yellow_bold' } }
range: yellow_bold
string: { if $in =~ '^#\w{6}$' { $in } else { 'white' } }
nothing: white
```
Example output with this in effect:
![2022-11-16 12 47 23 AM - style_computer
rs_-_nushell_-_VSCodium](https://user-images.githubusercontent.com/83939/201952558-482de05d-69c7-4bf2-91fc-d0964bf71264.png)
![2022-11-16 12 39 41 AM - style_computer
rs_-_nushell_-_VSCodium](https://user-images.githubusercontent.com/83939/201952580-2384bb86-b680-40fe-8192-71bae396c738.png)
![2022-11-15 09 21 54 PM - run_external
rs_-_nushell_-_VSCodium](https://user-images.githubusercontent.com/83939/201952601-343fc15d-e4a8-4a92-ad89-9a7d17d42748.png)
Slightly important notes:
* Some color_config names, namely "separator", "empty" and "hints", pipe
in `null` instead of a value.
* Currently, doing anything non-trivial inside a closure has an
understandably big perf hit. I currently do not actually recommend
something like `string: { if $in =~ '^#\w{6}$' { $in } else { 'white' }
}` for serious work, mainly because of the abundance of string-type data
in the world. Nevertheless, lesser-used types like "date" and "duration"
work well with this.
* I had to do some reorganisation in order to make it possible to call
`eval_block()` that late in table rendering. I invented a new struct
called "StyleComputer" which holds the engine_state and stack of the
initial `table` command (implicit or explicit).
* StyleComputer has a `compute()` method which takes a color_config name
and a nu value, and always returns the correct Style, so you don't have
to worry about A) the color_config value was set at all, B) whether it
was set to a closure or not, or C) which default style to use in those
cases.
* Currently, errors encountered during execution of the closures are
thrown in the garbage. Any other ideas are welcome. (Nonetheless, errors
result in a huge perf hit when they are encountered. I think what should
be done is to assume something terrible happened to the user's config
and invalidate the StyleComputer for that `table` run, thus causing
subsequent output to just be Style::default().)
* More thorough tests are forthcoming - ran into some difficulty using
`nu!` to take an alternative config, and for some reason `let-env config
=` statements don't seem to work inside `nu!` pipelines(???)
* The default config.nu has not been updated to make use of this yet. Do
tell if you think I should incorporate that into this.
# User-Facing Changes
See above.
# Tests + Formatting
Don't forget to add tests that cover your changes.
Make sure you've run and fixed any issues with these commands:
- `cargo fmt --all -- --check` to check standard code formatting (`cargo
fmt --all` applies these changes)
- `cargo clippy --workspace --features=extra -- -D warnings -D
clippy::unwrap_used -A clippy::needless_collect` to check that you're
using the standard code style
- `cargo test --workspace --features=extra` to check that all tests pass
# After Submitting
If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
2022-12-17 14:07:56 +01:00
|
|
|
"nu-test-support",
|
2021-12-16 13:17:29 +01:00
|
|
|
"serde",
|
2019-11-21 15:33:14 +01:00
|
|
|
]
|
2021-01-10 03:50:49 +01:00
|
|
|
|
2021-01-11 19:50:53 +01:00
|
|
|
[[package]]
|
2021-01-12 05:59:53 +01:00
|
|
|
name = "nu-command"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
2021-09-03 00:58:15 +02:00
|
|
|
dependencies = [
|
2022-05-06 14:58:32 +02:00
|
|
|
"alphanumeric-sort",
|
2024-05-04 14:56:16 +02:00
|
|
|
"base64 0.22.1",
|
2023-06-28 19:57:44 +02:00
|
|
|
"bracoxide",
|
2024-06-06 01:26:47 +02:00
|
|
|
"brotli",
|
2022-07-03 20:31:50 +02:00
|
|
|
"byteorder",
|
2021-10-12 22:22:12 +02:00
|
|
|
"bytesize",
|
2021-11-19 20:23:35 +01:00
|
|
|
"calamine",
|
2023-08-25 02:21:17 +02:00
|
|
|
"chardetng",
|
2021-10-05 04:27:39 +02:00
|
|
|
"chrono",
|
2021-11-02 04:08:05 +01:00
|
|
|
"chrono-humanize",
|
2024-04-13 20:00:04 +02:00
|
|
|
"chrono-tz 0.8.6",
|
2024-09-06 16:57:45 +02:00
|
|
|
"crossterm 0.28.1",
|
2021-11-09 21:17:37 +01:00
|
|
|
"csv",
|
2024-08-23 18:18:51 +02:00
|
|
|
"data-encoding",
|
2021-10-15 20:51:25 +02:00
|
|
|
"dialoguer",
|
2022-10-03 18:40:16 +02:00
|
|
|
"digest",
|
2024-07-16 14:16:26 +02:00
|
|
|
"dirs",
|
2021-01-12 05:59:53 +01:00
|
|
|
"dtparse",
|
|
|
|
"encoding_rs",
|
2023-12-21 17:10:33 +01:00
|
|
|
"fancy-regex",
|
2021-01-12 05:59:53 +01:00
|
|
|
"filesize",
|
2022-04-07 13:44:05 +02:00
|
|
|
"filetime",
|
2023-11-16 00:43:37 +01:00
|
|
|
"human-date-parser",
|
2023-12-06 01:09:34 +01:00
|
|
|
"indexmap",
|
2023-01-11 02:57:48 +01:00
|
|
|
"indicatif",
|
Bump itertools from 0.12.1 to 0.13.0 (#13774)
Bumps [itertools](https://github.com/rust-itertools/itertools) from
0.12.1 to 0.13.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-itertools/itertools/blob/master/CHANGELOG.md">itertools's
changelog</a>.</em></p>
<blockquote>
<h2>0.13.0</h2>
<h3>Breaking</h3>
<ul>
<li>Removed implementation of <code>DoubleEndedIterator</code> for
<code>ConsTuples</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/853">#853</a>)</li>
<li>Made <code>MultiProduct</code> fused and fixed on an empty iterator
(<a
href="https://redirect.github.com/rust-itertools/itertools/issues/835">#835</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/834">#834</a>)</li>
<li>Changed <code>iproduct!</code> to return tuples for maxi one
iterator too (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/870">#870</a>)</li>
<li>Changed <code>PutBack::put_back</code> to return the old value (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/880">#880</a>)</li>
<li>Removed deprecated <code>repeat_call, Itertools::{foreach, step,
map_results, fold_results}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/878">#878</a>)</li>
<li>Removed <code>TakeWhileInclusive::new</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/912">#912</a>)</li>
</ul>
<h3>Added</h3>
<ul>
<li>Added <code>Itertools::{smallest_by, smallest_by_key, largest,
largest_by, largest_by_key}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/654">#654</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/885">#885</a>)</li>
<li>Added <code>Itertools::tail</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/899">#899</a>)</li>
<li>Implemented <code>DoubleEndedIterator</code> for
<code>ProcessResults</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/910">#910</a>)</li>
<li>Implemented <code>Debug</code> for <code>FormatWith</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/931">#931</a>)</li>
<li>Added <code>Itertools::get</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/891">#891</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Deprecated <code>Itertools::group_by</code> (renamed
<code>chunk_by</code>) (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/866">#866</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/879">#879</a>)</li>
<li>Deprecated <code>unfold</code> (use <code>std::iter::from_fn</code>
instead) (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/871">#871</a>)</li>
<li>Optimized <code>GroupingMapBy</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/873">#873</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/876">#876</a>)</li>
<li>Relaxed <code>Fn</code> bounds to <code>FnMut</code> in
<code>diff_with, Itertools::into_group_map_by</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/886">#886</a>)</li>
<li>Relaxed <code>Debug/Clone</code> bounds for <code>MapInto</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/889">#889</a>)</li>
<li>Documented the <code>use_alloc</code> feature (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/887">#887</a>)</li>
<li>Optimized <code>Itertools::set_from</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/888">#888</a>)</li>
<li>Removed badges in <code>README.md</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/890">#890</a>)</li>
<li>Added "no-std" categories in <code>Cargo.toml</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/894">#894</a>)</li>
<li>Fixed <code>Itertools::k_smallest</code> on short unfused iterators
(<a
href="https://redirect.github.com/rust-itertools/itertools/issues/900">#900</a>)</li>
<li>Deprecated <code>Itertools::tree_fold1</code> (renamed
<code>tree_reduce</code>) (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/895">#895</a>)</li>
<li>Deprecated <code>GroupingMap::fold_first</code> (renamed
<code>reduce</code>) (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/902">#902</a>)</li>
<li>Fixed <code>Itertools::k_smallest(0)</code> to consume the iterator,
optimized <code>Itertools::k_smallest(1)</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/909">#909</a>)</li>
<li>Specialized <code>Combinations::nth</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/914">#914</a>)</li>
<li>Specialized <code>MergeBy::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/920">#920</a>)</li>
<li>Specialized <code>CombinationsWithReplacement::nth</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/923">#923</a>)</li>
<li>Specialized <code>FlattenOk::{fold, rfold}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/927">#927</a>)</li>
<li>Specialized <code>Powerset::nth</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/924">#924</a>)</li>
<li>Documentation fixes (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/882">#882</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/936">#936</a>)</li>
<li>Fixed <code>assert_equal</code> for iterators longer than
<code>i32::MAX</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/932">#932</a>)</li>
<li>Updated the <code>must_use</code> message of non-lazy
<code>KMergeBy</code> and <code>TupleCombinations</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/939">#939</a>)</li>
</ul>
<h3>Notable Internal Changes</h3>
<ul>
<li>Tested iterator laziness (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/792">#792</a>)</li>
<li>Created <code>CONTRIBUTING.md</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/767">#767</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/rust-itertools/itertools/commit/d5084d15e959b85d89a49e5cd33ad6267bc541a3"><code>d5084d1</code></a>
Prepare v0.13.0 release (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/937">#937</a>)</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/d7c99d55daeaa76f482444e95beb99f5744ced4e"><code>d7c99d5</code></a>
<code>TupleCombinations</code> is not lazy but must be used
nonetheless</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/074c7fcc07c2bfd60f238585c05134ea3eb43f77"><code>074c7fc</code></a>
<code>KMergeBy</code> is not lazy but must be used nonetheless</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/2ad9e07ae860bb891e48b35edfea5b3286dcb4ab"><code>2ad9e07</code></a>
<code>assert_equal</code>: fix
<code>clippy::default_numeric_fallback</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/0d4efc84323399b47b09ae9da1ff3fdfc2cf95e1"><code>0d4efc8</code></a>
Remove free function <code>get</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/05cc0ee256e84d665e34209053ebc62ef7e4463d"><code>05cc0ee</code></a>
<code>get(s..=usize::MAX)</code> should be fine when <code>s !=
0</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/3c16f14baa5515376adcd8c530f6d3d275b14f44"><code>3c16f14</code></a>
<code>get</code>: when is it ESI and/or DEI</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/4dd6ba0e7c44bb287dff1098d8fb6ab77c32bf87"><code>4dd6ba0</code></a>
<code>get</code>: panics if the range includes
<code>usize::MAX</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/7a9ce56fc59489668178d696db76afb3580a359c"><code>7a9ce56</code></a>
<code>get(r: Range)</code> as <code>Skip\<Take></code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/f676f2f96451220c827c62f714d79ce6454d0184"><code>f676f2f</code></a>
Remove the unspecified check about
<code>.get(exhausted_range_inclusive)</code></li>
<li>Additional commits viewable in <a
href="https://github.com/rust-itertools/itertools/compare/v0.12.1...v0.13.0">compare
view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=itertools&package-manager=cargo&previous-version=0.12.1&new-version=0.13.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-04 04:02:48 +02:00
|
|
|
"itertools 0.13.0",
|
2021-07-09 21:28:07 +02:00
|
|
|
"log",
|
2021-10-08 16:40:20 +02:00
|
|
|
"lscolors",
|
2021-07-25 21:08:08 +02:00
|
|
|
"md-5",
|
2021-09-01 04:29:09 +02:00
|
|
|
"mime",
|
2022-12-27 19:46:23 +01:00
|
|
|
"mime_guess",
|
2023-03-02 20:05:18 +01:00
|
|
|
"mockito",
|
2024-08-06 22:28:38 +02:00
|
|
|
"multipart-rs",
|
2023-03-05 23:48:13 +01:00
|
|
|
"native-tls",
|
2024-09-04 04:03:02 +02:00
|
|
|
"nix 0.29.0",
|
2023-07-05 14:14:55 +02:00
|
|
|
"notify-debouncer-full",
|
2023-07-24 13:16:18 +02:00
|
|
|
"nu-ansi-term",
|
2023-06-22 23:45:54 +02:00
|
|
|
"nu-cmd-base",
|
2023-02-24 16:54:42 +01:00
|
|
|
"nu-cmd-lang",
|
2021-12-16 13:17:29 +01:00
|
|
|
"nu-color-config",
|
2021-09-03 00:58:15 +02:00
|
|
|
"nu-engine",
|
2022-03-13 19:30:27 +01:00
|
|
|
"nu-glob",
|
2021-10-01 07:11:49 +02:00
|
|
|
"nu-json",
|
2021-10-09 15:10:10 +02:00
|
|
|
"nu-parser",
|
2021-10-02 22:16:37 +02:00
|
|
|
"nu-path",
|
2021-12-24 08:22:11 +01:00
|
|
|
"nu-pretty-hex",
|
2021-09-03 00:58:15 +02:00
|
|
|
"nu-protocol",
|
2022-01-14 07:20:53 +01:00
|
|
|
"nu-system",
|
2021-09-10 04:27:12 +02:00
|
|
|
"nu-table",
|
2021-10-07 17:32:39 +02:00
|
|
|
"nu-term-grid",
|
2022-02-02 21:59:01 +01:00
|
|
|
"nu-test-support",
|
2022-03-16 23:21:06 +01:00
|
|
|
"nu-utils",
|
2022-08-13 04:13:50 +02:00
|
|
|
"num-format",
|
2022-08-02 22:52:04 +02:00
|
|
|
"num-traits",
|
create `nuon` crate from `from nuon` and `to nuon` (#12553)
# Description
playing with the NUON format in Rust code in some plugins, we agreed
with the team it was a great time to create a standalone NUON format to
allow Rust devs to use this Nushell file format.
> **Note**
> this PR almost copy-pastes the code from
`nu_commands/src/formats/from/nuon.rs` and
`nu_commands/src/formats/to/nuon.rs` to `nuon/src/from.rs` and
`nuon/src/to.rs`, with minor tweaks to make then standalone functions,
e.g. remove the rest of the command implementations
### TODO
- [x] add tests
- [x] add documentation
# User-Facing Changes
devs will have access to a new crate, `nuon`, and two functions,
`from_nuon` and `to_nuon`
```rust
from_nuon(
input: &str,
span: Option<Span>,
) -> Result<Value, ShellError>
```
```rust
to_nuon(
input: &Value,
raw: bool,
tabs: Option<usize>,
indent: Option<usize>,
span: Option<Span>,
) -> Result<String, ShellError>
```
# Tests + Formatting
i've basically taken all the tests from
`crates/nu-command/tests/format_conversions/nuon.rs` and converted them
to use `from_nuon` and `to_nuon` instead of Nushell commands
- i've created a `nuon_end_to_end` to run both conversions with an
optional middle value to check that all is fine
> **Note**
> the `nuon::tests::read_code_should_fail_rather_than_panic` test does
give different results locally and in the CI...
> i've left it ignored with comments to help future us :)
# After Submitting
mention that in the release notes for sure!!
2024-04-19 13:54:16 +02:00
|
|
|
"nuon",
|
2022-11-19 12:09:39 +01:00
|
|
|
"once_cell",
|
2023-01-03 19:47:37 +01:00
|
|
|
"open",
|
2023-04-28 14:55:48 +02:00
|
|
|
"os_pipe",
|
2022-01-16 14:55:56 +01:00
|
|
|
"pathdiff",
|
2023-01-05 19:24:38 +01:00
|
|
|
"percent-encoding",
|
2024-04-26 13:23:16 +02:00
|
|
|
"pretty_assertions",
|
`string | fill` counts clusters, not graphemes; and doesn't count ANSI escape codes (#8134)
Enhancement of new `fill` command (#7846) to handle content including
ANSI escape codes for formatting or multi-code-point Unicode grapheme
clusters.
In both of these cases, the content is (many) bytes longer than its
visible length, and `fill` was counting the extra bytes so not adding
enough fill characters.
# Description
This script:
```rust
# the teacher emoji `\u{1F9D1}\u{200D}\u{1F3EB}` is 3 code points, but only 1 print position wide.
echo "This output should be 3 print positions wide, with leading and trailing `+`"
$"\u{1F9D1}\u{200D}\u{1F3EB}" | fill -c "+" -w 3 -a "c"
echo "This output should be 3 print positions wide, with leading and trailing `+`"
$"(ansi green)a(ansi reset)" | fill -c "+" -w 3 -a c
echo ""
```
Was producing this output:
```rust
This output should be 3 print positions wide, with leading and trailing `+`
🧑🏫
This output should be 3 print positions wide, with leading and trailing `+`
a
```
After this PR, it produces this output:
```rust
This output should be 3 print positions wide, with leading and trailing `+`
+🧑🏫+
This output should be 3 print positions wide, with leading and trailing `+`
+a+
```
# User-Facing Changes
Users may have to undo fixes they may have introduced to work around the
former behavior. I have one such in my prompt string that I can now
revert.
# Tests + Formatting
Don't forget to add tests that cover your changes.
-- Done
Make sure you've run and fixed any issues with these commands:
- [x] `cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [x] `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A
clippy::needless_collect` to check that you're using the standard code
style
- [x] `cargo test --workspace` to check that all tests pass
# After Submitting
`fill` command not documented in the book, and it still talks about `str
lpad/rpad`. I'll fix.
Note added dependency on a new library `print-positions`, which is an
iterator that yields a complete print position (cluster + Ansi sequence)
per call. Should this be vendored?
2023-02-20 13:32:20 +01:00
|
|
|
"print-positions",
|
2023-11-20 21:22:35 +01:00
|
|
|
"procfs",
|
2024-08-07 03:16:03 +02:00
|
|
|
"quick-xml 0.32.0",
|
2021-01-12 05:59:53 +01:00
|
|
|
"quickcheck",
|
|
|
|
"quickcheck_macros",
|
2023-07-10 07:28:36 +02:00
|
|
|
"rand",
|
2024-08-23 18:18:51 +02:00
|
|
|
"rand_chacha",
|
2021-10-26 03:30:53 +02:00
|
|
|
"rayon",
|
2022-12-02 17:30:26 +01:00
|
|
|
"regex",
|
2024-04-26 13:23:16 +02:00
|
|
|
"rmp",
|
2021-01-12 05:59:53 +01:00
|
|
|
"roxmltree",
|
2023-08-08 19:11:05 +02:00
|
|
|
"rstest",
|
2022-04-14 05:15:02 +02:00
|
|
|
"rusqlite",
|
2021-11-10 02:02:33 +01:00
|
|
|
"serde",
|
2023-04-26 15:15:42 +02:00
|
|
|
"serde_json",
|
2021-11-12 21:46:39 +01:00
|
|
|
"serde_urlencoded",
|
2021-11-10 02:02:33 +01:00
|
|
|
"serde_yaml",
|
2022-10-03 18:40:16 +02:00
|
|
|
"sha2",
|
2024-10-17 19:12:45 +02:00
|
|
|
"sysinfo 0.32.0",
|
2023-08-03 21:52:12 +02:00
|
|
|
"tabled",
|
Rewrite run_external.rs (#12921)
This PR is a complete rewrite of `run_external.rs`. The main goal of the
rewrite is improving readability, but it also fixes some bugs related to
argument handling and the PATH variable (fixes
https://github.com/nushell/nushell/issues/6011).
I'll discuss some technical details to make reviewing easier.
## Argument handling
Quoting arguments for external commands is hard. Like, *really* hard.
We've had more than a dozen issues and PRs dedicated to quoting
arguments (see Appendix) but the current implementation is still buggy.
Here's a demonstration of the buggy behavior:
```nu
let foo = "'bar'"
^touch $foo # This creates a file named `bar`, but it should be `'bar'`
^touch ...[ "'bar'" ] # Same
```
I'll describe how this PR deals with argument handling.
First, we'll introduce the concept of **bare strings**. Bare strings are
**string literals** that are either **unquoted** or **quoted by
backticks** [^1]. Strings within a list literal are NOT considered bare
strings, even if they are unquoted or quoted by backticks.
When a bare string is used as an argument to external process, we need
to perform tilde-expansion, glob-expansion, and inner-quotes-removal, in
that order. "Inner-quotes-removal" means transforming from
`--option="value"` into `--option=value`.
## `.bat` files and CMD built-ins
On Windows, `.bat` files and `.cmd` files are considered executable, but
they need `CMD.exe` as the interpreter. The Rust standard library
supports running `.bat` files directly and will spawn `CMD.exe` under
the hood (see
[documentation](https://doc.rust-lang.org/std/process/index.html#windows-argument-splitting)).
However, other extensions are not supported [^2].
Nushell also supports a selected number of CMD built-ins. The problem
with CMD is that it uses a different set of quoting rules. Correctly
quoting for CMD requires using
[Command::raw_arg()](https://doc.rust-lang.org/std/os/windows/process/trait.CommandExt.html#tymethod.raw_arg)
and manually quoting CMD special characters, on top of quoting from the
Nushell side. ~~I decided that this is too complex and chose to reject
special characters in CMD built-ins instead [^3]. Hopefully this will
not affact real-world use cases.~~ I've implemented escaping that works
reasonably well.
## `which-support` feature
The `which` crate is now a hard dependency of `nu-command`, making the
`which-support` feature essentially useless. The `which` crate is
already a hard dependency of `nu-cli`, and we should consider removing
the `which-support` feature entirely.
## Appendix
Here's a list of quoting-related issues and PRs in rough chronological
order.
* https://github.com/nushell/nushell/issues/4609
* https://github.com/nushell/nushell/issues/4631
* https://github.com/nushell/nushell/issues/4601
* https://github.com/nushell/nushell/pull/5846
* https://github.com/nushell/nushell/issues/5978
* https://github.com/nushell/nushell/pull/6014
* https://github.com/nushell/nushell/issues/6154
* https://github.com/nushell/nushell/pull/6161
* https://github.com/nushell/nushell/issues/6399
* https://github.com/nushell/nushell/pull/6420
* https://github.com/nushell/nushell/pull/6426
* https://github.com/nushell/nushell/issues/6465
* https://github.com/nushell/nushell/issues/6559
* https://github.com/nushell/nushell/pull/6560
[^1]: The idea that backtick-quoted strings act like bare strings was
introduced by Kubouch and briefly mentioned in [the language
reference](https://www.nushell.sh/lang-guide/chapters/strings_and_text.html#backtick-quotes).
[^2]: The documentation also said "running .bat scripts in this way may
be removed in the future and so should not be relied upon", which is
another reason to move away from this. But again, quoting for CMD is
hard.
[^3]: If anyone wants to try, the best resource I found on the topic is
[this](https://daviddeley.com/autohotkey/parameters/parameters.htm).
2024-05-23 04:05:27 +02:00
|
|
|
"tempfile",
|
2024-02-08 02:26:18 +01:00
|
|
|
"terminal_size",
|
2021-11-02 04:08:05 +01:00
|
|
|
"titlecase",
|
2024-08-24 00:35:42 +02:00
|
|
|
"toml 0.8.19",
|
2021-01-12 05:59:53 +01:00
|
|
|
"trash",
|
|
|
|
"umask",
|
|
|
|
"unicode-segmentation",
|
2024-03-26 06:57:55 +01:00
|
|
|
"unicode-width",
|
2023-03-05 23:48:13 +01:00
|
|
|
"ureq",
|
2021-01-12 05:59:53 +01:00
|
|
|
"url",
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
"uu_cp",
|
2023-10-30 13:59:48 +01:00
|
|
|
"uu_mkdir",
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
"uu_mktemp",
|
Initial implementation of umv from uutils (#10822)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi,
This closes #10446 , wherein we start implementing `mv` from `uutils`.
There are some stuff to iron out, particularly
* Decide on behavior from ignored tests
* Wait for release/PRs to be approved on `uutils` side, but still can be
tested for now. See [PR
approved](https://github.com/uutils/coreutils/pull/5428), and
[pending](https://github.com/uutils/coreutils/pull/5429).
* `--progress` does not seem to work on `uutils mv` either and have not
checked whether certain `X` size has to be achieved in order for it to
appear, thus something to investigate as well, but thought it wasnt
important enough to not make the PR.
See [issue
comment](https://github.com/nushell/nushell/issues/10446#issuecomment-1764497988),
on the possible strategy to follow, mainly copy what we did with `ucp`.
I still left some comments on purpose particularly on tests, which of
course would be removed before something is decided here. :) @fdncred
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Don't forget to add tests that cover your changes.
Make sure you've run and fixed any issues with these commands:
- [X] `cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used`
to check that you're using the standard code style
- [X] `cargo test --workspace` to check that all tests pass (on Windows
make sure to [enable developer
mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging))
- [X] `cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
<!--
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
2024-01-18 17:20:57 +01:00
|
|
|
"uu_mv",
|
2024-03-25 22:51:50 +01:00
|
|
|
"uu_uname",
|
implement whoami using uutils (#10488)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
Implements `whoami` using the `whoami` command from uutils as backend.
This is a draft because it depends on
https://github.com/uutils/coreutils/pull/5310 and a new release of
uutils needs to be made (and the paths in `Cargo.toml` should be
updated). At this point, this is more of a proof of concept 😄
Additionally, this implements a (simple and naive) conversion from the
uutils `UResult` to the nushell `ShellError`, which should help with the
integration of other utils, too. I can split that off into a separate PR
if desired.
I put this command in the "platform" category. If it should go somewhere
else, let me know!
The tests will currently fail, because I've used a local path to uutils.
Once the PR on the uutils side is merged, I'll update it to a git path
so that it can be tested and runs on more machines than just mine.
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
New `whoami` command. This might break some users who expect the system
`whoami` command. However, the result of this new command should be very
close, just with a nicer help message, at least for Linux users. The
default `whoami` on Windows is quite different from this implementation:
https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/whoami
# Tests + Formatting
<!--
Don't forget to add tests that cover your changes.
Make sure you've run and fixed any issues with these commands:
- `cargo fmt --all -- --check` to check standard code formatting (`cargo
fmt --all` applies these changes)
- `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- `cargo test --workspace` to check that all tests pass (on Windows make
sure to [enable developer
mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging))
- `cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-10-25 16:53:52 +02:00
|
|
|
"uu_whoami",
|
2024-06-11 20:44:13 +02:00
|
|
|
"uucore",
|
2021-01-12 05:59:53 +01:00
|
|
|
"uuid",
|
2024-01-18 19:58:35 +01:00
|
|
|
"v_htmlescape",
|
2022-04-04 22:45:01 +02:00
|
|
|
"wax",
|
2024-01-22 16:28:47 +01:00
|
|
|
"which",
|
2024-10-17 19:12:45 +02:00
|
|
|
"windows 0.56.0",
|
2023-03-05 23:48:13 +01:00
|
|
|
"winreg",
|
2021-01-11 19:50:53 +01:00
|
|
|
]
|
|
|
|
|
Add derive macros for `FromValue` and `IntoValue` to ease the use of `Value`s in Rust code (#13031)
# Description
After discussing with @sholderbach the cumbersome usage of
`nu_protocol::Value` in Rust, I created a derive macro to simplify it.
I’ve added a new crate called `nu-derive-value`, which includes two
macros, `IntoValue` and `FromValue`. These are re-exported in
`nu-protocol` and should be encouraged to be used via that re-export.
The macros ensure that all types can easily convert from and into
`Value`. For example, as a plugin author, you can define your plugin
configuration using a Rust struct and easily convert it using
`FromValue`. This makes plugin configuration less of a hassle.
I introduced the `IntoValue` trait for a standardized approach to
converting values into `Value` (and a fallible variant `TryIntoValue`).
This trait could potentially replace existing `into_value` methods.
Along with this, I've implemented `FromValue` for several standard types
and refined other implementations to use blanket implementations where
applicable.
I made these design choices with input from @devyn.
There are more improvements possible, but this is a solid start and the
PR is already quite substantial.
# User-Facing Changes
For `nu-protocol` users, these changes simplify the handling of
`Value`s. There are no changes for end-users of nushell itself.
# Tests + Formatting
Documenting the macros itself is not really possible, as they cannot
really reference any other types since they are the root of the
dependency graph. The standard library has the same problem
([std::Debug](https://doc.rust-lang.org/stable/std/fmt/derive.Debug.html)).
However I documented the `FromValue` and `IntoValue` traits completely.
For testing, I made of use `proc-macro2` in the derive macro code. This
would allow testing the generated source code. Instead I just tested
that the derived functionality is correct. This is done in
`nu_protocol::value::test_derive`, as a consumer of `nu-derive-value`
needs to do the testing of the macro usage. I think that these tests
should provide a stable baseline so that users can be sure that the impl
works.
# After Submitting
With these macros available, we can probably use them in some examples
for plugins to showcase the use of them.
2024-06-18 01:05:11 +02:00
|
|
|
[[package]]
|
|
|
|
name = "nu-derive-value"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
Add derive macros for `FromValue` and `IntoValue` to ease the use of `Value`s in Rust code (#13031)
# Description
After discussing with @sholderbach the cumbersome usage of
`nu_protocol::Value` in Rust, I created a derive macro to simplify it.
I’ve added a new crate called `nu-derive-value`, which includes two
macros, `IntoValue` and `FromValue`. These are re-exported in
`nu-protocol` and should be encouraged to be used via that re-export.
The macros ensure that all types can easily convert from and into
`Value`. For example, as a plugin author, you can define your plugin
configuration using a Rust struct and easily convert it using
`FromValue`. This makes plugin configuration less of a hassle.
I introduced the `IntoValue` trait for a standardized approach to
converting values into `Value` (and a fallible variant `TryIntoValue`).
This trait could potentially replace existing `into_value` methods.
Along with this, I've implemented `FromValue` for several standard types
and refined other implementations to use blanket implementations where
applicable.
I made these design choices with input from @devyn.
There are more improvements possible, but this is a solid start and the
PR is already quite substantial.
# User-Facing Changes
For `nu-protocol` users, these changes simplify the handling of
`Value`s. There are no changes for end-users of nushell itself.
# Tests + Formatting
Documenting the macros itself is not really possible, as they cannot
really reference any other types since they are the root of the
dependency graph. The standard library has the same problem
([std::Debug](https://doc.rust-lang.org/stable/std/fmt/derive.Debug.html)).
However I documented the `FromValue` and `IntoValue` traits completely.
For testing, I made of use `proc-macro2` in the derive macro code. This
would allow testing the generated source code. Instead I just tested
that the derived functionality is correct. This is done in
`nu_protocol::value::test_derive`, as a consumer of `nu-derive-value`
needs to do the testing of the macro usage. I think that these tests
should provide a stable baseline so that users can be sure that the impl
works.
# After Submitting
With these macros available, we can probably use them in some examples
for plugins to showcase the use of them.
2024-06-18 01:05:11 +02:00
|
|
|
dependencies = [
|
2024-08-28 15:02:25 +02:00
|
|
|
"heck",
|
Add derive macros for `FromValue` and `IntoValue` to ease the use of `Value`s in Rust code (#13031)
# Description
After discussing with @sholderbach the cumbersome usage of
`nu_protocol::Value` in Rust, I created a derive macro to simplify it.
I’ve added a new crate called `nu-derive-value`, which includes two
macros, `IntoValue` and `FromValue`. These are re-exported in
`nu-protocol` and should be encouraged to be used via that re-export.
The macros ensure that all types can easily convert from and into
`Value`. For example, as a plugin author, you can define your plugin
configuration using a Rust struct and easily convert it using
`FromValue`. This makes plugin configuration less of a hassle.
I introduced the `IntoValue` trait for a standardized approach to
converting values into `Value` (and a fallible variant `TryIntoValue`).
This trait could potentially replace existing `into_value` methods.
Along with this, I've implemented `FromValue` for several standard types
and refined other implementations to use blanket implementations where
applicable.
I made these design choices with input from @devyn.
There are more improvements possible, but this is a solid start and the
PR is already quite substantial.
# User-Facing Changes
For `nu-protocol` users, these changes simplify the handling of
`Value`s. There are no changes for end-users of nushell itself.
# Tests + Formatting
Documenting the macros itself is not really possible, as they cannot
really reference any other types since they are the root of the
dependency graph. The standard library has the same problem
([std::Debug](https://doc.rust-lang.org/stable/std/fmt/derive.Debug.html)).
However I documented the `FromValue` and `IntoValue` traits completely.
For testing, I made of use `proc-macro2` in the derive macro code. This
would allow testing the generated source code. Instead I just tested
that the derived functionality is correct. This is done in
`nu_protocol::value::test_derive`, as a consumer of `nu-derive-value`
needs to do the testing of the macro usage. I think that these tests
should provide a stable baseline so that users can be sure that the impl
works.
# After Submitting
With these macros available, we can probably use them in some examples
for plugins to showcase the use of them.
2024-06-18 01:05:11 +02:00
|
|
|
"proc-macro-error",
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2024-08-24 00:35:42 +02:00
|
|
|
"syn 2.0.75",
|
Add derive macros for `FromValue` and `IntoValue` to ease the use of `Value`s in Rust code (#13031)
# Description
After discussing with @sholderbach the cumbersome usage of
`nu_protocol::Value` in Rust, I created a derive macro to simplify it.
I’ve added a new crate called `nu-derive-value`, which includes two
macros, `IntoValue` and `FromValue`. These are re-exported in
`nu-protocol` and should be encouraged to be used via that re-export.
The macros ensure that all types can easily convert from and into
`Value`. For example, as a plugin author, you can define your plugin
configuration using a Rust struct and easily convert it using
`FromValue`. This makes plugin configuration less of a hassle.
I introduced the `IntoValue` trait for a standardized approach to
converting values into `Value` (and a fallible variant `TryIntoValue`).
This trait could potentially replace existing `into_value` methods.
Along with this, I've implemented `FromValue` for several standard types
and refined other implementations to use blanket implementations where
applicable.
I made these design choices with input from @devyn.
There are more improvements possible, but this is a solid start and the
PR is already quite substantial.
# User-Facing Changes
For `nu-protocol` users, these changes simplify the handling of
`Value`s. There are no changes for end-users of nushell itself.
# Tests + Formatting
Documenting the macros itself is not really possible, as they cannot
really reference any other types since they are the root of the
dependency graph. The standard library has the same problem
([std::Debug](https://doc.rust-lang.org/stable/std/fmt/derive.Debug.html)).
However I documented the `FromValue` and `IntoValue` traits completely.
For testing, I made of use `proc-macro2` in the derive macro code. This
would allow testing the generated source code. Instead I just tested
that the derived functionality is correct. This is done in
`nu_protocol::value::test_derive`, as a consumer of `nu-derive-value`
needs to do the testing of the macro usage. I think that these tests
should provide a stable baseline so that users can be sure that the impl
works.
# After Submitting
With these macros available, we can probably use them in some examples
for plugins to showcase the use of them.
2024-06-18 01:05:11 +02:00
|
|
|
]
|
|
|
|
|
2021-01-10 03:50:49 +01:00
|
|
|
[[package]]
|
|
|
|
name = "nu-engine"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
2021-01-10 03:50:49 +01:00
|
|
|
dependencies = [
|
Internal representation (IR) compiler and evaluator (#13330)
# Description
This PR adds an internal representation language to Nushell, offering an
alternative evaluator based on simple instructions, stream-containing
registers, and indexed control flow. The number of registers required is
determined statically at compile-time, and the fixed size required is
allocated upon entering the block.
Each instruction is associated with a span, which makes going backwards
from IR instructions to source code very easy.
Motivations for IR:
1. **Performance.** By simplifying the evaluation path and making it
more cache-friendly and branch predictor-friendly, code that does a lot
of computation in Nushell itself can be sped up a decent bit. Because
the IR is fairly easy to reason about, we can also implement
optimization passes in the future to eliminate and simplify code.
2. **Correctness.** The instructions mostly have very simple and
easily-specified behavior, so hopefully engine changes are a little bit
easier to reason about, and they can be specified in a more formal way
at some point. I have made an effort to document each of the
instructions in the docs for the enum itself in a reasonably specific
way. Some of the errors that would have happened during evaluation
before are now moved to the compilation step instead, because they don't
make sense to check during evaluation.
3. **As an intermediate target.** This is a good step for us to bring
the [`new-nu-parser`](https://github.com/nushell/new-nu-parser) in at
some point, as code generated from new AST can be directly compared to
code generated from old AST. If the IR code is functionally equivalent,
it will behave the exact same way.
4. **Debugging.** With a little bit more work, we can probably give
control over advancing the virtual machine that `IrBlock`s run on to
some sort of external driver, making things like breakpoints and single
stepping possible. Tools like `view ir` and [`explore
ir`](https://github.com/devyn/nu_plugin_explore_ir) make it easier than
before to see what exactly is going on with your Nushell code.
The goal is to eventually replace the AST evaluator entirely, once we're
sure it's working just as well. You can help dogfood this by running
Nushell with `$env.NU_USE_IR` set to some value. The environment
variable is checked when Nushell starts, so config runs with IR, or it
can also be set on a line at the REPL to change it dynamically. It is
also checked when running `do` in case within a script you want to just
run a specific piece of code with or without IR.
# Example
```nushell
view ir { |data|
mut sum = 0
for n in $data {
$sum += $n
}
$sum
}
```
```gas
# 3 registers, 19 instructions, 0 bytes of data
0: load-literal %0, int(0)
1: store-variable var 904, %0 # let
2: drain %0
3: drop %0
4: load-variable %1, var 903
5: iterate %0, %1, end 15 # for, label(1), from(14:)
6: store-variable var 905, %0
7: load-variable %0, var 904
8: load-variable %2, var 905
9: binary-op %0, Math(Plus), %2
10: span %0
11: store-variable var 904, %0
12: load-literal %0, nothing
13: drain %0
14: jump 5
15: drop %0 # label(0), from(5:)
16: drain %0
17: load-variable %0, var 904
18: return %0
```
# Benchmarks
All benchmarks run on a base model Mac Mini M1.
## Iterative Fibonacci sequence
This is about as best case as possible, making use of the much faster
control flow. Most code will not experience a speed improvement nearly
this large.
```nushell
def fib [n: int] {
mut a = 0
mut b = 1
for _ in 2..=$n {
let c = $a + $b
$a = $b
$b = $c
}
$b
}
use std bench
bench { 0..50 | each { |n| fib $n } }
```
IR disabled:
```
╭───────┬─────────────────╮
│ mean │ 1ms 924µs 665ns │
│ min │ 1ms 700µs 83ns │
│ max │ 3ms 450µs 125ns │
│ std │ 395µs 759ns │
│ times │ [list 50 items] │
╰───────┴─────────────────╯
```
IR enabled:
```
╭───────┬─────────────────╮
│ mean │ 452µs 820ns │
│ min │ 427µs 417ns │
│ max │ 540µs 167ns │
│ std │ 17µs 158ns │
│ times │ [list 50 items] │
╰───────┴─────────────────╯
```
![explore ir
view](https://github.com/nushell/nushell/assets/10729/d7bccc03-5222-461c-9200-0dce71b83b83)
##
[gradient_benchmark_no_check.nu](https://github.com/nushell/nu_scripts/blob/main/benchmarks/gradient_benchmark_no_check.nu)
IR disabled:
```
╭───┬──────────────────╮
│ 0 │ 27ms 929µs 958ns │
│ 1 │ 21ms 153µs 459ns │
│ 2 │ 18ms 639µs 666ns │
│ 3 │ 19ms 554µs 583ns │
│ 4 │ 13ms 383µs 375ns │
│ 5 │ 11ms 328µs 208ns │
│ 6 │ 5ms 659µs 542ns │
╰───┴──────────────────╯
```
IR enabled:
```
╭───┬──────────────────╮
│ 0 │ 22ms 662µs │
│ 1 │ 17ms 221µs 792ns │
│ 2 │ 14ms 786µs 708ns │
│ 3 │ 13ms 876µs 834ns │
│ 4 │ 13ms 52µs 875ns │
│ 5 │ 11ms 269µs 666ns │
│ 6 │ 6ms 942µs 500ns │
╰───┴──────────────────╯
```
##
[random-bytes.nu](https://github.com/nushell/nu_scripts/blob/main/benchmarks/random-bytes.nu)
I got pretty random results out of this benchmark so I decided not to
include it. Not clear why.
# User-Facing Changes
- IR compilation errors may appear even if the user isn't evaluating
with IR.
- IR evaluation can be enabled by setting the `NU_USE_IR` environment
variable to any value.
- New command `view ir` pretty-prints the IR for a block, and `view ir
--json` can be piped into an external tool like [`explore
ir`](https://github.com/devyn/nu_plugin_explore_ir).
# Tests + Formatting
All tests are passing with `NU_USE_IR=1`, and I've added some more eval
tests to compare the results for some very core operations. I will
probably want to add some more so we don't have to always check
`NU_USE_IR=1 toolkit test --workspace` on a regular basis.
# After Submitting
- [ ] release notes
- [ ] further documentation of instructions?
- [ ] post-release: publish `nu_plugin_explore_ir`
2024-07-11 02:33:59 +02:00
|
|
|
"log",
|
2022-03-13 19:30:27 +01:00
|
|
|
"nu-glob",
|
2021-06-20 01:07:26 +02:00
|
|
|
"nu-path",
|
2021-01-10 03:50:49 +01:00
|
|
|
"nu-protocol",
|
2022-05-17 20:28:18 +02:00
|
|
|
"nu-utils",
|
Fix overflow table display in command documentation (#13526)
# Description
Check and set table width beforehand.
Closes #13520.
# User-Facing Changes
Before:
```plain
❯ help net cmd1
network
Usage:
> net cmd1
Flags:
-h, --help - Display the help message for this command
Input/output types:
╭───┬─────────┬─────────────────────────────────────────────────────────╮
│ # │ input │ output │
├───┼─────────┼─────────────────────────────────────────────────────────┤
│ 0 │ nothing │ table<name: string, description: string, mac: string, │
│ │ │ ips: table<type: string, addr: string, prefix: int>,
│
│ │ │ flags: record<is_up: bool, is_broadcast: bool,
│
│ │ │ is_loopback: bool, is_point_to_point: bool,
│
│ │ │ is_multicast: bool>>
│
╰───┴─────────┴─────────────────────────────────────────────────────────╯
```
After:
```plain
❯ help net cmd1
network
Usage:
> net cmd1
Flags:
-h, --help - Display the help message for this command
Input/output types:
╭───┬─────────┬───────────────────────────────────────────────────────╮
│ # │ input │ output │
├───┼─────────┼───────────────────────────────────────────────────────┤
│ 0 │ nothing │ table<name: string, description: string, mac: string, │
│ │ │ ips: table<type: string, addr: string, prefix: int>, │
│ │ │ flags: record<is_up: bool, is_broadcast: bool, │
│ │ │ is_loopback: bool, is_point_to_point: bool, │
│ │ │ is_multicast: bool>> │
╰───┴─────────┴───────────────────────────────────────────────────────╯
```
# Tests + Formatting
- [x] `cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [x] `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used`
to check that you're using the standard code style
- [x] `cargo test --workspace` to check that all tests pass (on Windows
make sure to [enable developer
mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging))
- [x] `cargo run -- -c "use toolkit.nu; toolkit test stdlib"` to run the
tests for the standard library
# After Submitting
- [x] Bug fix, no doc update.
2024-08-03 10:55:35 +02:00
|
|
|
"terminal_size",
|
Extract core stuff into own crates
This commit extracts five new crates:
- nu-source, which contains the core source-code handling logic in Nu,
including Text, Span, and also the pretty.rs-based debug logic
- nu-parser, which is the parser and expander logic
- nu-protocol, which is the bulk of the types and basic conveniences
used by plugins
- nu-errors, which contains ShellError, ParseError and error handling
conveniences
- nu-textview, which is the textview plugin extracted into a crate
One of the major consequences of this refactor is that it's no longer
possible to `impl X for Spanned<Y>` outside of the `nu-source` crate, so
a lot of types became more concrete (Value became a concrete type
instead of Spanned<Value>, for example).
This also turned a number of inherent methods in the main nu crate into
plain functions (impl Value {} became a bunch of functions in the
`value` namespace in `crate::data::value`).
2019-11-26 03:30:48 +01:00
|
|
|
]
|
|
|
|
|
[MVP][WIP] `less` like pager (#6984)
Run it as `explore`.
#### example
```nu
ls | explore
```
Configuration points in `config.nu` file.
```
# A 'explore' utility config
explore_config: {
highlight: { bg: 'yellow', fg: 'black' }
status_bar: { bg: '#C4C9C6', fg: '#1D1F21' }
command_bar: { fg: '#C4C9C6' }
split_line: '#404040'
cursor: true
# selected_column: 'blue'
# selected_row: { fg: 'yellow', bg: '#C1C2A3' }
# selected_cell: { fg: 'white', bg: '#777777' }
# line_shift: false,
# line_index: false,
# line_head_top: false,
# line_head_bottom: false,
}
```
You can start without a pipeline and type `explore` and it'll give you a
few tips.
![image](https://user-images.githubusercontent.com/343840/205088971-a8c0262f-f222-4641-b13a-027fbd4f5e1a.png)
If you type `:help` you an see the help screen with some information on
what tui keybindings are available.
![image](https://user-images.githubusercontent.com/343840/205089461-c4c54217-7ec4-4fa0-96c0-643d68dc0062.png)
From the `:help` screen you can now hit `i` and that puts you in
`cursor` aka `inspection` mode and you can move the cursor left right up
down and it you put it on an area such as `[table 5 rows]` and hit the
enter key, you'll see something like this, which shows all the `:`
commands. If you hit `esc` it will take you to the previous screen.
![image](https://user-images.githubusercontent.com/343840/205090155-3558a14b-87b7-4072-8dfb-dc8cc2ef4943.png)
If you then type `:try` you'll get this type of window where you can
type in the top portion and see results in the bottom.
![image](https://user-images.githubusercontent.com/343840/205089185-3c065551-0792-43d6-a13c-a52762856209.png)
The `:nu` command is interesting because you can type pipelines like
`:nu ls | sort-by type size` or another pipeline of your choosing such
as `:nu sys` and that will show the table that looks like this, which
we're calling "table mode".
![image](https://user-images.githubusercontent.com/343840/205090809-e686ff0f-6d0b-4347-8ed0-8c59adfbd741.png)
If you hit the `t` key it will now transpose the view to look like this.
![image](https://user-images.githubusercontent.com/343840/205090948-a834d7f2-1713-4dfe-92fe-5432f287df3d.png)
In table mode or transposed table mode you can use the `i` key to
inspect any collapsed field like `{record 8 fields}`, `[table 16 rows]`,
`[list x]`, etc.
One of the original benefits was that when you're in a view that has a
lot of columns, `explore` gives you the ability to scroll left, right,
up, and down.
`explore` is also smart enough to know when you're in table mode versus
preview mode. If you do `open Cargo.toml | explore` you get this.
![image](https://user-images.githubusercontent.com/343840/205091822-cac79130-3a52-4ca8-9210-eba5be30ed58.png)
If you type `open --raw Cargo.toml | explore` you get this where you can
scroll left, right, up, down. This is called preview mode.
![image](https://user-images.githubusercontent.com/343840/205091990-69455191-ab78-4fea-a961-feafafc16d70.png)
When you're in table mode, you can also type `:preview`. So, with `open
--raw Cargo.toml | explore`, if you type `:preview`, it will look like
this.
![image](https://user-images.githubusercontent.com/343840/205092569-436aa55a-0474-48d5-ab71-baddb1f43027.png)
Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2022-12-01 16:32:10 +01:00
|
|
|
[[package]]
|
|
|
|
name = "nu-explore"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
[MVP][WIP] `less` like pager (#6984)
Run it as `explore`.
#### example
```nu
ls | explore
```
Configuration points in `config.nu` file.
```
# A 'explore' utility config
explore_config: {
highlight: { bg: 'yellow', fg: 'black' }
status_bar: { bg: '#C4C9C6', fg: '#1D1F21' }
command_bar: { fg: '#C4C9C6' }
split_line: '#404040'
cursor: true
# selected_column: 'blue'
# selected_row: { fg: 'yellow', bg: '#C1C2A3' }
# selected_cell: { fg: 'white', bg: '#777777' }
# line_shift: false,
# line_index: false,
# line_head_top: false,
# line_head_bottom: false,
}
```
You can start without a pipeline and type `explore` and it'll give you a
few tips.
![image](https://user-images.githubusercontent.com/343840/205088971-a8c0262f-f222-4641-b13a-027fbd4f5e1a.png)
If you type `:help` you an see the help screen with some information on
what tui keybindings are available.
![image](https://user-images.githubusercontent.com/343840/205089461-c4c54217-7ec4-4fa0-96c0-643d68dc0062.png)
From the `:help` screen you can now hit `i` and that puts you in
`cursor` aka `inspection` mode and you can move the cursor left right up
down and it you put it on an area such as `[table 5 rows]` and hit the
enter key, you'll see something like this, which shows all the `:`
commands. If you hit `esc` it will take you to the previous screen.
![image](https://user-images.githubusercontent.com/343840/205090155-3558a14b-87b7-4072-8dfb-dc8cc2ef4943.png)
If you then type `:try` you'll get this type of window where you can
type in the top portion and see results in the bottom.
![image](https://user-images.githubusercontent.com/343840/205089185-3c065551-0792-43d6-a13c-a52762856209.png)
The `:nu` command is interesting because you can type pipelines like
`:nu ls | sort-by type size` or another pipeline of your choosing such
as `:nu sys` and that will show the table that looks like this, which
we're calling "table mode".
![image](https://user-images.githubusercontent.com/343840/205090809-e686ff0f-6d0b-4347-8ed0-8c59adfbd741.png)
If you hit the `t` key it will now transpose the view to look like this.
![image](https://user-images.githubusercontent.com/343840/205090948-a834d7f2-1713-4dfe-92fe-5432f287df3d.png)
In table mode or transposed table mode you can use the `i` key to
inspect any collapsed field like `{record 8 fields}`, `[table 16 rows]`,
`[list x]`, etc.
One of the original benefits was that when you're in a view that has a
lot of columns, `explore` gives you the ability to scroll left, right,
up, and down.
`explore` is also smart enough to know when you're in table mode versus
preview mode. If you do `open Cargo.toml | explore` you get this.
![image](https://user-images.githubusercontent.com/343840/205091822-cac79130-3a52-4ca8-9210-eba5be30ed58.png)
If you type `open --raw Cargo.toml | explore` you get this where you can
scroll left, right, up, down. This is called preview mode.
![image](https://user-images.githubusercontent.com/343840/205091990-69455191-ab78-4fea-a961-feafafc16d70.png)
When you're in table mode, you can also type `:preview`. So, with `open
--raw Cargo.toml | explore`, if you type `:preview`, it will look like
this.
![image](https://user-images.githubusercontent.com/343840/205092569-436aa55a-0474-48d5-ab71-baddb1f43027.png)
Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2022-12-01 16:32:10 +01:00
|
|
|
dependencies = [
|
2023-07-10 09:24:08 +02:00
|
|
|
"ansi-str",
|
`explore`: adopt `anyhow`, support `CustomValue`, remove help system (#12692)
This PR:
1. Adds basic support for `CustomValue` to `explore`. Previously `open
foo.db | explore` didn't really work, now we "materialize" the whole
database to a `Value` before loading it
2. Adopts `anyhow` for error handling in `explore`. Previously we were
kind of rolling our own version of `anyhow` by shoving all errors into a
`std::io::Error`; I think this is much nicer. This was necessary because
as part of 1), collecting input is now fallible...
3. Removes a lot of `explore`'s fancy command help system.
- Previously each command (`:help`, `:try`, etc.) had a sophisticated
help system with examples etc... but this was not very visible to users.
You had to know to run `:help :try` or view a list of commands with
`:help :`
- As discussed previously, we eventually want to move to a less modal
approach for `explore`, without the Vim-like commands. And so I don't
think it's worth keeping this command help system around (it's
intertwined with other stuff, and making these changes would have been
harder if keeping it).
4. Rename the `--reverse` flag to `--tail`. The flag scrolls to the end
of the data, which IMO is described better by "tail"
5. Does some renaming+commenting to clear up things I found difficult to
understand when navigating the `explore` code
I initially thought 1) would be just a few lines, and then this PR blew
up into much more extensive changes 😅
## Before
The whole database was being displayed as a single Nuon/JSON line 🤔
![image](https://github.com/nushell/nushell/assets/26268125/6383f43b-fdff-48b4-9604-398438ad1499)
## After
The database gets displayed like a record
![image](https://github.com/nushell/nushell/assets/26268125/2f00ed7b-a3c4-47f4-a08c-98d07efc7bb4)
## Future work
It is sort of annoying that we have to load a whole SQLite database into
memory to make this work; it will be impractical for large databases.
I'd like to explore improvements to `CustomValue` that can make this
work more efficiently.
2024-05-02 00:34:37 +02:00
|
|
|
"anyhow",
|
2024-09-06 16:57:45 +02:00
|
|
|
"crossterm 0.28.1",
|
`explore`: adopt `anyhow`, support `CustomValue`, remove help system (#12692)
This PR:
1. Adds basic support for `CustomValue` to `explore`. Previously `open
foo.db | explore` didn't really work, now we "materialize" the whole
database to a `Value` before loading it
2. Adopts `anyhow` for error handling in `explore`. Previously we were
kind of rolling our own version of `anyhow` by shoving all errors into a
`std::io::Error`; I think this is much nicer. This was necessary because
as part of 1), collecting input is now fallible...
3. Removes a lot of `explore`'s fancy command help system.
- Previously each command (`:help`, `:try`, etc.) had a sophisticated
help system with examples etc... but this was not very visible to users.
You had to know to run `:help :try` or view a list of commands with
`:help :`
- As discussed previously, we eventually want to move to a less modal
approach for `explore`, without the Vim-like commands. And so I don't
think it's worth keeping this command help system around (it's
intertwined with other stuff, and making these changes would have been
harder if keeping it).
4. Rename the `--reverse` flag to `--tail`. The flag scrolls to the end
of the data, which IMO is described better by "tail"
5. Does some renaming+commenting to clear up things I found difficult to
understand when navigating the `explore` code
I initially thought 1) would be just a few lines, and then this PR blew
up into much more extensive changes 😅
## Before
The whole database was being displayed as a single Nuon/JSON line 🤔
![image](https://github.com/nushell/nushell/assets/26268125/6383f43b-fdff-48b4-9604-398438ad1499)
## After
The database gets displayed like a record
![image](https://github.com/nushell/nushell/assets/26268125/2f00ed7b-a3c4-47f4-a08c-98d07efc7bb4)
## Future work
It is sort of annoying that we have to load a whole SQLite database into
memory to make this work; it will be impractical for large databases.
I'd like to explore improvements to `CustomValue` that can make this
work more efficiently.
2024-05-02 00:34:37 +02:00
|
|
|
"log",
|
2022-12-18 15:43:15 +01:00
|
|
|
"lscolors",
|
2023-07-24 13:16:18 +02:00
|
|
|
"nu-ansi-term",
|
[MVP][WIP] `less` like pager (#6984)
Run it as `explore`.
#### example
```nu
ls | explore
```
Configuration points in `config.nu` file.
```
# A 'explore' utility config
explore_config: {
highlight: { bg: 'yellow', fg: 'black' }
status_bar: { bg: '#C4C9C6', fg: '#1D1F21' }
command_bar: { fg: '#C4C9C6' }
split_line: '#404040'
cursor: true
# selected_column: 'blue'
# selected_row: { fg: 'yellow', bg: '#C1C2A3' }
# selected_cell: { fg: 'white', bg: '#777777' }
# line_shift: false,
# line_index: false,
# line_head_top: false,
# line_head_bottom: false,
}
```
You can start without a pipeline and type `explore` and it'll give you a
few tips.
![image](https://user-images.githubusercontent.com/343840/205088971-a8c0262f-f222-4641-b13a-027fbd4f5e1a.png)
If you type `:help` you an see the help screen with some information on
what tui keybindings are available.
![image](https://user-images.githubusercontent.com/343840/205089461-c4c54217-7ec4-4fa0-96c0-643d68dc0062.png)
From the `:help` screen you can now hit `i` and that puts you in
`cursor` aka `inspection` mode and you can move the cursor left right up
down and it you put it on an area such as `[table 5 rows]` and hit the
enter key, you'll see something like this, which shows all the `:`
commands. If you hit `esc` it will take you to the previous screen.
![image](https://user-images.githubusercontent.com/343840/205090155-3558a14b-87b7-4072-8dfb-dc8cc2ef4943.png)
If you then type `:try` you'll get this type of window where you can
type in the top portion and see results in the bottom.
![image](https://user-images.githubusercontent.com/343840/205089185-3c065551-0792-43d6-a13c-a52762856209.png)
The `:nu` command is interesting because you can type pipelines like
`:nu ls | sort-by type size` or another pipeline of your choosing such
as `:nu sys` and that will show the table that looks like this, which
we're calling "table mode".
![image](https://user-images.githubusercontent.com/343840/205090809-e686ff0f-6d0b-4347-8ed0-8c59adfbd741.png)
If you hit the `t` key it will now transpose the view to look like this.
![image](https://user-images.githubusercontent.com/343840/205090948-a834d7f2-1713-4dfe-92fe-5432f287df3d.png)
In table mode or transposed table mode you can use the `i` key to
inspect any collapsed field like `{record 8 fields}`, `[table 16 rows]`,
`[list x]`, etc.
One of the original benefits was that when you're in a view that has a
lot of columns, `explore` gives you the ability to scroll left, right,
up, and down.
`explore` is also smart enough to know when you're in table mode versus
preview mode. If you do `open Cargo.toml | explore` you get this.
![image](https://user-images.githubusercontent.com/343840/205091822-cac79130-3a52-4ca8-9210-eba5be30ed58.png)
If you type `open --raw Cargo.toml | explore` you get this where you can
scroll left, right, up, down. This is called preview mode.
![image](https://user-images.githubusercontent.com/343840/205091990-69455191-ab78-4fea-a961-feafafc16d70.png)
When you're in table mode, you can also type `:preview`. So, with `open
--raw Cargo.toml | explore`, if you type `:preview`, it will look like
this.
![image](https://user-images.githubusercontent.com/343840/205092569-436aa55a-0474-48d5-ab71-baddb1f43027.png)
Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2022-12-01 16:32:10 +01:00
|
|
|
"nu-color-config",
|
|
|
|
"nu-engine",
|
2022-12-16 16:47:07 +01:00
|
|
|
"nu-json",
|
[MVP][WIP] `less` like pager (#6984)
Run it as `explore`.
#### example
```nu
ls | explore
```
Configuration points in `config.nu` file.
```
# A 'explore' utility config
explore_config: {
highlight: { bg: 'yellow', fg: 'black' }
status_bar: { bg: '#C4C9C6', fg: '#1D1F21' }
command_bar: { fg: '#C4C9C6' }
split_line: '#404040'
cursor: true
# selected_column: 'blue'
# selected_row: { fg: 'yellow', bg: '#C1C2A3' }
# selected_cell: { fg: 'white', bg: '#777777' }
# line_shift: false,
# line_index: false,
# line_head_top: false,
# line_head_bottom: false,
}
```
You can start without a pipeline and type `explore` and it'll give you a
few tips.
![image](https://user-images.githubusercontent.com/343840/205088971-a8c0262f-f222-4641-b13a-027fbd4f5e1a.png)
If you type `:help` you an see the help screen with some information on
what tui keybindings are available.
![image](https://user-images.githubusercontent.com/343840/205089461-c4c54217-7ec4-4fa0-96c0-643d68dc0062.png)
From the `:help` screen you can now hit `i` and that puts you in
`cursor` aka `inspection` mode and you can move the cursor left right up
down and it you put it on an area such as `[table 5 rows]` and hit the
enter key, you'll see something like this, which shows all the `:`
commands. If you hit `esc` it will take you to the previous screen.
![image](https://user-images.githubusercontent.com/343840/205090155-3558a14b-87b7-4072-8dfb-dc8cc2ef4943.png)
If you then type `:try` you'll get this type of window where you can
type in the top portion and see results in the bottom.
![image](https://user-images.githubusercontent.com/343840/205089185-3c065551-0792-43d6-a13c-a52762856209.png)
The `:nu` command is interesting because you can type pipelines like
`:nu ls | sort-by type size` or another pipeline of your choosing such
as `:nu sys` and that will show the table that looks like this, which
we're calling "table mode".
![image](https://user-images.githubusercontent.com/343840/205090809-e686ff0f-6d0b-4347-8ed0-8c59adfbd741.png)
If you hit the `t` key it will now transpose the view to look like this.
![image](https://user-images.githubusercontent.com/343840/205090948-a834d7f2-1713-4dfe-92fe-5432f287df3d.png)
In table mode or transposed table mode you can use the `i` key to
inspect any collapsed field like `{record 8 fields}`, `[table 16 rows]`,
`[list x]`, etc.
One of the original benefits was that when you're in a view that has a
lot of columns, `explore` gives you the ability to scroll left, right,
up, and down.
`explore` is also smart enough to know when you're in table mode versus
preview mode. If you do `open Cargo.toml | explore` you get this.
![image](https://user-images.githubusercontent.com/343840/205091822-cac79130-3a52-4ca8-9210-eba5be30ed58.png)
If you type `open --raw Cargo.toml | explore` you get this where you can
scroll left, right, up, down. This is called preview mode.
![image](https://user-images.githubusercontent.com/343840/205091990-69455191-ab78-4fea-a961-feafafc16d70.png)
When you're in table mode, you can also type `:preview`. So, with `open
--raw Cargo.toml | explore`, if you type `:preview`, it will look like
this.
![image](https://user-images.githubusercontent.com/343840/205092569-436aa55a-0474-48d5-ab71-baddb1f43027.png)
Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2022-12-01 16:32:10 +01:00
|
|
|
"nu-parser",
|
2024-09-29 21:03:56 +02:00
|
|
|
"nu-path",
|
2024-03-22 01:02:03 +01:00
|
|
|
"nu-pretty-hex",
|
[MVP][WIP] `less` like pager (#6984)
Run it as `explore`.
#### example
```nu
ls | explore
```
Configuration points in `config.nu` file.
```
# A 'explore' utility config
explore_config: {
highlight: { bg: 'yellow', fg: 'black' }
status_bar: { bg: '#C4C9C6', fg: '#1D1F21' }
command_bar: { fg: '#C4C9C6' }
split_line: '#404040'
cursor: true
# selected_column: 'blue'
# selected_row: { fg: 'yellow', bg: '#C1C2A3' }
# selected_cell: { fg: 'white', bg: '#777777' }
# line_shift: false,
# line_index: false,
# line_head_top: false,
# line_head_bottom: false,
}
```
You can start without a pipeline and type `explore` and it'll give you a
few tips.
![image](https://user-images.githubusercontent.com/343840/205088971-a8c0262f-f222-4641-b13a-027fbd4f5e1a.png)
If you type `:help` you an see the help screen with some information on
what tui keybindings are available.
![image](https://user-images.githubusercontent.com/343840/205089461-c4c54217-7ec4-4fa0-96c0-643d68dc0062.png)
From the `:help` screen you can now hit `i` and that puts you in
`cursor` aka `inspection` mode and you can move the cursor left right up
down and it you put it on an area such as `[table 5 rows]` and hit the
enter key, you'll see something like this, which shows all the `:`
commands. If you hit `esc` it will take you to the previous screen.
![image](https://user-images.githubusercontent.com/343840/205090155-3558a14b-87b7-4072-8dfb-dc8cc2ef4943.png)
If you then type `:try` you'll get this type of window where you can
type in the top portion and see results in the bottom.
![image](https://user-images.githubusercontent.com/343840/205089185-3c065551-0792-43d6-a13c-a52762856209.png)
The `:nu` command is interesting because you can type pipelines like
`:nu ls | sort-by type size` or another pipeline of your choosing such
as `:nu sys` and that will show the table that looks like this, which
we're calling "table mode".
![image](https://user-images.githubusercontent.com/343840/205090809-e686ff0f-6d0b-4347-8ed0-8c59adfbd741.png)
If you hit the `t` key it will now transpose the view to look like this.
![image](https://user-images.githubusercontent.com/343840/205090948-a834d7f2-1713-4dfe-92fe-5432f287df3d.png)
In table mode or transposed table mode you can use the `i` key to
inspect any collapsed field like `{record 8 fields}`, `[table 16 rows]`,
`[list x]`, etc.
One of the original benefits was that when you're in a view that has a
lot of columns, `explore` gives you the ability to scroll left, right,
up, and down.
`explore` is also smart enough to know when you're in table mode versus
preview mode. If you do `open Cargo.toml | explore` you get this.
![image](https://user-images.githubusercontent.com/343840/205091822-cac79130-3a52-4ca8-9210-eba5be30ed58.png)
If you type `open --raw Cargo.toml | explore` you get this where you can
scroll left, right, up, down. This is called preview mode.
![image](https://user-images.githubusercontent.com/343840/205091990-69455191-ab78-4fea-a961-feafafc16d70.png)
When you're in table mode, you can also type `:preview`. So, with `open
--raw Cargo.toml | explore`, if you type `:preview`, it will look like
this.
![image](https://user-images.githubusercontent.com/343840/205092569-436aa55a-0474-48d5-ab71-baddb1f43027.png)
Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2022-12-01 16:32:10 +01:00
|
|
|
"nu-protocol",
|
|
|
|
"nu-table",
|
2022-12-18 15:43:15 +01:00
|
|
|
"nu-utils",
|
`explore`: adopt `anyhow`, support `CustomValue`, remove help system (#12692)
This PR:
1. Adds basic support for `CustomValue` to `explore`. Previously `open
foo.db | explore` didn't really work, now we "materialize" the whole
database to a `Value` before loading it
2. Adopts `anyhow` for error handling in `explore`. Previously we were
kind of rolling our own version of `anyhow` by shoving all errors into a
`std::io::Error`; I think this is much nicer. This was necessary because
as part of 1), collecting input is now fallible...
3. Removes a lot of `explore`'s fancy command help system.
- Previously each command (`:help`, `:try`, etc.) had a sophisticated
help system with examples etc... but this was not very visible to users.
You had to know to run `:help :try` or view a list of commands with
`:help :`
- As discussed previously, we eventually want to move to a less modal
approach for `explore`, without the Vim-like commands. And so I don't
think it's worth keeping this command help system around (it's
intertwined with other stuff, and making these changes would have been
harder if keeping it).
4. Rename the `--reverse` flag to `--tail`. The flag scrolls to the end
of the data, which IMO is described better by "tail"
5. Does some renaming+commenting to clear up things I found difficult to
understand when navigating the `explore` code
I initially thought 1) would be just a few lines, and then this PR blew
up into much more extensive changes 😅
## Before
The whole database was being displayed as a single Nuon/JSON line 🤔
![image](https://github.com/nushell/nushell/assets/26268125/6383f43b-fdff-48b4-9604-398438ad1499)
## After
The database gets displayed like a record
![image](https://github.com/nushell/nushell/assets/26268125/2f00ed7b-a3c4-47f4-a08c-98d07efc7bb4)
## Future work
It is sort of annoying that we have to load a whole SQLite database into
memory to make this work; it will be impractical for large databases.
I'd like to explore improvements to `CustomValue` that can make this
work more efficiently.
2024-05-02 00:34:37 +02:00
|
|
|
"once_cell",
|
2023-04-26 01:07:23 +02:00
|
|
|
"ratatui",
|
[MVP][WIP] `less` like pager (#6984)
Run it as `explore`.
#### example
```nu
ls | explore
```
Configuration points in `config.nu` file.
```
# A 'explore' utility config
explore_config: {
highlight: { bg: 'yellow', fg: 'black' }
status_bar: { bg: '#C4C9C6', fg: '#1D1F21' }
command_bar: { fg: '#C4C9C6' }
split_line: '#404040'
cursor: true
# selected_column: 'blue'
# selected_row: { fg: 'yellow', bg: '#C1C2A3' }
# selected_cell: { fg: 'white', bg: '#777777' }
# line_shift: false,
# line_index: false,
# line_head_top: false,
# line_head_bottom: false,
}
```
You can start without a pipeline and type `explore` and it'll give you a
few tips.
![image](https://user-images.githubusercontent.com/343840/205088971-a8c0262f-f222-4641-b13a-027fbd4f5e1a.png)
If you type `:help` you an see the help screen with some information on
what tui keybindings are available.
![image](https://user-images.githubusercontent.com/343840/205089461-c4c54217-7ec4-4fa0-96c0-643d68dc0062.png)
From the `:help` screen you can now hit `i` and that puts you in
`cursor` aka `inspection` mode and you can move the cursor left right up
down and it you put it on an area such as `[table 5 rows]` and hit the
enter key, you'll see something like this, which shows all the `:`
commands. If you hit `esc` it will take you to the previous screen.
![image](https://user-images.githubusercontent.com/343840/205090155-3558a14b-87b7-4072-8dfb-dc8cc2ef4943.png)
If you then type `:try` you'll get this type of window where you can
type in the top portion and see results in the bottom.
![image](https://user-images.githubusercontent.com/343840/205089185-3c065551-0792-43d6-a13c-a52762856209.png)
The `:nu` command is interesting because you can type pipelines like
`:nu ls | sort-by type size` or another pipeline of your choosing such
as `:nu sys` and that will show the table that looks like this, which
we're calling "table mode".
![image](https://user-images.githubusercontent.com/343840/205090809-e686ff0f-6d0b-4347-8ed0-8c59adfbd741.png)
If you hit the `t` key it will now transpose the view to look like this.
![image](https://user-images.githubusercontent.com/343840/205090948-a834d7f2-1713-4dfe-92fe-5432f287df3d.png)
In table mode or transposed table mode you can use the `i` key to
inspect any collapsed field like `{record 8 fields}`, `[table 16 rows]`,
`[list x]`, etc.
One of the original benefits was that when you're in a view that has a
lot of columns, `explore` gives you the ability to scroll left, right,
up, and down.
`explore` is also smart enough to know when you're in table mode versus
preview mode. If you do `open Cargo.toml | explore` you get this.
![image](https://user-images.githubusercontent.com/343840/205091822-cac79130-3a52-4ca8-9210-eba5be30ed58.png)
If you type `open --raw Cargo.toml | explore` you get this where you can
scroll left, right, up, down. This is called preview mode.
![image](https://user-images.githubusercontent.com/343840/205091990-69455191-ab78-4fea-a961-feafafc16d70.png)
When you're in table mode, you can also type `:preview`. So, with `open
--raw Cargo.toml | explore`, if you type `:preview`, it will look like
this.
![image](https://user-images.githubusercontent.com/343840/205092569-436aa55a-0474-48d5-ab71-baddb1f43027.png)
Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2022-12-01 16:32:10 +01:00
|
|
|
"strip-ansi-escapes",
|
2024-02-08 02:26:18 +01:00
|
|
|
"terminal_size",
|
2023-10-07 13:58:26 +02:00
|
|
|
"unicode-width",
|
[MVP][WIP] `less` like pager (#6984)
Run it as `explore`.
#### example
```nu
ls | explore
```
Configuration points in `config.nu` file.
```
# A 'explore' utility config
explore_config: {
highlight: { bg: 'yellow', fg: 'black' }
status_bar: { bg: '#C4C9C6', fg: '#1D1F21' }
command_bar: { fg: '#C4C9C6' }
split_line: '#404040'
cursor: true
# selected_column: 'blue'
# selected_row: { fg: 'yellow', bg: '#C1C2A3' }
# selected_cell: { fg: 'white', bg: '#777777' }
# line_shift: false,
# line_index: false,
# line_head_top: false,
# line_head_bottom: false,
}
```
You can start without a pipeline and type `explore` and it'll give you a
few tips.
![image](https://user-images.githubusercontent.com/343840/205088971-a8c0262f-f222-4641-b13a-027fbd4f5e1a.png)
If you type `:help` you an see the help screen with some information on
what tui keybindings are available.
![image](https://user-images.githubusercontent.com/343840/205089461-c4c54217-7ec4-4fa0-96c0-643d68dc0062.png)
From the `:help` screen you can now hit `i` and that puts you in
`cursor` aka `inspection` mode and you can move the cursor left right up
down and it you put it on an area such as `[table 5 rows]` and hit the
enter key, you'll see something like this, which shows all the `:`
commands. If you hit `esc` it will take you to the previous screen.
![image](https://user-images.githubusercontent.com/343840/205090155-3558a14b-87b7-4072-8dfb-dc8cc2ef4943.png)
If you then type `:try` you'll get this type of window where you can
type in the top portion and see results in the bottom.
![image](https://user-images.githubusercontent.com/343840/205089185-3c065551-0792-43d6-a13c-a52762856209.png)
The `:nu` command is interesting because you can type pipelines like
`:nu ls | sort-by type size` or another pipeline of your choosing such
as `:nu sys` and that will show the table that looks like this, which
we're calling "table mode".
![image](https://user-images.githubusercontent.com/343840/205090809-e686ff0f-6d0b-4347-8ed0-8c59adfbd741.png)
If you hit the `t` key it will now transpose the view to look like this.
![image](https://user-images.githubusercontent.com/343840/205090948-a834d7f2-1713-4dfe-92fe-5432f287df3d.png)
In table mode or transposed table mode you can use the `i` key to
inspect any collapsed field like `{record 8 fields}`, `[table 16 rows]`,
`[list x]`, etc.
One of the original benefits was that when you're in a view that has a
lot of columns, `explore` gives you the ability to scroll left, right,
up, and down.
`explore` is also smart enough to know when you're in table mode versus
preview mode. If you do `open Cargo.toml | explore` you get this.
![image](https://user-images.githubusercontent.com/343840/205091822-cac79130-3a52-4ca8-9210-eba5be30ed58.png)
If you type `open --raw Cargo.toml | explore` you get this where you can
scroll left, right, up, down. This is called preview mode.
![image](https://user-images.githubusercontent.com/343840/205091990-69455191-ab78-4fea-a961-feafafc16d70.png)
When you're in table mode, you can also type `:preview`. So, with `open
--raw Cargo.toml | explore`, if you type `:preview`, it will look like
this.
![image](https://user-images.githubusercontent.com/343840/205092569-436aa55a-0474-48d5-ab71-baddb1f43027.png)
Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2022-12-01 16:32:10 +01:00
|
|
|
]
|
|
|
|
|
2022-03-13 19:30:27 +01:00
|
|
|
[[package]]
|
|
|
|
name = "nu-glob"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
2022-03-13 19:30:27 +01:00
|
|
|
dependencies = [
|
|
|
|
"doc-comment",
|
|
|
|
]
|
|
|
|
|
2020-11-22 01:37:16 +01:00
|
|
|
[[package]]
|
|
|
|
name = "nu-json"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
2020-11-22 01:37:16 +01:00
|
|
|
dependencies = [
|
JSON format output keeps braces on same line (issue #13326) (#13352)
# Description
This is a minor breaking change to JSON output syntax/style of the `to
json` command.
This fixes #13326 by setting `braces_same_line` to true when creating a
new `HjsonFormatter`.
This then simply tells `HjsonFormatter` to keep the braces on the same
line when outputting which is what I expected nu's `to json` command to
do.
There are almost no changes to nushell itself, all changes are contained
within `nu-json` crate (minus any documentation updates).
Oh, almost forgot to mention, to get the tests compiling, I added
fancy_regex as a _dev_ dependency to nu-json. I could look into
eliminating that if desirable.
# User-Facing Changes
**Breaking Change**
nushell now outputs the desired result using the reproduction command
from the issue:
```
echo '{"version": "v0.4.4","notes": "blablabla","pub_date": "2024-05-04T16:05:00Z","platforms":{"windows-x86_64":{"signature": "blablabla","url": "https://blablabla"}}}' | from json | to json
```
outputs:
```
{
"version": "v0.4.4",
"notes": "blablabla",
"pub_date": "2024-05-04T16:05:00Z",
"platforms": {
"windows-x86_64": {
"signature": "blablabla",
"url": "https://blablabla"
}
}
}
```
whereas previously it would push the opening braces onto a new line:
```
{
"version": "v0.4.4",
"notes": "blablabla",
"pub_date": "2024-05-04T16:05:00Z",
"platforms":
{
"windows-x86_64":
{
"signature": "blablabla",
"url": "https://blablabla"
}
}
}
```
# Tests + Formatting
toolkit check pr mostly passes - there are regrettably some tests not
passing on my windows machine _before making any changes_ (I may look
into this as a separate issue)
I have re-enabled the [hjson
tests](https://github.com/nushell/nushell/blob/main/crates/nu-json/tests/main.rs).
This is done in the second commit 🙂
They have a crucial difference to what they were previously asserting:
* nu-json outputs in json syntax, not hjson syntax
I think this is desirable, but I'm not aware of the history of these
tests.
# After Submitting
I suspect there `to json` command examples will need updating to match,
haven't checked yet!
2024-07-14 10:19:09 +02:00
|
|
|
"fancy-regex",
|
2021-08-28 05:34:11 +02:00
|
|
|
"linked-hash-map",
|
JSON format output keeps braces on same line (issue #13326) (#13352)
# Description
This is a minor breaking change to JSON output syntax/style of the `to
json` command.
This fixes #13326 by setting `braces_same_line` to true when creating a
new `HjsonFormatter`.
This then simply tells `HjsonFormatter` to keep the braces on the same
line when outputting which is what I expected nu's `to json` command to
do.
There are almost no changes to nushell itself, all changes are contained
within `nu-json` crate (minus any documentation updates).
Oh, almost forgot to mention, to get the tests compiling, I added
fancy_regex as a _dev_ dependency to nu-json. I could look into
eliminating that if desirable.
# User-Facing Changes
**Breaking Change**
nushell now outputs the desired result using the reproduction command
from the issue:
```
echo '{"version": "v0.4.4","notes": "blablabla","pub_date": "2024-05-04T16:05:00Z","platforms":{"windows-x86_64":{"signature": "blablabla","url": "https://blablabla"}}}' | from json | to json
```
outputs:
```
{
"version": "v0.4.4",
"notes": "blablabla",
"pub_date": "2024-05-04T16:05:00Z",
"platforms": {
"windows-x86_64": {
"signature": "blablabla",
"url": "https://blablabla"
}
}
}
```
whereas previously it would push the opening braces onto a new line:
```
{
"version": "v0.4.4",
"notes": "blablabla",
"pub_date": "2024-05-04T16:05:00Z",
"platforms":
{
"windows-x86_64":
{
"signature": "blablabla",
"url": "https://blablabla"
}
}
}
```
# Tests + Formatting
toolkit check pr mostly passes - there are regrettably some tests not
passing on my windows machine _before making any changes_ (I may look
into this as a separate issue)
I have re-enabled the [hjson
tests](https://github.com/nushell/nushell/blob/main/crates/nu-json/tests/main.rs).
This is done in the second commit 🙂
They have a crucial difference to what they were previously asserting:
* nu-json outputs in json syntax, not hjson syntax
I think this is desirable, but I'm not aware of the history of these
tests.
# After Submitting
I suspect there `to json` command examples will need updating to match,
haven't checked yet!
2024-07-14 10:19:09 +02:00
|
|
|
"nu-path",
|
|
|
|
"nu-test-support",
|
2021-08-28 05:34:11 +02:00
|
|
|
"num-traits",
|
|
|
|
"serde",
|
2024-03-20 22:14:31 +01:00
|
|
|
"serde_json",
|
2020-11-22 01:37:16 +01:00
|
|
|
]
|
|
|
|
|
2023-11-02 16:18:57 +01:00
|
|
|
[[package]]
|
|
|
|
name = "nu-lsp"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
2023-11-02 16:18:57 +01:00
|
|
|
dependencies = [
|
|
|
|
"assert-json-diff",
|
2023-11-16 00:35:48 +01:00
|
|
|
"crossbeam-channel",
|
2023-11-02 16:18:57 +01:00
|
|
|
"lsp-server",
|
|
|
|
"lsp-types",
|
|
|
|
"miette",
|
|
|
|
"nu-cli",
|
|
|
|
"nu-cmd-lang",
|
|
|
|
"nu-command",
|
|
|
|
"nu-parser",
|
|
|
|
"nu-protocol",
|
|
|
|
"nu-test-support",
|
|
|
|
"reedline",
|
|
|
|
"ropey",
|
|
|
|
"serde",
|
|
|
|
"serde_json",
|
|
|
|
]
|
|
|
|
|
Extract core stuff into own crates
This commit extracts five new crates:
- nu-source, which contains the core source-code handling logic in Nu,
including Text, Span, and also the pretty.rs-based debug logic
- nu-parser, which is the parser and expander logic
- nu-protocol, which is the bulk of the types and basic conveniences
used by plugins
- nu-errors, which contains ShellError, ParseError and error handling
conveniences
- nu-textview, which is the textview plugin extracted into a crate
One of the major consequences of this refactor is that it's no longer
possible to `impl X for Spanned<Y>` outside of the `nu-source` crate, so
a lot of types became more concrete (Value became a concrete type
instead of Spanned<Value>, for example).
This also turned a number of inherent methods in the main nu crate into
plain functions (impl Value {} became a bunch of functions in the
`value` namespace in `crate::data::value`).
2019-11-26 03:30:48 +01:00
|
|
|
[[package]]
|
|
|
|
name = "nu-parser"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
2021-08-30 20:36:07 +02:00
|
|
|
dependencies = [
|
2022-09-29 00:08:38 +02:00
|
|
|
"bytesize",
|
2022-02-24 03:02:48 +01:00
|
|
|
"chrono",
|
Bump itertools from 0.12.1 to 0.13.0 (#13774)
Bumps [itertools](https://github.com/rust-itertools/itertools) from
0.12.1 to 0.13.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-itertools/itertools/blob/master/CHANGELOG.md">itertools's
changelog</a>.</em></p>
<blockquote>
<h2>0.13.0</h2>
<h3>Breaking</h3>
<ul>
<li>Removed implementation of <code>DoubleEndedIterator</code> for
<code>ConsTuples</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/853">#853</a>)</li>
<li>Made <code>MultiProduct</code> fused and fixed on an empty iterator
(<a
href="https://redirect.github.com/rust-itertools/itertools/issues/835">#835</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/834">#834</a>)</li>
<li>Changed <code>iproduct!</code> to return tuples for maxi one
iterator too (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/870">#870</a>)</li>
<li>Changed <code>PutBack::put_back</code> to return the old value (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/880">#880</a>)</li>
<li>Removed deprecated <code>repeat_call, Itertools::{foreach, step,
map_results, fold_results}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/878">#878</a>)</li>
<li>Removed <code>TakeWhileInclusive::new</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/912">#912</a>)</li>
</ul>
<h3>Added</h3>
<ul>
<li>Added <code>Itertools::{smallest_by, smallest_by_key, largest,
largest_by, largest_by_key}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/654">#654</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/885">#885</a>)</li>
<li>Added <code>Itertools::tail</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/899">#899</a>)</li>
<li>Implemented <code>DoubleEndedIterator</code> for
<code>ProcessResults</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/910">#910</a>)</li>
<li>Implemented <code>Debug</code> for <code>FormatWith</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/931">#931</a>)</li>
<li>Added <code>Itertools::get</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/891">#891</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Deprecated <code>Itertools::group_by</code> (renamed
<code>chunk_by</code>) (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/866">#866</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/879">#879</a>)</li>
<li>Deprecated <code>unfold</code> (use <code>std::iter::from_fn</code>
instead) (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/871">#871</a>)</li>
<li>Optimized <code>GroupingMapBy</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/873">#873</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/876">#876</a>)</li>
<li>Relaxed <code>Fn</code> bounds to <code>FnMut</code> in
<code>diff_with, Itertools::into_group_map_by</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/886">#886</a>)</li>
<li>Relaxed <code>Debug/Clone</code> bounds for <code>MapInto</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/889">#889</a>)</li>
<li>Documented the <code>use_alloc</code> feature (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/887">#887</a>)</li>
<li>Optimized <code>Itertools::set_from</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/888">#888</a>)</li>
<li>Removed badges in <code>README.md</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/890">#890</a>)</li>
<li>Added "no-std" categories in <code>Cargo.toml</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/894">#894</a>)</li>
<li>Fixed <code>Itertools::k_smallest</code> on short unfused iterators
(<a
href="https://redirect.github.com/rust-itertools/itertools/issues/900">#900</a>)</li>
<li>Deprecated <code>Itertools::tree_fold1</code> (renamed
<code>tree_reduce</code>) (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/895">#895</a>)</li>
<li>Deprecated <code>GroupingMap::fold_first</code> (renamed
<code>reduce</code>) (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/902">#902</a>)</li>
<li>Fixed <code>Itertools::k_smallest(0)</code> to consume the iterator,
optimized <code>Itertools::k_smallest(1)</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/909">#909</a>)</li>
<li>Specialized <code>Combinations::nth</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/914">#914</a>)</li>
<li>Specialized <code>MergeBy::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/920">#920</a>)</li>
<li>Specialized <code>CombinationsWithReplacement::nth</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/923">#923</a>)</li>
<li>Specialized <code>FlattenOk::{fold, rfold}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/927">#927</a>)</li>
<li>Specialized <code>Powerset::nth</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/924">#924</a>)</li>
<li>Documentation fixes (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/882">#882</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/936">#936</a>)</li>
<li>Fixed <code>assert_equal</code> for iterators longer than
<code>i32::MAX</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/932">#932</a>)</li>
<li>Updated the <code>must_use</code> message of non-lazy
<code>KMergeBy</code> and <code>TupleCombinations</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/939">#939</a>)</li>
</ul>
<h3>Notable Internal Changes</h3>
<ul>
<li>Tested iterator laziness (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/792">#792</a>)</li>
<li>Created <code>CONTRIBUTING.md</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/767">#767</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/rust-itertools/itertools/commit/d5084d15e959b85d89a49e5cd33ad6267bc541a3"><code>d5084d1</code></a>
Prepare v0.13.0 release (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/937">#937</a>)</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/d7c99d55daeaa76f482444e95beb99f5744ced4e"><code>d7c99d5</code></a>
<code>TupleCombinations</code> is not lazy but must be used
nonetheless</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/074c7fcc07c2bfd60f238585c05134ea3eb43f77"><code>074c7fc</code></a>
<code>KMergeBy</code> is not lazy but must be used nonetheless</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/2ad9e07ae860bb891e48b35edfea5b3286dcb4ab"><code>2ad9e07</code></a>
<code>assert_equal</code>: fix
<code>clippy::default_numeric_fallback</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/0d4efc84323399b47b09ae9da1ff3fdfc2cf95e1"><code>0d4efc8</code></a>
Remove free function <code>get</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/05cc0ee256e84d665e34209053ebc62ef7e4463d"><code>05cc0ee</code></a>
<code>get(s..=usize::MAX)</code> should be fine when <code>s !=
0</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/3c16f14baa5515376adcd8c530f6d3d275b14f44"><code>3c16f14</code></a>
<code>get</code>: when is it ESI and/or DEI</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/4dd6ba0e7c44bb287dff1098d8fb6ab77c32bf87"><code>4dd6ba0</code></a>
<code>get</code>: panics if the range includes
<code>usize::MAX</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/7a9ce56fc59489668178d696db76afb3580a359c"><code>7a9ce56</code></a>
<code>get(r: Range)</code> as <code>Skip\<Take></code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/f676f2f96451220c827c62f714d79ce6454d0184"><code>f676f2f</code></a>
Remove the unspecified check about
<code>.get(exhausted_range_inclusive)</code></li>
<li>Additional commits viewable in <a
href="https://github.com/rust-itertools/itertools/compare/v0.12.1...v0.13.0">compare
view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=itertools&package-manager=cargo&previous-version=0.12.1&new-version=0.13.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-04 04:02:48 +02:00
|
|
|
"itertools 0.13.0",
|
2022-01-01 22:42:50 +01:00
|
|
|
"log",
|
2022-08-08 14:26:49 +02:00
|
|
|
"nu-engine",
|
2021-11-18 20:32:27 +01:00
|
|
|
"nu-path",
|
2024-04-27 19:08:12 +02:00
|
|
|
"nu-plugin-engine",
|
2021-09-02 03:29:43 +02:00
|
|
|
"nu-protocol",
|
2023-08-08 19:11:05 +02:00
|
|
|
"rstest",
|
2021-11-19 03:51:42 +01:00
|
|
|
"serde_json",
|
Extract core stuff into own crates
This commit extracts five new crates:
- nu-source, which contains the core source-code handling logic in Nu,
including Text, Span, and also the pretty.rs-based debug logic
- nu-parser, which is the parser and expander logic
- nu-protocol, which is the bulk of the types and basic conveniences
used by plugins
- nu-errors, which contains ShellError, ParseError and error handling
conveniences
- nu-textview, which is the textview plugin extracted into a crate
One of the major consequences of this refactor is that it's no longer
possible to `impl X for Spanned<Y>` outside of the `nu-source` crate, so
a lot of types became more concrete (Value became a concrete type
instead of Spanned<Value>, for example).
This also turned a number of inherent methods in the main nu crate into
plain functions (impl Value {} became a bunch of functions in the
`value` namespace in `crate::data::value`).
2019-11-26 03:30:48 +01:00
|
|
|
]
|
|
|
|
|
2021-06-20 01:07:26 +02:00
|
|
|
[[package]]
|
|
|
|
name = "nu-path"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
2021-06-20 01:07:26 +02:00
|
|
|
dependencies = [
|
2024-07-16 14:16:26 +02:00
|
|
|
"dirs",
|
2022-10-22 18:51:52 +02:00
|
|
|
"omnipath",
|
2022-04-25 00:12:57 +02:00
|
|
|
"pwd",
|
2021-06-20 01:07:26 +02:00
|
|
|
]
|
|
|
|
|
2019-12-27 14:30:14 +01:00
|
|
|
[[package]]
|
|
|
|
name = "nu-plugin"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
2021-10-28 08:12:33 +02:00
|
|
|
dependencies = [
|
2024-02-25 23:32:50 +01:00
|
|
|
"log",
|
2024-09-04 04:03:02 +02:00
|
|
|
"nix 0.29.0",
|
2021-12-02 06:42:56 +01:00
|
|
|
"nu-engine",
|
2024-04-27 19:08:12 +02:00
|
|
|
"nu-plugin-core",
|
|
|
|
"nu-plugin-protocol",
|
|
|
|
"nu-protocol",
|
2024-07-11 15:09:33 +02:00
|
|
|
"nu-utils",
|
2024-04-27 19:08:12 +02:00
|
|
|
"serde",
|
|
|
|
"thiserror",
|
|
|
|
"typetag",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "nu-plugin-core"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
2024-04-27 19:08:12 +02:00
|
|
|
dependencies = [
|
|
|
|
"interprocess",
|
|
|
|
"log",
|
|
|
|
"nu-plugin-protocol",
|
2021-10-28 08:12:33 +02:00
|
|
|
"nu-protocol",
|
2022-08-21 13:13:38 +02:00
|
|
|
"rmp-serde",
|
2021-08-28 05:34:11 +02:00
|
|
|
"serde",
|
2019-12-27 14:30:14 +01:00
|
|
|
"serde_json",
|
2024-10-17 19:12:45 +02:00
|
|
|
"windows 0.56.0",
|
2024-04-27 19:08:12 +02:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "nu-plugin-engine"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
2024-04-27 19:08:12 +02:00
|
|
|
dependencies = [
|
|
|
|
"log",
|
|
|
|
"nu-engine",
|
|
|
|
"nu-plugin-core",
|
|
|
|
"nu-plugin-protocol",
|
|
|
|
"nu-protocol",
|
|
|
|
"nu-system",
|
2024-07-11 15:09:33 +02:00
|
|
|
"nu-utils",
|
2024-04-27 19:08:12 +02:00
|
|
|
"serde",
|
2024-02-25 23:32:50 +01:00
|
|
|
"typetag",
|
2024-10-17 19:12:45 +02:00
|
|
|
"windows 0.56.0",
|
2019-12-27 14:30:14 +01:00
|
|
|
]
|
|
|
|
|
2024-04-27 19:08:12 +02:00
|
|
|
[[package]]
|
|
|
|
name = "nu-plugin-protocol"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
2024-04-27 19:08:12 +02:00
|
|
|
dependencies = [
|
|
|
|
"nu-protocol",
|
|
|
|
"nu-utils",
|
2024-09-01 17:33:10 +02:00
|
|
|
"rmp-serde",
|
2024-04-27 19:08:12 +02:00
|
|
|
"semver",
|
|
|
|
"serde",
|
|
|
|
"typetag",
|
|
|
|
]
|
|
|
|
|
2024-03-23 19:29:54 +01:00
|
|
|
[[package]]
|
|
|
|
name = "nu-plugin-test-support"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
2024-03-23 19:29:54 +01:00
|
|
|
dependencies = [
|
2024-03-26 03:13:12 +01:00
|
|
|
"nu-ansi-term",
|
2024-04-06 22:11:41 +02:00
|
|
|
"nu-cmd-lang",
|
2024-03-23 19:29:54 +01:00
|
|
|
"nu-engine",
|
|
|
|
"nu-parser",
|
|
|
|
"nu-plugin",
|
2024-04-27 19:08:12 +02:00
|
|
|
"nu-plugin-core",
|
|
|
|
"nu-plugin-engine",
|
|
|
|
"nu-plugin-protocol",
|
2024-03-23 19:29:54 +01:00
|
|
|
"nu-protocol",
|
|
|
|
"serde",
|
2024-03-26 03:13:12 +01:00
|
|
|
"similar",
|
2024-03-23 19:29:54 +01:00
|
|
|
"typetag",
|
|
|
|
]
|
|
|
|
|
2021-05-01 18:12:25 +02:00
|
|
|
[[package]]
|
|
|
|
name = "nu-pretty-hex"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
2021-12-24 08:22:11 +01:00
|
|
|
dependencies = [
|
2022-07-19 19:35:25 +02:00
|
|
|
"heapless",
|
2023-07-24 13:16:18 +02:00
|
|
|
"nu-ansi-term",
|
2023-07-10 07:28:36 +02:00
|
|
|
"rand",
|
2021-05-01 18:12:25 +02:00
|
|
|
]
|
|
|
|
|
Extract core stuff into own crates
This commit extracts five new crates:
- nu-source, which contains the core source-code handling logic in Nu,
including Text, Span, and also the pretty.rs-based debug logic
- nu-parser, which is the parser and expander logic
- nu-protocol, which is the bulk of the types and basic conveniences
used by plugins
- nu-errors, which contains ShellError, ParseError and error handling
conveniences
- nu-textview, which is the textview plugin extracted into a crate
One of the major consequences of this refactor is that it's no longer
possible to `impl X for Spanned<Y>` outside of the `nu-source` crate, so
a lot of types became more concrete (Value became a concrete type
instead of Spanned<Value>, for example).
This also turned a number of inherent methods in the main nu crate into
plain functions (impl Value {} became a bunch of functions in the
`value` namespace in `crate::data::value`).
2019-11-26 03:30:48 +01:00
|
|
|
[[package]]
|
|
|
|
name = "nu-protocol"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
2021-09-02 10:25:22 +02:00
|
|
|
dependencies = [
|
2024-06-06 01:26:47 +02:00
|
|
|
"brotli",
|
2021-10-05 04:27:39 +02:00
|
|
|
"byte-unit",
|
Improve working with `IntoValue` and `FromValue` for byte collections (#13641)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
I was working with byte collections like `Vec<u8>` and
[`bytes::Bytes`](https://docs.rs/bytes/1.7.1/bytes/struct.Bytes.html),
both are currently not possible to be used directly in a struct that
derives `IntoValue` and `FromValue` at the same time. The `Vec<u8>` will
convert itself into a `Value::List` but expects a `Value::String` or
`Value::Binary` to load from. I now also implemented that it can load
from `Value::List` just like the other `Vec<uX>` versions. For further
working with byte collections the type `bytes::Bytes` is wildly used,
therefore I added a implementation for it. `bytes` is already part of
the dependency graph as many crates (more than 5000 to crates.io) use
it.
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
User of `nu-protocol` as library, e.g. plugin developers, can now use
byte collections more easily in their data structures and derive
`IntoValue` and `FromValue` for it.
# Tests + Formatting
<!--
Don't forget to add tests that cover your changes.
Make sure you've run and fixed any issues with these commands:
- `cargo fmt --all -- --check` to check standard code formatting (`cargo
fmt --all` applies these changes)
- `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- `cargo test --workspace` to check that all tests pass (on Windows make
sure to [enable developer
mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging))
- `cargo run -- -c "use toolkit.nu; toolkit test stdlib"` to run the
tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
I added a few tests that check that these byte collections are correctly
translated in and from `Value`. They live in `test_derive.rs` as part of
the `ByteContainer` and I also explicitely tested that `FromValue` for
`Vec<u8>` works as expected.
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
Maybe it should be explored if `Value::Binary` should use `bytes::Bytes`
instead of `Vec<u8>`.
2024-08-23 00:59:00 +02:00
|
|
|
"bytes",
|
2021-10-05 04:27:39 +02:00
|
|
|
"chrono",
|
|
|
|
"chrono-humanize",
|
2024-07-19 12:47:07 +02:00
|
|
|
"dirs",
|
|
|
|
"dirs-sys",
|
2023-12-21 17:10:33 +01:00
|
|
|
"fancy-regex",
|
2024-08-28 15:02:25 +02:00
|
|
|
"heck",
|
2023-12-06 01:09:34 +01:00
|
|
|
"indexmap",
|
Internal representation (IR) compiler and evaluator (#13330)
# Description
This PR adds an internal representation language to Nushell, offering an
alternative evaluator based on simple instructions, stream-containing
registers, and indexed control flow. The number of registers required is
determined statically at compile-time, and the fixed size required is
allocated upon entering the block.
Each instruction is associated with a span, which makes going backwards
from IR instructions to source code very easy.
Motivations for IR:
1. **Performance.** By simplifying the evaluation path and making it
more cache-friendly and branch predictor-friendly, code that does a lot
of computation in Nushell itself can be sped up a decent bit. Because
the IR is fairly easy to reason about, we can also implement
optimization passes in the future to eliminate and simplify code.
2. **Correctness.** The instructions mostly have very simple and
easily-specified behavior, so hopefully engine changes are a little bit
easier to reason about, and they can be specified in a more formal way
at some point. I have made an effort to document each of the
instructions in the docs for the enum itself in a reasonably specific
way. Some of the errors that would have happened during evaluation
before are now moved to the compilation step instead, because they don't
make sense to check during evaluation.
3. **As an intermediate target.** This is a good step for us to bring
the [`new-nu-parser`](https://github.com/nushell/new-nu-parser) in at
some point, as code generated from new AST can be directly compared to
code generated from old AST. If the IR code is functionally equivalent,
it will behave the exact same way.
4. **Debugging.** With a little bit more work, we can probably give
control over advancing the virtual machine that `IrBlock`s run on to
some sort of external driver, making things like breakpoints and single
stepping possible. Tools like `view ir` and [`explore
ir`](https://github.com/devyn/nu_plugin_explore_ir) make it easier than
before to see what exactly is going on with your Nushell code.
The goal is to eventually replace the AST evaluator entirely, once we're
sure it's working just as well. You can help dogfood this by running
Nushell with `$env.NU_USE_IR` set to some value. The environment
variable is checked when Nushell starts, so config runs with IR, or it
can also be set on a line at the REPL to change it dynamically. It is
also checked when running `do` in case within a script you want to just
run a specific piece of code with or without IR.
# Example
```nushell
view ir { |data|
mut sum = 0
for n in $data {
$sum += $n
}
$sum
}
```
```gas
# 3 registers, 19 instructions, 0 bytes of data
0: load-literal %0, int(0)
1: store-variable var 904, %0 # let
2: drain %0
3: drop %0
4: load-variable %1, var 903
5: iterate %0, %1, end 15 # for, label(1), from(14:)
6: store-variable var 905, %0
7: load-variable %0, var 904
8: load-variable %2, var 905
9: binary-op %0, Math(Plus), %2
10: span %0
11: store-variable var 904, %0
12: load-literal %0, nothing
13: drain %0
14: jump 5
15: drop %0 # label(0), from(5:)
16: drain %0
17: load-variable %0, var 904
18: return %0
```
# Benchmarks
All benchmarks run on a base model Mac Mini M1.
## Iterative Fibonacci sequence
This is about as best case as possible, making use of the much faster
control flow. Most code will not experience a speed improvement nearly
this large.
```nushell
def fib [n: int] {
mut a = 0
mut b = 1
for _ in 2..=$n {
let c = $a + $b
$a = $b
$b = $c
}
$b
}
use std bench
bench { 0..50 | each { |n| fib $n } }
```
IR disabled:
```
╭───────┬─────────────────╮
│ mean │ 1ms 924µs 665ns │
│ min │ 1ms 700µs 83ns │
│ max │ 3ms 450µs 125ns │
│ std │ 395µs 759ns │
│ times │ [list 50 items] │
╰───────┴─────────────────╯
```
IR enabled:
```
╭───────┬─────────────────╮
│ mean │ 452µs 820ns │
│ min │ 427µs 417ns │
│ max │ 540µs 167ns │
│ std │ 17µs 158ns │
│ times │ [list 50 items] │
╰───────┴─────────────────╯
```
![explore ir
view](https://github.com/nushell/nushell/assets/10729/d7bccc03-5222-461c-9200-0dce71b83b83)
##
[gradient_benchmark_no_check.nu](https://github.com/nushell/nu_scripts/blob/main/benchmarks/gradient_benchmark_no_check.nu)
IR disabled:
```
╭───┬──────────────────╮
│ 0 │ 27ms 929µs 958ns │
│ 1 │ 21ms 153µs 459ns │
│ 2 │ 18ms 639µs 666ns │
│ 3 │ 19ms 554µs 583ns │
│ 4 │ 13ms 383µs 375ns │
│ 5 │ 11ms 328µs 208ns │
│ 6 │ 5ms 659µs 542ns │
╰───┴──────────────────╯
```
IR enabled:
```
╭───┬──────────────────╮
│ 0 │ 22ms 662µs │
│ 1 │ 17ms 221µs 792ns │
│ 2 │ 14ms 786µs 708ns │
│ 3 │ 13ms 876µs 834ns │
│ 4 │ 13ms 52µs 875ns │
│ 5 │ 11ms 269µs 666ns │
│ 6 │ 6ms 942µs 500ns │
╰───┴──────────────────╯
```
##
[random-bytes.nu](https://github.com/nushell/nu_scripts/blob/main/benchmarks/random-bytes.nu)
I got pretty random results out of this benchmark so I decided not to
include it. Not clear why.
# User-Facing Changes
- IR compilation errors may appear even if the user isn't evaluating
with IR.
- IR evaluation can be enabled by setting the `NU_USE_IR` environment
variable to any value.
- New command `view ir` pretty-prints the IR for a block, and `view ir
--json` can be piped into an external tool like [`explore
ir`](https://github.com/devyn/nu_plugin_explore_ir).
# Tests + Formatting
All tests are passing with `NU_USE_IR=1`, and I've added some more eval
tests to compare the results for some very core operations. I will
probably want to add some more so we don't have to always check
`NU_USE_IR=1 toolkit test --workspace` on a regular basis.
# After Submitting
- [ ] release notes
- [ ] further documentation of instructions?
- [ ] post-release: publish `nu_plugin_explore_ir`
2024-07-11 02:33:59 +02:00
|
|
|
"log",
|
Add LRU regex cache (#7587)
Closes #7572 by adding a cache for compiled regexes of type
`Arc<Mutex<LruCache<String, Regex>>>` to `EngineState` .
The cache is limited to 100 entries (limit chosen arbitrarily) and
evicts least-recently-used items first.
This PR makes a noticeable difference when using regexes for
`color_config`, e.g.:
```bash
#first set string formatting in config.nu like:
string: { if $in =~ '^#\w{6}$' { $in } else { 'white' } }`
# then try displaying and exploring a table with many strings
# this is instant after the PR, but takes hundreds of milliseconds before
['#ff0033', '#0025ee', '#0087aa', 'string', '#4101ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff']
```
## New dependency (`lru`)
This uses [the popular `lru` crate](https://lib.rs/crates/lru). The new
dependency adds 19.8KB to a Linux release build of Nushell. I think this
is OK, especially since the crate can be useful elsewhere in Nu.
2022-12-23 23:30:04 +01:00
|
|
|
"lru",
|
2022-10-24 21:42:32 +02:00
|
|
|
"miette",
|
2024-09-04 04:03:02 +02:00
|
|
|
"nix 0.29.0",
|
Add derive macros for `FromValue` and `IntoValue` to ease the use of `Value`s in Rust code (#13031)
# Description
After discussing with @sholderbach the cumbersome usage of
`nu_protocol::Value` in Rust, I created a derive macro to simplify it.
I’ve added a new crate called `nu-derive-value`, which includes two
macros, `IntoValue` and `FromValue`. These are re-exported in
`nu-protocol` and should be encouraged to be used via that re-export.
The macros ensure that all types can easily convert from and into
`Value`. For example, as a plugin author, you can define your plugin
configuration using a Rust struct and easily convert it using
`FromValue`. This makes plugin configuration less of a hassle.
I introduced the `IntoValue` trait for a standardized approach to
converting values into `Value` (and a fallible variant `TryIntoValue`).
This trait could potentially replace existing `into_value` methods.
Along with this, I've implemented `FromValue` for several standard types
and refined other implementations to use blanket implementations where
applicable.
I made these design choices with input from @devyn.
There are more improvements possible, but this is a solid start and the
PR is already quite substantial.
# User-Facing Changes
For `nu-protocol` users, these changes simplify the handling of
`Value`s. There are no changes for end-users of nushell itself.
# Tests + Formatting
Documenting the macros itself is not really possible, as they cannot
really reference any other types since they are the root of the
dependency graph. The standard library has the same problem
([std::Debug](https://doc.rust-lang.org/stable/std/fmt/derive.Debug.html)).
However I documented the `FromValue` and `IntoValue` traits completely.
For testing, I made of use `proc-macro2` in the derive macro code. This
would allow testing the generated source code. Instead I just tested
that the derived functionality is correct. This is done in
`nu_protocol::value::test_derive`, as a consumer of `nu-derive-value`
needs to do the testing of the macro usage. I think that these tests
should provide a stable baseline so that users can be sure that the impl
works.
# After Submitting
With these macros available, we can probably use them in some examples
for plugins to showcase the use of them.
2024-06-18 01:05:11 +02:00
|
|
|
"nu-derive-value",
|
2023-09-01 08:18:55 +02:00
|
|
|
"nu-path",
|
|
|
|
"nu-system",
|
`$env.config` now always holds a record with only valid values (#7309)
# Description
Closes #7059. Rather than generate a new Record each time $env.config is
accessed (as described in that issue), instead `$env.config = ` now A)
parses the input record, then B) un-parses it into a clean Record with
only the valid values, and stores that as an env-var. The reasoning for
this is that I believe `config_to_nu_record()` (the method that performs
step B) will be useful in later PRs. (See below)
As a result, this also "fixes" the following "bug":
```
〉$env.config = 'butts'
$env.config is not a record
〉$env.config
butts
```
~~Instead, `$env.config = 'butts'` now turns `$env.config` into the
default (not the default config.nu, but `Config::default()`, which
notably has empty keybindings, color_config, menus and hooks vecs).~~
This doesn't attempt to fix #7110. cc @Kangaxx-0
# Example of new behaviour
OLD:
```
〉$env.config = ($env.config | merge { foo: 1 })
$env.config.foo is an unknown config setting
〉$env.config.foo
1
```
NEW:
```
〉$env.config = ($env.config | merge { foo: 1 })
Error:
× Config record contains invalid values or unknown settings
Error:
× Error while applying config changes
╭─[entry #1:1:1]
1 │ $env.config = ($env.config | merge { foo: 1 })
· ┬
· ╰── $env.config.foo is an unknown config setting
╰────
help: This value has been removed from your $env.config record.
〉$env.config.foo
Error: nu::shell::column_not_found (link)
× Cannot find column
╭─[entry #1:1:1]
1 │ $env.config = ($env.config | merge { foo: 1 })
· ──┬──
· ╰── value originates here
╰────
╭─[entry #2:1:1]
1 │ $env.config.foo
· ─┬─
· ╰── cannot find column 'foo'
╰────
```
# Example of new errors
OLD:
```
$env.config.cd.baz is an unknown config setting
$env.config.foo is an unknown config setting
$env.config.bar is an unknown config setting
$env.config.table.qux is an unknown config setting
$env.config.history.qux is an unknown config setting
```
NEW:
```
Error:
× Config record contains invalid values or unknown settings
Error:
× Error while applying config changes
╭─[C:\Users\Leon\AppData\Roaming\nushell\config.nu:267:1]
267 │ abbreviations: true # allows `cd s/o/f` to expand to `cd some/other/folder`
268 │ baz: 3,
· ┬
· ╰── $env.config.cd.baz is an unknown config setting
269 │ }
╰────
help: This value has been removed from your $env.config record.
Error:
× Error while applying config changes
╭─[C:\Users\Leon\AppData\Roaming\nushell\config.nu:269:1]
269 │ }
270 │ foo: 1,
· ┬
· ╰── $env.config.foo is an unknown config setting
271 │ bar: 2,
╰────
help: This value has been removed from your $env.config record.
Error:
× Error while applying config changes
╭─[C:\Users\Leon\AppData\Roaming\nushell\config.nu:270:1]
270 │ foo: 1,
271 │ bar: 2,
· ┬
· ╰── $env.config.bar is an unknown config setting
╰────
help: This value has been removed from your $env.config record.
Error:
× Error while applying config changes
╭─[C:\Users\Leon\AppData\Roaming\nushell\config.nu:279:1]
279 │ }
280 │ qux: 4,
· ┬
· ╰── $env.config.table.qux is an unknown config setting
281 │ }
╰────
help: This value has been removed from your $env.config record.
Error:
× Error while applying config changes
╭─[C:\Users\Leon\AppData\Roaming\nushell\config.nu:285:1]
285 │ file_format: "plaintext" # "sqlite" or "plaintext"
286 │ qux: 2
· ┬
· ╰── $env.config.history.qux is an unknown config setting
287 │ }
╰────
help: This value has been removed from your $env.config record.
```
# User-Facing Changes
See above.
# Tests + Formatting
Don't forget to add tests that cover your changes.
Make sure you've run and fixed any issues with these commands:
- `cargo fmt --all -- --check` to check standard code formatting (`cargo
fmt --all` applies these changes)
- `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A
clippy::needless_collect` to check that you're using the standard code
style
- `cargo test --workspace` to check that all tests pass
# After Submitting
If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
2022-12-10 14:34:46 +01:00
|
|
|
"nu-test-support",
|
2022-05-17 20:28:18 +02:00
|
|
|
"nu-utils",
|
2021-12-09 20:19:36 +01:00
|
|
|
"num-format",
|
2024-05-13 20:48:38 +02:00
|
|
|
"os_pipe",
|
2024-04-21 14:36:26 +02:00
|
|
|
"pretty_assertions",
|
|
|
|
"rmp-serde",
|
2023-08-08 19:11:05 +02:00
|
|
|
"rstest",
|
2021-10-01 07:11:49 +02:00
|
|
|
"serde",
|
2021-11-19 03:51:42 +01:00
|
|
|
"serde_json",
|
2024-03-13 19:42:31 +01:00
|
|
|
"strum",
|
2024-06-06 01:26:47 +02:00
|
|
|
"strum_macros",
|
Migrate to a new PWD API (#12603)
This is the first PR towards migrating to a new `$env.PWD` API that
returns potentially un-canonicalized paths. Refer to PR #12515 for
motivations.
## New API: `EngineState::cwd()`
The goal of the new API is to cover both parse-time and runtime use
case, and avoid unintentional misuse. It takes an `Option<Stack>` as
argument, which if supplied, will search for `$env.PWD` on the stack in
additional to the engine state. I think with this design, there's less
confusion over parse-time and runtime environments. If you have access
to a stack, just supply it; otherwise supply `None`.
## Deprecation of other PWD-related APIs
Other APIs are re-implemented using `EngineState::cwd()` and properly
documented. They're marked deprecated, but their behavior is unchanged.
Unused APIs are deleted, and code that accesses `$env.PWD` directly
without using an API is rewritten.
Deprecated APIs:
* `EngineState::current_work_dir()`
* `StateWorkingSet::get_cwd()`
* `env::current_dir()`
* `env::current_dir_str()`
* `env::current_dir_const()`
* `env::current_dir_str_const()`
Other changes:
* `EngineState::get_cwd()` (deleted)
* `StateWorkingSet::list_env()` (deleted)
* `repl::do_run_cmd()` (rewritten with `env::current_dir_str()`)
## `cd` and `pwd` now use logical paths by default
This pulls the changes from PR #12515. It's currently somewhat broken
because using non-canonicalized paths exposed a bug in our path
normalization logic (Issue #12602). Once that is fixed, this should
work.
## Future plans
This PR needs some tests. Which test helpers should I use, and where
should I put those tests?
I noticed that unquoted paths are expanded within `eval_filepath()` and
`eval_directory()` before they even reach the `cd` command. This means
every paths is expanded twice. Is this intended?
Once this PR lands, the plan is to review all usages of the deprecated
APIs and migrate them to `EngineState::cwd()`. In the meantime, these
usages are annotated with `#[allow(deprecated)]` to avoid breaking CI.
---------
Co-authored-by: Jakub Žádník <kubouch@gmail.com>
2024-05-03 13:33:09 +02:00
|
|
|
"tempfile",
|
2021-09-20 23:37:26 +02:00
|
|
|
"thiserror",
|
2021-11-23 09:14:40 +01:00
|
|
|
"typetag",
|
2024-07-19 12:47:07 +02:00
|
|
|
"windows-sys 0.48.0",
|
2021-09-02 10:25:22 +02:00
|
|
|
]
|
2021-09-02 03:29:43 +02:00
|
|
|
|
2023-04-07 22:12:27 +02:00
|
|
|
[[package]]
|
|
|
|
name = "nu-std"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
2023-04-07 22:12:27 +02:00
|
|
|
dependencies = [
|
2024-03-28 17:27:12 +01:00
|
|
|
"log",
|
2023-04-07 22:12:27 +02:00
|
|
|
"miette",
|
2023-05-23 22:48:50 +02:00
|
|
|
"nu-engine",
|
2023-04-07 22:12:27 +02:00
|
|
|
"nu-parser",
|
|
|
|
"nu-protocol",
|
|
|
|
]
|
|
|
|
|
2022-01-14 07:20:53 +01:00
|
|
|
[[package]]
|
|
|
|
name = "nu-system"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
2022-01-14 07:20:53 +01:00
|
|
|
dependencies = [
|
|
|
|
"chrono",
|
Bump itertools from 0.12.1 to 0.13.0 (#13774)
Bumps [itertools](https://github.com/rust-itertools/itertools) from
0.12.1 to 0.13.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-itertools/itertools/blob/master/CHANGELOG.md">itertools's
changelog</a>.</em></p>
<blockquote>
<h2>0.13.0</h2>
<h3>Breaking</h3>
<ul>
<li>Removed implementation of <code>DoubleEndedIterator</code> for
<code>ConsTuples</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/853">#853</a>)</li>
<li>Made <code>MultiProduct</code> fused and fixed on an empty iterator
(<a
href="https://redirect.github.com/rust-itertools/itertools/issues/835">#835</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/834">#834</a>)</li>
<li>Changed <code>iproduct!</code> to return tuples for maxi one
iterator too (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/870">#870</a>)</li>
<li>Changed <code>PutBack::put_back</code> to return the old value (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/880">#880</a>)</li>
<li>Removed deprecated <code>repeat_call, Itertools::{foreach, step,
map_results, fold_results}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/878">#878</a>)</li>
<li>Removed <code>TakeWhileInclusive::new</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/912">#912</a>)</li>
</ul>
<h3>Added</h3>
<ul>
<li>Added <code>Itertools::{smallest_by, smallest_by_key, largest,
largest_by, largest_by_key}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/654">#654</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/885">#885</a>)</li>
<li>Added <code>Itertools::tail</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/899">#899</a>)</li>
<li>Implemented <code>DoubleEndedIterator</code> for
<code>ProcessResults</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/910">#910</a>)</li>
<li>Implemented <code>Debug</code> for <code>FormatWith</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/931">#931</a>)</li>
<li>Added <code>Itertools::get</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/891">#891</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Deprecated <code>Itertools::group_by</code> (renamed
<code>chunk_by</code>) (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/866">#866</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/879">#879</a>)</li>
<li>Deprecated <code>unfold</code> (use <code>std::iter::from_fn</code>
instead) (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/871">#871</a>)</li>
<li>Optimized <code>GroupingMapBy</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/873">#873</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/876">#876</a>)</li>
<li>Relaxed <code>Fn</code> bounds to <code>FnMut</code> in
<code>diff_with, Itertools::into_group_map_by</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/886">#886</a>)</li>
<li>Relaxed <code>Debug/Clone</code> bounds for <code>MapInto</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/889">#889</a>)</li>
<li>Documented the <code>use_alloc</code> feature (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/887">#887</a>)</li>
<li>Optimized <code>Itertools::set_from</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/888">#888</a>)</li>
<li>Removed badges in <code>README.md</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/890">#890</a>)</li>
<li>Added "no-std" categories in <code>Cargo.toml</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/894">#894</a>)</li>
<li>Fixed <code>Itertools::k_smallest</code> on short unfused iterators
(<a
href="https://redirect.github.com/rust-itertools/itertools/issues/900">#900</a>)</li>
<li>Deprecated <code>Itertools::tree_fold1</code> (renamed
<code>tree_reduce</code>) (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/895">#895</a>)</li>
<li>Deprecated <code>GroupingMap::fold_first</code> (renamed
<code>reduce</code>) (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/902">#902</a>)</li>
<li>Fixed <code>Itertools::k_smallest(0)</code> to consume the iterator,
optimized <code>Itertools::k_smallest(1)</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/909">#909</a>)</li>
<li>Specialized <code>Combinations::nth</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/914">#914</a>)</li>
<li>Specialized <code>MergeBy::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/920">#920</a>)</li>
<li>Specialized <code>CombinationsWithReplacement::nth</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/923">#923</a>)</li>
<li>Specialized <code>FlattenOk::{fold, rfold}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/927">#927</a>)</li>
<li>Specialized <code>Powerset::nth</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/924">#924</a>)</li>
<li>Documentation fixes (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/882">#882</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/936">#936</a>)</li>
<li>Fixed <code>assert_equal</code> for iterators longer than
<code>i32::MAX</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/932">#932</a>)</li>
<li>Updated the <code>must_use</code> message of non-lazy
<code>KMergeBy</code> and <code>TupleCombinations</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/939">#939</a>)</li>
</ul>
<h3>Notable Internal Changes</h3>
<ul>
<li>Tested iterator laziness (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/792">#792</a>)</li>
<li>Created <code>CONTRIBUTING.md</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/767">#767</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/rust-itertools/itertools/commit/d5084d15e959b85d89a49e5cd33ad6267bc541a3"><code>d5084d1</code></a>
Prepare v0.13.0 release (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/937">#937</a>)</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/d7c99d55daeaa76f482444e95beb99f5744ced4e"><code>d7c99d5</code></a>
<code>TupleCombinations</code> is not lazy but must be used
nonetheless</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/074c7fcc07c2bfd60f238585c05134ea3eb43f77"><code>074c7fc</code></a>
<code>KMergeBy</code> is not lazy but must be used nonetheless</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/2ad9e07ae860bb891e48b35edfea5b3286dcb4ab"><code>2ad9e07</code></a>
<code>assert_equal</code>: fix
<code>clippy::default_numeric_fallback</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/0d4efc84323399b47b09ae9da1ff3fdfc2cf95e1"><code>0d4efc8</code></a>
Remove free function <code>get</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/05cc0ee256e84d665e34209053ebc62ef7e4463d"><code>05cc0ee</code></a>
<code>get(s..=usize::MAX)</code> should be fine when <code>s !=
0</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/3c16f14baa5515376adcd8c530f6d3d275b14f44"><code>3c16f14</code></a>
<code>get</code>: when is it ESI and/or DEI</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/4dd6ba0e7c44bb287dff1098d8fb6ab77c32bf87"><code>4dd6ba0</code></a>
<code>get</code>: panics if the range includes
<code>usize::MAX</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/7a9ce56fc59489668178d696db76afb3580a359c"><code>7a9ce56</code></a>
<code>get(r: Range)</code> as <code>Skip\<Take></code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/f676f2f96451220c827c62f714d79ce6454d0184"><code>f676f2f</code></a>
Remove the unspecified check about
<code>.get(exhausted_range_inclusive)</code></li>
<li>Additional commits viewable in <a
href="https://github.com/rust-itertools/itertools/compare/v0.12.1...v0.13.0">compare
view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=itertools&package-manager=cargo&previous-version=0.12.1&new-version=0.13.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-04 04:02:48 +02:00
|
|
|
"itertools 0.13.0",
|
2022-01-14 07:20:53 +01:00
|
|
|
"libc",
|
|
|
|
"libproc",
|
2022-10-22 18:54:46 +02:00
|
|
|
"log",
|
2022-09-01 08:09:52 +02:00
|
|
|
"mach2",
|
2024-09-04 04:03:02 +02:00
|
|
|
"nix 0.29.0",
|
2022-10-30 14:29:41 +01:00
|
|
|
"ntapi",
|
2022-02-01 22:05:26 +01:00
|
|
|
"once_cell",
|
2022-01-14 07:20:53 +01:00
|
|
|
"procfs",
|
2024-10-17 19:12:45 +02:00
|
|
|
"sysinfo 0.32.0",
|
|
|
|
"windows 0.56.0",
|
2022-01-14 07:20:53 +01:00
|
|
|
]
|
|
|
|
|
2021-09-10 04:27:12 +02:00
|
|
|
[[package]]
|
|
|
|
name = "nu-table"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
2021-09-10 04:27:12 +02:00
|
|
|
dependencies = [
|
2023-12-21 17:10:33 +01:00
|
|
|
"fancy-regex",
|
2023-07-24 13:16:18 +02:00
|
|
|
"nu-ansi-term",
|
color_config now accepts closures as color values (#7141)
# Description
Closes #6909. You can now add closures to your `color_config` themes.
Whenever a value would be printed with `table`, the closure is run with
the value piped-in. The closure must return either a {fg,bg,attr} record
or a color name (`'light_red'` etc.). This returned style is used to
colour the value.
This is entirely backwards-compatible with existing config.nu files.
Example code excerpt:
```
let my_theme = {
header: green_bold
bool: { if $in { 'light_cyan' } else { 'light_red' } }
int: purple_bold
filesize: { |e| if $e == 0b { 'gray' } else if $e < 1mb { 'purple_bold' } else { 'cyan_bold' } }
duration: purple_bold
date: { (date now) - $in | if $in > 1wk { 'cyan_bold' } else if $in > 1day { 'green_bold' } else { 'yellow_bold' } }
range: yellow_bold
string: { if $in =~ '^#\w{6}$' { $in } else { 'white' } }
nothing: white
```
Example output with this in effect:
![2022-11-16 12 47 23 AM - style_computer
rs_-_nushell_-_VSCodium](https://user-images.githubusercontent.com/83939/201952558-482de05d-69c7-4bf2-91fc-d0964bf71264.png)
![2022-11-16 12 39 41 AM - style_computer
rs_-_nushell_-_VSCodium](https://user-images.githubusercontent.com/83939/201952580-2384bb86-b680-40fe-8192-71bae396c738.png)
![2022-11-15 09 21 54 PM - run_external
rs_-_nushell_-_VSCodium](https://user-images.githubusercontent.com/83939/201952601-343fc15d-e4a8-4a92-ad89-9a7d17d42748.png)
Slightly important notes:
* Some color_config names, namely "separator", "empty" and "hints", pipe
in `null` instead of a value.
* Currently, doing anything non-trivial inside a closure has an
understandably big perf hit. I currently do not actually recommend
something like `string: { if $in =~ '^#\w{6}$' { $in } else { 'white' }
}` for serious work, mainly because of the abundance of string-type data
in the world. Nevertheless, lesser-used types like "date" and "duration"
work well with this.
* I had to do some reorganisation in order to make it possible to call
`eval_block()` that late in table rendering. I invented a new struct
called "StyleComputer" which holds the engine_state and stack of the
initial `table` command (implicit or explicit).
* StyleComputer has a `compute()` method which takes a color_config name
and a nu value, and always returns the correct Style, so you don't have
to worry about A) the color_config value was set at all, B) whether it
was set to a closure or not, or C) which default style to use in those
cases.
* Currently, errors encountered during execution of the closures are
thrown in the garbage. Any other ideas are welcome. (Nonetheless, errors
result in a huge perf hit when they are encountered. I think what should
be done is to assume something terrible happened to the user's config
and invalidate the StyleComputer for that `table` run, thus causing
subsequent output to just be Style::default().)
* More thorough tests are forthcoming - ran into some difficulty using
`nu!` to take an alternative config, and for some reason `let-env config
=` statements don't seem to work inside `nu!` pipelines(???)
* The default config.nu has not been updated to make use of this yet. Do
tell if you think I should incorporate that into this.
# User-Facing Changes
See above.
# Tests + Formatting
Don't forget to add tests that cover your changes.
Make sure you've run and fixed any issues with these commands:
- `cargo fmt --all -- --check` to check standard code formatting (`cargo
fmt --all` applies these changes)
- `cargo clippy --workspace --features=extra -- -D warnings -D
clippy::unwrap_used -A clippy::needless_collect` to check that you're
using the standard code style
- `cargo test --workspace --features=extra` to check that all tests pass
# After Submitting
If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
2022-12-17 14:07:56 +01:00
|
|
|
"nu-color-config",
|
|
|
|
"nu-engine",
|
2021-12-01 20:20:23 +01:00
|
|
|
"nu-protocol",
|
2022-11-04 19:49:45 +01:00
|
|
|
"nu-utils",
|
2023-09-13 14:47:53 +02:00
|
|
|
"once_cell",
|
2023-08-03 21:52:12 +02:00
|
|
|
"tabled",
|
2024-10-11 20:36:09 +02:00
|
|
|
"terminal_size",
|
2021-09-10 04:27:12 +02:00
|
|
|
]
|
|
|
|
|
2021-10-07 17:32:39 +02:00
|
|
|
[[package]]
|
2022-02-07 20:11:34 +01:00
|
|
|
name = "nu-term-grid"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
2019-12-17 19:41:47 +01:00
|
|
|
dependencies = [
|
2022-11-04 19:49:45 +01:00
|
|
|
"nu-utils",
|
2022-02-07 20:54:06 +01:00
|
|
|
"unicode-width",
|
2020-05-08 20:19:48 +02:00
|
|
|
]
|
|
|
|
|
2019-12-10 04:57:55 +01:00
|
|
|
[[package]]
|
2022-02-07 20:54:06 +01:00
|
|
|
name = "nu-test-support"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
2019-12-10 04:57:55 +01:00
|
|
|
dependencies = [
|
2022-03-13 19:30:27 +01:00
|
|
|
"nu-glob",
|
2022-02-07 20:54:06 +01:00
|
|
|
"nu-path",
|
2022-08-13 04:13:50 +02:00
|
|
|
"nu-utils",
|
|
|
|
"num-format",
|
2022-02-07 20:54:06 +01:00
|
|
|
"tempfile",
|
2024-01-22 16:28:47 +01:00
|
|
|
"which",
|
2019-12-10 04:57:55 +01:00
|
|
|
]
|
|
|
|
|
2022-03-16 23:21:06 +01:00
|
|
|
[[package]]
|
|
|
|
name = "nu-utils"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
2022-03-16 23:21:06 +01:00
|
|
|
dependencies = [
|
|
|
|
"crossterm_winapi",
|
2023-01-24 21:28:59 +01:00
|
|
|
"log",
|
2022-07-20 17:09:33 +02:00
|
|
|
"lscolors",
|
2024-09-04 04:03:02 +02:00
|
|
|
"nix 0.29.0",
|
2022-08-13 04:13:50 +02:00
|
|
|
"num-format",
|
2024-04-14 03:42:03 +02:00
|
|
|
"serde",
|
2022-11-04 19:49:45 +01:00
|
|
|
"strip-ansi-escapes",
|
2022-08-13 04:13:50 +02:00
|
|
|
"sys-locale",
|
2023-11-08 23:58:54 +01:00
|
|
|
"unicase",
|
2022-03-16 23:21:06 +01:00
|
|
|
]
|
|
|
|
|
2022-07-25 18:32:56 +02:00
|
|
|
[[package]]
|
|
|
|
name = "nu_plugin_custom_values"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
|
|
|
"nu-plugin",
|
2024-03-26 03:20:35 +01:00
|
|
|
"nu-plugin-test-support",
|
2022-07-25 18:32:56 +02:00
|
|
|
"nu-protocol",
|
|
|
|
"serde",
|
|
|
|
"typetag",
|
|
|
|
]
|
|
|
|
|
2020-07-18 03:59:23 +02:00
|
|
|
[[package]]
|
2022-02-07 20:54:06 +01:00
|
|
|
name = "nu_plugin_example"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
2020-07-18 03:59:23 +02:00
|
|
|
dependencies = [
|
2024-03-26 03:20:35 +01:00
|
|
|
"nu-cmd-lang",
|
2020-07-18 03:59:23 +02:00
|
|
|
"nu-plugin",
|
2024-03-26 03:20:35 +01:00
|
|
|
"nu-plugin-test-support",
|
2020-07-18 03:59:23 +02:00
|
|
|
"nu-protocol",
|
|
|
|
]
|
|
|
|
|
2023-02-13 13:42:08 +01:00
|
|
|
[[package]]
|
|
|
|
name = "nu_plugin_formats"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
2023-02-13 13:42:08 +01:00
|
|
|
dependencies = [
|
2024-08-05 23:07:15 +02:00
|
|
|
"chrono",
|
2023-02-13 13:42:08 +01:00
|
|
|
"eml-parser",
|
|
|
|
"ical",
|
2023-12-06 01:09:34 +01:00
|
|
|
"indexmap",
|
2023-02-13 13:42:08 +01:00
|
|
|
"nu-plugin",
|
2024-03-26 03:20:35 +01:00
|
|
|
"nu-plugin-test-support",
|
2023-02-13 13:42:08 +01:00
|
|
|
"nu-protocol",
|
2024-08-05 23:07:15 +02:00
|
|
|
"plist",
|
2023-02-13 13:42:08 +01:00
|
|
|
"rust-ini",
|
|
|
|
]
|
|
|
|
|
2020-07-18 03:59:23 +02:00
|
|
|
[[package]]
|
2022-02-07 20:54:06 +01:00
|
|
|
name = "nu_plugin_gstat"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
2020-07-18 03:59:23 +02:00
|
|
|
dependencies = [
|
2022-02-07 20:54:06 +01:00
|
|
|
"git2",
|
2020-07-18 03:59:23 +02:00
|
|
|
"nu-plugin",
|
|
|
|
"nu-protocol",
|
|
|
|
]
|
|
|
|
|
2019-12-09 19:39:51 +01:00
|
|
|
[[package]]
|
2022-02-07 20:54:06 +01:00
|
|
|
name = "nu_plugin_inc"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
2019-12-09 19:39:51 +01:00
|
|
|
dependencies = [
|
2019-12-27 14:30:14 +01:00
|
|
|
"nu-plugin",
|
2019-12-09 19:39:51 +01:00
|
|
|
"nu-protocol",
|
2023-03-12 00:35:56 +01:00
|
|
|
"semver",
|
2019-12-09 19:39:51 +01:00
|
|
|
]
|
|
|
|
|
2024-04-10 02:31:43 +02:00
|
|
|
[[package]]
|
|
|
|
name = "nu_plugin_polars"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
2024-04-10 02:31:43 +02:00
|
|
|
dependencies = [
|
|
|
|
"chrono",
|
2024-04-13 20:00:04 +02:00
|
|
|
"chrono-tz 0.9.0",
|
2024-08-24 00:35:42 +02:00
|
|
|
"env_logger 0.11.5",
|
2024-04-10 02:31:43 +02:00
|
|
|
"fancy-regex",
|
2024-10-09 02:07:21 +02:00
|
|
|
"hashbrown 0.14.5",
|
2024-04-10 02:31:43 +02:00
|
|
|
"indexmap",
|
2024-06-28 01:56:56 +02:00
|
|
|
"log",
|
make polars plugin use mimalloc (#12967)
# Description
@maxim-uvarov did a ton of research and work with the dply-rs author and
ritchie from polars and found out that the allocator matters on macos
and it seems to be what was messing up the performance of polars plugin.
ritchie suggested to use jemalloc but i switched it to mimalloc to match
nushell and it seems to run better.
## Before (default allocator)
note - using 1..10 vs 1..100 since it takes so long. also notice how
high the `max` timings are compared to mimalloc below.
```nushell
❯ 1..10 | each {timeit {polars open Data7602DescendingYearOrder.csv | polars group-by year | polars agg (polars col geo_count | polars sum) | polars collect | null}} | | {mean: ($in | math avg), min: ($in | math min), max: ($in | math max), stddev: ($in | into int | into float | math stddev | into int | $'($in)ns' | into duration)}
╭────────┬─────────────────────────╮
│ mean │ 4sec 999ms 605µs 995ns │
│ min │ 983ms 627µs 42ns │
│ max │ 13sec 398ms 135µs 791ns │
│ stddev │ 3sec 476ms 479µs 939ns │
╰────────┴─────────────────────────╯
❯ use std bench
❯ bench { polars open Data7602DescendingYearOrder.csv | polars group-by year | polars agg (polars col geo_count | polars sum) | polars collect | null } -n 10
╭───────┬────────────────────────╮
│ mean │ 6sec 220ms 783µs 983ns │
│ min │ 1sec 184ms 997µs 708ns │
│ max │ 18sec 882ms 81µs 708ns │
│ std │ 5sec 350ms 375µs 697ns │
│ times │ [list 10 items] │
╰───────┴────────────────────────╯
```
## After (using mimalloc)
```nushell
❯ 1..100 | each {timeit {polars open Data7602DescendingYearOrder.csv | polars group-by year | polars agg (polars col geo_count | polars sum) | polars collect | null}} | | {mean: ($in | math avg), min: ($in | math min), max: ($in | math max), stddev: ($in | into int | into float | math stddev | into int | $'($in)ns' | into duration)}
╭────────┬───────────────────╮
│ mean │ 103ms 728µs 902ns │
│ min │ 97ms 107µs 42ns │
│ max │ 149ms 430µs 84ns │
│ stddev │ 5ms 690µs 664ns │
╰────────┴───────────────────╯
❯ use std bench
❯ bench { polars open Data7602DescendingYearOrder.csv | polars group-by year | polars agg (polars col geo_count | polars sum) | polars collect | null } -n 100
╭───────┬───────────────────╮
│ mean │ 103ms 620µs 195ns │
│ min │ 97ms 541µs 166ns │
│ max │ 130ms 262µs 166ns │
│ std │ 4ms 948µs 654ns │
│ times │ [list 100 items] │
╰───────┴───────────────────╯
```
## After (using jemalloc - just for comparison)
```nushell
❯ 1..100 | each {timeit {polars open Data7602DescendingYearOrder.csv | polars group-by year | polars agg (polars col geo_count | polars sum) | polars collect | null}} | | {mean: ($in | math avg), min: ($in | math min), max: ($in | math max), stddev: ($in | into int | into float | math stddev | into int | $'($in)ns' | into duration)}
╭────────┬───────────────────╮
│ mean │ 113ms 939µs 777ns │
│ min │ 108ms 337µs 333ns │
│ max │ 166ms 467µs 458ns │
│ stddev │ 6ms 175µs 618ns │
╰────────┴───────────────────╯
❯ use std bench
❯ bench { polars open Data7602DescendingYearOrder.csv | polars group-by year | polars agg (polars col geo_count | polars sum) | polars collect | null } -n 100
╭───────┬───────────────────╮
│ mean │ 114ms 363µs 530ns │
│ min │ 108ms 804µs 833ns │
│ max │ 143ms 521µs 459ns │
│ std │ 5ms 88µs 56ns │
│ times │ [list 100 items] │
╰───────┴───────────────────╯
```
## After (using parquet + mimalloc)
```nushell
❯ 1..100 | each {timeit {polars open data.parquet | polars group-by year | polars agg (polars col geo_count | polars sum) | polars collect | null}} | | {mean: ($in | math avg), min: ($in | math min), max: ($in | math max), stddev: ($in | into int | into float | math stddev | into int | $'($in)ns' | into duration)}
╭────────┬──────────────────╮
│ mean │ 34ms 255µs 492ns │
│ min │ 31ms 787µs 250ns │
│ max │ 76ms 408µs 416ns │
│ stddev │ 4ms 472µs 916ns │
╰────────┴──────────────────╯
❯ use std bench
❯ bench { polars open data.parquet | polars group-by year | polars agg (polars col geo_count | polars sum) | polars collect | null } -n 100
╭───────┬──────────────────╮
│ mean │ 34ms 897µs 562ns │
│ min │ 31ms 518µs 542ns │
│ max │ 65ms 943µs 625ns │
│ std │ 3ms 450µs 741ns │
│ times │ [list 100 items] │
╰───────┴──────────────────╯
```
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
<!--
Don't forget to add tests that cover your changes.
Make sure you've run and fixed any issues with these commands:
- `cargo fmt --all -- --check` to check standard code formatting (`cargo
fmt --all` applies these changes)
- `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- `cargo test --workspace` to check that all tests pass (on Windows make
sure to [enable developer
mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging))
- `cargo run -- -c "use toolkit.nu; toolkit test stdlib"` to run the
tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
2024-05-25 16:10:01 +02:00
|
|
|
"mimalloc",
|
2024-04-10 02:31:43 +02:00
|
|
|
"nu-cmd-lang",
|
|
|
|
"nu-command",
|
|
|
|
"nu-engine",
|
|
|
|
"nu-parser",
|
2024-04-13 02:30:37 +02:00
|
|
|
"nu-path",
|
2024-04-10 02:31:43 +02:00
|
|
|
"nu-plugin",
|
|
|
|
"nu-plugin-test-support",
|
|
|
|
"nu-protocol",
|
2024-06-28 01:56:56 +02:00
|
|
|
"nu-utils",
|
2024-04-10 02:31:43 +02:00
|
|
|
"num",
|
2024-04-17 19:50:17 +02:00
|
|
|
"polars",
|
|
|
|
"polars-arrow",
|
|
|
|
"polars-io",
|
|
|
|
"polars-ops",
|
|
|
|
"polars-plan",
|
|
|
|
"polars-utils",
|
2024-04-10 02:31:43 +02:00
|
|
|
"serde",
|
2024-06-28 13:37:45 +02:00
|
|
|
"sqlparser",
|
2024-04-13 02:30:37 +02:00
|
|
|
"tempfile",
|
2024-04-10 02:31:43 +02:00
|
|
|
"typetag",
|
|
|
|
"uuid",
|
|
|
|
]
|
|
|
|
|
2020-10-13 01:18:39 +02:00
|
|
|
[[package]]
|
2022-02-01 19:45:48 +01:00
|
|
|
name = "nu_plugin_query"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
2022-02-01 19:45:48 +01:00
|
|
|
dependencies = [
|
|
|
|
"gjson",
|
|
|
|
"nu-plugin",
|
|
|
|
"nu-protocol",
|
|
|
|
"scraper",
|
2024-06-29 23:13:31 +02:00
|
|
|
"serde",
|
|
|
|
"serde_json",
|
2020-10-13 01:18:39 +02:00
|
|
|
"sxd-document",
|
|
|
|
"sxd-xpath",
|
2024-06-29 23:13:31 +02:00
|
|
|
"webpage",
|
2020-10-13 01:18:39 +02:00
|
|
|
]
|
|
|
|
|
Local socket mode and foreground terminal control for plugins (#12448)
# Description
Adds support for running plugins using local socket communication
instead of stdio. This will be an optional thing that not all plugins
have to support.
This frees up stdio for use to make plugins that use stdio to create
terminal UIs, cc @amtoine, @fdncred.
This uses the [`interprocess`](https://crates.io/crates/interprocess)
crate (298 stars, MIT license, actively maintained), which seems to be
the best option for cross-platform local socket support in Rust. On
Windows, a local socket name is provided. On Unixes, it's a path. The
socket name is kept to a relatively small size because some operating
systems have pretty strict limits on the whole path (~100 chars), so on
macOS for example we prefer `/tmp/nu.{pid}.{hash64}.sock` where the hash
includes the plugin filename and timestamp to be unique enough.
This also adds an API for moving plugins in and out of the foreground
group, which is relevant for Unixes where direct terminal control
depends on that.
TODO:
- [x] Generate local socket path according to OS conventions
- [x] Add support for passing `--local-socket` to the plugin executable
instead of `--stdio`, and communicating over that instead
- [x] Test plugins that were broken, including
[amtoine/nu_plugin_explore](https://github.com/amtoine/nu_plugin_explore)
- [x] Automatically upgrade to using local sockets when supported,
falling back if it doesn't work, transparently to the user without any
visible error messages
- Added protocol feature: `LocalSocket`
- [x] Reset preferred mode to `None` on `register`
- [x] Allow plugins to detect whether they're running on a local socket
and can use stdio freely, so that TUI plugins can just produce an error
message otherwise
- Implemented via `EngineInterface::is_using_stdio()`
- [x] Clean up foreground state when plugin command exits on the engine
side too, not just whole plugin
- [x] Make sure tests for failure cases work as intended
- `nu_plugin_stress_internals` added
# User-Facing Changes
- TUI plugins work
- Non-Rust plugins could optionally choose to use this
- This might behave differently, so will need to test it carefully
across different operating systems
# Tests + Formatting
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# After Submitting
- [ ] Document local socket option in plugin contrib docs
- [ ] Document how to do a terminal UI plugin in plugin contrib docs
- [ ] Document: `EnterForeground` engine call
- [ ] Document: `LeaveForeground` engine call
- [ ] Document: `LocalSocket` protocol feature
2024-04-15 20:28:18 +02:00
|
|
|
[[package]]
|
|
|
|
name = "nu_plugin_stress_internals"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
Local socket mode and foreground terminal control for plugins (#12448)
# Description
Adds support for running plugins using local socket communication
instead of stdio. This will be an optional thing that not all plugins
have to support.
This frees up stdio for use to make plugins that use stdio to create
terminal UIs, cc @amtoine, @fdncred.
This uses the [`interprocess`](https://crates.io/crates/interprocess)
crate (298 stars, MIT license, actively maintained), which seems to be
the best option for cross-platform local socket support in Rust. On
Windows, a local socket name is provided. On Unixes, it's a path. The
socket name is kept to a relatively small size because some operating
systems have pretty strict limits on the whole path (~100 chars), so on
macOS for example we prefer `/tmp/nu.{pid}.{hash64}.sock` where the hash
includes the plugin filename and timestamp to be unique enough.
This also adds an API for moving plugins in and out of the foreground
group, which is relevant for Unixes where direct terminal control
depends on that.
TODO:
- [x] Generate local socket path according to OS conventions
- [x] Add support for passing `--local-socket` to the plugin executable
instead of `--stdio`, and communicating over that instead
- [x] Test plugins that were broken, including
[amtoine/nu_plugin_explore](https://github.com/amtoine/nu_plugin_explore)
- [x] Automatically upgrade to using local sockets when supported,
falling back if it doesn't work, transparently to the user without any
visible error messages
- Added protocol feature: `LocalSocket`
- [x] Reset preferred mode to `None` on `register`
- [x] Allow plugins to detect whether they're running on a local socket
and can use stdio freely, so that TUI plugins can just produce an error
message otherwise
- Implemented via `EngineInterface::is_using_stdio()`
- [x] Clean up foreground state when plugin command exits on the engine
side too, not just whole plugin
- [x] Make sure tests for failure cases work as intended
- `nu_plugin_stress_internals` added
# User-Facing Changes
- TUI plugins work
- Non-Rust plugins could optionally choose to use this
- This might behave differently, so will need to test it carefully
across different operating systems
# Tests + Formatting
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# After Submitting
- [ ] Document local socket option in plugin contrib docs
- [ ] Document how to do a terminal UI plugin in plugin contrib docs
- [ ] Document: `EnterForeground` engine call
- [ ] Document: `LeaveForeground` engine call
- [ ] Document: `LocalSocket` protocol feature
2024-04-15 20:28:18 +02:00
|
|
|
dependencies = [
|
|
|
|
"interprocess",
|
|
|
|
"serde",
|
|
|
|
"serde_json",
|
|
|
|
]
|
|
|
|
|
2021-05-12 03:01:31 +02:00
|
|
|
[[package]]
|
|
|
|
name = "num"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.4.3"
|
2021-05-12 03:01:31 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23"
|
2021-05-12 03:01:31 +02:00
|
|
|
dependencies = [
|
Update tests Playground (#12134)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
It looks like `Playground` and `Director` in nu-tests-support haven't
gotten much love recently, so this PR is for updating them to work with
newer Nushell versions.
- `Director` adds a `--skip-plugins` argument before running `nu`, but
that doesn't exist anymore, so I removed it.
- `Director` also adds a `--perf` argument, which also doesn't exist
anymore. I added `--log-level info` instead to get the performance
output.
- It doesn't seem like anyone was using `playground::matchers`, and it
used the [hamcrest2](https://github.com/Valloric/hamcrest2-rust) crate,
which appears to be unmaintained, so I got rid of that (and the
`hamcrest2` dependency).
- Inside `tests/fixtures/playground/config` were two files in the old
config format: `default.toml` and `startup.toml`. I removed those too.
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
None, these changes only mess with tests.
# Tests + Formatting
<!--
Don't forget to add tests that cover your changes.
Make sure you've run and fixed any issues with these commands:
- `cargo fmt --all -- --check` to check standard code formatting (`cargo
fmt --all` applies these changes)
- `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- `cargo test --workspace` to check that all tests pass (on Windows make
sure to [enable developer
mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging))
- `cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
2024-03-09 05:31:21 +01:00
|
|
|
"num-bigint",
|
|
|
|
"num-complex",
|
2021-05-12 03:01:31 +02:00
|
|
|
"num-integer",
|
|
|
|
"num-iter",
|
Update tests Playground (#12134)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
It looks like `Playground` and `Director` in nu-tests-support haven't
gotten much love recently, so this PR is for updating them to work with
newer Nushell versions.
- `Director` adds a `--skip-plugins` argument before running `nu`, but
that doesn't exist anymore, so I removed it.
- `Director` also adds a `--perf` argument, which also doesn't exist
anymore. I added `--log-level info` instead to get the performance
output.
- It doesn't seem like anyone was using `playground::matchers`, and it
used the [hamcrest2](https://github.com/Valloric/hamcrest2-rust) crate,
which appears to be unmaintained, so I got rid of that (and the
`hamcrest2` dependency).
- Inside `tests/fixtures/playground/config` were two files in the old
config format: `default.toml` and `startup.toml`. I removed those too.
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
None, these changes only mess with tests.
# Tests + Formatting
<!--
Don't forget to add tests that cover your changes.
Make sure you've run and fixed any issues with these commands:
- `cargo fmt --all -- --check` to check standard code formatting (`cargo
fmt --all` applies these changes)
- `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- `cargo test --workspace` to check that all tests pass (on Windows make
sure to [enable developer
mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging))
- `cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
2024-03-09 05:31:21 +01:00
|
|
|
"num-rational",
|
2021-08-28 05:34:11 +02:00
|
|
|
"num-traits",
|
2021-05-12 03:01:31 +02:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "num-bigint"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.4.6"
|
2021-05-12 03:01:31 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9"
|
2021-05-12 03:01:31 +02:00
|
|
|
dependencies = [
|
|
|
|
"num-integer",
|
2021-08-28 05:34:11 +02:00
|
|
|
"num-traits",
|
2019-08-30 19:29:04 +02:00
|
|
|
]
|
|
|
|
|
2021-05-12 03:01:31 +02:00
|
|
|
[[package]]
|
|
|
|
name = "num-complex"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.4.6"
|
2021-05-12 03:01:31 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
|
2021-05-12 03:01:31 +02:00
|
|
|
dependencies = [
|
2021-08-28 05:34:11 +02:00
|
|
|
"num-traits",
|
2021-05-12 03:01:31 +02:00
|
|
|
]
|
|
|
|
|
2024-04-10 02:31:43 +02:00
|
|
|
[[package]]
|
|
|
|
name = "num-conv"
|
|
|
|
version = "0.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
|
|
|
|
|
2020-07-12 05:57:39 +02:00
|
|
|
[[package]]
|
|
|
|
name = "num-format"
|
2023-03-12 00:35:56 +01:00
|
|
|
version = "0.4.4"
|
2020-07-12 05:57:39 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-03-12 00:35:56 +01:00
|
|
|
checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3"
|
2020-07-12 05:57:39 +02:00
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"arrayvec 0.7.6",
|
2023-03-06 04:37:22 +01:00
|
|
|
"itoa",
|
2020-07-12 05:57:39 +02:00
|
|
|
]
|
|
|
|
|
2019-05-10 18:59:12 +02:00
|
|
|
[[package]]
|
|
|
|
name = "num-integer"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "0.1.46"
|
2019-05-10 18:59:12 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
|
2019-05-10 18:59:12 +02:00
|
|
|
dependencies = [
|
2021-08-28 05:34:11 +02:00
|
|
|
"num-traits",
|
2019-05-22 09:12:03 +02:00
|
|
|
]
|
|
|
|
|
2019-07-05 09:53:09 +02:00
|
|
|
[[package]]
|
|
|
|
name = "num-iter"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.1.45"
|
2019-07-05 09:53:09 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf"
|
2019-07-05 09:53:09 +02:00
|
|
|
dependencies = [
|
2020-11-22 01:37:16 +01:00
|
|
|
"autocfg",
|
2019-11-28 03:21:00 +01:00
|
|
|
"num-integer",
|
2021-08-28 05:34:11 +02:00
|
|
|
"num-traits",
|
2019-07-05 09:53:09 +02:00
|
|
|
]
|
|
|
|
|
2020-12-15 20:27:21 +01:00
|
|
|
[[package]]
|
|
|
|
name = "num-rational"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.4.2"
|
2021-05-12 03:01:31 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824"
|
2021-05-12 03:01:31 +02:00
|
|
|
dependencies = [
|
Update tests Playground (#12134)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
It looks like `Playground` and `Director` in nu-tests-support haven't
gotten much love recently, so this PR is for updating them to work with
newer Nushell versions.
- `Director` adds a `--skip-plugins` argument before running `nu`, but
that doesn't exist anymore, so I removed it.
- `Director` also adds a `--perf` argument, which also doesn't exist
anymore. I added `--log-level info` instead to get the performance
output.
- It doesn't seem like anyone was using `playground::matchers`, and it
used the [hamcrest2](https://github.com/Valloric/hamcrest2-rust) crate,
which appears to be unmaintained, so I got rid of that (and the
`hamcrest2` dependency).
- Inside `tests/fixtures/playground/config` were two files in the old
config format: `default.toml` and `startup.toml`. I removed those too.
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
None, these changes only mess with tests.
# Tests + Formatting
<!--
Don't forget to add tests that cover your changes.
Make sure you've run and fixed any issues with these commands:
- `cargo fmt --all -- --check` to check standard code formatting (`cargo
fmt --all` applies these changes)
- `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- `cargo test --workspace` to check that all tests pass (on Windows make
sure to [enable developer
mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging))
- `cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
2024-03-09 05:31:21 +01:00
|
|
|
"num-bigint",
|
2020-12-15 20:27:21 +01:00
|
|
|
"num-integer",
|
2021-08-28 05:34:11 +02:00
|
|
|
"num-traits",
|
2019-06-03 09:41:28 +02:00
|
|
|
]
|
|
|
|
|
2019-05-10 18:59:12 +02:00
|
|
|
[[package]]
|
|
|
|
name = "num-traits"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.2.19"
|
2019-05-10 18:59:12 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
|
2019-05-22 09:12:03 +02:00
|
|
|
dependencies = [
|
2020-11-22 01:37:16 +01:00
|
|
|
"autocfg",
|
2021-05-27 07:09:48 +02:00
|
|
|
"libm",
|
2019-05-22 09:12:03 +02:00
|
|
|
]
|
2019-05-10 18:59:12 +02:00
|
|
|
|
2022-07-26 04:09:32 +02:00
|
|
|
[[package]]
|
|
|
|
name = "num_threads"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "0.1.7"
|
2022-07-26 04:09:32 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"
|
2022-07-26 04:09:32 +02:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
2023-01-11 02:57:48 +01:00
|
|
|
[[package]]
|
|
|
|
name = "number_prefix"
|
|
|
|
version = "0.4.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
|
|
|
|
|
create `nuon` crate from `from nuon` and `to nuon` (#12553)
# Description
playing with the NUON format in Rust code in some plugins, we agreed
with the team it was a great time to create a standalone NUON format to
allow Rust devs to use this Nushell file format.
> **Note**
> this PR almost copy-pastes the code from
`nu_commands/src/formats/from/nuon.rs` and
`nu_commands/src/formats/to/nuon.rs` to `nuon/src/from.rs` and
`nuon/src/to.rs`, with minor tweaks to make then standalone functions,
e.g. remove the rest of the command implementations
### TODO
- [x] add tests
- [x] add documentation
# User-Facing Changes
devs will have access to a new crate, `nuon`, and two functions,
`from_nuon` and `to_nuon`
```rust
from_nuon(
input: &str,
span: Option<Span>,
) -> Result<Value, ShellError>
```
```rust
to_nuon(
input: &Value,
raw: bool,
tabs: Option<usize>,
indent: Option<usize>,
span: Option<Span>,
) -> Result<String, ShellError>
```
# Tests + Formatting
i've basically taken all the tests from
`crates/nu-command/tests/format_conversions/nuon.rs` and converted them
to use `from_nuon` and `to_nuon` instead of Nushell commands
- i've created a `nuon_end_to_end` to run both conversions with an
optional middle value to check that all is fine
> **Note**
> the `nuon::tests::read_code_should_fail_rather_than_panic` test does
give different results locally and in the CI...
> i've left it ignored with comments to help future us :)
# After Submitting
mention that in the release notes for sure!!
2024-04-19 13:54:16 +02:00
|
|
|
[[package]]
|
|
|
|
name = "nuon"
|
2024-10-20 23:12:41 +02:00
|
|
|
version = "0.99.2"
|
create `nuon` crate from `from nuon` and `to nuon` (#12553)
# Description
playing with the NUON format in Rust code in some plugins, we agreed
with the team it was a great time to create a standalone NUON format to
allow Rust devs to use this Nushell file format.
> **Note**
> this PR almost copy-pastes the code from
`nu_commands/src/formats/from/nuon.rs` and
`nu_commands/src/formats/to/nuon.rs` to `nuon/src/from.rs` and
`nuon/src/to.rs`, with minor tweaks to make then standalone functions,
e.g. remove the rest of the command implementations
### TODO
- [x] add tests
- [x] add documentation
# User-Facing Changes
devs will have access to a new crate, `nuon`, and two functions,
`from_nuon` and `to_nuon`
```rust
from_nuon(
input: &str,
span: Option<Span>,
) -> Result<Value, ShellError>
```
```rust
to_nuon(
input: &Value,
raw: bool,
tabs: Option<usize>,
indent: Option<usize>,
span: Option<Span>,
) -> Result<String, ShellError>
```
# Tests + Formatting
i've basically taken all the tests from
`crates/nu-command/tests/format_conversions/nuon.rs` and converted them
to use `from_nuon` and `to_nuon` instead of Nushell commands
- i've created a `nuon_end_to_end` to run both conversions with an
optional middle value to check that all is fine
> **Note**
> the `nuon::tests::read_code_should_fail_rather_than_panic` test does
give different results locally and in the CI...
> i've left it ignored with comments to help future us :)
# After Submitting
mention that in the release notes for sure!!
2024-04-19 13:54:16 +02:00
|
|
|
dependencies = [
|
|
|
|
"chrono",
|
|
|
|
"fancy-regex",
|
|
|
|
"nu-engine",
|
|
|
|
"nu-parser",
|
|
|
|
"nu-protocol",
|
|
|
|
"once_cell",
|
|
|
|
]
|
|
|
|
|
2024-01-20 15:04:06 +01:00
|
|
|
[[package]]
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
name = "objc-sys"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.3.5"
|
2024-01-20 15:04:06 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "objc2"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.5.2"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804"
|
2024-01-20 15:04:06 +01:00
|
|
|
dependencies = [
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
"objc-sys",
|
|
|
|
"objc2-encode",
|
2024-01-20 15:04:06 +01:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
name = "objc2-app-kit"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.2.2"
|
2024-01-20 15:04:06 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff"
|
2024-01-20 15:04:06 +01:00
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"bitflags 2.6.0",
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
"block2",
|
2024-08-24 00:35:42 +02:00
|
|
|
"libc",
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
"objc2",
|
|
|
|
"objc2-core-data",
|
2024-08-24 00:35:42 +02:00
|
|
|
"objc2-core-image",
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
"objc2-foundation",
|
2024-08-24 00:35:42 +02:00
|
|
|
"objc2-quartz-core",
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "objc2-core-data"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.2.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef"
|
|
|
|
dependencies = [
|
|
|
|
"bitflags 2.6.0",
|
|
|
|
"block2",
|
|
|
|
"objc2",
|
|
|
|
"objc2-foundation",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "objc2-core-image"
|
|
|
|
version = "0.2.2"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
dependencies = [
|
|
|
|
"block2",
|
|
|
|
"objc2",
|
|
|
|
"objc2-foundation",
|
2024-08-24 00:35:42 +02:00
|
|
|
"objc2-metal",
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "objc2-encode"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "4.0.3"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "7891e71393cd1f227313c9379a26a584ff3d7e6e7159e988851f0934c993f0f8"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "objc2-foundation"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.2.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8"
|
|
|
|
dependencies = [
|
|
|
|
"bitflags 2.6.0",
|
|
|
|
"block2",
|
|
|
|
"libc",
|
|
|
|
"objc2",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "objc2-metal"
|
|
|
|
version = "0.2.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6"
|
|
|
|
dependencies = [
|
|
|
|
"bitflags 2.6.0",
|
|
|
|
"block2",
|
|
|
|
"objc2",
|
|
|
|
"objc2-foundation",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "objc2-quartz-core"
|
|
|
|
version = "0.2.2"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"bitflags 2.6.0",
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
"block2",
|
|
|
|
"objc2",
|
2024-08-24 00:35:42 +02:00
|
|
|
"objc2-foundation",
|
|
|
|
"objc2-metal",
|
2024-01-20 15:04:06 +01:00
|
|
|
]
|
|
|
|
|
2023-07-06 17:31:31 +02:00
|
|
|
[[package]]
|
|
|
|
name = "object"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.36.3"
|
2023-07-06 17:31:31 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9"
|
2023-07-06 17:31:31 +02:00
|
|
|
dependencies = [
|
|
|
|
"memchr",
|
|
|
|
]
|
|
|
|
|
2022-10-22 18:51:52 +02:00
|
|
|
[[package]]
|
|
|
|
name = "omnipath"
|
2023-05-18 01:32:28 +02:00
|
|
|
version = "0.1.6"
|
2022-10-22 18:51:52 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-05-18 01:32:28 +02:00
|
|
|
checksum = "80adb31078122c880307e9cdfd4e3361e6545c319f9b9dcafcb03acd3b51a575"
|
2022-10-22 18:51:52 +02:00
|
|
|
|
2019-10-08 15:47:30 +02:00
|
|
|
[[package]]
|
|
|
|
name = "once_cell"
|
2024-10-02 08:15:10 +02:00
|
|
|
version = "1.20.1"
|
2019-10-08 15:47:30 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-10-02 08:15:10 +02:00
|
|
|
checksum = "82881c4be219ab5faaf2ad5e5e5ecdff8c66bd7402ca3160975c93b24961afd1"
|
|
|
|
dependencies = [
|
|
|
|
"portable-atomic",
|
|
|
|
]
|
2019-10-08 15:47:30 +02:00
|
|
|
|
2023-01-03 19:47:37 +01:00
|
|
|
[[package]]
|
|
|
|
name = "open"
|
2024-07-17 03:47:17 +02:00
|
|
|
version = "5.3.0"
|
2023-01-03 19:47:37 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-07-17 03:47:17 +02:00
|
|
|
checksum = "61a877bf6abd716642a53ef1b89fb498923a4afca5c754f9050b4d081c05c4b3"
|
2023-01-03 19:47:37 +01:00
|
|
|
dependencies = [
|
2023-04-17 07:05:40 +02:00
|
|
|
"is-wsl",
|
2023-06-29 15:30:07 +02:00
|
|
|
"libc",
|
2023-01-03 19:47:37 +01:00
|
|
|
"pathdiff",
|
|
|
|
]
|
|
|
|
|
2020-01-17 21:35:48 +01:00
|
|
|
[[package]]
|
2020-03-20 08:53:49 +01:00
|
|
|
name = "openssl"
|
2024-07-25 13:35:19 +02:00
|
|
|
version = "0.10.66"
|
2020-03-20 08:53:49 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-07-25 13:35:19 +02:00
|
|
|
checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1"
|
2020-03-20 08:53:49 +01:00
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"bitflags 2.6.0",
|
2023-07-05 14:14:55 +02:00
|
|
|
"cfg-if",
|
2020-03-20 08:53:49 +01:00
|
|
|
"foreign-types",
|
|
|
|
"libc",
|
2021-05-12 03:01:31 +02:00
|
|
|
"once_cell",
|
2022-05-25 19:13:14 +02:00
|
|
|
"openssl-macros",
|
2020-03-20 08:53:49 +01:00
|
|
|
"openssl-sys",
|
|
|
|
]
|
|
|
|
|
2022-05-25 19:13:14 +02:00
|
|
|
[[package]]
|
|
|
|
name = "openssl-macros"
|
2023-04-14 22:14:57 +02:00
|
|
|
version = "0.1.1"
|
2022-05-25 19:13:14 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-04-14 22:14:57 +02:00
|
|
|
checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
|
2022-05-25 19:13:14 +02:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2024-08-24 00:35:42 +02:00
|
|
|
"syn 2.0.75",
|
2022-05-25 19:13:14 +02:00
|
|
|
]
|
|
|
|
|
2019-06-01 23:11:28 +02:00
|
|
|
[[package]]
|
|
|
|
name = "openssl-probe"
|
2022-02-08 14:28:21 +01:00
|
|
|
version = "0.1.5"
|
2019-06-01 23:11:28 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-02-08 14:28:21 +01:00
|
|
|
checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
|
2019-06-01 23:11:28 +02:00
|
|
|
|
2022-04-28 02:25:09 +02:00
|
|
|
[[package]]
|
|
|
|
name = "openssl-src"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "300.3.1+3.3.1"
|
2022-04-28 02:25:09 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "7259953d42a81bf137fbbd73bd30a8e1914d6dce43c2b90ed575783a22608b91"
|
2022-04-28 02:25:09 +02:00
|
|
|
dependencies = [
|
|
|
|
"cc",
|
|
|
|
]
|
|
|
|
|
2019-06-01 23:11:28 +02:00
|
|
|
[[package]]
|
|
|
|
name = "openssl-sys"
|
2024-07-25 13:35:19 +02:00
|
|
|
version = "0.9.103"
|
2019-06-01 23:11:28 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-07-25 13:35:19 +02:00
|
|
|
checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6"
|
2019-06-01 23:11:28 +02:00
|
|
|
dependencies = [
|
2019-11-28 03:21:00 +01:00
|
|
|
"cc",
|
|
|
|
"libc",
|
2022-04-28 02:25:09 +02:00
|
|
|
"openssl-src",
|
2019-11-28 03:21:00 +01:00
|
|
|
"pkg-config",
|
|
|
|
"vcpkg",
|
2019-06-01 23:11:28 +02:00
|
|
|
]
|
|
|
|
|
2024-07-16 14:16:26 +02:00
|
|
|
[[package]]
|
|
|
|
name = "option-ext"
|
|
|
|
version = "0.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
|
|
|
|
|
2023-02-09 12:47:45 +01:00
|
|
|
[[package]]
|
|
|
|
name = "ordered-multimap"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "0.7.3"
|
2023-02-09 12:47:45 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "49203cdcae0030493bad186b28da2fa25645fa276a51b6fec8010d281e02ef79"
|
2023-02-09 12:47:45 +01:00
|
|
|
dependencies = [
|
|
|
|
"dlv-list",
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
"hashbrown 0.14.5",
|
2023-02-09 12:47:45 +01:00
|
|
|
]
|
|
|
|
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
[[package]]
|
|
|
|
name = "os_display"
|
|
|
|
version = "0.1.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "7a6229bad892b46b0dcfaaeb18ad0d2e56400f5aaea05b768bde96e73676cf75"
|
|
|
|
dependencies = [
|
|
|
|
"unicode-width",
|
|
|
|
]
|
|
|
|
|
2023-04-28 14:55:48 +02:00
|
|
|
[[package]]
|
|
|
|
name = "os_pipe"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.2.1"
|
2023-04-28 14:55:48 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "5ffd2b0a5634335b135d5728d84c5e0fd726954b87111f7506a61c502280d982"
|
2023-04-28 14:55:48 +02:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
2024-08-24 00:35:42 +02:00
|
|
|
"windows-sys 0.59.0",
|
2023-04-28 14:55:48 +02:00
|
|
|
]
|
|
|
|
|
2020-06-27 09:54:31 +02:00
|
|
|
[[package]]
|
2021-09-20 23:37:26 +02:00
|
|
|
name = "owo-colors"
|
2024-02-08 02:26:18 +01:00
|
|
|
version = "4.0.0"
|
2021-09-20 23:37:26 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-02-08 02:26:18 +01:00
|
|
|
checksum = "caff54706df99d2a78a5a4e3455ff45448d81ef1bb63c22cd14052ca0e993a3f"
|
2021-09-20 23:37:26 +02:00
|
|
|
|
2022-07-06 21:57:40 +02:00
|
|
|
[[package]]
|
|
|
|
name = "papergrid"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.12.0"
|
2022-07-22 17:33:29 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "c7419ad52a7de9b60d33e11085a0fe3df1fbd5926aa3f93d3dd53afbc9e86725"
|
2022-07-06 21:57:40 +02:00
|
|
|
dependencies = [
|
2023-07-10 09:24:08 +02:00
|
|
|
"ansi-str",
|
2022-10-03 18:40:16 +02:00
|
|
|
"ansitok",
|
2022-07-06 21:57:40 +02:00
|
|
|
"bytecount",
|
2022-07-22 17:33:29 +02:00
|
|
|
"fnv",
|
2022-07-06 21:57:40 +02:00
|
|
|
"unicode-width",
|
|
|
|
]
|
|
|
|
|
2022-03-01 13:05:46 +01:00
|
|
|
[[package]]
|
|
|
|
name = "parking_lot"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.12.3"
|
2022-03-01 13:05:46 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
|
2022-03-01 13:05:46 +01:00
|
|
|
dependencies = [
|
|
|
|
"lock_api",
|
2023-08-30 00:13:34 +02:00
|
|
|
"parking_lot_core",
|
2019-05-29 17:26:45 +02:00
|
|
|
]
|
|
|
|
|
2022-03-01 13:05:46 +01:00
|
|
|
[[package]]
|
|
|
|
name = "parking_lot_core"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
version = "0.9.10"
|
2022-03-01 13:05:46 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
|
2022-03-01 13:05:46 +01:00
|
|
|
dependencies = [
|
2023-07-05 14:14:55 +02:00
|
|
|
"cfg-if",
|
2022-03-01 13:05:46 +01:00
|
|
|
"libc",
|
2024-08-24 00:35:42 +02:00
|
|
|
"redox_syscall",
|
2022-03-01 13:05:46 +01:00
|
|
|
"smallvec",
|
2024-08-24 00:35:42 +02:00
|
|
|
"windows-targets 0.52.6",
|
2022-03-01 13:05:46 +01:00
|
|
|
]
|
|
|
|
|
2021-05-18 21:33:10 +02:00
|
|
|
[[package]]
|
2022-11-09 23:07:38 +01:00
|
|
|
name = "parquet-format-safe"
|
|
|
|
version = "0.2.4"
|
2021-07-05 01:46:53 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-11-09 23:07:38 +01:00
|
|
|
checksum = "1131c54b167dd4e4799ce762e1ab01549ebb94d5bdd13e6ec1b467491c378e1f"
|
2021-05-18 21:33:10 +02:00
|
|
|
dependencies = [
|
2021-09-15 21:10:12 +02:00
|
|
|
"async-trait",
|
2021-11-23 09:14:40 +01:00
|
|
|
"futures",
|
2021-05-18 21:33:10 +02:00
|
|
|
]
|
|
|
|
|
2020-08-05 23:34:28 +02:00
|
|
|
[[package]]
|
|
|
|
name = "parse-zoneinfo"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
version = "0.3.1"
|
2020-08-05 23:34:28 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
checksum = "1f2a05b18d44e2957b88f96ba460715e295bc1d7510468a2f3d3b44535d26c24"
|
2020-08-05 23:34:28 +02:00
|
|
|
dependencies = [
|
2021-07-09 21:28:07 +02:00
|
|
|
"regex",
|
2020-08-05 23:34:28 +02:00
|
|
|
]
|
|
|
|
|
2022-08-21 13:13:38 +02:00
|
|
|
[[package]]
|
|
|
|
name = "paste"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.0.15"
|
2022-08-21 13:13:38 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
|
2022-08-21 13:13:38 +02:00
|
|
|
|
2020-06-16 23:17:32 +02:00
|
|
|
[[package]]
|
2021-08-28 05:34:11 +02:00
|
|
|
name = "pathdiff"
|
2021-12-02 19:05:38 +01:00
|
|
|
version = "0.2.1"
|
2021-08-28 05:34:11 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2021-12-02 19:05:38 +01:00
|
|
|
checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
|
2021-08-28 05:34:11 +02:00
|
|
|
|
2019-07-29 09:46:24 +02:00
|
|
|
[[package]]
|
|
|
|
name = "percent-encoding"
|
2023-12-06 01:09:34 +01:00
|
|
|
version = "2.3.1"
|
2019-07-29 09:46:24 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-12-06 01:09:34 +01:00
|
|
|
checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
|
2019-07-29 09:46:24 +02:00
|
|
|
|
2020-10-12 15:03:00 +02:00
|
|
|
[[package]]
|
|
|
|
name = "peresil"
|
|
|
|
version = "0.3.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f658886ed52e196e850cfbbfddab9eaa7f6d90dd0929e264c31e5cec07e09e57"
|
|
|
|
|
2023-11-16 00:43:37 +01:00
|
|
|
[[package]]
|
|
|
|
name = "pest"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "2.7.11"
|
2023-11-16 00:43:37 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95"
|
2023-11-16 00:43:37 +01:00
|
|
|
dependencies = [
|
|
|
|
"memchr",
|
|
|
|
"thiserror",
|
|
|
|
"ucd-trie",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "pest_derive"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "2.7.11"
|
2023-11-16 00:43:37 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "2a548d2beca6773b1c244554d36fcf8548a8a58e74156968211567250e48e49a"
|
2023-11-16 00:43:37 +01:00
|
|
|
dependencies = [
|
|
|
|
"pest",
|
|
|
|
"pest_generator",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "pest_generator"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "2.7.11"
|
2023-11-16 00:43:37 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "3c93a82e8d145725dcbaf44e5ea887c8a869efdcc28706df2d08c69e17077183"
|
2023-11-16 00:43:37 +01:00
|
|
|
dependencies = [
|
|
|
|
"pest",
|
|
|
|
"pest_meta",
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2024-08-24 00:35:42 +02:00
|
|
|
"syn 2.0.75",
|
2023-11-16 00:43:37 +01:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "pest_meta"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "2.7.11"
|
2023-11-16 00:43:37 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "a941429fea7e08bedec25e4f6785b6ffaacc6b755da98df5ef3e7dcf4a124c4f"
|
2023-11-16 00:43:37 +01:00
|
|
|
dependencies = [
|
|
|
|
"once_cell",
|
|
|
|
"pest",
|
|
|
|
"sha2",
|
|
|
|
]
|
|
|
|
|
2024-01-20 15:04:06 +01:00
|
|
|
[[package]]
|
|
|
|
name = "petgraph"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.6.5"
|
2024-01-20 15:04:06 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db"
|
2024-01-20 15:04:06 +01:00
|
|
|
dependencies = [
|
|
|
|
"fixedbitset",
|
|
|
|
"indexmap",
|
|
|
|
]
|
|
|
|
|
2020-11-03 22:46:42 +01:00
|
|
|
[[package]]
|
2021-11-02 04:08:05 +01:00
|
|
|
name = "phf"
|
2022-02-04 07:47:18 +01:00
|
|
|
version = "0.10.1"
|
2021-11-02 04:08:05 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-02-04 07:47:18 +01:00
|
|
|
checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259"
|
2021-11-02 04:08:05 +01:00
|
|
|
dependencies = [
|
2022-02-01 19:45:48 +01:00
|
|
|
"phf_shared 0.10.0",
|
|
|
|
]
|
|
|
|
|
2022-07-26 04:09:32 +02:00
|
|
|
[[package]]
|
|
|
|
name = "phf"
|
2023-07-06 17:31:31 +02:00
|
|
|
version = "0.11.2"
|
2022-07-26 04:09:32 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-07-06 17:31:31 +02:00
|
|
|
checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
|
2022-07-26 04:09:32 +02:00
|
|
|
dependencies = [
|
2023-07-10 07:28:36 +02:00
|
|
|
"phf_macros",
|
2023-07-06 17:31:31 +02:00
|
|
|
"phf_shared 0.11.2",
|
2022-07-26 04:09:32 +02:00
|
|
|
]
|
|
|
|
|
2021-11-02 04:08:05 +01:00
|
|
|
[[package]]
|
|
|
|
name = "phf_codegen"
|
|
|
|
version = "0.10.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd"
|
|
|
|
dependencies = [
|
2022-02-01 19:45:48 +01:00
|
|
|
"phf_generator 0.10.0",
|
|
|
|
"phf_shared 0.10.0",
|
2020-11-03 22:46:42 +01:00
|
|
|
]
|
|
|
|
|
2022-07-26 04:09:32 +02:00
|
|
|
[[package]]
|
|
|
|
name = "phf_codegen"
|
2023-07-06 17:31:31 +02:00
|
|
|
version = "0.11.2"
|
2022-07-26 04:09:32 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-07-06 17:31:31 +02:00
|
|
|
checksum = "e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a"
|
2022-07-26 04:09:32 +02:00
|
|
|
dependencies = [
|
2023-07-06 17:31:31 +02:00
|
|
|
"phf_generator 0.11.2",
|
|
|
|
"phf_shared 0.11.2",
|
2022-07-26 04:09:32 +02:00
|
|
|
]
|
|
|
|
|
2020-11-03 22:46:42 +01:00
|
|
|
[[package]]
|
2021-11-02 04:08:05 +01:00
|
|
|
name = "phf_generator"
|
|
|
|
version = "0.10.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6"
|
|
|
|
dependencies = [
|
2022-02-01 19:45:48 +01:00
|
|
|
"phf_shared 0.10.0",
|
2023-07-10 07:28:36 +02:00
|
|
|
"rand",
|
2022-02-01 19:45:48 +01:00
|
|
|
]
|
|
|
|
|
2022-07-26 04:09:32 +02:00
|
|
|
[[package]]
|
|
|
|
name = "phf_generator"
|
2023-07-06 17:31:31 +02:00
|
|
|
version = "0.11.2"
|
2022-07-26 04:09:32 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-07-06 17:31:31 +02:00
|
|
|
checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
|
2022-07-26 04:09:32 +02:00
|
|
|
dependencies = [
|
2023-07-06 17:31:31 +02:00
|
|
|
"phf_shared 0.11.2",
|
2023-07-10 07:28:36 +02:00
|
|
|
"rand",
|
2022-07-26 04:09:32 +02:00
|
|
|
]
|
|
|
|
|
2022-02-01 19:45:48 +01:00
|
|
|
[[package]]
|
2020-11-03 22:46:42 +01:00
|
|
|
name = "phf_macros"
|
2023-07-10 07:28:36 +02:00
|
|
|
version = "0.11.2"
|
2020-11-03 22:46:42 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-07-10 07:28:36 +02:00
|
|
|
checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b"
|
2020-11-03 22:46:42 +01:00
|
|
|
dependencies = [
|
2023-07-10 07:28:36 +02:00
|
|
|
"phf_generator 0.11.2",
|
|
|
|
"phf_shared 0.11.2",
|
2020-11-03 22:46:42 +01:00
|
|
|
"proc-macro2",
|
2021-08-28 05:34:11 +02:00
|
|
|
"quote",
|
2024-08-24 00:35:42 +02:00
|
|
|
"syn 2.0.75",
|
2020-11-03 22:46:42 +01:00
|
|
|
]
|
|
|
|
|
2020-11-22 01:37:16 +01:00
|
|
|
[[package]]
|
2021-11-02 04:08:05 +01:00
|
|
|
name = "phf_shared"
|
|
|
|
version = "0.10.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
|
2022-07-26 04:09:32 +02:00
|
|
|
dependencies = [
|
|
|
|
"siphasher",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "phf_shared"
|
2023-07-06 17:31:31 +02:00
|
|
|
version = "0.11.2"
|
2022-07-26 04:09:32 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-07-06 17:31:31 +02:00
|
|
|
checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
|
2021-11-02 04:08:05 +01:00
|
|
|
dependencies = [
|
|
|
|
"siphasher",
|
|
|
|
]
|
|
|
|
|
2021-11-23 09:14:40 +01:00
|
|
|
[[package]]
|
|
|
|
name = "pin-project-lite"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "0.2.14"
|
2021-11-23 09:14:40 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
|
2020-01-01 07:45:27 +01:00
|
|
|
|
2019-05-23 06:30:43 +02:00
|
|
|
[[package]]
|
|
|
|
name = "pin-utils"
|
2020-05-16 05:18:24 +02:00
|
|
|
version = "0.1.0"
|
2019-05-23 06:30:43 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-05-16 05:18:24 +02:00
|
|
|
checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
|
2019-05-23 06:30:43 +02:00
|
|
|
|
2019-05-18 03:24:13 +02:00
|
|
|
[[package]]
|
|
|
|
name = "pkg-config"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "0.3.30"
|
2019-05-18 03:24:13 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
|
2019-05-18 03:24:13 +02:00
|
|
|
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
[[package]]
|
|
|
|
name = "plain"
|
|
|
|
version = "0.2.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6"
|
|
|
|
|
2022-02-27 17:10:29 +01:00
|
|
|
[[package]]
|
|
|
|
name = "planus"
|
2022-08-12 14:10:36 +02:00
|
|
|
version = "0.3.1"
|
2022-02-27 17:10:29 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-08-12 14:10:36 +02:00
|
|
|
checksum = "fc1691dd09e82f428ce8d6310bd6d5da2557c82ff17694d2a32cad7242aea89f"
|
2022-02-27 17:10:29 +01:00
|
|
|
dependencies = [
|
|
|
|
"array-init-cursor",
|
|
|
|
]
|
|
|
|
|
2024-03-25 22:51:50 +01:00
|
|
|
[[package]]
|
|
|
|
name = "platform-info"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
version = "2.0.3"
|
2024-03-25 22:51:50 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
checksum = "d5ff316b9c4642feda973c18f0decd6c8b0919d4722566f6e4337cce0dd88217"
|
2024-03-25 22:51:50 +01:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
"winapi",
|
|
|
|
]
|
|
|
|
|
2024-08-05 23:07:15 +02:00
|
|
|
[[package]]
|
|
|
|
name = "plist"
|
|
|
|
version = "1.7.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "42cf17e9a1800f5f396bc67d193dc9411b59012a5876445ef450d449881e1016"
|
|
|
|
dependencies = [
|
|
|
|
"base64 0.22.1",
|
|
|
|
"indexmap",
|
|
|
|
"quick-xml 0.32.0",
|
|
|
|
"serde",
|
|
|
|
"time",
|
|
|
|
]
|
|
|
|
|
2024-04-17 13:35:09 +02:00
|
|
|
[[package]]
|
|
|
|
name = "polars"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.41.3"
|
2024-04-17 13:35:09 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "8e3351ea4570e54cd556e6755b78fe7a2c85368d820c0307cca73c96e796a7ba"
|
2024-04-17 13:35:09 +02:00
|
|
|
dependencies = [
|
|
|
|
"getrandom",
|
2024-04-17 19:50:17 +02:00
|
|
|
"polars-arrow",
|
|
|
|
"polars-core",
|
|
|
|
"polars-error",
|
|
|
|
"polars-io",
|
|
|
|
"polars-lazy",
|
|
|
|
"polars-ops",
|
|
|
|
"polars-parquet",
|
|
|
|
"polars-sql",
|
|
|
|
"polars-time",
|
|
|
|
"polars-utils",
|
2023-01-13 16:27:37 +01:00
|
|
|
"version_check",
|
2021-05-12 03:01:31 +02:00
|
|
|
]
|
|
|
|
|
2024-04-17 13:35:09 +02:00
|
|
|
[[package]]
|
|
|
|
name = "polars-arrow"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.41.3"
|
2024-04-17 13:35:09 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "ba65fc4bcabbd64fca01fd30e759f8b2043f0963c57619e331d4b534576c0b47"
|
2024-04-17 13:35:09 +02:00
|
|
|
dependencies = [
|
|
|
|
"ahash 0.8.11",
|
|
|
|
"atoi",
|
|
|
|
"atoi_simd",
|
|
|
|
"avro-schema",
|
|
|
|
"bytemuck",
|
|
|
|
"chrono",
|
|
|
|
"chrono-tz 0.8.6",
|
|
|
|
"dyn-clone",
|
|
|
|
"either",
|
|
|
|
"ethnum",
|
|
|
|
"fast-float",
|
|
|
|
"foreign_vec",
|
|
|
|
"futures",
|
|
|
|
"getrandom",
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
"hashbrown 0.14.5",
|
2024-04-17 13:35:09 +02:00
|
|
|
"itoa",
|
|
|
|
"itoap",
|
|
|
|
"lz4",
|
|
|
|
"multiversion",
|
|
|
|
"num-traits",
|
|
|
|
"polars-arrow-format",
|
2024-04-17 19:50:17 +02:00
|
|
|
"polars-error",
|
|
|
|
"polars-utils",
|
2023-12-06 01:09:34 +01:00
|
|
|
"ryu",
|
2022-05-16 09:27:43 +02:00
|
|
|
"serde",
|
2023-12-06 01:09:34 +01:00
|
|
|
"simdutf8",
|
|
|
|
"streaming-iterator",
|
|
|
|
"strength_reduce",
|
2024-01-24 16:27:06 +01:00
|
|
|
"version_check",
|
2023-12-06 01:09:34 +01:00
|
|
|
"zstd",
|
2021-05-12 03:01:31 +02:00
|
|
|
]
|
|
|
|
|
2024-02-13 13:27:30 +01:00
|
|
|
[[package]]
|
|
|
|
name = "polars-arrow-format"
|
|
|
|
version = "0.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "19b0ef2474af9396b19025b189d96e992311e6a47f90c53cd998b36c4c64b84c"
|
|
|
|
dependencies = [
|
|
|
|
"planus",
|
|
|
|
"serde",
|
|
|
|
]
|
|
|
|
|
2024-04-17 13:35:09 +02:00
|
|
|
[[package]]
|
|
|
|
name = "polars-compute"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.41.3"
|
2024-04-17 13:35:09 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "9f099516af30ac9ae4b4480f4ad02aa017d624f2f37b7a16ad4e9ba52f7e5269"
|
2024-04-17 13:35:09 +02:00
|
|
|
dependencies = [
|
|
|
|
"bytemuck",
|
|
|
|
"either",
|
|
|
|
"num-traits",
|
2024-04-17 19:50:17 +02:00
|
|
|
"polars-arrow",
|
|
|
|
"polars-error",
|
|
|
|
"polars-utils",
|
2024-04-13 20:00:04 +02:00
|
|
|
"strength_reduce",
|
2024-01-24 16:27:06 +01:00
|
|
|
"version_check",
|
|
|
|
]
|
|
|
|
|
2024-04-17 13:35:09 +02:00
|
|
|
[[package]]
|
|
|
|
name = "polars-core"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.41.3"
|
2024-04-17 13:35:09 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "b2439484be228b8c302328e2f953e64cfd93930636e5c7ceed90339ece7fef6c"
|
2021-05-12 03:01:31 +02:00
|
|
|
dependencies = [
|
2024-04-10 02:31:43 +02:00
|
|
|
"ahash 0.8.11",
|
2024-08-24 00:35:42 +02:00
|
|
|
"bitflags 2.6.0",
|
2023-12-06 01:09:34 +01:00
|
|
|
"bytemuck",
|
2022-03-19 12:13:34 +01:00
|
|
|
"chrono",
|
2024-04-13 20:00:04 +02:00
|
|
|
"chrono-tz 0.8.6",
|
2024-04-10 02:31:43 +02:00
|
|
|
"comfy-table",
|
2023-05-08 17:42:53 +02:00
|
|
|
"either",
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
"hashbrown 0.14.5",
|
2023-12-06 01:09:34 +01:00
|
|
|
"indexmap",
|
2023-05-08 17:42:53 +02:00
|
|
|
"num-traits",
|
2022-06-15 18:45:03 +02:00
|
|
|
"once_cell",
|
2024-04-17 19:50:17 +02:00
|
|
|
"polars-arrow",
|
|
|
|
"polars-compute",
|
|
|
|
"polars-error",
|
|
|
|
"polars-row",
|
|
|
|
"polars-utils",
|
2023-07-10 07:28:36 +02:00
|
|
|
"rand",
|
2021-05-27 07:09:48 +02:00
|
|
|
"rand_distr",
|
2021-05-12 03:01:31 +02:00
|
|
|
"rayon",
|
2021-07-09 21:28:07 +02:00
|
|
|
"regex",
|
2021-08-28 05:34:11 +02:00
|
|
|
"serde",
|
2021-07-29 23:16:30 +02:00
|
|
|
"serde_json",
|
2022-08-12 14:10:36 +02:00
|
|
|
"smartstring",
|
2021-05-12 03:01:31 +02:00
|
|
|
"thiserror",
|
2023-08-30 00:13:34 +02:00
|
|
|
"version_check",
|
2023-01-13 16:27:37 +01:00
|
|
|
"xxhash-rust",
|
2021-05-12 03:01:31 +02:00
|
|
|
]
|
|
|
|
|
2024-04-17 13:35:09 +02:00
|
|
|
[[package]]
|
|
|
|
name = "polars-error"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.41.3"
|
2024-04-17 13:35:09 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "0c9b06dfbe79cabe50a7f0a90396864b5ee2c0e0f8d6a9353b2343c29c56e937"
|
2024-04-17 13:35:09 +02:00
|
|
|
dependencies = [
|
|
|
|
"avro-schema",
|
|
|
|
"polars-arrow-format",
|
|
|
|
"regex",
|
|
|
|
"simdutf8",
|
|
|
|
"thiserror",
|
|
|
|
]
|
|
|
|
|
2024-06-06 01:26:47 +02:00
|
|
|
[[package]]
|
|
|
|
name = "polars-expr"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.41.3"
|
2024-06-06 01:26:47 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "d9c630385a56a867c410a20f30772d088f90ec3d004864562b84250b35268f97"
|
2024-06-06 01:26:47 +02:00
|
|
|
dependencies = [
|
|
|
|
"ahash 0.8.11",
|
2024-08-24 00:35:42 +02:00
|
|
|
"bitflags 2.6.0",
|
2024-06-06 01:26:47 +02:00
|
|
|
"once_cell",
|
|
|
|
"polars-arrow",
|
|
|
|
"polars-core",
|
|
|
|
"polars-io",
|
|
|
|
"polars-ops",
|
|
|
|
"polars-plan",
|
|
|
|
"polars-time",
|
|
|
|
"polars-utils",
|
|
|
|
"rayon",
|
|
|
|
"smartstring",
|
|
|
|
]
|
|
|
|
|
2024-04-17 13:35:09 +02:00
|
|
|
[[package]]
|
|
|
|
name = "polars-io"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.41.3"
|
2024-04-17 13:35:09 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "9d7363cd14e4696a28b334a56bd11013ff49cc96064818ab3f91a126e453462d"
|
2024-04-17 13:35:09 +02:00
|
|
|
dependencies = [
|
|
|
|
"ahash 0.8.11",
|
|
|
|
"async-trait",
|
|
|
|
"atoi_simd",
|
|
|
|
"bytes",
|
|
|
|
"chrono",
|
|
|
|
"fast-float",
|
|
|
|
"flate2",
|
|
|
|
"futures",
|
|
|
|
"home",
|
|
|
|
"itoa",
|
|
|
|
"memchr",
|
|
|
|
"memmap2",
|
|
|
|
"num-traits",
|
|
|
|
"once_cell",
|
|
|
|
"percent-encoding",
|
2024-04-17 19:50:17 +02:00
|
|
|
"polars-arrow",
|
|
|
|
"polars-core",
|
|
|
|
"polars-error",
|
|
|
|
"polars-json",
|
|
|
|
"polars-parquet",
|
|
|
|
"polars-time",
|
|
|
|
"polars-utils",
|
2021-05-12 03:01:31 +02:00
|
|
|
"rayon",
|
2021-07-09 21:28:07 +02:00
|
|
|
"regex",
|
2023-12-06 01:09:34 +01:00
|
|
|
"ryu",
|
2022-05-16 09:27:43 +02:00
|
|
|
"serde",
|
2023-01-13 16:27:37 +01:00
|
|
|
"serde_json",
|
2022-11-09 23:07:38 +01:00
|
|
|
"simd-json",
|
2021-11-16 09:53:03 +01:00
|
|
|
"simdutf8",
|
2023-12-06 01:09:34 +01:00
|
|
|
"smartstring",
|
|
|
|
"tokio",
|
|
|
|
"tokio-util",
|
|
|
|
"zstd",
|
2021-05-12 03:01:31 +02:00
|
|
|
]
|
|
|
|
|
2024-04-17 13:35:09 +02:00
|
|
|
[[package]]
|
|
|
|
name = "polars-json"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.41.3"
|
2024-04-17 13:35:09 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "543d7d3853f2c52dbfedee9ebf0d58c4ff3b92aadee5309150b2d14df49d6253"
|
2024-04-17 13:35:09 +02:00
|
|
|
dependencies = [
|
|
|
|
"ahash 0.8.11",
|
|
|
|
"chrono",
|
|
|
|
"fallible-streaming-iterator",
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
"hashbrown 0.14.5",
|
2024-04-17 13:35:09 +02:00
|
|
|
"indexmap",
|
|
|
|
"itoa",
|
|
|
|
"num-traits",
|
2024-04-17 19:50:17 +02:00
|
|
|
"polars-arrow",
|
|
|
|
"polars-error",
|
|
|
|
"polars-utils",
|
2023-12-06 01:09:34 +01:00
|
|
|
"ryu",
|
2023-06-13 19:05:45 +02:00
|
|
|
"simd-json",
|
2023-12-06 01:09:34 +01:00
|
|
|
"streaming-iterator",
|
2023-06-13 19:05:45 +02:00
|
|
|
]
|
|
|
|
|
2024-04-17 13:35:09 +02:00
|
|
|
[[package]]
|
|
|
|
name = "polars-lazy"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.41.3"
|
2024-04-17 13:35:09 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "03877e74e42b5340ae52ded705f6d5d14563d90554c9177b01b91ed2412a56ed"
|
2024-04-17 13:35:09 +02:00
|
|
|
dependencies = [
|
|
|
|
"ahash 0.8.11",
|
2024-08-24 00:35:42 +02:00
|
|
|
"bitflags 2.6.0",
|
2024-04-17 13:35:09 +02:00
|
|
|
"glob",
|
2024-06-28 13:37:45 +02:00
|
|
|
"memchr",
|
2024-04-17 13:35:09 +02:00
|
|
|
"once_cell",
|
2024-04-17 19:50:17 +02:00
|
|
|
"polars-arrow",
|
|
|
|
"polars-core",
|
2024-06-06 01:26:47 +02:00
|
|
|
"polars-expr",
|
2024-04-17 19:50:17 +02:00
|
|
|
"polars-io",
|
|
|
|
"polars-json",
|
2024-06-28 13:37:45 +02:00
|
|
|
"polars-mem-engine",
|
2024-04-17 19:50:17 +02:00
|
|
|
"polars-ops",
|
|
|
|
"polars-pipe",
|
|
|
|
"polars-plan",
|
|
|
|
"polars-time",
|
|
|
|
"polars-utils",
|
2021-05-12 03:01:31 +02:00
|
|
|
"rayon",
|
2023-05-08 17:42:53 +02:00
|
|
|
"smartstring",
|
2023-08-30 00:13:34 +02:00
|
|
|
"version_check",
|
2022-05-16 09:27:43 +02:00
|
|
|
]
|
|
|
|
|
2024-06-28 13:37:45 +02:00
|
|
|
[[package]]
|
|
|
|
name = "polars-mem-engine"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.41.3"
|
2024-06-28 13:37:45 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "dea9e17771af750c94bf959885e4b3f5b14149576c62ef3ec1c9ef5827b2a30f"
|
2024-06-28 13:37:45 +02:00
|
|
|
dependencies = [
|
|
|
|
"polars-arrow",
|
|
|
|
"polars-core",
|
|
|
|
"polars-error",
|
|
|
|
"polars-expr",
|
|
|
|
"polars-io",
|
|
|
|
"polars-json",
|
|
|
|
"polars-ops",
|
|
|
|
"polars-plan",
|
|
|
|
"polars-time",
|
|
|
|
"polars-utils",
|
|
|
|
"rayon",
|
|
|
|
]
|
|
|
|
|
2024-04-17 13:35:09 +02:00
|
|
|
[[package]]
|
|
|
|
name = "polars-ops"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.41.3"
|
2024-04-17 13:35:09 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "6066552eb577d43b307027fb38096910b643ffb2c89a21628c7e41caf57848d0"
|
2024-04-17 13:35:09 +02:00
|
|
|
dependencies = [
|
|
|
|
"ahash 0.8.11",
|
|
|
|
"argminmax",
|
2024-06-06 01:26:47 +02:00
|
|
|
"base64 0.22.1",
|
2024-04-17 13:35:09 +02:00
|
|
|
"bytemuck",
|
|
|
|
"chrono",
|
|
|
|
"chrono-tz 0.8.6",
|
|
|
|
"either",
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
"hashbrown 0.14.5",
|
2024-04-17 13:35:09 +02:00
|
|
|
"hex",
|
|
|
|
"indexmap",
|
|
|
|
"jsonpath_lib_polars_vendor",
|
|
|
|
"memchr",
|
|
|
|
"num-traits",
|
2024-04-17 19:50:17 +02:00
|
|
|
"polars-arrow",
|
|
|
|
"polars-compute",
|
|
|
|
"polars-core",
|
|
|
|
"polars-error",
|
|
|
|
"polars-json",
|
|
|
|
"polars-utils",
|
2023-12-06 01:09:34 +01:00
|
|
|
"rand",
|
|
|
|
"rand_distr",
|
|
|
|
"rayon",
|
2023-10-11 21:28:18 +02:00
|
|
|
"regex",
|
2023-01-13 16:27:37 +01:00
|
|
|
"serde",
|
2024-04-13 20:00:04 +02:00
|
|
|
"serde_json",
|
2023-05-08 17:42:53 +02:00
|
|
|
"smartstring",
|
2024-02-13 13:27:30 +01:00
|
|
|
"unicode-reverse",
|
2023-08-30 00:13:34 +02:00
|
|
|
"version_check",
|
2022-11-09 23:07:38 +01:00
|
|
|
]
|
|
|
|
|
2024-04-17 13:35:09 +02:00
|
|
|
[[package]]
|
|
|
|
name = "polars-parquet"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.41.3"
|
2024-04-17 13:35:09 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "2b35b2592a2e7ef7ce9942dc2120dc4576142626c0e661668e4c6b805042e461"
|
2024-04-17 13:35:09 +02:00
|
|
|
dependencies = [
|
|
|
|
"ahash 0.8.11",
|
|
|
|
"async-stream",
|
2024-06-06 01:26:47 +02:00
|
|
|
"base64 0.22.1",
|
|
|
|
"brotli",
|
2024-04-17 13:35:09 +02:00
|
|
|
"ethnum",
|
|
|
|
"flate2",
|
|
|
|
"futures",
|
|
|
|
"lz4",
|
|
|
|
"num-traits",
|
|
|
|
"parquet-format-safe",
|
2024-04-17 19:50:17 +02:00
|
|
|
"polars-arrow",
|
2024-06-28 13:37:45 +02:00
|
|
|
"polars-compute",
|
2024-04-17 19:50:17 +02:00
|
|
|
"polars-error",
|
|
|
|
"polars-utils",
|
2024-06-28 13:37:45 +02:00
|
|
|
"serde",
|
2023-12-06 01:09:34 +01:00
|
|
|
"simdutf8",
|
|
|
|
"snap",
|
|
|
|
"streaming-decompression",
|
|
|
|
"zstd",
|
|
|
|
]
|
|
|
|
|
2024-04-17 13:35:09 +02:00
|
|
|
[[package]]
|
|
|
|
name = "polars-pipe"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.41.3"
|
2024-04-17 13:35:09 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "021bce7768c330687d735340395a77453aa18dd70d57c184cbb302311e87c1b9"
|
2024-04-17 13:35:09 +02:00
|
|
|
dependencies = [
|
|
|
|
"crossbeam-channel",
|
|
|
|
"crossbeam-queue",
|
|
|
|
"enum_dispatch",
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
"hashbrown 0.14.5",
|
2024-04-17 13:35:09 +02:00
|
|
|
"num-traits",
|
2024-04-17 19:50:17 +02:00
|
|
|
"polars-arrow",
|
|
|
|
"polars-compute",
|
|
|
|
"polars-core",
|
2024-06-06 01:26:47 +02:00
|
|
|
"polars-expr",
|
2024-04-17 19:50:17 +02:00
|
|
|
"polars-io",
|
|
|
|
"polars-ops",
|
|
|
|
"polars-plan",
|
|
|
|
"polars-row",
|
|
|
|
"polars-utils",
|
2022-11-09 23:07:38 +01:00
|
|
|
"rayon",
|
2023-01-13 16:27:37 +01:00
|
|
|
"smartstring",
|
2024-04-13 20:00:04 +02:00
|
|
|
"uuid",
|
2023-08-30 00:13:34 +02:00
|
|
|
"version_check",
|
2022-11-09 23:07:38 +01:00
|
|
|
]
|
|
|
|
|
2024-04-17 13:35:09 +02:00
|
|
|
[[package]]
|
|
|
|
name = "polars-plan"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.41.3"
|
2024-04-17 13:35:09 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "220d0d7c02d1c4375802b2813dbedcd1a184df39c43b74689e729ede8d5c2921"
|
2024-04-17 13:35:09 +02:00
|
|
|
dependencies = [
|
|
|
|
"ahash 0.8.11",
|
|
|
|
"bytemuck",
|
|
|
|
"chrono-tz 0.8.6",
|
2024-06-06 01:26:47 +02:00
|
|
|
"either",
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
"hashbrown 0.14.5",
|
2024-04-17 13:35:09 +02:00
|
|
|
"once_cell",
|
|
|
|
"percent-encoding",
|
2024-04-17 19:50:17 +02:00
|
|
|
"polars-arrow",
|
|
|
|
"polars-core",
|
|
|
|
"polars-io",
|
|
|
|
"polars-json",
|
|
|
|
"polars-ops",
|
|
|
|
"polars-parquet",
|
|
|
|
"polars-time",
|
|
|
|
"polars-utils",
|
2024-04-17 13:35:09 +02:00
|
|
|
"rayon",
|
|
|
|
"recursive",
|
|
|
|
"regex",
|
|
|
|
"serde",
|
|
|
|
"smartstring",
|
2024-06-06 01:26:47 +02:00
|
|
|
"strum_macros",
|
2024-04-17 13:35:09 +02:00
|
|
|
"version_check",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "polars-row"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.41.3"
|
2024-04-17 13:35:09 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "c1d70d87a2882a64a43b431aea1329cb9a2c4100547c95c417cc426bb82408b3"
|
2024-04-17 13:35:09 +02:00
|
|
|
dependencies = [
|
|
|
|
"bytemuck",
|
2024-04-17 19:50:17 +02:00
|
|
|
"polars-arrow",
|
|
|
|
"polars-error",
|
|
|
|
"polars-utils",
|
2024-04-17 13:35:09 +02:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "polars-sql"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.41.3"
|
2024-04-17 13:35:09 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "a6fc1c9b778862f09f4a347f768dfdd3d0ba9957499d306d83c7103e0fa8dc5b"
|
2024-04-17 13:35:09 +02:00
|
|
|
dependencies = [
|
|
|
|
"hex",
|
2024-06-06 01:26:47 +02:00
|
|
|
"once_cell",
|
2024-04-17 19:50:17 +02:00
|
|
|
"polars-arrow",
|
|
|
|
"polars-core",
|
|
|
|
"polars-error",
|
|
|
|
"polars-lazy",
|
2024-06-28 13:37:45 +02:00
|
|
|
"polars-ops",
|
2024-04-17 19:50:17 +02:00
|
|
|
"polars-plan",
|
2024-06-28 13:37:45 +02:00
|
|
|
"polars-time",
|
2023-12-06 01:09:34 +01:00
|
|
|
"rand",
|
2023-05-12 14:44:35 +02:00
|
|
|
"serde",
|
|
|
|
"serde_json",
|
2024-06-28 13:37:45 +02:00
|
|
|
"sqlparser",
|
2023-05-12 14:44:35 +02:00
|
|
|
]
|
|
|
|
|
2024-04-17 13:35:09 +02:00
|
|
|
[[package]]
|
|
|
|
name = "polars-time"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.41.3"
|
2024-04-17 13:35:09 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "179f98313a15c0bfdbc8cc0f1d3076d08d567485b9952d46439f94fbc3085df5"
|
2024-04-17 13:35:09 +02:00
|
|
|
dependencies = [
|
|
|
|
"atoi",
|
2024-06-06 01:26:47 +02:00
|
|
|
"bytemuck",
|
2024-04-17 13:35:09 +02:00
|
|
|
"chrono",
|
|
|
|
"chrono-tz 0.8.6",
|
|
|
|
"now",
|
|
|
|
"once_cell",
|
2024-04-17 19:50:17 +02:00
|
|
|
"polars-arrow",
|
|
|
|
"polars-core",
|
|
|
|
"polars-error",
|
|
|
|
"polars-ops",
|
|
|
|
"polars-utils",
|
2023-02-22 00:32:28 +01:00
|
|
|
"regex",
|
2022-05-16 09:27:43 +02:00
|
|
|
"serde",
|
2023-05-08 17:42:53 +02:00
|
|
|
"smartstring",
|
2022-02-27 17:10:29 +01:00
|
|
|
]
|
|
|
|
|
2024-04-17 13:35:09 +02:00
|
|
|
[[package]]
|
|
|
|
name = "polars-utils"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.41.3"
|
2024-04-17 13:35:09 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "53e6dd89fcccb1ec1a62f752c9a9f2d482a85e9255153f46efecc617b4996d50"
|
2024-04-17 13:35:09 +02:00
|
|
|
dependencies = [
|
|
|
|
"ahash 0.8.11",
|
|
|
|
"bytemuck",
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
"hashbrown 0.14.5",
|
2024-04-17 13:35:09 +02:00
|
|
|
"indexmap",
|
|
|
|
"num-traits",
|
|
|
|
"once_cell",
|
2024-04-17 19:50:17 +02:00
|
|
|
"polars-error",
|
2024-04-17 13:35:09 +02:00
|
|
|
"raw-cpuid",
|
|
|
|
"rayon",
|
|
|
|
"smartstring",
|
|
|
|
"stacker",
|
2024-10-17 19:12:45 +02:00
|
|
|
"sysinfo 0.30.13",
|
2024-04-17 13:35:09 +02:00
|
|
|
"version_check",
|
|
|
|
]
|
|
|
|
|
2022-04-04 22:45:01 +02:00
|
|
|
[[package]]
|
|
|
|
name = "pori"
|
|
|
|
version = "0.0.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "a4a63d338dec139f56dacc692ca63ad35a6be6a797442479b55acd611d79e906"
|
|
|
|
dependencies = [
|
2023-01-04 23:50:18 +01:00
|
|
|
"nom",
|
2022-04-04 22:45:01 +02:00
|
|
|
]
|
|
|
|
|
2023-01-11 02:57:48 +01:00
|
|
|
[[package]]
|
|
|
|
name = "portable-atomic"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.7.0"
|
2023-05-18 01:32:28 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "powerfmt"
|
|
|
|
version = "0.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
|
2023-01-11 02:57:48 +01:00
|
|
|
|
2019-07-05 00:17:18 +02:00
|
|
|
[[package]]
|
|
|
|
name = "ppv-lite86"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.2.20"
|
2019-07-05 00:17:18 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04"
|
|
|
|
dependencies = [
|
|
|
|
"zerocopy",
|
|
|
|
]
|
2019-07-05 00:17:18 +02:00
|
|
|
|
2020-11-03 22:46:42 +01:00
|
|
|
[[package]]
|
|
|
|
name = "precomputed-hash"
|
|
|
|
version = "0.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
|
|
|
|
|
2019-11-04 16:47:03 +01:00
|
|
|
[[package]]
|
2021-08-30 20:36:07 +02:00
|
|
|
name = "predicates"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "3.1.2"
|
2021-08-30 20:36:07 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "7e9086cc7640c29a356d1a29fd134380bee9d8f79a17410aa76e7ad295f42c97"
|
2021-08-30 20:36:07 +02:00
|
|
|
dependencies = [
|
2023-04-14 22:14:57 +02:00
|
|
|
"anstyle",
|
2021-08-30 20:36:07 +02:00
|
|
|
"difflib",
|
|
|
|
"predicates-core",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "predicates-core"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.0.8"
|
2021-08-30 20:36:07 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "ae8177bee8e75d6846599c6b9ff679ed51e882816914eec639944d7c9aa11931"
|
2021-08-30 20:36:07 +02:00
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "predicates-tree"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.0.11"
|
2021-08-30 20:36:07 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "41b740d195ed3166cd147c8047ec98db0e22ec019eb8eeb76d343b795304fb13"
|
2021-08-30 20:36:07 +02:00
|
|
|
dependencies = [
|
|
|
|
"predicates-core",
|
2021-10-10 06:13:15 +02:00
|
|
|
"termtree",
|
2021-08-30 20:36:07 +02:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "pretty_assertions"
|
2023-07-24 07:41:03 +02:00
|
|
|
version = "1.4.0"
|
2021-08-30 20:36:07 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-07-24 07:41:03 +02:00
|
|
|
checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66"
|
2021-08-30 20:36:07 +02:00
|
|
|
dependencies = [
|
|
|
|
"diff",
|
2022-10-03 18:40:16 +02:00
|
|
|
"yansi",
|
2019-11-04 16:47:03 +01:00
|
|
|
]
|
|
|
|
|
`string | fill` counts clusters, not graphemes; and doesn't count ANSI escape codes (#8134)
Enhancement of new `fill` command (#7846) to handle content including
ANSI escape codes for formatting or multi-code-point Unicode grapheme
clusters.
In both of these cases, the content is (many) bytes longer than its
visible length, and `fill` was counting the extra bytes so not adding
enough fill characters.
# Description
This script:
```rust
# the teacher emoji `\u{1F9D1}\u{200D}\u{1F3EB}` is 3 code points, but only 1 print position wide.
echo "This output should be 3 print positions wide, with leading and trailing `+`"
$"\u{1F9D1}\u{200D}\u{1F3EB}" | fill -c "+" -w 3 -a "c"
echo "This output should be 3 print positions wide, with leading and trailing `+`"
$"(ansi green)a(ansi reset)" | fill -c "+" -w 3 -a c
echo ""
```
Was producing this output:
```rust
This output should be 3 print positions wide, with leading and trailing `+`
🧑🏫
This output should be 3 print positions wide, with leading and trailing `+`
a
```
After this PR, it produces this output:
```rust
This output should be 3 print positions wide, with leading and trailing `+`
+🧑🏫+
This output should be 3 print positions wide, with leading and trailing `+`
+a+
```
# User-Facing Changes
Users may have to undo fixes they may have introduced to work around the
former behavior. I have one such in my prompt string that I can now
revert.
# Tests + Formatting
Don't forget to add tests that cover your changes.
-- Done
Make sure you've run and fixed any issues with these commands:
- [x] `cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [x] `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A
clippy::needless_collect` to check that you're using the standard code
style
- [x] `cargo test --workspace` to check that all tests pass
# After Submitting
`fill` command not documented in the book, and it still talks about `str
lpad/rpad`. I'll fix.
Note added dependency on a new library `print-positions`, which is an
iterator that yields a complete print position (cluster + Ansi sequence)
per call. Should this be vendored?
2023-02-20 13:32:20 +01:00
|
|
|
[[package]]
|
|
|
|
name = "print-positions"
|
|
|
|
version = "0.6.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1df593470e3ef502e48cb0cfc9a3a61e5f61e967b78e1ed35a67ac615cfbd208"
|
|
|
|
dependencies = [
|
|
|
|
"unicode-segmentation",
|
|
|
|
]
|
|
|
|
|
2024-01-21 21:17:28 +01:00
|
|
|
[[package]]
|
|
|
|
name = "proc-macro-crate"
|
|
|
|
version = "3.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
|
|
|
|
dependencies = [
|
2024-04-10 02:31:43 +02:00
|
|
|
"toml_edit 0.21.1",
|
2024-01-21 21:17:28 +01:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "proc-macro-error"
|
|
|
|
version = "1.0.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
|
|
|
|
dependencies = [
|
|
|
|
"proc-macro-error-attr",
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"version_check",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "proc-macro-error-attr"
|
|
|
|
version = "1.0.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
|
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"version_check",
|
|
|
|
]
|
|
|
|
|
2019-05-10 18:59:12 +02:00
|
|
|
[[package]]
|
|
|
|
name = "proc-macro2"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.0.86"
|
2019-08-24 21:36:19 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
|
2019-08-24 21:36:19 +02:00
|
|
|
dependencies = [
|
2022-05-25 19:13:14 +02:00
|
|
|
"unicode-ident",
|
2019-08-24 21:36:19 +02:00
|
|
|
]
|
|
|
|
|
2019-06-07 09:50:26 +02:00
|
|
|
[[package]]
|
2022-01-14 07:20:53 +01:00
|
|
|
name = "procfs"
|
2023-11-20 21:22:35 +01:00
|
|
|
version = "0.16.0"
|
2022-01-14 07:20:53 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-11-20 21:22:35 +01:00
|
|
|
checksum = "731e0d9356b0c25f16f33b5be79b1c57b562f141ebfcdb0ad8ac2c13a24293b4"
|
2022-01-14 07:20:53 +01:00
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"bitflags 2.6.0",
|
2022-01-14 07:20:53 +01:00
|
|
|
"chrono",
|
|
|
|
"flate2",
|
|
|
|
"hex",
|
|
|
|
"lazy_static",
|
2023-11-20 21:22:35 +01:00
|
|
|
"procfs-core",
|
2024-01-05 17:19:46 +01:00
|
|
|
"rustix",
|
2023-11-20 21:22:35 +01:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "procfs-core"
|
|
|
|
version = "0.16.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "2d3554923a69f4ce04c4a754260c338f505ce22642d3830e049a399fc2059a29"
|
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"bitflags 2.6.0",
|
2023-11-20 21:22:35 +01:00
|
|
|
"chrono",
|
|
|
|
"hex",
|
2019-06-07 09:50:26 +02:00
|
|
|
]
|
|
|
|
|
2023-12-06 01:09:34 +01:00
|
|
|
[[package]]
|
|
|
|
name = "psm"
|
|
|
|
version = "0.1.21"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874"
|
|
|
|
dependencies = [
|
|
|
|
"cc",
|
|
|
|
]
|
|
|
|
|
2024-01-21 21:17:28 +01:00
|
|
|
[[package]]
|
|
|
|
name = "ptr_meta"
|
|
|
|
version = "0.1.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1"
|
|
|
|
dependencies = [
|
|
|
|
"ptr_meta_derive",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "ptr_meta_derive"
|
|
|
|
version = "0.1.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac"
|
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn 1.0.109",
|
|
|
|
]
|
|
|
|
|
2022-08-14 15:07:04 +02:00
|
|
|
[[package]]
|
|
|
|
name = "pure-rust-locales"
|
fix format date based on users locale (#11908)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi,
Fixes #10838, where before the `date` would be formatted incorrectly,
and was not picking `LC_TIME` for time formatting, but it picked the
first locale returned by the `sys-locale` crate instead. Now it will
format time based on `LC_TIME`. For example,
```
// my locale `nl_NL.UTF-8`
❯ date now | format date '%x %X'
20-02-24 17:17:12
$env.LC_TIME = "en_US.UTF-8"
❯ date now | format date '%x %X'
02/20/2024 05:16:28 PM
```
Note that I also changed the `default_env.nu` as otherwise the Time will
show AM/PM twice. Also reason for the `chrono` update is because this
relies on a fix to upstream repo, which i initially submitted an
[issue](https://github.com/chronotope/chrono/issues/1349#event-11765363286)
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Don't forget to add tests that cover your changes.
Make sure you've run and fixed any issues with these commands:
- [X] `cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used`
to check that you're using the standard code style
- [X] `cargo test --workspace` to check that all tests pass (on Windows
make sure to [enable developer
mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging))
- [X] `cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
2024-02-20 18:08:49 +01:00
|
|
|
version = "0.8.1"
|
2022-08-14 15:07:04 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
fix format date based on users locale (#11908)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi,
Fixes #10838, where before the `date` would be formatted incorrectly,
and was not picking `LC_TIME` for time formatting, but it picked the
first locale returned by the `sys-locale` crate instead. Now it will
format time based on `LC_TIME`. For example,
```
// my locale `nl_NL.UTF-8`
❯ date now | format date '%x %X'
20-02-24 17:17:12
$env.LC_TIME = "en_US.UTF-8"
❯ date now | format date '%x %X'
02/20/2024 05:16:28 PM
```
Note that I also changed the `default_env.nu` as otherwise the Time will
show AM/PM twice. Also reason for the `chrono` update is because this
relies on a fix to upstream repo, which i initially submitted an
[issue](https://github.com/chronotope/chrono/issues/1349#event-11765363286)
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Don't forget to add tests that cover your changes.
Make sure you've run and fixed any issues with these commands:
- [X] `cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used`
to check that you're using the standard code style
- [X] `cargo test --workspace` to check that all tests pass (on Windows
make sure to [enable developer
mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging))
- [X] `cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
2024-02-20 18:08:49 +01:00
|
|
|
checksum = "1190fd18ae6ce9e137184f207593877e70f39b015040156b1e05081cdfe3733a"
|
2022-08-14 15:07:04 +02:00
|
|
|
|
2022-04-25 00:12:57 +02:00
|
|
|
[[package]]
|
|
|
|
name = "pwd"
|
2022-07-26 04:09:32 +02:00
|
|
|
version = "1.4.0"
|
2022-04-25 00:12:57 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-07-26 04:09:32 +02:00
|
|
|
checksum = "72c71c0c79b9701efe4e1e4b563b2016dd4ee789eb99badcb09d61ac4b92e4a2"
|
2022-04-25 00:12:57 +02:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
2022-07-26 04:09:32 +02:00
|
|
|
"thiserror",
|
2022-04-25 00:12:57 +02:00
|
|
|
]
|
|
|
|
|
2019-05-18 03:24:13 +02:00
|
|
|
[[package]]
|
|
|
|
name = "quick-error"
|
2020-02-01 07:11:42 +01:00
|
|
|
version = "1.2.3"
|
2019-05-18 03:24:13 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-02-01 07:11:42 +01:00
|
|
|
checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
|
2019-05-18 03:24:13 +02:00
|
|
|
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
[[package]]
|
|
|
|
name = "quick-error"
|
|
|
|
version = "2.0.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3"
|
|
|
|
|
2023-01-16 03:06:31 +01:00
|
|
|
[[package]]
|
|
|
|
name = "quick-xml"
|
2024-01-19 19:23:51 +01:00
|
|
|
version = "0.31.0"
|
2023-01-16 03:06:31 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-19 19:23:51 +01:00
|
|
|
checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
|
2023-01-16 03:06:31 +01:00
|
|
|
dependencies = [
|
2023-09-11 12:39:52 +02:00
|
|
|
"encoding_rs",
|
2023-01-16 03:06:31 +01:00
|
|
|
"memchr",
|
|
|
|
]
|
|
|
|
|
2024-08-05 23:07:15 +02:00
|
|
|
[[package]]
|
|
|
|
name = "quick-xml"
|
|
|
|
version = "0.32.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1d3a6e5838b60e0e8fa7a43f22ade549a37d61f8bdbe636d0d7816191de969c2"
|
|
|
|
dependencies = [
|
|
|
|
"memchr",
|
|
|
|
]
|
|
|
|
|
2024-08-24 00:35:42 +02:00
|
|
|
[[package]]
|
|
|
|
name = "quick-xml"
|
|
|
|
version = "0.34.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "6f24d770aeca0eacb81ac29dfbc55ebcc09312fdd1f8bbecdc7e4a84e000e3b4"
|
|
|
|
dependencies = [
|
|
|
|
"memchr",
|
|
|
|
]
|
|
|
|
|
2020-04-11 21:05:59 +02:00
|
|
|
[[package]]
|
|
|
|
name = "quickcheck"
|
2021-02-05 21:54:54 +01:00
|
|
|
version = "1.0.3"
|
2020-04-11 21:05:59 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2021-02-05 21:54:54 +01:00
|
|
|
checksum = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6"
|
2020-04-11 21:05:59 +02:00
|
|
|
dependencies = [
|
2024-06-28 01:56:56 +02:00
|
|
|
"env_logger 0.8.4",
|
2021-07-09 21:28:07 +02:00
|
|
|
"log",
|
2023-07-10 07:28:36 +02:00
|
|
|
"rand",
|
2020-04-11 21:05:59 +02:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "quickcheck_macros"
|
2021-02-05 21:54:54 +01:00
|
|
|
version = "1.0.0"
|
2020-04-11 21:05:59 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2021-02-05 21:54:54 +01:00
|
|
|
checksum = "b22a693222d716a9587786f37ac3f6b4faedb5b80c23914e7303ff5a1d8016e9"
|
2020-04-11 21:05:59 +02:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
2021-08-28 05:34:11 +02:00
|
|
|
"quote",
|
2023-04-06 22:39:54 +02:00
|
|
|
"syn 1.0.109",
|
2020-04-11 21:05:59 +02:00
|
|
|
]
|
|
|
|
|
2019-08-24 21:36:19 +02:00
|
|
|
[[package]]
|
|
|
|
name = "quote"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.0.37"
|
2019-08-24 21:36:19 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
|
2019-08-24 21:36:19 +02:00
|
|
|
dependencies = [
|
2019-11-28 03:21:00 +01:00
|
|
|
"proc-macro2",
|
2019-08-24 21:36:19 +02:00
|
|
|
]
|
|
|
|
|
2023-12-06 01:09:34 +01:00
|
|
|
[[package]]
|
|
|
|
name = "quoted_printable"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.5.1"
|
2023-12-06 01:09:34 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "640c9bd8497b02465aeef5375144c26062e0dcd5939dfcbb0f5db76cb8c17c73"
|
2023-12-06 01:09:34 +01:00
|
|
|
|
2024-01-21 21:17:28 +01:00
|
|
|
[[package]]
|
|
|
|
name = "radium"
|
|
|
|
version = "0.7.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
|
|
|
|
|
2021-01-19 21:24:27 +01:00
|
|
|
[[package]]
|
|
|
|
name = "rand"
|
2022-03-10 21:58:11 +01:00
|
|
|
version = "0.8.5"
|
2021-01-19 21:24:27 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-03-10 21:58:11 +01:00
|
|
|
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
|
2021-01-19 21:24:27 +01:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
2023-07-10 07:28:36 +02:00
|
|
|
"rand_chacha",
|
|
|
|
"rand_core",
|
2020-08-12 19:20:22 +02:00
|
|
|
]
|
|
|
|
|
2021-01-19 21:24:27 +01:00
|
|
|
[[package]]
|
|
|
|
name = "rand_chacha"
|
2021-06-28 12:16:03 +02:00
|
|
|
version = "0.3.1"
|
2021-01-19 21:24:27 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2021-06-28 12:16:03 +02:00
|
|
|
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
|
2021-01-19 21:24:27 +01:00
|
|
|
dependencies = [
|
|
|
|
"ppv-lite86",
|
2023-07-10 07:28:36 +02:00
|
|
|
"rand_core",
|
2021-01-19 21:24:27 +01:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rand_core"
|
2022-10-03 18:40:16 +02:00
|
|
|
version = "0.6.4"
|
2021-01-19 21:24:27 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-10-03 18:40:16 +02:00
|
|
|
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
|
2021-01-19 21:24:27 +01:00
|
|
|
dependencies = [
|
2023-07-10 07:28:36 +02:00
|
|
|
"getrandom",
|
2019-05-18 03:24:13 +02:00
|
|
|
]
|
|
|
|
|
2021-05-27 07:09:48 +02:00
|
|
|
[[package]]
|
|
|
|
name = "rand_distr"
|
2022-02-04 07:47:18 +01:00
|
|
|
version = "0.4.3"
|
2021-12-21 19:32:09 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-02-04 07:47:18 +01:00
|
|
|
checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31"
|
2021-12-21 19:32:09 +01:00
|
|
|
dependencies = [
|
|
|
|
"num-traits",
|
2023-07-10 07:28:36 +02:00
|
|
|
"rand",
|
2020-11-03 22:46:42 +01:00
|
|
|
]
|
|
|
|
|
2023-04-26 01:07:23 +02:00
|
|
|
[[package]]
|
|
|
|
name = "ratatui"
|
2024-06-27 00:48:11 +02:00
|
|
|
version = "0.26.3"
|
2023-04-26 01:07:23 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-06-27 00:48:11 +02:00
|
|
|
checksum = "f44c9e68fd46eda15c646fbb85e1040b657a58cdc8c98db1d97a55930d991eef"
|
2023-04-26 01:07:23 +02:00
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"bitflags 2.6.0",
|
2023-04-26 01:07:23 +02:00
|
|
|
"cassowary",
|
2024-02-08 01:15:45 +01:00
|
|
|
"compact_str",
|
2024-09-06 16:57:45 +02:00
|
|
|
"crossterm 0.27.0",
|
2024-04-10 02:31:43 +02:00
|
|
|
"itertools 0.12.1",
|
2024-02-08 01:15:45 +01:00
|
|
|
"lru",
|
2023-09-04 02:22:25 +02:00
|
|
|
"paste",
|
2024-02-08 01:15:45 +01:00
|
|
|
"stability",
|
2024-03-13 19:42:31 +01:00
|
|
|
"strum",
|
2023-04-26 01:07:23 +02:00
|
|
|
"unicode-segmentation",
|
2024-06-27 00:48:11 +02:00
|
|
|
"unicode-truncate",
|
2023-04-26 01:07:23 +02:00
|
|
|
"unicode-width",
|
|
|
|
]
|
|
|
|
|
2024-04-13 20:00:04 +02:00
|
|
|
[[package]]
|
|
|
|
name = "raw-cpuid"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "11.1.0"
|
2024-04-13 20:00:04 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "cb9ee317cfe3fbd54b36a511efc1edd42e216903c9cd575e686dd68a2ba90d8d"
|
2024-04-13 20:00:04 +02:00
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"bitflags 2.6.0",
|
2024-04-13 20:00:04 +02:00
|
|
|
]
|
|
|
|
|
2019-10-08 15:47:30 +02:00
|
|
|
[[package]]
|
|
|
|
name = "rayon"
|
2024-03-27 07:44:17 +01:00
|
|
|
version = "1.10.0"
|
2019-10-08 15:47:30 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-27 07:44:17 +01:00
|
|
|
checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
|
2019-10-08 15:47:30 +02:00
|
|
|
dependencies = [
|
2019-11-28 03:21:00 +01:00
|
|
|
"either",
|
|
|
|
"rayon-core",
|
2019-10-08 15:47:30 +02:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rayon-core"
|
2024-01-21 04:53:24 +01:00
|
|
|
version = "1.12.1"
|
2019-10-08 15:47:30 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 04:53:24 +01:00
|
|
|
checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
|
2019-10-08 15:47:30 +02:00
|
|
|
dependencies = [
|
2021-07-09 21:28:07 +02:00
|
|
|
"crossbeam-deque",
|
|
|
|
"crossbeam-utils",
|
2019-10-08 15:47:30 +02:00
|
|
|
]
|
|
|
|
|
2024-04-17 13:35:09 +02:00
|
|
|
[[package]]
|
|
|
|
name = "recursive"
|
|
|
|
version = "0.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "0786a43debb760f491b1bc0269fe5e84155353c67482b9e60d0cfb596054b43e"
|
|
|
|
dependencies = [
|
|
|
|
"recursive-proc-macro-impl",
|
|
|
|
"stacker",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "recursive-proc-macro-impl"
|
|
|
|
version = "0.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "76009fbe0614077fc1a2ce255e3a1881a2e3a3527097d5dc6d8212c585e7e38b"
|
|
|
|
dependencies = [
|
|
|
|
"quote",
|
2024-08-24 00:35:42 +02:00
|
|
|
"syn 2.0.75",
|
2024-04-17 13:35:09 +02:00
|
|
|
]
|
|
|
|
|
2024-05-03 07:31:33 +02:00
|
|
|
[[package]]
|
|
|
|
name = "recvmsg"
|
|
|
|
version = "1.0.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "d3edd4d5d42c92f0a659926464d4cce56b562761267ecf0f469d85b7de384175"
|
|
|
|
|
2023-04-06 22:39:31 +02:00
|
|
|
[[package]]
|
|
|
|
name = "redox_syscall"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.5.3"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"bitflags 2.6.0",
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
]
|
|
|
|
|
2021-01-19 21:24:27 +01:00
|
|
|
[[package]]
|
|
|
|
name = "redox_users"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.4.6"
|
2021-01-19 21:24:27 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43"
|
2021-01-19 21:24:27 +01:00
|
|
|
dependencies = [
|
2023-07-10 07:28:36 +02:00
|
|
|
"getrandom",
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
"libredox",
|
2022-03-27 15:01:04 +02:00
|
|
|
"thiserror",
|
2021-10-01 07:11:49 +02:00
|
|
|
]
|
|
|
|
|
2021-08-30 20:36:07 +02:00
|
|
|
[[package]]
|
|
|
|
name = "reedline"
|
2024-10-15 20:05:57 +02:00
|
|
|
version = "0.36.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "57016fc0ec4c651a05cb80fb1200b7c3518afcc2f769edffe15aca2363395c15"
|
2021-08-30 20:36:07 +02:00
|
|
|
dependencies = [
|
2024-01-20 15:04:06 +01:00
|
|
|
"arboard",
|
2021-08-30 20:36:07 +02:00
|
|
|
"chrono",
|
2024-09-06 16:57:45 +02:00
|
|
|
"crossterm 0.28.1",
|
2022-02-06 01:16:21 +01:00
|
|
|
"fd-lock",
|
2024-04-10 02:31:43 +02:00
|
|
|
"itertools 0.12.1",
|
2023-07-24 13:16:18 +02:00
|
|
|
"nu-ansi-term",
|
2022-06-14 22:53:33 +02:00
|
|
|
"rusqlite",
|
2021-08-30 20:36:07 +02:00
|
|
|
"serde",
|
2022-06-14 22:53:33 +02:00
|
|
|
"serde_json",
|
2021-12-09 23:06:26 +01:00
|
|
|
"strip-ansi-escapes",
|
2024-03-13 19:42:31 +01:00
|
|
|
"strum",
|
2024-06-06 01:26:47 +02:00
|
|
|
"strum_macros",
|
2022-06-14 22:53:33 +02:00
|
|
|
"thiserror",
|
2021-08-30 20:36:07 +02:00
|
|
|
"unicode-segmentation",
|
|
|
|
"unicode-width",
|
2021-01-19 21:24:27 +01:00
|
|
|
]
|
|
|
|
|
2023-12-06 01:09:34 +01:00
|
|
|
[[package]]
|
|
|
|
name = "ref-cast"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.0.23"
|
2023-12-06 01:09:34 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "ccf0a6f84d5f1d581da8b41b47ec8600871962f2a528115b542b362d4b744931"
|
2023-12-06 01:09:34 +01:00
|
|
|
dependencies = [
|
|
|
|
"ref-cast-impl",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "ref-cast-impl"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.0.23"
|
2023-12-06 01:09:34 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6"
|
2023-12-06 01:09:34 +01:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2024-08-24 00:35:42 +02:00
|
|
|
"syn 2.0.75",
|
2023-12-06 01:09:34 +01:00
|
|
|
]
|
|
|
|
|
2019-05-10 18:59:12 +02:00
|
|
|
[[package]]
|
|
|
|
name = "regex"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.10.6"
|
2019-05-10 18:59:12 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619"
|
2019-05-10 18:59:12 +02:00
|
|
|
dependencies = [
|
2021-07-09 21:28:07 +02:00
|
|
|
"aho-corasick",
|
2019-11-28 03:21:00 +01:00
|
|
|
"memchr",
|
2023-10-23 16:11:32 +02:00
|
|
|
"regex-automata",
|
2023-12-06 01:09:34 +01:00
|
|
|
"regex-syntax",
|
2019-05-10 18:59:12 +02:00
|
|
|
]
|
|
|
|
|
2023-07-06 17:31:31 +02:00
|
|
|
[[package]]
|
|
|
|
name = "regex-automata"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.4.7"
|
2023-07-06 17:31:31 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df"
|
2023-07-06 17:31:31 +02:00
|
|
|
dependencies = [
|
|
|
|
"aho-corasick",
|
|
|
|
"memchr",
|
2023-12-06 01:09:34 +01:00
|
|
|
"regex-syntax",
|
2023-07-06 17:31:31 +02:00
|
|
|
]
|
|
|
|
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
[[package]]
|
|
|
|
name = "regex-syntax"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.8.4"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
|
Fix duration type to not report months or years (#9632)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
This PR should close #8036, #9028 (in the negative) and #9118.
Fix for #9118 is a bit pedantic. As reported, the issue is:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
3yr 12month 2day 18hr 9min 33sec
```
with this PR, you now get:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
208wk 1day 18hr 9min 33sec
```
Which is strictly correct, but could still fairly be called "weird date
arithmetic".
# Description
* [x] Abide by constraint that Value::Duration remains a number of
nanoseconds with no additional fields.
* [x] `to_string()` only displays weeks .. nanoseconds. Duration doesn't
have base date to compute months or years from.
* [x] `duration | into record` likewise only has fields for weeks ..
nanoseconds.
* [x] `string | into duration` now accepts compound form of duration
to_string() (e.g '2day 3hr`, not just '2day')
* [x] `duration | into string` now works (and produces the same
representation as to_string(), which may be compound).
# User-Facing Changes
## duration -> string -> duration
Now you can "round trip" an arbitrary duration value: convert it to a
string that may include multiple time units (a "compound" value), then
convert that string back into a duration. This required changes to
`string | into duration` and the addition of `duration | into string'.
```
> 2day + 3hr
2day 3hr # the "to_string()" representation (in this case, a compound value)
> 2day + 3hr | into string
2day 3hr # string value
> 2day + 3hr | into string | into duration
2day 3hr # round-trip duration -> string -> duration
```
Note that `to nuon` and `from nuon` already round-tripped durations, but
use a different string representation.
## potentially breaking changes
* string rendering of a duration no longer has 'yr' or 'month' phrases.
* record from `duration | into record` no longer has 'year' or 'month'
fields.
The excess duration is all lumped into the `week` field, which is the
largest time unit you can
convert to without knowing the datetime from which the duration was
calculated.
Scripts that depended on month or year time units on output will need to
be changed.
### Examples
```
> 365day
52wk 1day
## Used to be:
## 1yr
> 365day | into record
╭──────┬────╮
│ week │ 52 │
│ day │ 1 │
│ sign │ + │
╰──────┴────╯
## used to be:
##╭──────┬───╮
##│ year │ 1 │
##│ sign │ + │
##╰──────┴───╯
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns)
56wk 6day 6hr 7min 8sec 9ms 10µs 11ns
## used to be:
## 1yr 1month 3day 6hr 7min 8sec 9ms 10µs 11ns
## which looks reasonable, but was actually only correct in 75% of the years and 25% of the months in the last 4 years.
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns) | into record
╭─────────────┬────╮
│ week │ 56 │
│ day │ 6 │
│ hour │ 6 │
│ minute │ 7 │
│ second │ 8 │
│ millisecond │ 9 │
│ microsecond │ 10 │
│ nanosecond │ 11 │
│ sign │ + │
╰─────────────┴────╯
```
Strictly speaking, these changes could break an existing user script.
Losing years and months as time units is arguably a regression in
behavior.
Also, the corrected duration calculation could break an existing script
that was calibrated using the old algorithm.
# Tests + Formatting
```
> toolkit check pr
```
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Bob Hyman <bobhy@localhost.localdomain>
2023-08-08 13:24:09 +02:00
|
|
|
[[package]]
|
|
|
|
name = "relative-path"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.9.3"
|
Fix duration type to not report months or years (#9632)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
This PR should close #8036, #9028 (in the negative) and #9118.
Fix for #9118 is a bit pedantic. As reported, the issue is:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
3yr 12month 2day 18hr 9min 33sec
```
with this PR, you now get:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
208wk 1day 18hr 9min 33sec
```
Which is strictly correct, but could still fairly be called "weird date
arithmetic".
# Description
* [x] Abide by constraint that Value::Duration remains a number of
nanoseconds with no additional fields.
* [x] `to_string()` only displays weeks .. nanoseconds. Duration doesn't
have base date to compute months or years from.
* [x] `duration | into record` likewise only has fields for weeks ..
nanoseconds.
* [x] `string | into duration` now accepts compound form of duration
to_string() (e.g '2day 3hr`, not just '2day')
* [x] `duration | into string` now works (and produces the same
representation as to_string(), which may be compound).
# User-Facing Changes
## duration -> string -> duration
Now you can "round trip" an arbitrary duration value: convert it to a
string that may include multiple time units (a "compound" value), then
convert that string back into a duration. This required changes to
`string | into duration` and the addition of `duration | into string'.
```
> 2day + 3hr
2day 3hr # the "to_string()" representation (in this case, a compound value)
> 2day + 3hr | into string
2day 3hr # string value
> 2day + 3hr | into string | into duration
2day 3hr # round-trip duration -> string -> duration
```
Note that `to nuon` and `from nuon` already round-tripped durations, but
use a different string representation.
## potentially breaking changes
* string rendering of a duration no longer has 'yr' or 'month' phrases.
* record from `duration | into record` no longer has 'year' or 'month'
fields.
The excess duration is all lumped into the `week` field, which is the
largest time unit you can
convert to without knowing the datetime from which the duration was
calculated.
Scripts that depended on month or year time units on output will need to
be changed.
### Examples
```
> 365day
52wk 1day
## Used to be:
## 1yr
> 365day | into record
╭──────┬────╮
│ week │ 52 │
│ day │ 1 │
│ sign │ + │
╰──────┴────╯
## used to be:
##╭──────┬───╮
##│ year │ 1 │
##│ sign │ + │
##╰──────┴───╯
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns)
56wk 6day 6hr 7min 8sec 9ms 10µs 11ns
## used to be:
## 1yr 1month 3day 6hr 7min 8sec 9ms 10µs 11ns
## which looks reasonable, but was actually only correct in 75% of the years and 25% of the months in the last 4 years.
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns) | into record
╭─────────────┬────╮
│ week │ 56 │
│ day │ 6 │
│ hour │ 6 │
│ minute │ 7 │
│ second │ 8 │
│ millisecond │ 9 │
│ microsecond │ 10 │
│ nanosecond │ 11 │
│ sign │ + │
╰─────────────┴────╯
```
Strictly speaking, these changes could break an existing user script.
Losing years and months as time units is arguably a regression in
behavior.
Also, the corrected duration calculation could break an existing script
that was calibrated using the old algorithm.
# Tests + Formatting
```
> toolkit check pr
```
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Bob Hyman <bobhy@localhost.localdomain>
2023-08-08 13:24:09 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2"
|
Fix duration type to not report months or years (#9632)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
This PR should close #8036, #9028 (in the negative) and #9118.
Fix for #9118 is a bit pedantic. As reported, the issue is:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
3yr 12month 2day 18hr 9min 33sec
```
with this PR, you now get:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
208wk 1day 18hr 9min 33sec
```
Which is strictly correct, but could still fairly be called "weird date
arithmetic".
# Description
* [x] Abide by constraint that Value::Duration remains a number of
nanoseconds with no additional fields.
* [x] `to_string()` only displays weeks .. nanoseconds. Duration doesn't
have base date to compute months or years from.
* [x] `duration | into record` likewise only has fields for weeks ..
nanoseconds.
* [x] `string | into duration` now accepts compound form of duration
to_string() (e.g '2day 3hr`, not just '2day')
* [x] `duration | into string` now works (and produces the same
representation as to_string(), which may be compound).
# User-Facing Changes
## duration -> string -> duration
Now you can "round trip" an arbitrary duration value: convert it to a
string that may include multiple time units (a "compound" value), then
convert that string back into a duration. This required changes to
`string | into duration` and the addition of `duration | into string'.
```
> 2day + 3hr
2day 3hr # the "to_string()" representation (in this case, a compound value)
> 2day + 3hr | into string
2day 3hr # string value
> 2day + 3hr | into string | into duration
2day 3hr # round-trip duration -> string -> duration
```
Note that `to nuon` and `from nuon` already round-tripped durations, but
use a different string representation.
## potentially breaking changes
* string rendering of a duration no longer has 'yr' or 'month' phrases.
* record from `duration | into record` no longer has 'year' or 'month'
fields.
The excess duration is all lumped into the `week` field, which is the
largest time unit you can
convert to without knowing the datetime from which the duration was
calculated.
Scripts that depended on month or year time units on output will need to
be changed.
### Examples
```
> 365day
52wk 1day
## Used to be:
## 1yr
> 365day | into record
╭──────┬────╮
│ week │ 52 │
│ day │ 1 │
│ sign │ + │
╰──────┴────╯
## used to be:
##╭──────┬───╮
##│ year │ 1 │
##│ sign │ + │
##╰──────┴───╯
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns)
56wk 6day 6hr 7min 8sec 9ms 10µs 11ns
## used to be:
## 1yr 1month 3day 6hr 7min 8sec 9ms 10µs 11ns
## which looks reasonable, but was actually only correct in 75% of the years and 25% of the months in the last 4 years.
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns) | into record
╭─────────────┬────╮
│ week │ 56 │
│ day │ 6 │
│ hour │ 6 │
│ minute │ 7 │
│ second │ 8 │
│ millisecond │ 9 │
│ microsecond │ 10 │
│ nanosecond │ 11 │
│ sign │ + │
╰─────────────┴────╯
```
Strictly speaking, these changes could break an existing user script.
Losing years and months as time units is arguably a regression in
behavior.
Also, the corrected duration calculation could break an existing script
that was calibrated using the old algorithm.
# Tests + Formatting
```
> toolkit check pr
```
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Bob Hyman <bobhy@localhost.localdomain>
2023-08-08 13:24:09 +02:00
|
|
|
|
2024-01-21 21:17:28 +01:00
|
|
|
[[package]]
|
|
|
|
name = "rend"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "0.4.2"
|
2024-01-21 21:17:28 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c"
|
2024-01-21 21:17:28 +01:00
|
|
|
dependencies = [
|
|
|
|
"bytecheck",
|
|
|
|
]
|
|
|
|
|
2023-12-06 01:09:34 +01:00
|
|
|
[[package]]
|
|
|
|
name = "rfc2047-decoder"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "1.0.5"
|
2023-12-06 01:09:34 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "e90a668c463c412c3118ae1883e18b53d812c349f5af7a06de3ba4bb0c17cc73"
|
2023-12-06 01:09:34 +01:00
|
|
|
dependencies = [
|
2024-01-21 04:53:24 +01:00
|
|
|
"base64 0.21.7",
|
2023-12-06 01:09:34 +01:00
|
|
|
"charset",
|
|
|
|
"chumsky",
|
|
|
|
"memchr",
|
|
|
|
"quoted_printable",
|
|
|
|
"thiserror",
|
|
|
|
]
|
|
|
|
|
2024-01-21 21:17:28 +01:00
|
|
|
[[package]]
|
|
|
|
name = "rkyv"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.7.45"
|
2024-01-21 21:17:28 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "9008cd6385b9e161d8229e1f6549dd23c3d022f132a2ea37ac3a10ac4935779b"
|
2024-01-21 21:17:28 +01:00
|
|
|
dependencies = [
|
|
|
|
"bitvec",
|
|
|
|
"bytecheck",
|
|
|
|
"bytes",
|
|
|
|
"hashbrown 0.12.3",
|
|
|
|
"ptr_meta",
|
|
|
|
"rend",
|
|
|
|
"rkyv_derive",
|
|
|
|
"seahash",
|
|
|
|
"tinyvec",
|
|
|
|
"uuid",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rkyv_derive"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.7.45"
|
2024-01-21 21:17:28 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "503d1d27590a2b0a3a4ca4c94755aa2875657196ecbf401a42eff41d7de532c0"
|
2024-01-21 21:17:28 +01:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn 1.0.109",
|
|
|
|
]
|
|
|
|
|
2023-08-16 03:31:49 +02:00
|
|
|
[[package]]
|
|
|
|
name = "rle-decode-fast"
|
|
|
|
version = "1.0.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422"
|
|
|
|
|
2022-08-21 13:13:38 +02:00
|
|
|
[[package]]
|
|
|
|
name = "rmp"
|
2024-04-27 19:08:12 +02:00
|
|
|
version = "0.8.14"
|
2022-08-21 13:13:38 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-27 19:08:12 +02:00
|
|
|
checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4"
|
2022-08-21 13:13:38 +02:00
|
|
|
dependencies = [
|
|
|
|
"byteorder",
|
|
|
|
"num-traits",
|
|
|
|
"paste",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rmp-serde"
|
2024-05-02 02:26:00 +02:00
|
|
|
version = "1.3.0"
|
2022-08-21 13:13:38 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-05-02 02:26:00 +02:00
|
|
|
checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db"
|
2022-08-21 13:13:38 +02:00
|
|
|
dependencies = [
|
|
|
|
"byteorder",
|
|
|
|
"rmp",
|
|
|
|
"serde",
|
|
|
|
]
|
|
|
|
|
2023-11-02 16:18:57 +01:00
|
|
|
[[package]]
|
|
|
|
name = "ropey"
|
|
|
|
version = "1.6.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "93411e420bcd1a75ddd1dc3caf18c23155eda2c090631a85af21ba19e97093b5"
|
|
|
|
dependencies = [
|
|
|
|
"smallvec",
|
|
|
|
"str_indices",
|
|
|
|
]
|
|
|
|
|
2019-06-11 08:26:03 +02:00
|
|
|
[[package]]
|
|
|
|
name = "roxmltree"
|
2024-02-17 16:07:50 +01:00
|
|
|
version = "0.19.0"
|
2019-06-11 08:26:03 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-02-17 16:07:50 +01:00
|
|
|
checksum = "3cd14fd5e3b777a7422cca79358c57a8f6e3a703d9ac187448d0daf220c2407f"
|
2019-06-11 08:26:03 +02:00
|
|
|
|
Fix duration type to not report months or years (#9632)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
This PR should close #8036, #9028 (in the negative) and #9118.
Fix for #9118 is a bit pedantic. As reported, the issue is:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
3yr 12month 2day 18hr 9min 33sec
```
with this PR, you now get:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
208wk 1day 18hr 9min 33sec
```
Which is strictly correct, but could still fairly be called "weird date
arithmetic".
# Description
* [x] Abide by constraint that Value::Duration remains a number of
nanoseconds with no additional fields.
* [x] `to_string()` only displays weeks .. nanoseconds. Duration doesn't
have base date to compute months or years from.
* [x] `duration | into record` likewise only has fields for weeks ..
nanoseconds.
* [x] `string | into duration` now accepts compound form of duration
to_string() (e.g '2day 3hr`, not just '2day')
* [x] `duration | into string` now works (and produces the same
representation as to_string(), which may be compound).
# User-Facing Changes
## duration -> string -> duration
Now you can "round trip" an arbitrary duration value: convert it to a
string that may include multiple time units (a "compound" value), then
convert that string back into a duration. This required changes to
`string | into duration` and the addition of `duration | into string'.
```
> 2day + 3hr
2day 3hr # the "to_string()" representation (in this case, a compound value)
> 2day + 3hr | into string
2day 3hr # string value
> 2day + 3hr | into string | into duration
2day 3hr # round-trip duration -> string -> duration
```
Note that `to nuon` and `from nuon` already round-tripped durations, but
use a different string representation.
## potentially breaking changes
* string rendering of a duration no longer has 'yr' or 'month' phrases.
* record from `duration | into record` no longer has 'year' or 'month'
fields.
The excess duration is all lumped into the `week` field, which is the
largest time unit you can
convert to without knowing the datetime from which the duration was
calculated.
Scripts that depended on month or year time units on output will need to
be changed.
### Examples
```
> 365day
52wk 1day
## Used to be:
## 1yr
> 365day | into record
╭──────┬────╮
│ week │ 52 │
│ day │ 1 │
│ sign │ + │
╰──────┴────╯
## used to be:
##╭──────┬───╮
##│ year │ 1 │
##│ sign │ + │
##╰──────┴───╯
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns)
56wk 6day 6hr 7min 8sec 9ms 10µs 11ns
## used to be:
## 1yr 1month 3day 6hr 7min 8sec 9ms 10µs 11ns
## which looks reasonable, but was actually only correct in 75% of the years and 25% of the months in the last 4 years.
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns) | into record
╭─────────────┬────╮
│ week │ 56 │
│ day │ 6 │
│ hour │ 6 │
│ minute │ 7 │
│ second │ 8 │
│ millisecond │ 9 │
│ microsecond │ 10 │
│ nanosecond │ 11 │
│ sign │ + │
╰─────────────┴────╯
```
Strictly speaking, these changes could break an existing user script.
Losing years and months as time units is arguably a regression in
behavior.
Also, the corrected duration calculation could break an existing script
that was calibrated using the old algorithm.
# Tests + Formatting
```
> toolkit check pr
```
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Bob Hyman <bobhy@localhost.localdomain>
2023-08-08 13:24:09 +02:00
|
|
|
[[package]]
|
|
|
|
name = "rstest"
|
2023-10-07 13:58:26 +02:00
|
|
|
version = "0.18.2"
|
Fix duration type to not report months or years (#9632)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
This PR should close #8036, #9028 (in the negative) and #9118.
Fix for #9118 is a bit pedantic. As reported, the issue is:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
3yr 12month 2day 18hr 9min 33sec
```
with this PR, you now get:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
208wk 1day 18hr 9min 33sec
```
Which is strictly correct, but could still fairly be called "weird date
arithmetic".
# Description
* [x] Abide by constraint that Value::Duration remains a number of
nanoseconds with no additional fields.
* [x] `to_string()` only displays weeks .. nanoseconds. Duration doesn't
have base date to compute months or years from.
* [x] `duration | into record` likewise only has fields for weeks ..
nanoseconds.
* [x] `string | into duration` now accepts compound form of duration
to_string() (e.g '2day 3hr`, not just '2day')
* [x] `duration | into string` now works (and produces the same
representation as to_string(), which may be compound).
# User-Facing Changes
## duration -> string -> duration
Now you can "round trip" an arbitrary duration value: convert it to a
string that may include multiple time units (a "compound" value), then
convert that string back into a duration. This required changes to
`string | into duration` and the addition of `duration | into string'.
```
> 2day + 3hr
2day 3hr # the "to_string()" representation (in this case, a compound value)
> 2day + 3hr | into string
2day 3hr # string value
> 2day + 3hr | into string | into duration
2day 3hr # round-trip duration -> string -> duration
```
Note that `to nuon` and `from nuon` already round-tripped durations, but
use a different string representation.
## potentially breaking changes
* string rendering of a duration no longer has 'yr' or 'month' phrases.
* record from `duration | into record` no longer has 'year' or 'month'
fields.
The excess duration is all lumped into the `week` field, which is the
largest time unit you can
convert to without knowing the datetime from which the duration was
calculated.
Scripts that depended on month or year time units on output will need to
be changed.
### Examples
```
> 365day
52wk 1day
## Used to be:
## 1yr
> 365day | into record
╭──────┬────╮
│ week │ 52 │
│ day │ 1 │
│ sign │ + │
╰──────┴────╯
## used to be:
##╭──────┬───╮
##│ year │ 1 │
##│ sign │ + │
##╰──────┴───╯
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns)
56wk 6day 6hr 7min 8sec 9ms 10µs 11ns
## used to be:
## 1yr 1month 3day 6hr 7min 8sec 9ms 10µs 11ns
## which looks reasonable, but was actually only correct in 75% of the years and 25% of the months in the last 4 years.
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns) | into record
╭─────────────┬────╮
│ week │ 56 │
│ day │ 6 │
│ hour │ 6 │
│ minute │ 7 │
│ second │ 8 │
│ millisecond │ 9 │
│ microsecond │ 10 │
│ nanosecond │ 11 │
│ sign │ + │
╰─────────────┴────╯
```
Strictly speaking, these changes could break an existing user script.
Losing years and months as time units is arguably a regression in
behavior.
Also, the corrected duration calculation could break an existing script
that was calibrated using the old algorithm.
# Tests + Formatting
```
> toolkit check pr
```
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Bob Hyman <bobhy@localhost.localdomain>
2023-08-08 13:24:09 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 13:58:26 +02:00
|
|
|
checksum = "97eeab2f3c0a199bc4be135c36c924b6590b88c377d416494288c14f2db30199"
|
Fix duration type to not report months or years (#9632)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
This PR should close #8036, #9028 (in the negative) and #9118.
Fix for #9118 is a bit pedantic. As reported, the issue is:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
3yr 12month 2day 18hr 9min 33sec
```
with this PR, you now get:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
208wk 1day 18hr 9min 33sec
```
Which is strictly correct, but could still fairly be called "weird date
arithmetic".
# Description
* [x] Abide by constraint that Value::Duration remains a number of
nanoseconds with no additional fields.
* [x] `to_string()` only displays weeks .. nanoseconds. Duration doesn't
have base date to compute months or years from.
* [x] `duration | into record` likewise only has fields for weeks ..
nanoseconds.
* [x] `string | into duration` now accepts compound form of duration
to_string() (e.g '2day 3hr`, not just '2day')
* [x] `duration | into string` now works (and produces the same
representation as to_string(), which may be compound).
# User-Facing Changes
## duration -> string -> duration
Now you can "round trip" an arbitrary duration value: convert it to a
string that may include multiple time units (a "compound" value), then
convert that string back into a duration. This required changes to
`string | into duration` and the addition of `duration | into string'.
```
> 2day + 3hr
2day 3hr # the "to_string()" representation (in this case, a compound value)
> 2day + 3hr | into string
2day 3hr # string value
> 2day + 3hr | into string | into duration
2day 3hr # round-trip duration -> string -> duration
```
Note that `to nuon` and `from nuon` already round-tripped durations, but
use a different string representation.
## potentially breaking changes
* string rendering of a duration no longer has 'yr' or 'month' phrases.
* record from `duration | into record` no longer has 'year' or 'month'
fields.
The excess duration is all lumped into the `week` field, which is the
largest time unit you can
convert to without knowing the datetime from which the duration was
calculated.
Scripts that depended on month or year time units on output will need to
be changed.
### Examples
```
> 365day
52wk 1day
## Used to be:
## 1yr
> 365day | into record
╭──────┬────╮
│ week │ 52 │
│ day │ 1 │
│ sign │ + │
╰──────┴────╯
## used to be:
##╭──────┬───╮
##│ year │ 1 │
##│ sign │ + │
##╰──────┴───╯
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns)
56wk 6day 6hr 7min 8sec 9ms 10µs 11ns
## used to be:
## 1yr 1month 3day 6hr 7min 8sec 9ms 10µs 11ns
## which looks reasonable, but was actually only correct in 75% of the years and 25% of the months in the last 4 years.
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns) | into record
╭─────────────┬────╮
│ week │ 56 │
│ day │ 6 │
│ hour │ 6 │
│ minute │ 7 │
│ second │ 8 │
│ millisecond │ 9 │
│ microsecond │ 10 │
│ nanosecond │ 11 │
│ sign │ + │
╰─────────────┴────╯
```
Strictly speaking, these changes could break an existing user script.
Losing years and months as time units is arguably a regression in
behavior.
Also, the corrected duration calculation could break an existing script
that was calibrated using the old algorithm.
# Tests + Formatting
```
> toolkit check pr
```
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Bob Hyman <bobhy@localhost.localdomain>
2023-08-08 13:24:09 +02:00
|
|
|
dependencies = [
|
2023-08-08 19:11:05 +02:00
|
|
|
"rstest_macros",
|
2023-03-12 00:35:56 +01:00
|
|
|
"rustc_version",
|
2022-07-11 18:18:06 +02:00
|
|
|
]
|
|
|
|
|
Fix duration type to not report months or years (#9632)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
This PR should close #8036, #9028 (in the negative) and #9118.
Fix for #9118 is a bit pedantic. As reported, the issue is:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
3yr 12month 2day 18hr 9min 33sec
```
with this PR, you now get:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
208wk 1day 18hr 9min 33sec
```
Which is strictly correct, but could still fairly be called "weird date
arithmetic".
# Description
* [x] Abide by constraint that Value::Duration remains a number of
nanoseconds with no additional fields.
* [x] `to_string()` only displays weeks .. nanoseconds. Duration doesn't
have base date to compute months or years from.
* [x] `duration | into record` likewise only has fields for weeks ..
nanoseconds.
* [x] `string | into duration` now accepts compound form of duration
to_string() (e.g '2day 3hr`, not just '2day')
* [x] `duration | into string` now works (and produces the same
representation as to_string(), which may be compound).
# User-Facing Changes
## duration -> string -> duration
Now you can "round trip" an arbitrary duration value: convert it to a
string that may include multiple time units (a "compound" value), then
convert that string back into a duration. This required changes to
`string | into duration` and the addition of `duration | into string'.
```
> 2day + 3hr
2day 3hr # the "to_string()" representation (in this case, a compound value)
> 2day + 3hr | into string
2day 3hr # string value
> 2day + 3hr | into string | into duration
2day 3hr # round-trip duration -> string -> duration
```
Note that `to nuon` and `from nuon` already round-tripped durations, but
use a different string representation.
## potentially breaking changes
* string rendering of a duration no longer has 'yr' or 'month' phrases.
* record from `duration | into record` no longer has 'year' or 'month'
fields.
The excess duration is all lumped into the `week` field, which is the
largest time unit you can
convert to without knowing the datetime from which the duration was
calculated.
Scripts that depended on month or year time units on output will need to
be changed.
### Examples
```
> 365day
52wk 1day
## Used to be:
## 1yr
> 365day | into record
╭──────┬────╮
│ week │ 52 │
│ day │ 1 │
│ sign │ + │
╰──────┴────╯
## used to be:
##╭──────┬───╮
##│ year │ 1 │
##│ sign │ + │
##╰──────┴───╯
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns)
56wk 6day 6hr 7min 8sec 9ms 10µs 11ns
## used to be:
## 1yr 1month 3day 6hr 7min 8sec 9ms 10µs 11ns
## which looks reasonable, but was actually only correct in 75% of the years and 25% of the months in the last 4 years.
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns) | into record
╭─────────────┬────╮
│ week │ 56 │
│ day │ 6 │
│ hour │ 6 │
│ minute │ 7 │
│ second │ 8 │
│ millisecond │ 9 │
│ microsecond │ 10 │
│ nanosecond │ 11 │
│ sign │ + │
╰─────────────┴────╯
```
Strictly speaking, these changes could break an existing user script.
Losing years and months as time units is arguably a regression in
behavior.
Also, the corrected duration calculation could break an existing script
that was calibrated using the old algorithm.
# Tests + Formatting
```
> toolkit check pr
```
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Bob Hyman <bobhy@localhost.localdomain>
2023-08-08 13:24:09 +02:00
|
|
|
[[package]]
|
|
|
|
name = "rstest_macros"
|
2023-10-07 13:58:26 +02:00
|
|
|
version = "0.18.2"
|
Fix duration type to not report months or years (#9632)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
This PR should close #8036, #9028 (in the negative) and #9118.
Fix for #9118 is a bit pedantic. As reported, the issue is:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
3yr 12month 2day 18hr 9min 33sec
```
with this PR, you now get:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
208wk 1day 18hr 9min 33sec
```
Which is strictly correct, but could still fairly be called "weird date
arithmetic".
# Description
* [x] Abide by constraint that Value::Duration remains a number of
nanoseconds with no additional fields.
* [x] `to_string()` only displays weeks .. nanoseconds. Duration doesn't
have base date to compute months or years from.
* [x] `duration | into record` likewise only has fields for weeks ..
nanoseconds.
* [x] `string | into duration` now accepts compound form of duration
to_string() (e.g '2day 3hr`, not just '2day')
* [x] `duration | into string` now works (and produces the same
representation as to_string(), which may be compound).
# User-Facing Changes
## duration -> string -> duration
Now you can "round trip" an arbitrary duration value: convert it to a
string that may include multiple time units (a "compound" value), then
convert that string back into a duration. This required changes to
`string | into duration` and the addition of `duration | into string'.
```
> 2day + 3hr
2day 3hr # the "to_string()" representation (in this case, a compound value)
> 2day + 3hr | into string
2day 3hr # string value
> 2day + 3hr | into string | into duration
2day 3hr # round-trip duration -> string -> duration
```
Note that `to nuon` and `from nuon` already round-tripped durations, but
use a different string representation.
## potentially breaking changes
* string rendering of a duration no longer has 'yr' or 'month' phrases.
* record from `duration | into record` no longer has 'year' or 'month'
fields.
The excess duration is all lumped into the `week` field, which is the
largest time unit you can
convert to without knowing the datetime from which the duration was
calculated.
Scripts that depended on month or year time units on output will need to
be changed.
### Examples
```
> 365day
52wk 1day
## Used to be:
## 1yr
> 365day | into record
╭──────┬────╮
│ week │ 52 │
│ day │ 1 │
│ sign │ + │
╰──────┴────╯
## used to be:
##╭──────┬───╮
##│ year │ 1 │
##│ sign │ + │
##╰──────┴───╯
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns)
56wk 6day 6hr 7min 8sec 9ms 10µs 11ns
## used to be:
## 1yr 1month 3day 6hr 7min 8sec 9ms 10µs 11ns
## which looks reasonable, but was actually only correct in 75% of the years and 25% of the months in the last 4 years.
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns) | into record
╭─────────────┬────╮
│ week │ 56 │
│ day │ 6 │
│ hour │ 6 │
│ minute │ 7 │
│ second │ 8 │
│ millisecond │ 9 │
│ microsecond │ 10 │
│ nanosecond │ 11 │
│ sign │ + │
╰─────────────┴────╯
```
Strictly speaking, these changes could break an existing user script.
Losing years and months as time units is arguably a regression in
behavior.
Also, the corrected duration calculation could break an existing script
that was calibrated using the old algorithm.
# Tests + Formatting
```
> toolkit check pr
```
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Bob Hyman <bobhy@localhost.localdomain>
2023-08-08 13:24:09 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 13:58:26 +02:00
|
|
|
checksum = "d428f8247852f894ee1be110b375111b586d4fa431f6c46e64ba5a0dcccbe605"
|
Fix duration type to not report months or years (#9632)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
This PR should close #8036, #9028 (in the negative) and #9118.
Fix for #9118 is a bit pedantic. As reported, the issue is:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
3yr 12month 2day 18hr 9min 33sec
```
with this PR, you now get:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
208wk 1day 18hr 9min 33sec
```
Which is strictly correct, but could still fairly be called "weird date
arithmetic".
# Description
* [x] Abide by constraint that Value::Duration remains a number of
nanoseconds with no additional fields.
* [x] `to_string()` only displays weeks .. nanoseconds. Duration doesn't
have base date to compute months or years from.
* [x] `duration | into record` likewise only has fields for weeks ..
nanoseconds.
* [x] `string | into duration` now accepts compound form of duration
to_string() (e.g '2day 3hr`, not just '2day')
* [x] `duration | into string` now works (and produces the same
representation as to_string(), which may be compound).
# User-Facing Changes
## duration -> string -> duration
Now you can "round trip" an arbitrary duration value: convert it to a
string that may include multiple time units (a "compound" value), then
convert that string back into a duration. This required changes to
`string | into duration` and the addition of `duration | into string'.
```
> 2day + 3hr
2day 3hr # the "to_string()" representation (in this case, a compound value)
> 2day + 3hr | into string
2day 3hr # string value
> 2day + 3hr | into string | into duration
2day 3hr # round-trip duration -> string -> duration
```
Note that `to nuon` and `from nuon` already round-tripped durations, but
use a different string representation.
## potentially breaking changes
* string rendering of a duration no longer has 'yr' or 'month' phrases.
* record from `duration | into record` no longer has 'year' or 'month'
fields.
The excess duration is all lumped into the `week` field, which is the
largest time unit you can
convert to without knowing the datetime from which the duration was
calculated.
Scripts that depended on month or year time units on output will need to
be changed.
### Examples
```
> 365day
52wk 1day
## Used to be:
## 1yr
> 365day | into record
╭──────┬────╮
│ week │ 52 │
│ day │ 1 │
│ sign │ + │
╰──────┴────╯
## used to be:
##╭──────┬───╮
##│ year │ 1 │
##│ sign │ + │
##╰──────┴───╯
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns)
56wk 6day 6hr 7min 8sec 9ms 10µs 11ns
## used to be:
## 1yr 1month 3day 6hr 7min 8sec 9ms 10µs 11ns
## which looks reasonable, but was actually only correct in 75% of the years and 25% of the months in the last 4 years.
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns) | into record
╭─────────────┬────╮
│ week │ 56 │
│ day │ 6 │
│ hour │ 6 │
│ minute │ 7 │
│ second │ 8 │
│ millisecond │ 9 │
│ microsecond │ 10 │
│ nanosecond │ 11 │
│ sign │ + │
╰─────────────┴────╯
```
Strictly speaking, these changes could break an existing user script.
Losing years and months as time units is arguably a regression in
behavior.
Also, the corrected duration calculation could break an existing script
that was calibrated using the old algorithm.
# Tests + Formatting
```
> toolkit check pr
```
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Bob Hyman <bobhy@localhost.localdomain>
2023-08-08 13:24:09 +02:00
|
|
|
dependencies = [
|
|
|
|
"cfg-if",
|
|
|
|
"glob",
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"regex",
|
|
|
|
"relative-path",
|
|
|
|
"rustc_version",
|
2024-08-24 00:35:42 +02:00
|
|
|
"syn 2.0.75",
|
Fix duration type to not report months or years (#9632)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
This PR should close #8036, #9028 (in the negative) and #9118.
Fix for #9118 is a bit pedantic. As reported, the issue is:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
3yr 12month 2day 18hr 9min 33sec
```
with this PR, you now get:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
208wk 1day 18hr 9min 33sec
```
Which is strictly correct, but could still fairly be called "weird date
arithmetic".
# Description
* [x] Abide by constraint that Value::Duration remains a number of
nanoseconds with no additional fields.
* [x] `to_string()` only displays weeks .. nanoseconds. Duration doesn't
have base date to compute months or years from.
* [x] `duration | into record` likewise only has fields for weeks ..
nanoseconds.
* [x] `string | into duration` now accepts compound form of duration
to_string() (e.g '2day 3hr`, not just '2day')
* [x] `duration | into string` now works (and produces the same
representation as to_string(), which may be compound).
# User-Facing Changes
## duration -> string -> duration
Now you can "round trip" an arbitrary duration value: convert it to a
string that may include multiple time units (a "compound" value), then
convert that string back into a duration. This required changes to
`string | into duration` and the addition of `duration | into string'.
```
> 2day + 3hr
2day 3hr # the "to_string()" representation (in this case, a compound value)
> 2day + 3hr | into string
2day 3hr # string value
> 2day + 3hr | into string | into duration
2day 3hr # round-trip duration -> string -> duration
```
Note that `to nuon` and `from nuon` already round-tripped durations, but
use a different string representation.
## potentially breaking changes
* string rendering of a duration no longer has 'yr' or 'month' phrases.
* record from `duration | into record` no longer has 'year' or 'month'
fields.
The excess duration is all lumped into the `week` field, which is the
largest time unit you can
convert to without knowing the datetime from which the duration was
calculated.
Scripts that depended on month or year time units on output will need to
be changed.
### Examples
```
> 365day
52wk 1day
## Used to be:
## 1yr
> 365day | into record
╭──────┬────╮
│ week │ 52 │
│ day │ 1 │
│ sign │ + │
╰──────┴────╯
## used to be:
##╭──────┬───╮
##│ year │ 1 │
##│ sign │ + │
##╰──────┴───╯
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns)
56wk 6day 6hr 7min 8sec 9ms 10µs 11ns
## used to be:
## 1yr 1month 3day 6hr 7min 8sec 9ms 10µs 11ns
## which looks reasonable, but was actually only correct in 75% of the years and 25% of the months in the last 4 years.
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns) | into record
╭─────────────┬────╮
│ week │ 56 │
│ day │ 6 │
│ hour │ 6 │
│ minute │ 7 │
│ second │ 8 │
│ millisecond │ 9 │
│ microsecond │ 10 │
│ nanosecond │ 11 │
│ sign │ + │
╰─────────────┴────╯
```
Strictly speaking, these changes could break an existing user script.
Losing years and months as time units is arguably a regression in
behavior.
Also, the corrected duration calculation could break an existing script
that was calibrated using the old algorithm.
# Tests + Formatting
```
> toolkit check pr
```
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Bob Hyman <bobhy@localhost.localdomain>
2023-08-08 13:24:09 +02:00
|
|
|
"unicode-ident",
|
|
|
|
]
|
|
|
|
|
2022-04-14 05:15:02 +02:00
|
|
|
[[package]]
|
|
|
|
name = "rusqlite"
|
2024-02-17 16:32:17 +01:00
|
|
|
version = "0.31.0"
|
2022-04-14 05:15:02 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-02-17 16:32:17 +01:00
|
|
|
checksum = "b838eba278d213a8beaf485bd313fd580ca4505a00d5871caeb1457c55322cae"
|
2022-04-14 05:15:02 +02:00
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"bitflags 2.6.0",
|
Fix memory consumption of into sqlite (#10232)
# Description
Currently, the `into sqlite` command collects the entire input stream
into a single Value, which soaks up the entire input into memory, before
it ever tries to write anything to the DB. This is very problematic for
large inputs; for example, I tried transforming a multi-gigabyte CSV
file into SQLite, and before I knew what was happening, my system's
memory was completely exhausted, and I had to hard reboot to recover.
This PR fixes this problem by working directly with the pipeline stream,
inserting into the DB as values are read from the stream.
In order to facilitate working with the stream directly, I introduced a
new `Table` struct to store the connection and a few configuration
parameters, as well as to make it easier to lazily create the table on
the first read value.
In addition to the purely functional fixes, a few other changes were
made to the serialization and user facing behavior.
### Serialization
Much of the preexisting code was focused on generating the exact text
needed for a SQL statement. This is unneeded and less safe than using
the `rusqlite` crate's serialization for native Rust types along with
prepared statements.
### User-Facing Changes
Currently, the command is very liberal in the input types it accepts.
The strategy is basically if it is a record, try to follow its structure
and make an analogous SQL row, which is pretty reasonable. However, when
it's not a record, it basically tries to guess what the user wanted and
just makes a single column table and serializes the value into that one
column, whatever type it may be.
This has been changed so that it only accepts records as input. If the
user wants to serialize non-record types into SQL, then they must
explicitly opt into doing this by constructing a record or table with it
first. For a utility for inserting data into SQL, I think it makes more
sense to let the user choose how to convert their data, rather than make
a choice for them that may surprise them.
However, I understand this may be a controversial change. If the
maintainers don't agree, I can change this back.
#### Long switch names
The `file_name` and `table_name` long form switches are currently
snake_case and expect to be as such at the command line. These have been
changed to kebab-case to be more conventional.
# Tests + Formatting
To test the memory consumption, I used [this publicly available index of
all Wikipedia articles](https://dumps.wikimedia.org/enwiki/20230820/),
using the first 10,000, 100,000, and 1,000,000 entries, in that order. I
ran the following script to benchmark the changes against the current
stable release:
```nu
#!/usr/bin/nu
# let shellbin = $"($env.HOME)/src/nushell/target/aarch64-linux-android/release/nu"
let shellbin = "nu"
const dbpath = 'enwiki-index.db'
[10000, 100000, 1000000]
| each {|rows|
rm -f $dbpath;
do { time -f '%M %e %U %S' $shellbin -c (
$"bzip2 -cdk ~/enwiki-20230820-pages-articles-multistream-index.txt.bz2
| head -n ($rows)
| lines
| parse '{offset}:{id}:{title}'
| update cells -c [offset, id] { into int }
| into sqlite ($dbpath)"
)
}
| complete
| get stderr
| str trim
| parse '{rss_max} {real} {user} {kernel}'
| update cells -c [rss_max] { $"($in)kb" | into filesize }
| update cells -c [real, user, kernel] { $"($in)sec" | into duration }
| insert rows $rows
| roll right
}
| flatten
| to nuon
```
This yields the following results
Current stable release:
|rows|rss_max|real|user|kernel|
|-|-|-|-|-|
|10000|53.6 MiB|770ms|460ms|420ms|
|100000|209.6 MiB|6sec 940ms|3sec 740ms|4sec 380ms|
|1000000|1.7 GiB|1min 8sec 810ms|38sec 690ms|42sec 550ms|
This PR:
|rows|rss_max|real|user|kernel|
|-|-|-|-|-|
|10000|38.2 MiB|780ms|440ms|410ms|
|100000|39.8 MiB|6sec 450ms|3sec 530ms|4sec 160ms|
|1000000|39.8 MiB|1min 3sec 230ms|37sec 440ms|40sec 180ms|
# Note
I started this branch kind of at the same time as my others, but I
understand the feedback that smaller PRs are preferred. Let me know if
it would be better to split this up.
I do think the scope of the changes are on the bigger side even without
the behavior changes I mentioned, so I'm not sure if that will help this
particular PR very much, but I'm happy to oblige on request.
2024-01-16 04:41:25 +01:00
|
|
|
"chrono",
|
2022-04-14 05:15:02 +02:00
|
|
|
"fallible-iterator",
|
|
|
|
"fallible-streaming-iterator",
|
|
|
|
"hashlink",
|
|
|
|
"libsqlite3-sys",
|
|
|
|
"smallvec",
|
|
|
|
]
|
|
|
|
|
2020-08-10 19:43:16 +02:00
|
|
|
[[package]]
|
|
|
|
name = "rust-embed"
|
2024-07-17 03:47:09 +02:00
|
|
|
version = "8.5.0"
|
2021-12-10 02:16:35 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-07-17 03:47:09 +02:00
|
|
|
checksum = "fa66af4a4fdd5e7ebc276f115e895611a34739a9c1c01028383d612d550953c0"
|
2020-08-10 19:43:16 +02:00
|
|
|
dependencies = [
|
|
|
|
"rust-embed-impl",
|
|
|
|
"rust-embed-utils",
|
|
|
|
"walkdir",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rust-embed-impl"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "8.5.0"
|
2021-12-10 02:16:35 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "6125dbc8867951125eec87294137f4e9c2c96566e61bf72c45095a7c77761478"
|
2020-08-10 19:43:16 +02:00
|
|
|
dependencies = [
|
2021-01-07 02:33:39 +01:00
|
|
|
"proc-macro2",
|
2021-08-28 05:34:11 +02:00
|
|
|
"quote",
|
2020-08-10 19:43:16 +02:00
|
|
|
"rust-embed-utils",
|
2024-08-24 00:35:42 +02:00
|
|
|
"syn 2.0.75",
|
2020-08-10 19:43:16 +02:00
|
|
|
"walkdir",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rust-embed-utils"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "8.5.0"
|
2021-12-10 02:16:35 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "2e5347777e9aacb56039b0e1f28785929a8a3b709e87482e7442c72e7c12529d"
|
2021-12-10 02:16:35 +01:00
|
|
|
dependencies = [
|
2022-10-03 18:40:16 +02:00
|
|
|
"sha2",
|
2020-08-10 19:43:16 +02:00
|
|
|
"walkdir",
|
|
|
|
]
|
|
|
|
|
2023-02-09 12:47:45 +01:00
|
|
|
[[package]]
|
|
|
|
name = "rust-ini"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.21.1"
|
2023-02-09 12:47:45 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "4e310ef0e1b6eeb79169a1171daf9abcb87a2e17c03bee2c4bb100b55c75409f"
|
2023-02-09 12:47:45 +01:00
|
|
|
dependencies = [
|
2023-07-05 14:14:55 +02:00
|
|
|
"cfg-if",
|
2023-02-09 12:47:45 +01:00
|
|
|
"ordered-multimap",
|
2024-04-24 13:55:20 +02:00
|
|
|
"trim-in-place",
|
2023-02-09 12:47:45 +01:00
|
|
|
]
|
|
|
|
|
2020-08-05 23:34:28 +02:00
|
|
|
[[package]]
|
|
|
|
name = "rust_decimal"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.36.0"
|
2020-08-05 23:34:28 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "b082d80e3e3cc52b2ed634388d436fe1f4de6af5786cc2de9ba9737527bdf555"
|
2020-08-05 23:34:28 +02:00
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"arrayvec 0.7.6",
|
2024-01-21 21:17:28 +01:00
|
|
|
"borsh",
|
|
|
|
"bytes",
|
2022-07-26 04:09:32 +02:00
|
|
|
"num-traits",
|
2024-01-21 21:17:28 +01:00
|
|
|
"rand",
|
|
|
|
"rkyv",
|
|
|
|
"serde",
|
|
|
|
"serde_json",
|
2020-08-05 23:34:28 +02:00
|
|
|
]
|
|
|
|
|
2023-07-06 17:31:31 +02:00
|
|
|
[[package]]
|
|
|
|
name = "rustc-demangle"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.1.24"
|
2023-07-06 17:31:31 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
|
2023-07-06 17:31:31 +02:00
|
|
|
|
2022-07-11 18:18:06 +02:00
|
|
|
[[package]]
|
|
|
|
name = "rustc-hash"
|
|
|
|
version = "1.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
|
|
|
|
|
2020-08-12 19:20:22 +02:00
|
|
|
[[package]]
|
2021-12-02 19:05:38 +01:00
|
|
|
name = "rustc_version"
|
|
|
|
version = "0.4.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
|
|
|
|
dependencies = [
|
2023-03-12 00:35:56 +01:00
|
|
|
"semver",
|
2022-02-06 01:16:21 +01:00
|
|
|
]
|
|
|
|
|
2023-07-06 17:31:31 +02:00
|
|
|
[[package]]
|
|
|
|
name = "rustix"
|
2024-09-26 14:20:59 +02:00
|
|
|
version = "0.38.37"
|
2023-07-06 17:31:31 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-09-26 14:20:59 +02:00
|
|
|
checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811"
|
2023-07-06 17:31:31 +02:00
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"bitflags 2.6.0",
|
2023-07-10 07:10:36 +02:00
|
|
|
"errno",
|
2023-07-06 17:31:31 +02:00
|
|
|
"libc",
|
2024-01-05 17:19:46 +01:00
|
|
|
"linux-raw-sys",
|
2023-12-06 01:09:34 +01:00
|
|
|
"windows-sys 0.52.0",
|
2023-07-06 17:31:31 +02:00
|
|
|
]
|
|
|
|
|
2022-02-03 02:24:24 +01:00
|
|
|
[[package]]
|
|
|
|
name = "rustversion"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.0.17"
|
2022-02-03 02:24:24 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6"
|
2022-02-03 02:24:24 +01:00
|
|
|
|
2021-10-01 07:11:49 +02:00
|
|
|
[[package]]
|
|
|
|
name = "ryu"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.0.18"
|
2021-10-01 07:11:49 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
|
2019-05-18 03:24:13 +02:00
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "same-file"
|
2020-02-01 07:11:42 +01:00
|
|
|
version = "1.0.6"
|
2019-05-18 03:24:13 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-02-01 07:11:42 +01:00
|
|
|
checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
|
2019-05-18 03:24:13 +02:00
|
|
|
dependencies = [
|
2019-11-28 03:21:00 +01:00
|
|
|
"winapi-util",
|
2019-05-18 03:24:13 +02:00
|
|
|
]
|
|
|
|
|
2024-04-24 14:01:20 +02:00
|
|
|
[[package]]
|
|
|
|
name = "scc"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "2.1.16"
|
2024-04-24 14:01:20 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "aeb7ac86243095b70a7920639507b71d51a63390d1ba26c4f60a552fbb914a37"
|
2024-04-24 14:01:20 +02:00
|
|
|
dependencies = [
|
|
|
|
"sdd",
|
|
|
|
]
|
|
|
|
|
2019-06-08 20:09:17 +02:00
|
|
|
[[package]]
|
|
|
|
name = "schannel"
|
2024-01-21 04:53:24 +01:00
|
|
|
version = "0.1.23"
|
2019-06-08 20:09:17 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 04:53:24 +01:00
|
|
|
checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
|
2019-06-08 20:09:17 +02:00
|
|
|
dependencies = [
|
2024-01-21 04:53:24 +01:00
|
|
|
"windows-sys 0.52.0",
|
2019-06-08 20:09:17 +02:00
|
|
|
]
|
|
|
|
|
2024-01-20 15:04:06 +01:00
|
|
|
[[package]]
|
|
|
|
name = "scoped-tls"
|
|
|
|
version = "1.0.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
|
|
|
|
|
2019-10-08 15:47:30 +02:00
|
|
|
[[package]]
|
|
|
|
name = "scopeguard"
|
2023-10-07 13:58:26 +02:00
|
|
|
version = "1.2.0"
|
2019-10-08 15:47:30 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 13:58:26 +02:00
|
|
|
checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
|
2019-10-08 15:47:30 +02:00
|
|
|
|
2021-09-16 16:02:30 +02:00
|
|
|
[[package]]
|
|
|
|
name = "scraper"
|
2024-08-07 03:07:19 +02:00
|
|
|
version = "0.20.0"
|
2021-09-16 16:02:30 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-07 03:07:19 +02:00
|
|
|
checksum = "b90460b31bfe1fc07be8262e42c665ad97118d4585869de9345a84d501a9eaf0"
|
2021-09-16 16:02:30 +02:00
|
|
|
dependencies = [
|
2024-04-10 02:31:43 +02:00
|
|
|
"ahash 0.8.11",
|
2021-09-16 16:02:30 +02:00
|
|
|
"cssparser",
|
|
|
|
"ego-tree",
|
2024-08-07 03:07:19 +02:00
|
|
|
"html5ever",
|
2023-05-26 17:32:48 +02:00
|
|
|
"once_cell",
|
2021-09-16 16:02:30 +02:00
|
|
|
"selectors",
|
|
|
|
"tendril",
|
|
|
|
]
|
|
|
|
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
[[package]]
|
|
|
|
name = "scroll"
|
|
|
|
version = "0.11.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "04c565b551bafbef4157586fa379538366e4385d42082f255bfd96e4fe8519da"
|
|
|
|
dependencies = [
|
|
|
|
"scroll_derive",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "scroll_derive"
|
|
|
|
version = "0.11.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae"
|
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2024-08-24 00:35:42 +02:00
|
|
|
"syn 2.0.75",
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
]
|
|
|
|
|
2024-04-24 14:01:20 +02:00
|
|
|
[[package]]
|
|
|
|
name = "sdd"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "3.0.2"
|
2024-04-24 14:01:20 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "0495e4577c672de8254beb68d01a9b62d0e8a13c099edecdbedccce3223cd29f"
|
2024-04-24 14:01:20 +02:00
|
|
|
|
2024-01-21 21:17:28 +01:00
|
|
|
[[package]]
|
|
|
|
name = "seahash"
|
|
|
|
version = "4.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b"
|
|
|
|
|
2020-01-17 21:35:48 +01:00
|
|
|
[[package]]
|
|
|
|
name = "security-framework"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "2.11.1"
|
2020-01-17 21:35:48 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02"
|
2020-01-17 21:35:48 +01:00
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"bitflags 2.6.0",
|
2021-01-20 08:18:38 +01:00
|
|
|
"core-foundation",
|
|
|
|
"core-foundation-sys",
|
2020-04-18 05:31:57 +02:00
|
|
|
"libc",
|
2020-01-17 21:35:48 +01:00
|
|
|
"security-framework-sys",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "security-framework-sys"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "2.11.1"
|
2020-01-17 21:35:48 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf"
|
2020-01-17 21:35:48 +01:00
|
|
|
dependencies = [
|
2021-01-20 08:18:38 +01:00
|
|
|
"core-foundation-sys",
|
2020-03-20 08:53:49 +01:00
|
|
|
"libc",
|
2020-01-17 21:35:48 +01:00
|
|
|
]
|
|
|
|
|
2020-11-03 22:46:42 +01:00
|
|
|
[[package]]
|
|
|
|
name = "selectors"
|
2023-07-10 07:28:36 +02:00
|
|
|
version = "0.25.0"
|
2020-11-03 22:46:42 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-07-10 07:28:36 +02:00
|
|
|
checksum = "4eb30575f3638fc8f6815f448d50cb1a2e255b0897985c8c59f4d37b72a07b06"
|
2020-11-03 22:46:42 +01:00
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"bitflags 2.6.0",
|
2020-11-03 22:46:42 +01:00
|
|
|
"cssparser",
|
|
|
|
"derive_more",
|
|
|
|
"fxhash",
|
2021-07-09 21:28:07 +02:00
|
|
|
"log",
|
2023-07-10 07:28:36 +02:00
|
|
|
"new_debug_unreachable",
|
|
|
|
"phf 0.10.1",
|
|
|
|
"phf_codegen 0.10.0",
|
2020-11-03 22:46:42 +01:00
|
|
|
"precomputed-hash",
|
|
|
|
"servo_arc",
|
2021-07-09 21:28:07 +02:00
|
|
|
"smallvec",
|
2020-11-03 22:46:42 +01:00
|
|
|
]
|
|
|
|
|
2021-01-07 01:38:22 +01:00
|
|
|
[[package]]
|
|
|
|
name = "semver"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.0.23"
|
2022-11-09 23:07:38 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
|
2022-11-09 23:07:38 +01:00
|
|
|
|
2019-06-03 09:41:28 +02:00
|
|
|
[[package]]
|
|
|
|
name = "serde"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.0.208"
|
2019-06-03 09:41:28 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2"
|
2019-07-15 20:34:44 +02:00
|
|
|
dependencies = [
|
2022-02-07 20:54:06 +01:00
|
|
|
"serde_derive",
|
2019-07-15 20:34:44 +02:00
|
|
|
]
|
|
|
|
|
2019-05-18 03:24:13 +02:00
|
|
|
[[package]]
|
|
|
|
name = "serde_derive"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.0.208"
|
2019-05-18 03:24:13 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf"
|
2019-05-18 03:24:13 +02:00
|
|
|
dependencies = [
|
2019-11-28 03:21:00 +01:00
|
|
|
"proc-macro2",
|
2021-08-28 05:34:11 +02:00
|
|
|
"quote",
|
2024-08-24 00:35:42 +02:00
|
|
|
"syn 2.0.75",
|
2019-05-18 03:24:13 +02:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "serde_json"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.0.127"
|
2019-05-18 03:24:13 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad"
|
2019-05-18 03:24:13 +02:00
|
|
|
dependencies = [
|
2024-01-30 15:10:19 +01:00
|
|
|
"indexmap",
|
2023-03-06 04:37:22 +01:00
|
|
|
"itoa",
|
2024-08-24 00:35:42 +02:00
|
|
|
"memchr",
|
2019-11-28 03:21:00 +01:00
|
|
|
"ryu",
|
2021-08-28 05:34:11 +02:00
|
|
|
"serde",
|
2019-06-03 09:41:28 +02:00
|
|
|
]
|
|
|
|
|
2023-11-02 16:18:57 +01:00
|
|
|
[[package]]
|
|
|
|
name = "serde_repr"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "0.1.19"
|
2023-11-02 16:18:57 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
|
2023-11-02 16:18:57 +01:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2024-08-24 00:35:42 +02:00
|
|
|
"syn 2.0.75",
|
2023-11-02 16:18:57 +01:00
|
|
|
]
|
|
|
|
|
2023-02-06 21:15:14 +01:00
|
|
|
[[package]]
|
|
|
|
name = "serde_spanned"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.6.7"
|
2023-02-06 21:15:14 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d"
|
2023-02-06 21:15:14 +01:00
|
|
|
dependencies = [
|
|
|
|
"serde",
|
|
|
|
]
|
|
|
|
|
2020-09-09 00:35:45 +02:00
|
|
|
[[package]]
|
|
|
|
name = "serde_urlencoded"
|
2022-02-08 14:28:21 +01:00
|
|
|
version = "0.7.1"
|
2020-09-09 00:35:45 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-02-08 14:28:21 +01:00
|
|
|
checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
|
2020-09-09 00:35:45 +02:00
|
|
|
dependencies = [
|
|
|
|
"form_urlencoded",
|
2023-03-06 04:37:22 +01:00
|
|
|
"itoa",
|
2020-09-09 00:35:45 +02:00
|
|
|
"ryu",
|
2021-08-28 05:34:11 +02:00
|
|
|
"serde",
|
2020-09-09 00:35:45 +02:00
|
|
|
]
|
|
|
|
|
2019-06-03 09:41:28 +02:00
|
|
|
[[package]]
|
|
|
|
name = "serde_yaml"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "0.9.34+deprecated"
|
2019-06-03 09:41:28 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47"
|
2019-06-03 09:41:28 +02:00
|
|
|
dependencies = [
|
2023-12-06 01:09:34 +01:00
|
|
|
"indexmap",
|
2023-03-06 04:37:22 +01:00
|
|
|
"itoa",
|
2022-02-08 14:28:21 +01:00
|
|
|
"ryu",
|
2021-08-28 05:34:11 +02:00
|
|
|
"serde",
|
2022-08-10 21:56:15 +02:00
|
|
|
"unsafe-libyaml",
|
2019-06-03 09:41:28 +02:00
|
|
|
]
|
|
|
|
|
2021-02-19 02:24:27 +01:00
|
|
|
[[package]]
|
|
|
|
name = "serial_test"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
version = "3.1.1"
|
2021-02-19 02:24:27 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
checksum = "4b4b487fe2acf240a021cf57c6b2b4903b1e78ca0ecd862a71b71d2a51fed77d"
|
2021-02-19 02:24:27 +01:00
|
|
|
dependencies = [
|
2022-07-26 04:09:32 +02:00
|
|
|
"futures",
|
|
|
|
"log",
|
2024-04-24 14:01:20 +02:00
|
|
|
"once_cell",
|
2023-08-30 00:13:34 +02:00
|
|
|
"parking_lot",
|
2024-04-24 14:01:20 +02:00
|
|
|
"scc",
|
2021-02-19 02:24:27 +01:00
|
|
|
"serial_test_derive",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "serial_test_derive"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
version = "3.1.1"
|
2021-02-19 02:24:27 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
checksum = "82fe9db325bcef1fbcde82e078a5cc4efdf787e96b3b9cf45b50b529f2083d67"
|
2021-02-19 02:24:27 +01:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
2021-08-28 05:34:11 +02:00
|
|
|
"quote",
|
2024-08-24 00:35:42 +02:00
|
|
|
"syn 2.0.75",
|
2021-02-19 02:24:27 +01:00
|
|
|
]
|
|
|
|
|
2020-11-03 22:46:42 +01:00
|
|
|
[[package]]
|
|
|
|
name = "servo_arc"
|
2023-07-10 07:28:36 +02:00
|
|
|
version = "0.3.0"
|
2020-11-03 22:46:42 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-07-10 07:28:36 +02:00
|
|
|
checksum = "d036d71a959e00c77a63538b90a6c2390969f9772b096ea837205c6bd0491a44"
|
2020-11-03 22:46:42 +01:00
|
|
|
dependencies = [
|
|
|
|
"stable_deref_trait",
|
|
|
|
]
|
|
|
|
|
2020-08-12 19:20:22 +02:00
|
|
|
[[package]]
|
|
|
|
name = "sha2"
|
2023-10-07 13:58:26 +02:00
|
|
|
version = "0.10.8"
|
2021-12-11 00:14:28 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 13:58:26 +02:00
|
|
|
checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
|
2021-12-11 00:14:28 +01:00
|
|
|
dependencies = [
|
2023-07-05 14:14:55 +02:00
|
|
|
"cfg-if",
|
2021-12-11 00:14:28 +01:00
|
|
|
"cpufeatures",
|
2022-10-03 18:40:16 +02:00
|
|
|
"digest",
|
2020-05-17 00:34:10 +02:00
|
|
|
]
|
|
|
|
|
2021-07-05 09:16:34 +02:00
|
|
|
[[package]]
|
|
|
|
name = "shadow-rs"
|
2024-09-22 09:16:20 +02:00
|
|
|
version = "0.35.0"
|
2021-07-05 09:16:34 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-09-22 09:16:20 +02:00
|
|
|
checksum = "fca0e9bdc073d7173ba993fb7886477af5df75588b57afcb4b96f21911ab0bfa"
|
2021-07-05 09:16:34 +02:00
|
|
|
dependencies = [
|
2022-04-04 16:59:59 +02:00
|
|
|
"const_format",
|
2021-12-01 20:48:03 +01:00
|
|
|
"is_debug",
|
2023-08-25 10:54:01 +02:00
|
|
|
"time",
|
2021-07-05 09:16:34 +02:00
|
|
|
]
|
|
|
|
|
2023-01-16 03:04:47 +01:00
|
|
|
[[package]]
|
|
|
|
name = "shell-words"
|
|
|
|
version = "1.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
|
|
|
|
|
2022-07-11 18:18:06 +02:00
|
|
|
[[package]]
|
|
|
|
name = "shlex"
|
2024-01-22 23:21:02 +01:00
|
|
|
version = "1.3.0"
|
2022-07-11 18:18:06 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-22 23:21:02 +01:00
|
|
|
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
|
2022-07-11 18:18:06 +02:00
|
|
|
|
2021-06-03 08:25:28 +02:00
|
|
|
[[package]]
|
2022-02-07 20:11:34 +01:00
|
|
|
name = "signal-hook"
|
2023-09-04 02:22:25 +02:00
|
|
|
version = "0.3.17"
|
2021-08-30 20:36:07 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-09-04 02:22:25 +02:00
|
|
|
checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
|
2021-08-30 20:36:07 +02:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
"signal-hook-registry",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "signal-hook-mio"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.2.4"
|
2021-08-30 20:36:07 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "34db1a06d485c9142248b7a054f034b349b212551f3dfd19c94d45a754a217cd"
|
2021-08-30 20:36:07 +02:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
2024-08-24 00:35:42 +02:00
|
|
|
"mio 0.8.11",
|
2024-09-06 16:57:45 +02:00
|
|
|
"mio 1.0.2",
|
2021-08-30 20:36:07 +02:00
|
|
|
"signal-hook",
|
2020-01-27 03:51:46 +01:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "signal-hook-registry"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
version = "1.4.2"
|
2020-01-27 03:51:46 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"
|
2020-01-27 03:51:46 +01:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
2022-11-09 23:07:38 +01:00
|
|
|
[[package]]
|
|
|
|
name = "simd-json"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
version = "0.13.10"
|
2022-11-09 23:07:38 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
checksum = "570c430b3d902ea083097e853263ae782dfe40857d93db019a12356c8e8143fa"
|
2022-11-09 23:07:38 +01:00
|
|
|
dependencies = [
|
2024-04-10 02:31:43 +02:00
|
|
|
"ahash 0.8.11",
|
2023-10-07 13:58:26 +02:00
|
|
|
"getrandom",
|
2022-11-09 23:07:38 +01:00
|
|
|
"halfbrown",
|
2023-01-13 16:27:37 +01:00
|
|
|
"lexical-core",
|
2023-06-13 19:05:45 +02:00
|
|
|
"once_cell",
|
2023-12-06 01:09:34 +01:00
|
|
|
"ref-cast",
|
2022-11-09 23:07:38 +01:00
|
|
|
"serde",
|
|
|
|
"serde_json",
|
|
|
|
"simdutf8",
|
|
|
|
"value-trait",
|
|
|
|
]
|
|
|
|
|
2021-11-16 09:53:03 +01:00
|
|
|
[[package]]
|
|
|
|
name = "simdutf8"
|
2022-04-15 13:04:15 +02:00
|
|
|
version = "0.1.4"
|
2021-11-16 09:53:03 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-04-15 13:04:15 +02:00
|
|
|
checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a"
|
2021-11-16 09:53:03 +01:00
|
|
|
|
2023-03-02 20:05:18 +01:00
|
|
|
[[package]]
|
|
|
|
name = "similar"
|
2024-07-31 10:10:33 +02:00
|
|
|
version = "2.6.0"
|
2023-03-02 20:05:18 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-07-31 10:10:33 +02:00
|
|
|
checksum = "1de1d4f81173b03af4c0cbed3c898f6bff5b870e4a7f5d6f4057d62a7a4b686e"
|
2023-03-02 20:05:18 +01:00
|
|
|
|
2022-08-09 18:44:37 +02:00
|
|
|
[[package]]
|
|
|
|
name = "simplelog"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "0.12.2"
|
2022-08-09 18:44:37 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "16257adbfaef1ee58b1363bdc0664c9b8e1e30aed86049635fb5f147d065a9c0"
|
2022-08-09 18:44:37 +02:00
|
|
|
dependencies = [
|
|
|
|
"log",
|
|
|
|
"termcolor",
|
2023-08-25 10:54:01 +02:00
|
|
|
"time",
|
2022-08-09 18:44:37 +02:00
|
|
|
]
|
|
|
|
|
2020-11-03 22:46:42 +01:00
|
|
|
[[package]]
|
|
|
|
name = "siphasher"
|
2023-10-07 13:58:26 +02:00
|
|
|
version = "0.3.11"
|
2020-11-03 22:46:42 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 13:58:26 +02:00
|
|
|
checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
|
2021-11-02 04:08:05 +01:00
|
|
|
|
2019-05-23 06:30:43 +02:00
|
|
|
[[package]]
|
|
|
|
name = "slab"
|
2023-10-07 13:58:26 +02:00
|
|
|
version = "0.4.9"
|
2021-07-30 23:04:01 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 13:58:26 +02:00
|
|
|
checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
|
2022-07-26 04:09:32 +02:00
|
|
|
dependencies = [
|
|
|
|
"autocfg",
|
|
|
|
]
|
2021-07-30 23:04:01 +02:00
|
|
|
|
2020-08-12 19:20:22 +02:00
|
|
|
[[package]]
|
|
|
|
name = "smallvec"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "1.13.2"
|
2019-05-18 03:24:13 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
|
2019-05-18 03:24:13 +02:00
|
|
|
|
2022-08-12 14:10:36 +02:00
|
|
|
[[package]]
|
|
|
|
name = "smartstring"
|
|
|
|
version = "1.0.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29"
|
|
|
|
dependencies = [
|
|
|
|
"autocfg",
|
2023-05-08 17:42:53 +02:00
|
|
|
"serde",
|
2022-08-12 14:10:36 +02:00
|
|
|
"static_assertions",
|
|
|
|
"version_check",
|
|
|
|
]
|
|
|
|
|
2021-09-20 23:37:26 +02:00
|
|
|
[[package]]
|
|
|
|
name = "smawk"
|
2023-10-07 13:58:26 +02:00
|
|
|
version = "0.3.2"
|
2021-09-20 23:37:26 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 13:58:26 +02:00
|
|
|
checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c"
|
2021-02-04 08:20:21 +01:00
|
|
|
|
2021-05-18 21:33:10 +02:00
|
|
|
[[package]]
|
|
|
|
name = "snap"
|
2023-12-06 01:09:34 +01:00
|
|
|
version = "1.1.1"
|
2021-05-18 21:33:10 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-12-06 01:09:34 +01:00
|
|
|
checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b"
|
2021-05-18 21:33:10 +02:00
|
|
|
|
2023-10-07 13:58:26 +02:00
|
|
|
[[package]]
|
|
|
|
name = "socket2"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
version = "0.5.7"
|
2023-10-07 13:58:26 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"
|
2023-10-07 13:58:26 +02:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
2024-04-10 02:31:43 +02:00
|
|
|
"windows-sys 0.52.0",
|
2023-10-07 13:58:26 +02:00
|
|
|
]
|
|
|
|
|
2024-04-10 02:31:43 +02:00
|
|
|
[[package]]
|
|
|
|
name = "sqlparser"
|
2024-06-06 01:26:47 +02:00
|
|
|
version = "0.47.0"
|
2024-04-10 02:31:43 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-06-06 01:26:47 +02:00
|
|
|
checksum = "295e9930cd7a97e58ca2a070541a3ca502b17f5d1fa7157376d0fabd85324f25"
|
2024-04-10 02:31:43 +02:00
|
|
|
dependencies = [
|
|
|
|
"log",
|
|
|
|
]
|
|
|
|
|
2024-02-08 01:15:45 +01:00
|
|
|
[[package]]
|
|
|
|
name = "stability"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.2.1"
|
2024-02-08 01:15:45 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "d904e7009df136af5297832a3ace3370cd14ff1546a232f4f185036c2736fcac"
|
2024-02-08 01:15:45 +01:00
|
|
|
dependencies = [
|
|
|
|
"quote",
|
2024-08-24 00:35:42 +02:00
|
|
|
"syn 2.0.75",
|
2024-02-08 01:15:45 +01:00
|
|
|
]
|
|
|
|
|
2024-01-24 16:29:27 +01:00
|
|
|
[[package]]
|
2020-11-03 22:46:42 +01:00
|
|
|
name = "stable_deref_trait"
|
|
|
|
version = "1.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
|
|
|
|
|
2023-12-06 01:09:34 +01:00
|
|
|
[[package]]
|
|
|
|
name = "stacker"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.1.16"
|
2023-12-06 01:09:34 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "95a5daa25ea337c85ed954c0496e3bdd2c7308cc3b24cf7b50d04876654c579f"
|
2023-12-06 01:09:34 +01:00
|
|
|
dependencies = [
|
|
|
|
"cc",
|
|
|
|
"cfg-if",
|
|
|
|
"libc",
|
|
|
|
"psm",
|
2024-08-24 00:35:42 +02:00
|
|
|
"windows-sys 0.36.1",
|
2023-12-06 01:09:34 +01:00
|
|
|
]
|
|
|
|
|
2020-09-09 00:35:45 +02:00
|
|
|
[[package]]
|
|
|
|
name = "static_assertions"
|
|
|
|
version = "1.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
|
|
|
|
|
2023-11-02 16:18:57 +01:00
|
|
|
[[package]]
|
|
|
|
name = "str_indices"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
version = "0.4.3"
|
2023-11-02 16:18:57 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
checksum = "e9557cb6521e8d009c51a8666f09356f4b817ba9ba0981a305bd86aee47bd35c"
|
2023-11-02 16:18:57 +01:00
|
|
|
|
2020-06-16 23:17:32 +02:00
|
|
|
[[package]]
|
2021-11-16 09:53:03 +01:00
|
|
|
name = "streaming-decompression"
|
2022-10-03 18:40:16 +02:00
|
|
|
version = "0.1.2"
|
2021-11-16 09:53:03 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-10-03 18:40:16 +02:00
|
|
|
checksum = "bf6cc3b19bfb128a8ad11026086e31d3ce9ad23f8ea37354b31383a187c44cf3"
|
2021-11-16 09:53:03 +01:00
|
|
|
dependencies = [
|
|
|
|
"fallible-streaming-iterator",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
2021-09-15 21:10:12 +02:00
|
|
|
name = "streaming-iterator"
|
2023-03-12 00:35:56 +01:00
|
|
|
version = "0.1.9"
|
2021-09-15 21:10:12 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-03-12 00:35:56 +01:00
|
|
|
checksum = "2b2231b7c3057d5e4ad0156fb3dc807d900806020c5ffa3ee6ff2c8c76fb8520"
|
2021-09-15 21:10:12 +02:00
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "strength_reduce"
|
2023-03-12 00:35:56 +01:00
|
|
|
version = "0.2.4"
|
2021-09-15 21:10:12 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-03-12 00:35:56 +01:00
|
|
|
checksum = "fe895eb47f22e2ddd4dabc02bce419d2e643c8e3b585c78158b349195bc24d82"
|
2021-09-15 21:10:12 +02:00
|
|
|
|
2020-11-03 22:46:42 +01:00
|
|
|
[[package]]
|
|
|
|
name = "string_cache"
|
2023-03-12 00:35:56 +01:00
|
|
|
version = "0.8.7"
|
2020-11-03 22:46:42 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-03-12 00:35:56 +01:00
|
|
|
checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b"
|
2020-11-03 22:46:42 +01:00
|
|
|
dependencies = [
|
|
|
|
"new_debug_unreachable",
|
2022-04-15 13:04:15 +02:00
|
|
|
"once_cell",
|
2023-08-30 00:13:34 +02:00
|
|
|
"parking_lot",
|
2022-02-08 14:28:21 +01:00
|
|
|
"phf_shared 0.10.0",
|
2020-11-03 22:46:42 +01:00
|
|
|
"precomputed-hash",
|
2021-08-28 05:34:11 +02:00
|
|
|
"serde",
|
2020-11-03 22:46:42 +01:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "string_cache_codegen"
|
2022-04-15 13:04:15 +02:00
|
|
|
version = "0.5.2"
|
2020-11-03 22:46:42 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-04-15 13:04:15 +02:00
|
|
|
checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988"
|
2020-11-03 22:46:42 +01:00
|
|
|
dependencies = [
|
2022-04-15 13:04:15 +02:00
|
|
|
"phf_generator 0.10.0",
|
|
|
|
"phf_shared 0.10.0",
|
2020-11-03 22:46:42 +01:00
|
|
|
"proc-macro2",
|
2021-08-28 05:34:11 +02:00
|
|
|
"quote",
|
2020-11-03 22:46:42 +01:00
|
|
|
]
|
|
|
|
|
2019-11-16 21:02:26 +01:00
|
|
|
[[package]]
|
|
|
|
name = "strip-ansi-escapes"
|
2023-08-09 19:33:07 +02:00
|
|
|
version = "0.2.0"
|
2019-11-16 21:02:26 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-08-09 19:33:07 +02:00
|
|
|
checksum = "55ff8ef943b384c414f54aefa961dd2bd853add74ec75e7ac74cf91dba62bcfa"
|
2019-11-16 21:02:26 +01:00
|
|
|
dependencies = [
|
2023-08-08 22:20:37 +02:00
|
|
|
"vte 0.11.1",
|
2019-11-16 21:02:26 +01:00
|
|
|
]
|
|
|
|
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
[[package]]
|
|
|
|
name = "strsim"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "0.11.1"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
|
2023-07-10 13:04:49 +02:00
|
|
|
[[package]]
|
2024-02-08 01:15:45 +01:00
|
|
|
name = "strum"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.26.3"
|
2024-02-08 01:15:45 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06"
|
2023-09-04 02:22:25 +02:00
|
|
|
dependencies = [
|
2024-06-06 01:26:47 +02:00
|
|
|
"strum_macros",
|
2023-07-10 13:04:49 +02:00
|
|
|
]
|
|
|
|
|
2024-02-08 01:15:45 +01:00
|
|
|
[[package]]
|
|
|
|
name = "strum_macros"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.26.4"
|
2024-02-08 01:15:45 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be"
|
2024-02-08 01:15:45 +01:00
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"heck",
|
2024-02-08 01:15:45 +01:00
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"rustversion",
|
2024-08-24 00:35:42 +02:00
|
|
|
"syn 2.0.75",
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "supports-color"
|
|
|
|
version = "2.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "d6398cde53adc3c4557306a96ce67b302968513830a77a95b2b17305d9719a89"
|
|
|
|
dependencies = [
|
|
|
|
"is-terminal",
|
|
|
|
"is_ci",
|
2024-02-08 01:15:45 +01:00
|
|
|
]
|
|
|
|
|
2021-03-03 19:18:11 +01:00
|
|
|
[[package]]
|
2021-09-20 23:37:26 +02:00
|
|
|
name = "supports-color"
|
2024-02-08 02:26:18 +01:00
|
|
|
version = "3.0.0"
|
2021-09-20 23:37:26 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-02-08 02:26:18 +01:00
|
|
|
checksum = "9829b314621dfc575df4e409e79f9d6a66a3bd707ab73f23cb4aa3a854ac854f"
|
2021-09-20 23:37:26 +02:00
|
|
|
dependencies = [
|
2021-09-23 01:49:39 +02:00
|
|
|
"is_ci",
|
2021-09-20 23:37:26 +02:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "supports-hyperlinks"
|
2024-02-08 02:26:18 +01:00
|
|
|
version = "3.0.0"
|
2021-09-20 23:37:26 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-02-08 02:26:18 +01:00
|
|
|
checksum = "2c0a1e5168041f5f3ff68ff7d95dcb9c8749df29f6e7e89ada40dd4c9de404ee"
|
2021-09-20 23:37:26 +02:00
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "supports-unicode"
|
2024-02-08 02:26:18 +01:00
|
|
|
version = "3.0.0"
|
2021-09-20 23:37:26 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-02-08 02:26:18 +01:00
|
|
|
checksum = "b7401a30af6cb5818bb64852270bb722533397edcfc7344954a38f420819ece2"
|
2021-03-03 19:18:11 +01:00
|
|
|
|
2020-10-12 15:03:00 +02:00
|
|
|
[[package]]
|
|
|
|
name = "sxd-document"
|
|
|
|
version = "0.3.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "94d82f37be9faf1b10a82c4bd492b74f698e40082f0f40de38ab275f31d42078"
|
|
|
|
dependencies = [
|
|
|
|
"peresil",
|
|
|
|
"typed-arena",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "sxd-xpath"
|
|
|
|
version = "0.4.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "36e39da5d30887b5690e29de4c5ebb8ddff64ebd9933f98a01daaa4fd11b36ea"
|
|
|
|
dependencies = [
|
|
|
|
"peresil",
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
"quick-error 1.2.3",
|
2020-10-12 15:03:00 +02:00
|
|
|
"sxd-document",
|
|
|
|
]
|
|
|
|
|
2021-01-11 18:53:58 +01:00
|
|
|
[[package]]
|
|
|
|
name = "syn"
|
2023-03-12 00:35:56 +01:00
|
|
|
version = "1.0.109"
|
2019-05-10 18:59:12 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-03-12 00:35:56 +01:00
|
|
|
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
|
2019-05-10 18:59:12 +02:00
|
|
|
dependencies = [
|
2019-11-28 03:21:00 +01:00
|
|
|
"proc-macro2",
|
2021-08-28 05:34:11 +02:00
|
|
|
"quote",
|
2022-05-25 19:13:14 +02:00
|
|
|
"unicode-ident",
|
2019-05-10 18:59:12 +02:00
|
|
|
]
|
|
|
|
|
2023-04-06 22:39:54 +02:00
|
|
|
[[package]]
|
|
|
|
name = "syn"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "2.0.75"
|
2023-04-06 22:39:54 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "f6af063034fc1935ede7be0122941bafa9bacb949334d090b77ca98b5817c7d9"
|
2023-04-06 22:39:54 +02:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"unicode-ident",
|
|
|
|
]
|
|
|
|
|
2024-01-21 21:17:28 +01:00
|
|
|
[[package]]
|
|
|
|
name = "syn_derive"
|
|
|
|
version = "0.1.8"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b"
|
|
|
|
dependencies = [
|
|
|
|
"proc-macro-error",
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2024-08-24 00:35:42 +02:00
|
|
|
"syn 2.0.75",
|
2024-01-21 21:17:28 +01:00
|
|
|
]
|
|
|
|
|
2020-03-20 20:35:09 +01:00
|
|
|
[[package]]
|
2021-05-27 01:02:24 +02:00
|
|
|
name = "sys-locale"
|
2023-10-07 13:58:26 +02:00
|
|
|
version = "0.3.1"
|
2021-05-27 01:02:24 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 13:58:26 +02:00
|
|
|
checksum = "e801cf239ecd6ccd71f03d270d67dd53d13e90aab208bf4b8fe4ad957ea949b0"
|
2021-05-27 01:02:24 +02:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
2024-01-05 12:31:29 +01:00
|
|
|
[[package]]
|
|
|
|
name = "sysinfo"
|
2024-08-14 08:41:00 +02:00
|
|
|
version = "0.30.13"
|
2024-01-05 12:31:29 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-14 08:41:00 +02:00
|
|
|
checksum = "0a5b4ddaee55fb2bea2bf0e5000747e5f5c0de765e5a5ff87f4cd106439f4bb3"
|
2024-01-05 12:31:29 +01:00
|
|
|
dependencies = [
|
|
|
|
"cfg-if",
|
|
|
|
"core-foundation-sys",
|
|
|
|
"libc",
|
|
|
|
"ntapi",
|
|
|
|
"once_cell",
|
2024-10-18 04:51:14 +02:00
|
|
|
"windows 0.52.0",
|
2024-10-17 19:12:45 +02:00
|
|
|
]
|
|
|
|
|
2024-10-17 19:12:45 +02:00
|
|
|
[[package]]
|
|
|
|
name = "sysinfo"
|
|
|
|
version = "0.32.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "e3b5ae3f4f7d64646c46c4cae4e3f01d1c5d255c7406fdd7c7f999a94e488791"
|
|
|
|
dependencies = [
|
|
|
|
"core-foundation-sys",
|
|
|
|
"libc",
|
|
|
|
"memchr",
|
|
|
|
"ntapi",
|
|
|
|
"rayon",
|
|
|
|
"windows 0.56.0",
|
|
|
|
]
|
|
|
|
|
2022-07-06 21:57:40 +02:00
|
|
|
[[package]]
|
|
|
|
name = "tabled"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.16.0"
|
2022-07-22 17:33:29 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "77c9303ee60b9bedf722012ea29ae3711ba13a67c9b9ae28993838b63057cb1b"
|
2022-07-06 21:57:40 +02:00
|
|
|
dependencies = [
|
2023-07-10 09:24:08 +02:00
|
|
|
"ansi-str",
|
2023-04-26 20:56:10 +02:00
|
|
|
"ansitok",
|
2022-07-06 21:57:40 +02:00
|
|
|
"papergrid",
|
|
|
|
]
|
|
|
|
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
[[package]]
|
|
|
|
name = "tango-bench"
|
2024-09-22 09:15:58 +02:00
|
|
|
version = "0.6.0"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-09-22 09:15:58 +02:00
|
|
|
checksum = "257822358c6f206fed78bfe6369cf959063b0644d70f88df6b19f2dadc93423e"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
dependencies = [
|
|
|
|
"alloca",
|
|
|
|
"anyhow",
|
|
|
|
"clap",
|
|
|
|
"colorz",
|
|
|
|
"glob-match",
|
|
|
|
"goblin",
|
|
|
|
"libloading",
|
|
|
|
"log",
|
|
|
|
"num-traits",
|
|
|
|
"rand",
|
|
|
|
"scroll",
|
|
|
|
"tempfile",
|
|
|
|
"thiserror",
|
|
|
|
]
|
|
|
|
|
2024-01-21 21:17:28 +01:00
|
|
|
[[package]]
|
|
|
|
name = "tap"
|
|
|
|
version = "1.0.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
|
|
|
|
|
2023-05-08 17:42:53 +02:00
|
|
|
[[package]]
|
|
|
|
name = "target-features"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "0.1.6"
|
2023-05-08 17:42:53 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "c1bbb9f3c5c463a01705937a24fdabc5047929ac764b2d5b9cf681c1f5041ed5"
|
2023-05-08 17:42:53 +02:00
|
|
|
|
2019-06-08 20:09:17 +02:00
|
|
|
[[package]]
|
|
|
|
name = "tempfile"
|
2024-10-02 08:17:03 +02:00
|
|
|
version = "3.13.0"
|
2019-06-08 20:09:17 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-10-02 08:17:03 +02:00
|
|
|
checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b"
|
2021-08-30 20:36:07 +02:00
|
|
|
dependencies = [
|
2023-07-05 14:14:55 +02:00
|
|
|
"cfg-if",
|
2022-02-08 14:28:21 +01:00
|
|
|
"fastrand",
|
2024-08-24 00:35:42 +02:00
|
|
|
"once_cell",
|
2024-01-05 17:19:46 +01:00
|
|
|
"rustix",
|
2024-08-24 00:35:42 +02:00
|
|
|
"windows-sys 0.59.0",
|
2019-06-08 20:09:17 +02:00
|
|
|
]
|
|
|
|
|
2020-11-03 22:46:42 +01:00
|
|
|
[[package]]
|
|
|
|
name = "tendril"
|
2022-04-15 13:04:15 +02:00
|
|
|
version = "0.4.3"
|
2020-11-03 22:46:42 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-04-15 13:04:15 +02:00
|
|
|
checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0"
|
2020-11-03 22:46:42 +01:00
|
|
|
dependencies = [
|
|
|
|
"futf",
|
|
|
|
"mac",
|
|
|
|
"utf-8",
|
|
|
|
]
|
|
|
|
|
2019-05-26 08:54:41 +02:00
|
|
|
[[package]]
|
|
|
|
name = "termcolor"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "1.4.1"
|
2019-05-26 08:54:41 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
|
2019-05-26 08:54:41 +02:00
|
|
|
dependencies = [
|
2020-01-17 21:35:48 +01:00
|
|
|
"winapi-util",
|
2019-05-26 08:54:41 +02:00
|
|
|
]
|
|
|
|
|
2023-09-18 07:50:17 +02:00
|
|
|
[[package]]
|
|
|
|
name = "terminal_size"
|
|
|
|
version = "0.3.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
|
|
|
|
dependencies = [
|
2024-01-05 17:19:46 +01:00
|
|
|
"rustix",
|
2023-09-18 07:50:17 +02:00
|
|
|
"windows-sys 0.48.0",
|
|
|
|
]
|
|
|
|
|
2021-10-10 06:13:15 +02:00
|
|
|
[[package]]
|
|
|
|
name = "termtree"
|
2023-04-14 22:14:57 +02:00
|
|
|
version = "0.4.1"
|
2021-10-10 06:13:15 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-04-14 22:14:57 +02:00
|
|
|
checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76"
|
2021-10-10 06:13:15 +02:00
|
|
|
|
2021-09-20 23:37:26 +02:00
|
|
|
[[package]]
|
|
|
|
name = "textwrap"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "0.16.1"
|
2021-09-20 23:37:26 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9"
|
2021-09-20 23:37:26 +02:00
|
|
|
dependencies = [
|
|
|
|
"smawk",
|
|
|
|
"unicode-linebreak",
|
|
|
|
"unicode-width",
|
2020-06-16 23:17:32 +02:00
|
|
|
]
|
|
|
|
|
2020-01-01 07:45:27 +01:00
|
|
|
[[package]]
|
|
|
|
name = "thiserror"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.0.63"
|
2020-01-01 07:45:27 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724"
|
2020-01-01 07:45:27 +01:00
|
|
|
dependencies = [
|
|
|
|
"thiserror-impl",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "thiserror-impl"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.0.63"
|
2020-01-01 07:45:27 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261"
|
2020-01-01 07:45:27 +01:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
2021-08-28 05:34:11 +02:00
|
|
|
"quote",
|
2024-08-24 00:35:42 +02:00
|
|
|
"syn 2.0.75",
|
2020-01-01 07:45:27 +01:00
|
|
|
]
|
|
|
|
|
2022-04-24 23:43:18 +02:00
|
|
|
[[package]]
|
|
|
|
name = "thread_local"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "1.1.8"
|
2022-04-24 23:43:18 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
|
2022-04-24 23:43:18 +02:00
|
|
|
dependencies = [
|
2023-07-05 14:14:55 +02:00
|
|
|
"cfg-if",
|
2022-04-24 23:43:18 +02:00
|
|
|
"once_cell",
|
|
|
|
]
|
|
|
|
|
2022-07-26 04:09:32 +02:00
|
|
|
[[package]]
|
|
|
|
name = "time"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
version = "0.3.36"
|
2022-07-26 04:09:32 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
|
2022-07-26 04:09:32 +02:00
|
|
|
dependencies = [
|
2023-10-07 13:58:26 +02:00
|
|
|
"deranged",
|
2023-03-06 04:37:22 +01:00
|
|
|
"itoa",
|
2022-07-26 04:09:32 +02:00
|
|
|
"libc",
|
2024-04-10 02:31:43 +02:00
|
|
|
"num-conv",
|
2022-07-26 04:09:32 +02:00
|
|
|
"num_threads",
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
"powerfmt",
|
2023-03-12 00:35:56 +01:00
|
|
|
"serde",
|
|
|
|
"time-core",
|
2022-08-09 18:44:37 +02:00
|
|
|
"time-macros",
|
2022-07-26 04:09:32 +02:00
|
|
|
]
|
|
|
|
|
2023-03-12 00:35:56 +01:00
|
|
|
[[package]]
|
|
|
|
name = "time-core"
|
2023-10-07 13:58:26 +02:00
|
|
|
version = "0.1.2"
|
2023-03-12 00:35:56 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 13:58:26 +02:00
|
|
|
checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
|
2023-03-12 00:35:56 +01:00
|
|
|
|
2022-08-09 18:44:37 +02:00
|
|
|
[[package]]
|
|
|
|
name = "time-macros"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
version = "0.2.18"
|
2022-08-09 18:44:37 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
|
2023-03-12 00:35:56 +01:00
|
|
|
dependencies = [
|
2024-04-10 02:31:43 +02:00
|
|
|
"num-conv",
|
2023-03-12 00:35:56 +01:00
|
|
|
"time-core",
|
|
|
|
]
|
2022-08-09 18:44:37 +02:00
|
|
|
|
2023-06-13 20:33:00 +02:00
|
|
|
[[package]]
|
|
|
|
name = "tiny-keccak"
|
|
|
|
version = "2.0.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
|
|
|
|
dependencies = [
|
|
|
|
"crunchy",
|
|
|
|
]
|
|
|
|
|
2020-06-24 19:57:27 +02:00
|
|
|
[[package]]
|
|
|
|
name = "tinyvec"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.8.0"
|
2020-11-22 01:37:16 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938"
|
2020-11-22 01:37:16 +01:00
|
|
|
dependencies = [
|
|
|
|
"tinyvec_macros",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "tinyvec_macros"
|
2023-03-12 00:35:56 +01:00
|
|
|
version = "0.1.1"
|
2020-06-24 19:57:27 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-03-12 00:35:56 +01:00
|
|
|
checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
|
2020-06-24 19:57:27 +02:00
|
|
|
|
2020-12-12 19:18:03 +01:00
|
|
|
[[package]]
|
|
|
|
name = "titlecase"
|
2023-03-12 00:35:56 +01:00
|
|
|
version = "2.2.1"
|
2020-12-12 19:18:03 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-03-12 00:35:56 +01:00
|
|
|
checksum = "38397a8cdb017cfeb48bf6c154d6de975ac69ffeed35980fde199d2ee0842042"
|
2020-12-12 19:18:03 +01:00
|
|
|
dependencies = [
|
2022-10-03 18:40:16 +02:00
|
|
|
"joinery",
|
2021-08-28 05:34:11 +02:00
|
|
|
"lazy_static",
|
2021-07-09 21:28:07 +02:00
|
|
|
"regex",
|
2020-08-12 19:20:22 +02:00
|
|
|
]
|
|
|
|
|
2021-07-30 23:04:01 +02:00
|
|
|
[[package]]
|
|
|
|
name = "tokio"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.39.3"
|
2020-08-12 19:20:22 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "9babc99b9923bfa4804bd74722ff02c0381021eafa4db9949217e3be8e84fff5"
|
2020-08-12 19:20:22 +02:00
|
|
|
dependencies = [
|
2023-07-06 17:31:31 +02:00
|
|
|
"backtrace",
|
2022-01-04 03:01:18 +01:00
|
|
|
"bytes",
|
2021-07-09 21:28:07 +02:00
|
|
|
"libc",
|
2024-08-24 00:35:42 +02:00
|
|
|
"mio 1.0.2",
|
2024-03-06 23:43:08 +01:00
|
|
|
"parking_lot",
|
2021-08-28 05:34:11 +02:00
|
|
|
"pin-project-lite",
|
2024-01-21 04:53:24 +01:00
|
|
|
"socket2",
|
2024-08-24 00:35:42 +02:00
|
|
|
"windows-sys 0.52.0",
|
2020-08-12 19:20:22 +02:00
|
|
|
]
|
|
|
|
|
2021-07-09 21:28:07 +02:00
|
|
|
[[package]]
|
|
|
|
name = "tokio-util"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.7.11"
|
2021-07-09 21:28:07 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1"
|
2021-07-09 21:28:07 +02:00
|
|
|
dependencies = [
|
2022-01-04 03:01:18 +01:00
|
|
|
"bytes",
|
2021-07-09 21:28:07 +02:00
|
|
|
"futures-core",
|
|
|
|
"futures-sink",
|
2021-08-28 05:34:11 +02:00
|
|
|
"pin-project-lite",
|
|
|
|
"tokio",
|
2021-07-09 21:28:07 +02:00
|
|
|
]
|
|
|
|
|
2023-02-06 21:15:14 +01:00
|
|
|
[[package]]
|
|
|
|
name = "toml"
|
2023-09-18 07:50:30 +02:00
|
|
|
version = "0.7.8"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257"
|
|
|
|
dependencies = [
|
|
|
|
"serde",
|
|
|
|
"serde_spanned",
|
|
|
|
"toml_datetime",
|
|
|
|
"toml_edit 0.19.15",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "toml"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.8.19"
|
2023-02-06 21:15:14 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e"
|
2023-02-06 21:15:14 +01:00
|
|
|
dependencies = [
|
Try to preserve the ordering of elements in from toml (#13045)
# Description
Enable the `preserve_order` feature of the `toml` crate to preserve the
ordering of elements when converting from/to toml.
Additionally, use `to_string_pretty()` instead of `to_string()` in `to
toml`. This displays arrays on multiple lines instead of one big single
line. I'm not sure if this one is a good idea or not... Happy to remove
this from this PR if it's not.
# User-Facing Changes
The order of elements will be different when using `from toml`. The
formatting of arrays will also be different when using `to toml`. For
example:
- before
```
❯ "foo=1\nbar=2\ndoo=3" | from toml
╭─────┬───╮
│ bar │ 2 │
│ doo │ 3 │
│ foo │ 1 │
╰─────┴───╯
❯ {a: [a b c d]} | to toml
a = ["a", "b", "c", "d"]
```
- after
```
❯ "foo=1\nbar=2\ndoo=3" | from toml
╭─────┬───╮
│ foo │ 1 │
│ bar │ 2 │
│ doo │ 3 │
╰─────┴───╯
❯ {a: [a b c d]} | to toml
a = [
"a",
"b",
"c",
"d",
]
```
# Tests + Formatting
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :red_circle: `toolkit test`
- :black_circle: `toolkit test stdlib`
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
2024-06-05 02:00:39 +02:00
|
|
|
"indexmap",
|
2023-02-06 21:15:14 +01:00
|
|
|
"serde",
|
|
|
|
"serde_spanned",
|
|
|
|
"toml_datetime",
|
2024-08-24 00:35:42 +02:00
|
|
|
"toml_edit 0.22.20",
|
2023-02-06 21:15:14 +01:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "toml_datetime"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.6.8"
|
2023-02-06 21:15:14 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41"
|
2023-02-06 21:15:14 +01:00
|
|
|
dependencies = [
|
|
|
|
"serde",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "toml_edit"
|
2023-09-18 07:50:30 +02:00
|
|
|
version = "0.19.15"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
|
|
|
|
dependencies = [
|
2023-12-06 01:09:34 +01:00
|
|
|
"indexmap",
|
2023-09-18 07:50:30 +02:00
|
|
|
"serde",
|
|
|
|
"serde_spanned",
|
|
|
|
"toml_datetime",
|
2024-04-10 02:31:43 +02:00
|
|
|
"winnow 0.5.40",
|
2023-09-18 07:50:30 +02:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "toml_edit"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "0.21.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
|
|
|
|
dependencies = [
|
|
|
|
"indexmap",
|
|
|
|
"toml_datetime",
|
|
|
|
"winnow 0.5.40",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "toml_edit"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.22.20"
|
2023-02-06 21:15:14 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d"
|
2023-02-06 21:15:14 +01:00
|
|
|
dependencies = [
|
2023-12-06 01:09:34 +01:00
|
|
|
"indexmap",
|
2023-02-06 21:15:14 +01:00
|
|
|
"serde",
|
|
|
|
"serde_spanned",
|
|
|
|
"toml_datetime",
|
2024-08-24 00:35:42 +02:00
|
|
|
"winnow 0.6.18",
|
2023-02-06 21:15:14 +01:00
|
|
|
]
|
|
|
|
|
2020-11-22 01:37:16 +01:00
|
|
|
[[package]]
|
|
|
|
name = "tracing"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
version = "0.1.40"
|
2020-11-22 01:37:16 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
|
2020-11-22 01:37:16 +01:00
|
|
|
dependencies = [
|
2021-08-28 05:34:11 +02:00
|
|
|
"pin-project-lite",
|
2020-11-22 01:37:16 +01:00
|
|
|
"tracing-core",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "tracing-core"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
version = "0.1.32"
|
2021-07-30 23:04:01 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
|
2021-07-30 23:04:01 +02:00
|
|
|
dependencies = [
|
2022-07-26 04:09:32 +02:00
|
|
|
"once_cell",
|
2021-07-30 23:04:01 +02:00
|
|
|
]
|
|
|
|
|
2019-10-19 00:41:24 +02:00
|
|
|
[[package]]
|
|
|
|
name = "trash"
|
2024-10-17 19:12:45 +02:00
|
|
|
version = "5.1.1"
|
2019-05-22 09:12:03 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-10-17 19:12:45 +02:00
|
|
|
checksum = "33caf2a9be1812a263a4bfce74d2de225fcde12ee7b77001361abd2b34ffdcc4"
|
2019-05-22 09:12:03 +02:00
|
|
|
dependencies = [
|
2021-12-01 20:48:03 +01:00
|
|
|
"chrono",
|
|
|
|
"libc",
|
|
|
|
"log",
|
2024-10-17 19:12:45 +02:00
|
|
|
"objc2",
|
|
|
|
"objc2-foundation",
|
2022-02-08 14:28:21 +01:00
|
|
|
"once_cell",
|
2021-12-01 20:48:03 +01:00
|
|
|
"scopeguard",
|
2024-10-17 19:12:45 +02:00
|
|
|
"urlencoding",
|
|
|
|
"windows 0.56.0",
|
2019-05-22 09:12:03 +02:00
|
|
|
]
|
|
|
|
|
2024-01-20 15:04:06 +01:00
|
|
|
[[package]]
|
|
|
|
name = "tree_magic_mini"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "3.1.5"
|
2024-01-20 15:04:06 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "469a727cac55b41448315cc10427c069c618ac59bb6a4480283fcd811749bdc2"
|
2024-01-20 15:04:06 +01:00
|
|
|
dependencies = [
|
|
|
|
"fnv",
|
2024-04-10 02:31:43 +02:00
|
|
|
"home",
|
|
|
|
"memchr",
|
2024-01-20 15:04:06 +01:00
|
|
|
"nom",
|
|
|
|
"once_cell",
|
|
|
|
"petgraph",
|
|
|
|
]
|
|
|
|
|
2024-04-24 13:55:20 +02:00
|
|
|
[[package]]
|
|
|
|
name = "trim-in-place"
|
|
|
|
version = "0.1.7"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "343e926fc669bc8cde4fa3129ab681c63671bae288b1f1081ceee6d9d37904fc"
|
|
|
|
|
2020-09-30 20:27:52 +02:00
|
|
|
[[package]]
|
2019-11-04 16:47:03 +01:00
|
|
|
name = "typed-arena"
|
|
|
|
version = "1.7.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2019-11-28 03:21:00 +01:00
|
|
|
checksum = "a9b2228007eba4120145f785df0f6c92ea538f5a3635a612ecf4e334c8c1446d"
|
2019-11-04 16:47:03 +01:00
|
|
|
|
2024-08-24 00:35:42 +02:00
|
|
|
[[package]]
|
|
|
|
name = "typeid"
|
|
|
|
version = "1.0.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "0e13db2e0ccd5e14a544e8a246ba2312cd25223f616442d7f2cb0e3db614236e"
|
|
|
|
|
2019-08-11 05:01:09 +02:00
|
|
|
[[package]]
|
|
|
|
name = "typenum"
|
2023-10-07 13:58:26 +02:00
|
|
|
version = "1.17.0"
|
2019-08-11 05:01:09 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 13:58:26 +02:00
|
|
|
checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
|
2021-10-25 06:01:02 +02:00
|
|
|
|
2021-11-23 09:14:40 +01:00
|
|
|
[[package]]
|
|
|
|
name = "typetag"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.2.18"
|
2021-11-23 09:14:40 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "52ba3b6e86ffe0054b2c44f2d86407388b933b16cb0a70eea3929420db1d9bbe"
|
2021-11-23 09:14:40 +01:00
|
|
|
dependencies = [
|
|
|
|
"erased-serde",
|
|
|
|
"inventory",
|
|
|
|
"once_cell",
|
|
|
|
"serde",
|
|
|
|
"typetag-impl",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "typetag-impl"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.2.18"
|
2021-11-23 09:14:40 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "70b20a22c42c8f1cd23ce5e34f165d4d37038f5b663ad20fb6adbdf029172483"
|
2021-11-23 09:14:40 +01:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2024-08-24 00:35:42 +02:00
|
|
|
"syn 2.0.75",
|
2021-11-23 09:14:40 +01:00
|
|
|
]
|
2019-08-11 05:01:09 +02:00
|
|
|
|
2023-11-16 00:43:37 +01:00
|
|
|
[[package]]
|
|
|
|
name = "ucd-trie"
|
|
|
|
version = "0.1.6"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9"
|
|
|
|
|
2019-11-19 06:46:47 +01:00
|
|
|
[[package]]
|
|
|
|
name = "umask"
|
2023-04-14 14:15:22 +02:00
|
|
|
version = "2.1.0"
|
2019-11-19 06:46:47 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-04-14 14:15:22 +02:00
|
|
|
checksum = "ec9a46c2549e35c054e0ffe281a3a6ec0007793db4df106604d37ed3f4d73d1c"
|
|
|
|
dependencies = [
|
|
|
|
"thiserror",
|
|
|
|
]
|
2019-11-19 06:46:47 +01:00
|
|
|
|
2022-12-27 19:46:23 +01:00
|
|
|
[[package]]
|
|
|
|
name = "unicase"
|
2023-10-07 13:58:26 +02:00
|
|
|
version = "2.7.0"
|
2022-12-27 19:46:23 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 13:58:26 +02:00
|
|
|
checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
|
2022-12-27 19:46:23 +01:00
|
|
|
dependencies = [
|
|
|
|
"version_check",
|
2019-06-08 20:09:17 +02:00
|
|
|
]
|
|
|
|
|
2019-06-01 23:11:28 +02:00
|
|
|
[[package]]
|
|
|
|
name = "unicode-bidi"
|
2024-01-21 04:53:24 +01:00
|
|
|
version = "0.3.15"
|
2022-05-25 19:13:14 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 04:53:24 +01:00
|
|
|
checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
|
2022-05-25 19:13:14 +02:00
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "unicode-ident"
|
2023-10-07 13:58:26 +02:00
|
|
|
version = "1.0.12"
|
2019-06-01 23:11:28 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 13:58:26 +02:00
|
|
|
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
|
2019-06-01 23:11:28 +02:00
|
|
|
|
|
|
|
[[package]]
|
2021-09-20 23:37:26 +02:00
|
|
|
name = "unicode-linebreak"
|
2023-07-30 22:17:36 +02:00
|
|
|
version = "0.1.5"
|
2021-09-20 23:37:26 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-07-30 22:17:36 +02:00
|
|
|
checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
|
2021-09-20 23:37:26 +02:00
|
|
|
|
2021-12-06 18:28:11 +01:00
|
|
|
[[package]]
|
2019-06-01 23:11:28 +02:00
|
|
|
name = "unicode-normalization"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "0.1.23"
|
2019-06-01 23:11:28 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
|
2019-06-01 23:11:28 +02:00
|
|
|
dependencies = [
|
2020-06-24 19:57:27 +02:00
|
|
|
"tinyvec",
|
2019-06-01 23:11:28 +02:00
|
|
|
]
|
|
|
|
|
2024-02-13 13:27:30 +01:00
|
|
|
[[package]]
|
|
|
|
name = "unicode-reverse"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "1.0.9"
|
2024-02-13 13:27:30 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "4b6f4888ebc23094adfb574fdca9fdc891826287a6397d2cd28802ffd6f20c76"
|
2024-02-13 13:27:30 +01:00
|
|
|
dependencies = [
|
|
|
|
"unicode-segmentation",
|
|
|
|
]
|
|
|
|
|
2019-05-10 18:59:12 +02:00
|
|
|
[[package]]
|
|
|
|
name = "unicode-segmentation"
|
2024-09-22 09:16:11 +02:00
|
|
|
version = "1.12.0"
|
2019-05-10 18:59:12 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-09-22 09:16:11 +02:00
|
|
|
checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493"
|
2019-05-10 18:59:12 +02:00
|
|
|
|
2024-06-27 00:48:11 +02:00
|
|
|
[[package]]
|
|
|
|
name = "unicode-truncate"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "1.1.0"
|
2024-06-27 00:48:11 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "b3644627a5af5fa321c95b9b235a72fd24cd29c648c2c379431e6628655627bf"
|
2024-06-27 00:48:11 +02:00
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"itertools 0.13.0",
|
|
|
|
"unicode-segmentation",
|
2024-06-27 00:48:11 +02:00
|
|
|
"unicode-width",
|
|
|
|
]
|
|
|
|
|
2019-05-10 18:59:12 +02:00
|
|
|
[[package]]
|
|
|
|
name = "unicode-width"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.1.11"
|
2019-05-10 18:59:12 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
|
2019-05-10 18:59:12 +02:00
|
|
|
|
2019-07-29 09:46:24 +02:00
|
|
|
[[package]]
|
|
|
|
name = "unicode-xid"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.2.5"
|
2019-07-29 09:46:24 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "229730647fbc343e3a80e463c1db7f78f3855d3f3739bee0dda773c9a037c90a"
|
2019-07-29 09:46:24 +02:00
|
|
|
|
2022-08-10 21:56:15 +02:00
|
|
|
[[package]]
|
|
|
|
name = "unsafe-libyaml"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "0.2.11"
|
2022-08-10 21:56:15 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 02:31:43 +02:00
|
|
|
checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861"
|
2022-08-10 21:56:15 +02:00
|
|
|
|
2023-03-05 23:48:13 +01:00
|
|
|
[[package]]
|
|
|
|
name = "ureq"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "2.10.1"
|
2023-03-05 23:48:13 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "b74fc6b57825be3373f7054754755f03ac3a8f5d70015ccad699ba2029956f4a"
|
2023-03-05 23:48:13 +01:00
|
|
|
dependencies = [
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
"base64 0.22.1",
|
2023-03-05 23:48:13 +01:00
|
|
|
"encoding_rs",
|
|
|
|
"flate2",
|
|
|
|
"log",
|
|
|
|
"native-tls",
|
|
|
|
"once_cell",
|
|
|
|
"serde",
|
|
|
|
"serde_json",
|
|
|
|
"url",
|
|
|
|
]
|
|
|
|
|
2020-08-12 19:20:22 +02:00
|
|
|
[[package]]
|
|
|
|
name = "url"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "2.5.2"
|
2019-07-29 09:46:24 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c"
|
2019-07-29 09:46:24 +02:00
|
|
|
dependencies = [
|
2020-11-22 01:37:16 +01:00
|
|
|
"form_urlencoded",
|
|
|
|
"idna",
|
2021-07-09 21:28:07 +02:00
|
|
|
"percent-encoding",
|
2023-11-02 16:18:57 +01:00
|
|
|
"serde",
|
2019-07-29 09:46:24 +02:00
|
|
|
]
|
|
|
|
|
2024-10-17 19:12:45 +02:00
|
|
|
[[package]]
|
|
|
|
name = "urlencoding"
|
|
|
|
version = "2.1.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
|
|
|
|
|
2020-11-03 22:46:42 +01:00
|
|
|
[[package]]
|
|
|
|
name = "utf-8"
|
2021-05-12 03:01:31 +02:00
|
|
|
version = "0.7.6"
|
2020-11-03 22:46:42 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2021-05-12 03:01:31 +02:00
|
|
|
checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
|
2020-11-03 22:46:42 +01:00
|
|
|
|
2020-09-09 00:35:45 +02:00
|
|
|
[[package]]
|
|
|
|
name = "utf8-width"
|
2023-12-06 01:09:34 +01:00
|
|
|
version = "0.1.7"
|
2020-09-09 00:35:45 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-12-06 01:09:34 +01:00
|
|
|
checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3"
|
2020-09-09 00:35:45 +02:00
|
|
|
|
2020-04-07 09:51:17 +02:00
|
|
|
[[package]]
|
|
|
|
name = "utf8parse"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.2.2"
|
2020-04-07 09:51:17 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
|
2020-04-07 09:51:17 +02:00
|
|
|
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
[[package]]
|
|
|
|
name = "uu_cp"
|
2024-07-03 13:49:18 +02:00
|
|
|
version = "0.0.27"
|
2023-10-15 21:19:34 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-07-03 13:49:18 +02:00
|
|
|
checksum = "6fb99d355ccb02e8c514e4a1d93e4aa4eedea9837de24635dfd24c165971444e"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
dependencies = [
|
|
|
|
"clap",
|
|
|
|
"filetime",
|
|
|
|
"indicatif",
|
|
|
|
"libc",
|
|
|
|
"quick-error 2.0.1",
|
2024-06-11 20:44:13 +02:00
|
|
|
"uucore",
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
"walkdir",
|
|
|
|
"xattr",
|
|
|
|
]
|
|
|
|
|
2023-10-30 13:59:48 +01:00
|
|
|
[[package]]
|
|
|
|
name = "uu_mkdir"
|
2024-07-03 13:49:18 +02:00
|
|
|
version = "0.0.27"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-07-03 13:49:18 +02:00
|
|
|
checksum = "219588fbc146f18188781208ac4034616c51cf151677b4e1f9caf63ca8a7f2cf"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
dependencies = [
|
|
|
|
"clap",
|
2024-06-11 20:44:13 +02:00
|
|
|
"uucore",
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "uu_mktemp"
|
2024-07-03 13:49:18 +02:00
|
|
|
version = "0.0.27"
|
2023-10-30 13:59:48 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-07-03 13:49:18 +02:00
|
|
|
checksum = "b1e79ad2c5911908fce23a6069c52ca82e1997e2ed4bf6abf2d867c79c3dc73f"
|
2023-10-30 13:59:48 +01:00
|
|
|
dependencies = [
|
|
|
|
"clap",
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
"rand",
|
|
|
|
"tempfile",
|
2024-06-11 20:44:13 +02:00
|
|
|
"uucore",
|
2023-10-30 13:59:48 +01:00
|
|
|
]
|
|
|
|
|
Initial implementation of umv from uutils (#10822)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi,
This closes #10446 , wherein we start implementing `mv` from `uutils`.
There are some stuff to iron out, particularly
* Decide on behavior from ignored tests
* Wait for release/PRs to be approved on `uutils` side, but still can be
tested for now. See [PR
approved](https://github.com/uutils/coreutils/pull/5428), and
[pending](https://github.com/uutils/coreutils/pull/5429).
* `--progress` does not seem to work on `uutils mv` either and have not
checked whether certain `X` size has to be achieved in order for it to
appear, thus something to investigate as well, but thought it wasnt
important enough to not make the PR.
See [issue
comment](https://github.com/nushell/nushell/issues/10446#issuecomment-1764497988),
on the possible strategy to follow, mainly copy what we did with `ucp`.
I still left some comments on purpose particularly on tests, which of
course would be removed before something is decided here. :) @fdncred
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Don't forget to add tests that cover your changes.
Make sure you've run and fixed any issues with these commands:
- [X] `cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used`
to check that you're using the standard code style
- [X] `cargo test --workspace` to check that all tests pass (on Windows
make sure to [enable developer
mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging))
- [X] `cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
<!--
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
2024-01-18 17:20:57 +01:00
|
|
|
[[package]]
|
|
|
|
name = "uu_mv"
|
2024-07-03 13:49:18 +02:00
|
|
|
version = "0.0.27"
|
Initial implementation of umv from uutils (#10822)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi,
This closes #10446 , wherein we start implementing `mv` from `uutils`.
There are some stuff to iron out, particularly
* Decide on behavior from ignored tests
* Wait for release/PRs to be approved on `uutils` side, but still can be
tested for now. See [PR
approved](https://github.com/uutils/coreutils/pull/5428), and
[pending](https://github.com/uutils/coreutils/pull/5429).
* `--progress` does not seem to work on `uutils mv` either and have not
checked whether certain `X` size has to be achieved in order for it to
appear, thus something to investigate as well, but thought it wasnt
important enough to not make the PR.
See [issue
comment](https://github.com/nushell/nushell/issues/10446#issuecomment-1764497988),
on the possible strategy to follow, mainly copy what we did with `ucp`.
I still left some comments on purpose particularly on tests, which of
course would be removed before something is decided here. :) @fdncred
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Don't forget to add tests that cover your changes.
Make sure you've run and fixed any issues with these commands:
- [X] `cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used`
to check that you're using the standard code style
- [X] `cargo test --workspace` to check that all tests pass (on Windows
make sure to [enable developer
mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging))
- [X] `cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
<!--
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
2024-01-18 17:20:57 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-07-03 13:49:18 +02:00
|
|
|
checksum = "cd57c8d02f8a99ed56ed9f6fddab403ee0e2bf9e8f3a5ca8f0f9e4d6e3e392a0"
|
Initial implementation of umv from uutils (#10822)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi,
This closes #10446 , wherein we start implementing `mv` from `uutils`.
There are some stuff to iron out, particularly
* Decide on behavior from ignored tests
* Wait for release/PRs to be approved on `uutils` side, but still can be
tested for now. See [PR
approved](https://github.com/uutils/coreutils/pull/5428), and
[pending](https://github.com/uutils/coreutils/pull/5429).
* `--progress` does not seem to work on `uutils mv` either and have not
checked whether certain `X` size has to be achieved in order for it to
appear, thus something to investigate as well, but thought it wasnt
important enough to not make the PR.
See [issue
comment](https://github.com/nushell/nushell/issues/10446#issuecomment-1764497988),
on the possible strategy to follow, mainly copy what we did with `ucp`.
I still left some comments on purpose particularly on tests, which of
course would be removed before something is decided here. :) @fdncred
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Don't forget to add tests that cover your changes.
Make sure you've run and fixed any issues with these commands:
- [X] `cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used`
to check that you're using the standard code style
- [X] `cargo test --workspace` to check that all tests pass (on Windows
make sure to [enable developer
mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging))
- [X] `cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
<!--
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
2024-01-18 17:20:57 +01:00
|
|
|
dependencies = [
|
|
|
|
"clap",
|
|
|
|
"fs_extra",
|
|
|
|
"indicatif",
|
2024-06-11 20:44:13 +02:00
|
|
|
"uucore",
|
Initial implementation of umv from uutils (#10822)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi,
This closes #10446 , wherein we start implementing `mv` from `uutils`.
There are some stuff to iron out, particularly
* Decide on behavior from ignored tests
* Wait for release/PRs to be approved on `uutils` side, but still can be
tested for now. See [PR
approved](https://github.com/uutils/coreutils/pull/5428), and
[pending](https://github.com/uutils/coreutils/pull/5429).
* `--progress` does not seem to work on `uutils mv` either and have not
checked whether certain `X` size has to be achieved in order for it to
appear, thus something to investigate as well, but thought it wasnt
important enough to not make the PR.
See [issue
comment](https://github.com/nushell/nushell/issues/10446#issuecomment-1764497988),
on the possible strategy to follow, mainly copy what we did with `ucp`.
I still left some comments on purpose particularly on tests, which of
course would be removed before something is decided here. :) @fdncred
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Don't forget to add tests that cover your changes.
Make sure you've run and fixed any issues with these commands:
- [X] `cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used`
to check that you're using the standard code style
- [X] `cargo test --workspace` to check that all tests pass (on Windows
make sure to [enable developer
mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging))
- [X] `cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
<!--
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
2024-01-18 17:20:57 +01:00
|
|
|
]
|
|
|
|
|
2024-03-25 22:51:50 +01:00
|
|
|
[[package]]
|
|
|
|
name = "uu_uname"
|
2024-07-03 13:49:18 +02:00
|
|
|
version = "0.0.27"
|
2024-03-25 22:51:50 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-07-03 13:49:18 +02:00
|
|
|
checksum = "ad1ca90f9b292bccaad0de70e6feccac5182c6713a5e1ca72d97bf3555b608b4"
|
2024-03-25 22:51:50 +01:00
|
|
|
dependencies = [
|
|
|
|
"clap",
|
|
|
|
"platform-info",
|
2024-06-11 20:44:13 +02:00
|
|
|
"uucore",
|
2024-03-25 22:51:50 +01:00
|
|
|
]
|
|
|
|
|
implement whoami using uutils (#10488)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
Implements `whoami` using the `whoami` command from uutils as backend.
This is a draft because it depends on
https://github.com/uutils/coreutils/pull/5310 and a new release of
uutils needs to be made (and the paths in `Cargo.toml` should be
updated). At this point, this is more of a proof of concept 😄
Additionally, this implements a (simple and naive) conversion from the
uutils `UResult` to the nushell `ShellError`, which should help with the
integration of other utils, too. I can split that off into a separate PR
if desired.
I put this command in the "platform" category. If it should go somewhere
else, let me know!
The tests will currently fail, because I've used a local path to uutils.
Once the PR on the uutils side is merged, I'll update it to a git path
so that it can be tested and runs on more machines than just mine.
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
New `whoami` command. This might break some users who expect the system
`whoami` command. However, the result of this new command should be very
close, just with a nicer help message, at least for Linux users. The
default `whoami` on Windows is quite different from this implementation:
https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/whoami
# Tests + Formatting
<!--
Don't forget to add tests that cover your changes.
Make sure you've run and fixed any issues with these commands:
- `cargo fmt --all -- --check` to check standard code formatting (`cargo
fmt --all` applies these changes)
- `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- `cargo test --workspace` to check that all tests pass (on Windows make
sure to [enable developer
mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging))
- `cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-10-25 16:53:52 +02:00
|
|
|
[[package]]
|
|
|
|
name = "uu_whoami"
|
2024-07-03 13:49:18 +02:00
|
|
|
version = "0.0.27"
|
implement whoami using uutils (#10488)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
Implements `whoami` using the `whoami` command from uutils as backend.
This is a draft because it depends on
https://github.com/uutils/coreutils/pull/5310 and a new release of
uutils needs to be made (and the paths in `Cargo.toml` should be
updated). At this point, this is more of a proof of concept 😄
Additionally, this implements a (simple and naive) conversion from the
uutils `UResult` to the nushell `ShellError`, which should help with the
integration of other utils, too. I can split that off into a separate PR
if desired.
I put this command in the "platform" category. If it should go somewhere
else, let me know!
The tests will currently fail, because I've used a local path to uutils.
Once the PR on the uutils side is merged, I'll update it to a git path
so that it can be tested and runs on more machines than just mine.
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
New `whoami` command. This might break some users who expect the system
`whoami` command. However, the result of this new command should be very
close, just with a nicer help message, at least for Linux users. The
default `whoami` on Windows is quite different from this implementation:
https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/whoami
# Tests + Formatting
<!--
Don't forget to add tests that cover your changes.
Make sure you've run and fixed any issues with these commands:
- `cargo fmt --all -- --check` to check standard code formatting (`cargo
fmt --all` applies these changes)
- `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- `cargo test --workspace` to check that all tests pass (on Windows make
sure to [enable developer
mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging))
- `cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-10-25 16:53:52 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-07-03 13:49:18 +02:00
|
|
|
checksum = "bc7c52e42e0425710461700adc1063f468f2ba8a8ff83ee69ba661095ab7b77a"
|
implement whoami using uutils (#10488)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
Implements `whoami` using the `whoami` command from uutils as backend.
This is a draft because it depends on
https://github.com/uutils/coreutils/pull/5310 and a new release of
uutils needs to be made (and the paths in `Cargo.toml` should be
updated). At this point, this is more of a proof of concept 😄
Additionally, this implements a (simple and naive) conversion from the
uutils `UResult` to the nushell `ShellError`, which should help with the
integration of other utils, too. I can split that off into a separate PR
if desired.
I put this command in the "platform" category. If it should go somewhere
else, let me know!
The tests will currently fail, because I've used a local path to uutils.
Once the PR on the uutils side is merged, I'll update it to a git path
so that it can be tested and runs on more machines than just mine.
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
New `whoami` command. This might break some users who expect the system
`whoami` command. However, the result of this new command should be very
close, just with a nicer help message, at least for Linux users. The
default `whoami` on Windows is quite different from this implementation:
https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/whoami
# Tests + Formatting
<!--
Don't forget to add tests that cover your changes.
Make sure you've run and fixed any issues with these commands:
- `cargo fmt --all -- --check` to check standard code formatting (`cargo
fmt --all` applies these changes)
- `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- `cargo test --workspace` to check that all tests pass (on Windows make
sure to [enable developer
mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging))
- `cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-10-25 16:53:52 +02:00
|
|
|
dependencies = [
|
|
|
|
"clap",
|
|
|
|
"libc",
|
2024-06-11 20:44:13 +02:00
|
|
|
"uucore",
|
implement whoami using uutils (#10488)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
Implements `whoami` using the `whoami` command from uutils as backend.
This is a draft because it depends on
https://github.com/uutils/coreutils/pull/5310 and a new release of
uutils needs to be made (and the paths in `Cargo.toml` should be
updated). At this point, this is more of a proof of concept 😄
Additionally, this implements a (simple and naive) conversion from the
uutils `UResult` to the nushell `ShellError`, which should help with the
integration of other utils, too. I can split that off into a separate PR
if desired.
I put this command in the "platform" category. If it should go somewhere
else, let me know!
The tests will currently fail, because I've used a local path to uutils.
Once the PR on the uutils side is merged, I'll update it to a git path
so that it can be tested and runs on more machines than just mine.
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
New `whoami` command. This might break some users who expect the system
`whoami` command. However, the result of this new command should be very
close, just with a nicer help message, at least for Linux users. The
default `whoami` on Windows is quite different from this implementation:
https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/whoami
# Tests + Formatting
<!--
Don't forget to add tests that cover your changes.
Make sure you've run and fixed any issues with these commands:
- `cargo fmt --all -- --check` to check standard code formatting (`cargo
fmt --all` applies these changes)
- `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- `cargo test --workspace` to check that all tests pass (on Windows make
sure to [enable developer
mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging))
- `cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-10-25 16:53:52 +02:00
|
|
|
"windows-sys 0.48.0",
|
|
|
|
]
|
|
|
|
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
[[package]]
|
|
|
|
name = "uucore"
|
2024-07-03 13:49:18 +02:00
|
|
|
version = "0.0.27"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-07-03 13:49:18 +02:00
|
|
|
checksum = "7b54aad02cf7e96f5fafabb6b836efa73eef934783b17530095a29ffd4fdc154"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
dependencies = [
|
|
|
|
"clap",
|
|
|
|
"dunce",
|
|
|
|
"glob",
|
|
|
|
"libc",
|
2024-08-24 00:35:42 +02:00
|
|
|
"nix 0.28.0",
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
"number_prefix",
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
"once_cell",
|
|
|
|
"os_display",
|
|
|
|
"uucore_procs",
|
|
|
|
"walkdir",
|
|
|
|
"wild",
|
|
|
|
"winapi-util",
|
|
|
|
"windows-sys 0.48.0",
|
2024-03-24 00:46:02 +01:00
|
|
|
"xattr",
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "uucore_procs"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.0.27"
|
2023-10-15 21:19:34 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "c3d588f57acb2ba416e072a6fa652f2e11cf727267c697d2e2d65175f3b10c41"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"uuhelp_parser",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "uuhelp_parser"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.0.27"
|
2023-10-15 21:19:34 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "96f26868814bf1ca9deec910a08007c93eb1d8e407ce36451999d4c1c1ea6767"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
|
2020-06-25 07:51:09 +02:00
|
|
|
[[package]]
|
|
|
|
name = "uuid"
|
2024-07-17 03:46:59 +02:00
|
|
|
version = "1.10.0"
|
2020-06-25 07:51:09 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-07-17 03:46:59 +02:00
|
|
|
checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314"
|
2020-06-25 07:51:09 +02:00
|
|
|
dependencies = [
|
2023-07-10 07:28:36 +02:00
|
|
|
"getrandom",
|
2024-04-10 02:31:43 +02:00
|
|
|
"serde",
|
2020-06-25 07:51:09 +02:00
|
|
|
]
|
|
|
|
|
2024-01-18 19:58:35 +01:00
|
|
|
[[package]]
|
|
|
|
name = "v_htmlescape"
|
|
|
|
version = "0.15.8"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "4e8257fbc510f0a46eb602c10215901938b5c2a7d5e70fc11483b1d3c9b5b18c"
|
|
|
|
|
2022-11-09 23:07:38 +01:00
|
|
|
[[package]]
|
|
|
|
name = "value-trait"
|
2024-01-25 05:57:15 +01:00
|
|
|
version = "0.8.1"
|
2022-11-09 23:07:38 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-25 05:57:15 +01:00
|
|
|
checksum = "dad8db98c1e677797df21ba03fca7d3bf9bec3ca38db930954e4fe6e1ea27eb4"
|
2022-11-09 23:07:38 +01:00
|
|
|
dependencies = [
|
|
|
|
"float-cmp",
|
|
|
|
"halfbrown",
|
2023-03-06 04:37:22 +01:00
|
|
|
"itoa",
|
2022-11-09 23:07:38 +01:00
|
|
|
"ryu",
|
|
|
|
]
|
|
|
|
|
2019-06-01 23:11:28 +02:00
|
|
|
[[package]]
|
|
|
|
name = "vcpkg"
|
2021-08-28 05:34:11 +02:00
|
|
|
version = "0.2.15"
|
2020-08-22 07:06:19 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2021-08-28 05:34:11 +02:00
|
|
|
checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
|
2020-08-22 07:06:19 +02:00
|
|
|
|
2021-10-25 06:01:02 +02:00
|
|
|
[[package]]
|
|
|
|
name = "version_check"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.9.5"
|
2021-10-25 06:01:02 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
|
2019-11-16 18:17:05 +01:00
|
|
|
|
2019-11-16 21:02:26 +01:00
|
|
|
[[package]]
|
|
|
|
name = "vte"
|
2021-08-28 14:59:09 +02:00
|
|
|
version = "0.10.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "6cbce692ab4ca2f1f3047fcf732430249c0e971bfdd2b234cf2c47ad93af5983"
|
|
|
|
dependencies = [
|
|
|
|
"arrayvec 0.5.2",
|
|
|
|
"utf8parse",
|
|
|
|
"vte_generate_state_changes",
|
|
|
|
]
|
|
|
|
|
2023-08-08 22:20:37 +02:00
|
|
|
[[package]]
|
|
|
|
name = "vte"
|
|
|
|
version = "0.11.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f5022b5fbf9407086c180e9557be968742d839e68346af7792b8592489732197"
|
|
|
|
dependencies = [
|
|
|
|
"utf8parse",
|
|
|
|
"vte_generate_state_changes",
|
|
|
|
]
|
|
|
|
|
2021-08-28 14:59:09 +02:00
|
|
|
[[package]]
|
|
|
|
name = "vte_generate_state_changes"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.1.2"
|
2019-11-16 21:02:26 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "2e369bee1b05d510a7b4ed645f5faa90619e05437111783ea5848f28d97d3c2e"
|
2019-11-16 21:02:26 +01:00
|
|
|
dependencies = [
|
2021-08-28 14:59:09 +02:00
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2019-11-16 21:02:26 +01:00
|
|
|
]
|
|
|
|
|
2019-05-18 03:24:13 +02:00
|
|
|
[[package]]
|
2021-08-30 20:36:07 +02:00
|
|
|
name = "wait-timeout"
|
|
|
|
version = "0.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6"
|
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
2021-12-10 02:16:35 +01:00
|
|
|
[[package]]
|
2019-05-18 03:24:13 +02:00
|
|
|
name = "walkdir"
|
2024-03-25 22:51:50 +01:00
|
|
|
version = "2.5.0"
|
2019-05-18 03:24:13 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-25 22:51:50 +01:00
|
|
|
checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
|
2019-05-18 03:24:13 +02:00
|
|
|
dependencies = [
|
2019-11-28 03:21:00 +01:00
|
|
|
"same-file",
|
|
|
|
"winapi-util",
|
2019-05-18 03:24:13 +02:00
|
|
|
]
|
|
|
|
|
2022-03-27 15:01:04 +02:00
|
|
|
[[package]]
|
|
|
|
name = "wasi"
|
|
|
|
version = "0.11.0+wasi-snapshot-preview1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
|
|
|
|
|
2019-06-08 20:09:17 +02:00
|
|
|
[[package]]
|
2019-08-24 21:36:19 +02:00
|
|
|
name = "wasm-bindgen"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.2.93"
|
2019-06-08 20:09:17 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5"
|
2021-12-09 20:19:36 +01:00
|
|
|
dependencies = [
|
2023-07-05 14:14:55 +02:00
|
|
|
"cfg-if",
|
2024-08-24 00:35:42 +02:00
|
|
|
"once_cell",
|
2019-11-28 03:21:00 +01:00
|
|
|
"wasm-bindgen-macro",
|
2019-06-08 20:09:17 +02:00
|
|
|
]
|
|
|
|
|
2019-07-05 00:17:18 +02:00
|
|
|
[[package]]
|
2019-08-24 21:36:19 +02:00
|
|
|
name = "wasm-bindgen-backend"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.2.93"
|
2019-07-05 00:17:18 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b"
|
2019-07-05 00:17:18 +02:00
|
|
|
dependencies = [
|
2019-11-28 03:21:00 +01:00
|
|
|
"bumpalo",
|
2021-07-09 21:28:07 +02:00
|
|
|
"log",
|
2022-07-26 04:09:32 +02:00
|
|
|
"once_cell",
|
2019-11-28 03:21:00 +01:00
|
|
|
"proc-macro2",
|
2021-08-28 05:34:11 +02:00
|
|
|
"quote",
|
2024-08-24 00:35:42 +02:00
|
|
|
"syn 2.0.75",
|
2019-11-28 03:21:00 +01:00
|
|
|
"wasm-bindgen-shared",
|
2019-07-05 00:17:18 +02:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "wasm-bindgen-macro"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.2.93"
|
2019-07-05 00:17:18 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf"
|
2019-07-05 00:17:18 +02:00
|
|
|
dependencies = [
|
2021-08-28 05:34:11 +02:00
|
|
|
"quote",
|
2019-11-28 03:21:00 +01:00
|
|
|
"wasm-bindgen-macro-support",
|
2019-07-05 00:17:18 +02:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "wasm-bindgen-macro-support"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.2.93"
|
2019-07-05 00:17:18 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836"
|
2019-07-05 00:17:18 +02:00
|
|
|
dependencies = [
|
2019-11-28 03:21:00 +01:00
|
|
|
"proc-macro2",
|
2021-08-28 05:34:11 +02:00
|
|
|
"quote",
|
2024-08-24 00:35:42 +02:00
|
|
|
"syn 2.0.75",
|
2019-11-28 03:21:00 +01:00
|
|
|
"wasm-bindgen-backend",
|
|
|
|
"wasm-bindgen-shared",
|
2019-07-05 00:17:18 +02:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "wasm-bindgen-shared"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.2.93"
|
2019-08-24 21:36:19 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484"
|
2019-08-24 21:36:19 +02:00
|
|
|
|
2022-04-04 22:45:01 +02:00
|
|
|
[[package]]
|
|
|
|
name = "wax"
|
2023-10-09 14:31:50 +02:00
|
|
|
version = "0.6.0"
|
2022-04-04 22:45:01 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-09 14:31:50 +02:00
|
|
|
checksum = "8d12a78aa0bab22d2f26ed1a96df7ab58e8a93506a3e20adb47c51a93b4e1357"
|
2022-04-04 22:45:01 +02:00
|
|
|
dependencies = [
|
|
|
|
"const_format",
|
2023-10-09 14:31:50 +02:00
|
|
|
"itertools 0.11.0",
|
2023-01-04 23:50:18 +01:00
|
|
|
"nom",
|
2022-04-04 22:45:01 +02:00
|
|
|
"pori",
|
|
|
|
"regex",
|
|
|
|
"thiserror",
|
|
|
|
"walkdir",
|
|
|
|
]
|
|
|
|
|
2024-01-20 15:04:06 +01:00
|
|
|
[[package]]
|
|
|
|
name = "wayland-backend"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.3.6"
|
2024-01-20 15:04:06 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "f90e11ce2ca99c97b940ee83edbae9da2d56a08f9ea8158550fd77fa31722993"
|
2024-01-20 15:04:06 +01:00
|
|
|
dependencies = [
|
|
|
|
"cc",
|
|
|
|
"downcast-rs",
|
2024-01-31 15:06:59 +01:00
|
|
|
"rustix",
|
2024-01-20 15:04:06 +01:00
|
|
|
"scoped-tls",
|
|
|
|
"smallvec",
|
|
|
|
"wayland-sys",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "wayland-client"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.31.5"
|
2024-01-20 15:04:06 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "7e321577a0a165911bdcfb39cf029302479d7527b517ee58ab0f6ad09edf0943"
|
2024-01-20 15:04:06 +01:00
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"bitflags 2.6.0",
|
2024-01-31 15:06:59 +01:00
|
|
|
"rustix",
|
2024-01-20 15:04:06 +01:00
|
|
|
"wayland-backend",
|
|
|
|
"wayland-scanner",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "wayland-protocols"
|
2024-01-31 15:06:59 +01:00
|
|
|
version = "0.31.2"
|
2024-01-20 15:04:06 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-31 15:06:59 +01:00
|
|
|
checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4"
|
2024-01-20 15:04:06 +01:00
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"bitflags 2.6.0",
|
2024-01-20 15:04:06 +01:00
|
|
|
"wayland-backend",
|
|
|
|
"wayland-client",
|
|
|
|
"wayland-scanner",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "wayland-protocols-wlr"
|
|
|
|
version = "0.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6"
|
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"bitflags 2.6.0",
|
2024-01-20 15:04:06 +01:00
|
|
|
"wayland-backend",
|
|
|
|
"wayland-client",
|
|
|
|
"wayland-protocols",
|
|
|
|
"wayland-scanner",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "wayland-scanner"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.31.4"
|
2024-01-20 15:04:06 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "d7b56f89937f1cf2ee1f1259cf2936a17a1f45d8f0aa1019fae6d470d304cfa6"
|
2024-01-20 15:04:06 +01:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
2024-08-24 00:35:42 +02:00
|
|
|
"quick-xml 0.34.0",
|
2024-01-20 15:04:06 +01:00
|
|
|
"quote",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "wayland-sys"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.31.4"
|
2024-01-20 15:04:06 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "43676fe2daf68754ecf1d72026e4e6c15483198b5d24e888b74d3f22f887a148"
|
2024-01-20 15:04:06 +01:00
|
|
|
dependencies = [
|
|
|
|
"dlib",
|
|
|
|
"log",
|
|
|
|
"pkg-config",
|
|
|
|
]
|
|
|
|
|
2024-06-29 23:13:31 +02:00
|
|
|
[[package]]
|
|
|
|
name = "webpage"
|
|
|
|
version = "2.0.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "70862efc041d46e6bbaa82bb9c34ae0596d090e86cbd14bd9e93b36ee6802eac"
|
|
|
|
dependencies = [
|
|
|
|
"curl",
|
2024-08-07 03:07:19 +02:00
|
|
|
"html5ever",
|
2024-06-29 23:13:31 +02:00
|
|
|
"markup5ever_rcdom",
|
|
|
|
"serde",
|
|
|
|
"serde_json",
|
|
|
|
"url",
|
|
|
|
]
|
|
|
|
|
2023-10-23 08:14:28 +02:00
|
|
|
[[package]]
|
|
|
|
name = "which"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "6.0.3"
|
2023-10-23 08:14:28 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "b4ee928febd44d98f2f459a4a79bd4d928591333a494a10a868418ac1b39cf1f"
|
2023-10-23 08:14:28 +02:00
|
|
|
dependencies = [
|
|
|
|
"either",
|
|
|
|
"home",
|
2024-01-05 17:19:46 +01:00
|
|
|
"rustix",
|
2024-04-10 02:31:43 +02:00
|
|
|
"winsafe",
|
2023-10-23 08:14:28 +02:00
|
|
|
]
|
|
|
|
|
2024-05-03 07:31:33 +02:00
|
|
|
[[package]]
|
|
|
|
name = "widestring"
|
|
|
|
version = "1.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311"
|
|
|
|
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
[[package]]
|
|
|
|
name = "wild"
|
2024-01-28 17:26:03 +01:00
|
|
|
version = "2.2.1"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-28 17:26:03 +01:00
|
|
|
checksum = "a3131afc8c575281e1e80f36ed6a092aa502c08b18ed7524e86fbbb12bb410e1"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
dependencies = [
|
|
|
|
"glob",
|
|
|
|
]
|
|
|
|
|
2021-04-24 16:33:17 +02:00
|
|
|
[[package]]
|
2019-05-10 18:59:12 +02:00
|
|
|
name = "winapi"
|
2020-06-27 09:54:31 +02:00
|
|
|
version = "0.3.9"
|
2019-05-10 18:59:12 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-06-27 09:54:31 +02:00
|
|
|
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
|
2019-05-10 18:59:12 +02:00
|
|
|
dependencies = [
|
2019-11-28 03:21:00 +01:00
|
|
|
"winapi-i686-pc-windows-gnu",
|
|
|
|
"winapi-x86_64-pc-windows-gnu",
|
2019-05-10 18:59:12 +02:00
|
|
|
]
|
|
|
|
|
2019-05-22 09:12:03 +02:00
|
|
|
[[package]]
|
2019-05-10 18:59:12 +02:00
|
|
|
name = "winapi-i686-pc-windows-gnu"
|
|
|
|
version = "0.4.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2019-11-28 03:21:00 +01:00
|
|
|
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
|
2019-05-10 18:59:12 +02:00
|
|
|
|
2019-05-18 03:24:13 +02:00
|
|
|
[[package]]
|
|
|
|
name = "winapi-util"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.1.9"
|
2019-05-18 03:24:13 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
|
2019-05-18 03:24:13 +02:00
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"windows-sys 0.59.0",
|
2019-05-18 03:24:13 +02:00
|
|
|
]
|
|
|
|
|
2021-05-12 03:01:31 +02:00
|
|
|
[[package]]
|
2021-12-01 20:48:03 +01:00
|
|
|
name = "winapi-x86_64-pc-windows-gnu"
|
|
|
|
version = "0.4.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
|
|
|
|
2023-03-22 14:02:03 +01:00
|
|
|
[[package]]
|
|
|
|
name = "windows"
|
2023-12-21 18:49:15 +01:00
|
|
|
version = "0.52.0"
|
2023-03-22 14:02:03 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-12-21 18:49:15 +01:00
|
|
|
checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
|
2023-03-22 14:02:03 +01:00
|
|
|
dependencies = [
|
2024-03-08 01:36:28 +01:00
|
|
|
"windows-core 0.52.0",
|
2024-08-24 00:35:42 +02:00
|
|
|
"windows-targets 0.52.6",
|
2024-03-08 01:36:28 +01:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "windows"
|
2024-10-17 19:12:45 +02:00
|
|
|
version = "0.56.0"
|
2024-03-08 01:36:28 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-10-17 19:12:45 +02:00
|
|
|
checksum = "1de69df01bdf1ead2f4ac895dc77c9351aefff65b2f3db429a343f9cbf05e132"
|
2024-03-08 01:36:28 +01:00
|
|
|
dependencies = [
|
2024-10-17 19:12:45 +02:00
|
|
|
"windows-core 0.56.0",
|
2024-08-24 00:35:42 +02:00
|
|
|
"windows-targets 0.52.6",
|
2023-01-30 03:17:18 +01:00
|
|
|
]
|
|
|
|
|
2023-12-21 18:49:15 +01:00
|
|
|
[[package]]
|
|
|
|
name = "windows-core"
|
|
|
|
version = "0.52.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
|
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"windows-targets 0.52.6",
|
2024-03-08 01:36:28 +01:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "windows-core"
|
2024-10-17 19:12:45 +02:00
|
|
|
version = "0.56.0"
|
2024-03-08 01:36:28 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-10-17 19:12:45 +02:00
|
|
|
checksum = "4698e52ed2d08f8658ab0c39512a7c00ee5fe2688c65f8c0a4f06750d729f2a6"
|
2024-03-08 01:36:28 +01:00
|
|
|
dependencies = [
|
2024-10-17 19:12:45 +02:00
|
|
|
"windows-implement",
|
|
|
|
"windows-interface",
|
2024-03-08 01:36:28 +01:00
|
|
|
"windows-result",
|
2024-08-24 00:35:42 +02:00
|
|
|
"windows-targets 0.52.6",
|
2024-03-08 01:36:28 +01:00
|
|
|
]
|
|
|
|
|
2024-10-17 19:12:45 +02:00
|
|
|
[[package]]
|
|
|
|
name = "windows-implement"
|
|
|
|
version = "0.56.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b"
|
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn 2.0.75",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "windows-interface"
|
|
|
|
version = "0.56.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc"
|
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn 2.0.75",
|
|
|
|
]
|
|
|
|
|
2024-03-08 01:36:28 +01:00
|
|
|
[[package]]
|
|
|
|
name = "windows-result"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.1.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8"
|
|
|
|
dependencies = [
|
|
|
|
"windows-targets 0.52.6",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "windows-sys"
|
|
|
|
version = "0.36.1"
|
2024-03-08 01:36:28 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2"
|
2024-03-08 01:36:28 +01:00
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"windows_aarch64_msvc 0.36.1",
|
|
|
|
"windows_i686_gnu 0.36.1",
|
|
|
|
"windows_i686_msvc 0.36.1",
|
|
|
|
"windows_x86_64_gnu 0.36.1",
|
|
|
|
"windows_x86_64_msvc 0.36.1",
|
2023-12-21 18:49:15 +01:00
|
|
|
]
|
|
|
|
|
2023-04-14 14:15:01 +02:00
|
|
|
[[package]]
|
|
|
|
name = "windows-sys"
|
|
|
|
version = "0.48.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
|
|
|
|
dependencies = [
|
2023-10-07 13:58:26 +02:00
|
|
|
"windows-targets 0.48.5",
|
2023-04-14 14:15:01 +02:00
|
|
|
]
|
|
|
|
|
2023-12-06 01:09:34 +01:00
|
|
|
[[package]]
|
|
|
|
name = "windows-sys"
|
|
|
|
version = "0.52.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
|
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"windows-targets 0.52.6",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "windows-sys"
|
|
|
|
version = "0.59.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
|
|
|
|
dependencies = [
|
|
|
|
"windows-targets 0.52.6",
|
2023-12-06 01:09:34 +01:00
|
|
|
]
|
|
|
|
|
2023-04-05 23:54:26 +02:00
|
|
|
[[package]]
|
|
|
|
name = "windows-targets"
|
2023-10-07 13:58:26 +02:00
|
|
|
version = "0.48.5"
|
2023-04-05 23:54:26 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 13:58:26 +02:00
|
|
|
checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
|
2023-04-05 23:54:26 +02:00
|
|
|
dependencies = [
|
2023-10-07 13:58:26 +02:00
|
|
|
"windows_aarch64_gnullvm 0.48.5",
|
|
|
|
"windows_aarch64_msvc 0.48.5",
|
|
|
|
"windows_i686_gnu 0.48.5",
|
|
|
|
"windows_i686_msvc 0.48.5",
|
|
|
|
"windows_x86_64_gnu 0.48.5",
|
|
|
|
"windows_x86_64_gnullvm 0.48.5",
|
|
|
|
"windows_x86_64_msvc 0.48.5",
|
2023-01-03 19:47:37 +01:00
|
|
|
]
|
|
|
|
|
2023-12-06 01:09:34 +01:00
|
|
|
[[package]]
|
|
|
|
name = "windows-targets"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.52.6"
|
2023-12-06 01:09:34 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
|
2023-12-06 01:09:34 +01:00
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"windows_aarch64_gnullvm 0.52.6",
|
|
|
|
"windows_aarch64_msvc 0.52.6",
|
|
|
|
"windows_i686_gnu 0.52.6",
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
"windows_i686_gnullvm",
|
2024-08-24 00:35:42 +02:00
|
|
|
"windows_i686_msvc 0.52.6",
|
|
|
|
"windows_x86_64_gnu 0.52.6",
|
|
|
|
"windows_x86_64_gnullvm 0.52.6",
|
|
|
|
"windows_x86_64_msvc 0.52.6",
|
2023-12-06 01:09:34 +01:00
|
|
|
]
|
|
|
|
|
2023-04-05 23:54:26 +02:00
|
|
|
[[package]]
|
|
|
|
name = "windows_aarch64_gnullvm"
|
2023-10-07 13:58:26 +02:00
|
|
|
version = "0.48.5"
|
2023-04-05 23:54:26 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 13:58:26 +02:00
|
|
|
checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
|
2023-04-05 23:54:26 +02:00
|
|
|
|
2023-12-06 01:09:34 +01:00
|
|
|
[[package]]
|
|
|
|
name = "windows_aarch64_gnullvm"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.52.6"
|
2023-12-06 01:09:34 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "windows_aarch64_msvc"
|
|
|
|
version = "0.36.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47"
|
2023-12-06 01:09:34 +01:00
|
|
|
|
2023-04-05 23:54:26 +02:00
|
|
|
[[package]]
|
|
|
|
name = "windows_aarch64_msvc"
|
2023-10-07 13:58:26 +02:00
|
|
|
version = "0.48.5"
|
2023-04-05 23:54:26 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 13:58:26 +02:00
|
|
|
checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
|
2023-04-05 23:54:26 +02:00
|
|
|
|
2023-12-06 01:09:34 +01:00
|
|
|
[[package]]
|
|
|
|
name = "windows_aarch64_msvc"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.52.6"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "windows_i686_gnu"
|
|
|
|
version = "0.36.1"
|
2023-12-06 01:09:34 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6"
|
2023-12-06 01:09:34 +01:00
|
|
|
|
2023-04-05 23:54:26 +02:00
|
|
|
[[package]]
|
|
|
|
name = "windows_i686_gnu"
|
2023-10-07 13:58:26 +02:00
|
|
|
version = "0.48.5"
|
2023-04-05 23:54:26 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 13:58:26 +02:00
|
|
|
checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
|
2023-04-05 23:54:26 +02:00
|
|
|
|
2023-12-06 01:09:34 +01:00
|
|
|
[[package]]
|
|
|
|
name = "windows_i686_gnu"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.52.6"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "windows_i686_gnullvm"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.52.6"
|
2023-12-06 01:09:34 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "windows_i686_msvc"
|
|
|
|
version = "0.36.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024"
|
2023-12-06 01:09:34 +01:00
|
|
|
|
2023-04-05 23:54:26 +02:00
|
|
|
[[package]]
|
|
|
|
name = "windows_i686_msvc"
|
2023-10-07 13:58:26 +02:00
|
|
|
version = "0.48.5"
|
2023-04-05 23:54:26 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 13:58:26 +02:00
|
|
|
checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
|
2023-04-05 23:54:26 +02:00
|
|
|
|
2023-12-06 01:09:34 +01:00
|
|
|
[[package]]
|
|
|
|
name = "windows_i686_msvc"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.52.6"
|
2023-12-06 01:09:34 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "windows_x86_64_gnu"
|
|
|
|
version = "0.36.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1"
|
2023-12-06 01:09:34 +01:00
|
|
|
|
2023-04-05 23:54:26 +02:00
|
|
|
[[package]]
|
|
|
|
name = "windows_x86_64_gnu"
|
2023-10-07 13:58:26 +02:00
|
|
|
version = "0.48.5"
|
2023-04-05 23:54:26 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 13:58:26 +02:00
|
|
|
checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
|
2023-04-05 23:54:26 +02:00
|
|
|
|
2023-12-06 01:09:34 +01:00
|
|
|
[[package]]
|
|
|
|
name = "windows_x86_64_gnu"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.52.6"
|
2023-12-06 01:09:34 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
|
2023-12-06 01:09:34 +01:00
|
|
|
|
2023-04-05 23:54:26 +02:00
|
|
|
[[package]]
|
|
|
|
name = "windows_x86_64_gnullvm"
|
2023-10-07 13:58:26 +02:00
|
|
|
version = "0.48.5"
|
2023-04-05 23:54:26 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 13:58:26 +02:00
|
|
|
checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
|
2023-04-05 23:54:26 +02:00
|
|
|
|
2023-12-06 01:09:34 +01:00
|
|
|
[[package]]
|
|
|
|
name = "windows_x86_64_gnullvm"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.52.6"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "windows_x86_64_msvc"
|
|
|
|
version = "0.36.1"
|
2023-12-06 01:09:34 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680"
|
2023-12-06 01:09:34 +01:00
|
|
|
|
2023-04-05 23:54:26 +02:00
|
|
|
[[package]]
|
|
|
|
name = "windows_x86_64_msvc"
|
2023-10-07 13:58:26 +02:00
|
|
|
version = "0.48.5"
|
2023-04-05 23:54:26 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 13:58:26 +02:00
|
|
|
checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
|
2023-04-05 23:54:26 +02:00
|
|
|
|
2023-12-06 01:09:34 +01:00
|
|
|
[[package]]
|
|
|
|
name = "windows_x86_64_msvc"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.52.6"
|
2023-12-06 01:09:34 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
|
2023-12-06 01:09:34 +01:00
|
|
|
|
2022-10-23 02:59:44 +02:00
|
|
|
[[package]]
|
2023-03-12 00:35:56 +01:00
|
|
|
name = "winnow"
|
2024-04-10 02:31:43 +02:00
|
|
|
version = "0.5.40"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
|
|
|
|
dependencies = [
|
|
|
|
"memchr",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "winnow"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.6.18"
|
2022-10-23 02:59:44 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f"
|
2023-03-12 00:35:56 +01:00
|
|
|
dependencies = [
|
|
|
|
"memchr",
|
|
|
|
]
|
2022-10-23 02:59:44 +02:00
|
|
|
|
2023-02-20 03:57:46 +01:00
|
|
|
[[package]]
|
|
|
|
name = "winreg"
|
2023-11-20 20:35:21 +01:00
|
|
|
version = "0.52.0"
|
2023-02-20 03:57:46 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-11-20 20:35:21 +01:00
|
|
|
checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5"
|
2023-02-20 03:57:46 +01:00
|
|
|
dependencies = [
|
2023-07-05 14:14:55 +02:00
|
|
|
"cfg-if",
|
2023-04-14 14:15:01 +02:00
|
|
|
"windows-sys 0.48.0",
|
2022-04-28 16:26:34 +02:00
|
|
|
]
|
|
|
|
|
2022-05-25 05:28:10 +02:00
|
|
|
[[package]]
|
2023-04-26 14:14:55 +02:00
|
|
|
name = "winresource"
|
2023-10-07 13:58:26 +02:00
|
|
|
version = "0.1.17"
|
2022-05-25 05:28:10 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 13:58:26 +02:00
|
|
|
checksum = "77e2aaaf8cfa92078c0c0375423d631f82f2f57979c2884fdd5f604a11e45329"
|
2022-05-25 05:28:10 +02:00
|
|
|
dependencies = [
|
2023-09-18 07:50:30 +02:00
|
|
|
"toml 0.7.8",
|
2023-04-26 14:14:55 +02:00
|
|
|
"version_check",
|
2022-05-25 05:28:10 +02:00
|
|
|
]
|
|
|
|
|
2024-04-10 02:31:43 +02:00
|
|
|
[[package]]
|
|
|
|
name = "winsafe"
|
|
|
|
version = "0.0.19"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904"
|
|
|
|
|
2024-01-20 15:04:06 +01:00
|
|
|
[[package]]
|
|
|
|
name = "wl-clipboard-rs"
|
2024-03-27 16:43:37 +01:00
|
|
|
version = "0.8.1"
|
2024-01-20 15:04:06 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-27 16:43:37 +01:00
|
|
|
checksum = "12b41773911497b18ca8553c3daaf8ec9fe9819caf93d451d3055f69de028adb"
|
2024-01-20 15:04:06 +01:00
|
|
|
dependencies = [
|
|
|
|
"derive-new",
|
|
|
|
"libc",
|
|
|
|
"log",
|
2024-08-24 00:35:42 +02:00
|
|
|
"nix 0.28.0",
|
2024-01-20 15:04:06 +01:00
|
|
|
"os_pipe",
|
|
|
|
"tempfile",
|
|
|
|
"thiserror",
|
|
|
|
"tree_magic_mini",
|
|
|
|
"wayland-backend",
|
|
|
|
"wayland-client",
|
|
|
|
"wayland-protocols",
|
|
|
|
"wayland-protocols-wlr",
|
|
|
|
]
|
|
|
|
|
2024-01-21 21:17:28 +01:00
|
|
|
[[package]]
|
|
|
|
name = "wyz"
|
|
|
|
version = "0.5.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed"
|
|
|
|
dependencies = [
|
|
|
|
"tap",
|
|
|
|
]
|
|
|
|
|
2024-01-20 15:04:06 +01:00
|
|
|
[[package]]
|
|
|
|
name = "x11rb"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
version = "0.13.1"
|
2024-01-20 15:04:06 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
checksum = "5d91ffca73ee7f68ce055750bf9f6eca0780b8c85eff9bc046a3b0da41755e12"
|
2024-01-20 15:04:06 +01:00
|
|
|
dependencies = [
|
|
|
|
"gethostname",
|
2024-03-12 23:10:11 +01:00
|
|
|
"rustix",
|
2024-01-20 15:04:06 +01:00
|
|
|
"x11rb-protocol",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "x11rb-protocol"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
version = "0.13.1"
|
2024-01-20 15:04:06 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Tango migration (#12469)
# Description
This PR migrates the benchmark suit to Tango. Its different compared to
other framework because it require 2 binaries, to run to do A/B
benchmarking, this is currently limited to Linux, Max, (Windows require
rustc nightly flag), by switching between two suits it can reduce noise
and run the code "almost" concurrently. I have have been in contact with
the maintainer, and bases this on the dev branch, as it had a newer API
simular to criterion. This framework compared to Divan also have a
simple file dump system if we want to generate graphs, do other analysis
on later. I think overall this crate is very nice, a lot faster to
compile and run then criterion, that's for sure.
2024-05-05 17:53:48 +02:00
|
|
|
checksum = "ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d"
|
2024-01-20 15:04:06 +01:00
|
|
|
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
[[package]]
|
|
|
|
name = "xattr"
|
2024-01-21 04:53:24 +01:00
|
|
|
version = "1.3.1"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 04:53:24 +01:00
|
|
|
checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
2024-01-21 04:53:24 +01:00
|
|
|
"linux-raw-sys",
|
|
|
|
"rustix",
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx
you can also mention related issues, PRs or discussions!
-->
# Description
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.
Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library
> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 20:57:38 +02:00
|
|
|
]
|
|
|
|
|
2024-06-29 23:13:31 +02:00
|
|
|
[[package]]
|
|
|
|
name = "xml5ever"
|
|
|
|
version = "0.18.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "9bbb26405d8e919bc1547a5aa9abc95cbfa438f04844f5fdd9dc7596b748bf69"
|
|
|
|
dependencies = [
|
|
|
|
"log",
|
|
|
|
"mac",
|
2024-08-07 03:07:19 +02:00
|
|
|
"markup5ever",
|
2024-06-29 23:13:31 +02:00
|
|
|
]
|
|
|
|
|
2023-01-13 16:27:37 +01:00
|
|
|
[[package]]
|
|
|
|
name = "xxhash-rust"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.8.12"
|
2023-01-13 16:27:37 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "6a5cbf750400958819fb6178eaa83bee5cd9c29a26a40cc241df8c70fdd46984"
|
2023-01-13 16:27:37 +01:00
|
|
|
|
2022-10-03 18:40:16 +02:00
|
|
|
[[package]]
|
|
|
|
name = "yansi"
|
|
|
|
version = "0.5.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
|
|
|
|
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
[[package]]
|
|
|
|
name = "zerocopy"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.7.35"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
dependencies = [
|
2024-08-24 00:35:42 +02:00
|
|
|
"byteorder",
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
"zerocopy-derive",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "zerocopy-derive"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.7.35"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2024-08-24 00:35:42 +02:00
|
|
|
"syn 2.0.75",
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 02:30:53 +01:00
|
|
|
]
|
|
|
|
|
2021-11-19 20:23:35 +01:00
|
|
|
[[package]]
|
2019-11-17 04:18:41 +01:00
|
|
|
name = "zip"
|
2023-05-18 01:32:28 +02:00
|
|
|
version = "0.6.6"
|
2019-11-17 04:18:41 +01:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-05-18 01:32:28 +02:00
|
|
|
checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261"
|
2019-11-17 04:18:41 +01:00
|
|
|
dependencies = [
|
2020-09-09 00:35:45 +02:00
|
|
|
"byteorder",
|
2019-11-28 03:21:00 +01:00
|
|
|
"crc32fast",
|
2022-12-01 20:25:13 +01:00
|
|
|
"crossbeam-utils",
|
2019-11-28 03:21:00 +01:00
|
|
|
"flate2",
|
|
|
|
]
|
2021-05-18 21:33:10 +02:00
|
|
|
|
2023-04-14 22:14:57 +02:00
|
|
|
[[package]]
|
|
|
|
name = "zstd"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "0.13.2"
|
2023-04-14 22:14:57 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "fcf2b778a664581e31e389454a7072dab1647606d44f7feea22cd5abb9c9f3f9"
|
2023-04-14 22:14:57 +02:00
|
|
|
dependencies = [
|
2023-05-08 17:42:53 +02:00
|
|
|
"zstd-safe",
|
2021-05-18 21:33:10 +02:00
|
|
|
]
|
|
|
|
|
2023-04-14 22:14:57 +02:00
|
|
|
[[package]]
|
|
|
|
name = "zstd-safe"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "7.2.1"
|
2023-04-14 22:14:57 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "54a3ab4db68cea366acc5c897c7b4d4d1b8994a9cd6e6f841f8964566a419059"
|
2023-04-14 22:14:57 +02:00
|
|
|
dependencies = [
|
|
|
|
"zstd-sys",
|
|
|
|
]
|
|
|
|
|
2021-05-18 21:33:10 +02:00
|
|
|
[[package]]
|
|
|
|
name = "zstd-sys"
|
2024-08-24 00:35:42 +02:00
|
|
|
version = "2.0.13+zstd.1.5.6"
|
2021-05-18 21:33:10 +02:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-08-24 00:35:42 +02:00
|
|
|
checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa"
|
2021-05-18 21:33:10 +02:00
|
|
|
dependencies = [
|
|
|
|
"cc",
|
2023-03-12 00:35:56 +01:00
|
|
|
"pkg-config",
|
2021-05-18 21:33:10 +02:00
|
|
|
]
|