mirror of
https://github.com/nushell/nu_scripts.git
synced 2024-07-14 16:50:30 +03:00
A place to share Nushell scripts with each other
@amtoine gave me valuable feedback about the [PR of `std bench` improvement](https://github.com/nushell/nu_scripts/pull/859) CANDIDATE into `stdlib-candidates`. I understood and respected his reasoning about his position. Yet, I still believe that users of `std bench` will benefit from my proposal. I incorporated some of @amtoine advice in this PR. I removed the `bench --units` option as I now believe it is better to encourage users to use core functionality for formatting duration (which I had not thought of initially) and to avoid multiplying `--options`. ``` bench -n 10 {sleep 0.1sec} | format duration ms mean min max stddev # or bench -n 10 {sleep 0.1sec} | format duration ms ...($in | columns) ``` Also, I removed the option of `--sign-digits` and just hard-coded the precision of conversion to the fourth significant digit (which will give a maximum relative error of 0.05%, which I still think is unnecessarily precise). To explain my motivation, I added some context from our previous conversation: >> Maybe you would agree with me that this representation is very wordy and unnecessary, even for a professional? >> `1sec 333ms 333µs 333ns` > maybe, but then i would argue the issue comes from the formatting nushell does on durations, not from std bench, it's just that Nushell will show every part of the duration 😕 And I add here that if Nushell adds the setting for resetting insignificant digits from displaying, those conversions could be removed for the better. Yet, we don't have such a setting yet, but we already use bench and use it quite often. So, I propose this usability improvement. In my defense, I would add that the existing `--pretty` option will only benefit from the proposed changes (while it can't benefit from `| format duration ms`). ```diff > bench {sleep (10sec / 3)} --rounds 2 --pretty - 3sec 335ms 974µs 264ns +/- 1ms 108µs 748ns + 3sec 335ms +/- 1ms 108µs ``` Finally, I kept the `--list-timings` option because I strongly believe that users much more often will not need expanded 50 lines of timing results on their screen (which they can get rid of by adding `| reject time` in the second execution of the `bench` command - but I would like to avoid this second execution). I won't be hurt if my proposed changes aren't accepted and applied to mainstream. Yet, I feel like my initial PR is still valuable and will benefit from my current PR's additions. |
||
---|---|---|
.github/workflows | ||
aliases | ||
assets | ||
before_v0.60/cool_oneliners | ||
benchmarks | ||
custom-completions | ||
custom-menus | ||
example-config | ||
make_release | ||
modules | ||
nu-hooks | ||
sourced | ||
stdlib-candidate | ||
themes | ||
.gitattributes | ||
.gitignore | ||
LICENSE | ||
README.md | ||
toolkit.nu | ||
typos.toml |
Nushell Scripts
This is a place to share Nushell scripts with each other. If you'd like to share your scripts, fork this repository, and create a PR that adds it to the repo.
Sections
- aliases
- benchmarks
- cool-oneliners
- custom-completions - collection of custom completions for external commands.
- custom-menus - collection of custom nushell menus
- example-config
- nu-hooks
- modules - This has its dedicated readme
- nu_101 - Beginner introduction to nushell concepts.
- prompt
- themes
Running Scripts
You can run nushell scripts in a few different ways.
- You can type
nu <script name>
. - From with nushell, you can type
source <script name>
and if the script is just a bunch of commands it will run the script. If the script is a custom command it will load those custom commands into your current scope so you can run them like any other command.