Commit graph

4196 commits

Author SHA1 Message Date
Roy Ivy III
d4aa3a2231 fix 'edition="2018"' module import errors
- ref: <https://users.rust-lang.org/t/imports-can-only-refer-to-extern-crate-names/24388> @@ <https://archive.is/iCaXp>
2020-05-29 22:59:47 -05:00
Roy Ivy III
9f585f5426 docs ~ improve/update crate meta information 2020-05-29 22:59:47 -05:00
Roy Ivy III
d70db1f7d2 docs ~ improve/update sub-crate meta information 2020-05-29 22:59:47 -05:00
Roy Ivy III
ca90ce981f update deps ~ Cargo.lock 2020-05-29 22:59:47 -05:00
Roy Ivy III
45a1609a38 update held/pinned dependencies (to maintain MinSRV v1.31.0) 2020-05-29 22:59:47 -05:00
Roy Ivy III
16840f8cd4 maint/CICD ~ update GHA for 'coreutils' name change 2020-05-29 22:59:47 -05:00
Roy Ivy III
039638de0e tests ~ use CARGO_PKG_NAME as name of binary used for testing 2020-05-29 22:59:47 -05:00
Roy Ivy III
1f0864f689 change ~ update examples to align with 'coreutils' name 2020-05-29 22:59:47 -05:00
Roy Ivy III
f7ac89dc82 dev ~ update show-utils for 'coreutils' name change 2020-05-29 22:59:47 -05:00
Roy Ivy III
52ae491fcd change ~ rename base binary to 'coreutils' 2020-05-29 22:59:47 -05:00
Roy Ivy III
f7f872f7ea maint/build ~ fix cargo-make format (Makefile.toml) 2020-05-29 22:59:47 -05:00
Roy Ivy III
8a91f1dea4 tests/stat ~ fix testing algorithm to correctly allow unknown values (with/without trailing newlines) 2020-05-29 22:59:47 -05:00
Roy Ivy III
7cfa8be5f2 docs ~ add meta information to sub-crates 2020-05-29 22:59:47 -05:00
Roy Ivy III
6cb609aeee docs/codespell ~ fix spelling errors 2020-05-29 22:59:47 -05:00
Roy Ivy III
785bac49b8 docs ~ comment polish (Cargo.toml) 2020-05-29 22:59:46 -05:00
Roy Ivy III
82f825c649 maint/build ~ improve cargo make 'util' from generic to platform specific 2020-05-29 22:59:46 -05:00
Roy Ivy III
c6ca0437c0 maint/build ~ update show-utils utilities from transitional to more-user friendly outputs 2020-05-29 22:59:46 -05:00
Roy Ivy III
02694bb389 maint/build ~ update cargo make 'util' target to work with new independant crates ('uu_...') 2020-05-29 22:59:46 -05:00
Roy Ivy III
01f3e87393 maint/build ~ narrow cargo make help output as possible 2020-05-29 22:59:46 -05:00
Roy Ivy III
72b7e1b20c maint/build ~ slim down cargo make util(s) targets 2020-05-29 22:59:46 -05:00
Roy Ivy III
b1a8f6c94c maint/build ~ add cargo make 'build-release' target 2020-05-29 22:59:46 -05:00
Roy Ivy III
f8123ecd9a maint/build ~ slim down cargo make examples targets 2020-05-29 22:59:46 -05:00
Roy Ivy III
1fe7cc5595 build/fix ~ (build.rs) fix 'feature => sub-crate/util' translation logic + improved output formatting 2020-05-29 22:59:46 -05:00
Roy Ivy III
0cb5fbd6b5 change ~ remove transition-only and unneeded code for independent sub-crates 2020-05-29 22:59:46 -05:00
Roy Ivy III
f051f62445 change ~ add work-around for crate name collisions
- imported crate name collisions bypass implemented

## [why]

There may be some core or external crates required/used by this project that collide with
uutil names. For example, the `test` util collides with the rust core crate 'test' which
is used behind the scenes for testing. Without the renaming scheme used here, cryptic and
fatal compiler errors occur when compiling the integration tests.
2020-05-29 22:59:46 -05:00
Roy Ivy III
db2e950918 change ~ make all sub-crates independent 2020-05-29 22:59:40 -05:00
Roy Ivy III
68bea8d81d maint/build ~ update show-utils for sub-crate independence transition 2020-05-29 22:59:40 -05:00
Roy Ivy III
3291f9d4db deps ~ update uucore dependency (removing patch configuration) 2020-05-29 22:59:33 -05:00
Roy Ivy III
d9de816757
maint/build ~ allow code coverage upload failures without breaking the build (warning instead of error) (#1526) 2020-05-25 22:47:42 +02:00
Roy Ivy III
53ee25693f
Merge pull request #1500 from rivy/chg.uutils-naming
Change ~ allow alternate names for `uutils`
2020-05-25 00:16:40 -05:00
Roy Ivy III
b0361c2b64 build/dev ~ add EditorConfig file to suggest whitespace standards 2020-05-24 17:29:08 -05:00
Roy Ivy III
bbb23537c2 maint/dev ~ add test-repo-whitespace.BAT dev utility 2020-05-24 17:29:08 -05:00
Roy Ivy III
6606408ce9 refactor/polish ~ whitespace normalization (consistent indentation [either tabs *or* spaces], EOF EOLNs, no trailing whitespace) 2020-05-24 17:29:07 -05:00
Roy Ivy III
3877cf4bd3 maint/deps ~ pin unstable 'textwrap' crate (marked for later review)
## [why]

'textwrap' is currently unstable, with "term_size" being an undocumented, but required,
feature. The feature name has already changed within the repository 'master' branch.
But that branch has never been pushed to a new version.

Pin for now with "!maint" mark and comment.
2020-05-24 17:29:07 -05:00
Roy Ivy III
8263d31fbb change ~ improve help display for main multi-call binary 2020-05-24 17:29:07 -05:00
Roy Ivy III
c457dfbbc4 fix/uutils ~ support function/util (aka, applet) symlink aliasing where possible
## [why]

`std::env::current_exe()` has platform dependent behavior and will often
return the target binary, not the symlink name, when the binary is executed
via symlink. So, to support symlinking, the first (0th) arg from `std::env::args()`
is used, when possible, with fallback to `std::env::current_ext()` if args are
missing or empty.

- ref: <https://github.com/rust-lang/rust/issues/43617>
2020-05-24 17:29:07 -05:00
Roy Ivy III
e759e852a9 maint/build ~ add cargo make build-examples targets 2020-05-24 17:29:07 -05:00
Roy Ivy III
bcdff338fb add busybox and uu examples (both equivalent to uutils) 2020-05-24 17:29:07 -05:00
Roy Ivy III
bebf36bffb change/uutils ~ allow (almost) any name for the multi-binary container
- final multi-binary will now function correctly with any binary/executable name
- multi-binary container acts as the specified util IF EITHER ...
  1. the binary/executable name exactly matches the name of an applet/util
  2. the binary/exectuable name matches <PREFIX><UTIL_NAME> pattern
     * where the PREFIX is any string ending in a non-alphanumeric character
2020-05-24 17:29:07 -05:00
Roy Ivy III
100fc8d1e0 maint/deps ~ improve dependency reference for the 'rust-users' external crate 2020-05-24 17:29:07 -05:00
Roy Ivy III
6880938955 maint/deps ~ refactor/rename pinned 'backtrace' with leading '_' to show lack of local use 2020-05-24 17:29:06 -05:00
Roy Ivy III
09abcf8cbe
Merge pull request #1525 from nbraud/factor/faster
Performance improvements for `factor`
2020-05-24 16:54:04 -05:00
Nicolas Braud-Santoni
4c3682aec7
factor::Factors::add: Split up to work without NLL
Co-authored-by: Roy Ivy III <rivy.dev@gmail.com>
2020-05-24 19:14:37 +02:00
nicoo
36a2948959 factor::miller_rabin: Avoid unecessary exponentiation
Instead of computing a^r and a^(n-1) = a^(r 2ⁱ) separately,
compute the latter by repeatedly squaring the former.

33.6% performance improvement
2020-05-24 19:10:34 +02:00
nicoo
543c7b941a factor::rho: Small refactor 2020-05-24 19:10:29 +02:00
nicoo
30fd6a0309 factor::numeric: Replace lose functions with an Arithmetic trait 2020-05-24 18:16:21 +02:00
nicoo
29eb8fd77b format: Make clippy happy 2020-05-24 17:06:19 +02:00
nicoo
8241037690 factor::miller_rabin: Extract dividers from the primality test
Another 36% improvement.
2020-05-24 15:41:23 +02:00
nicoo
6b9585b1dc factor::miller_rabbin: Refactor before extracting dividers
Replace iterated division with u64::trailing_zeros, hoist the selection of `mul`
out of the loop, another cool 49.5% runtime improvement.
2020-05-24 15:41:23 +02:00
nicoo
e3ecc81d97 factor: Move the Miller-Rabin primality test to its own module. 2020-05-24 15:41:23 +02:00