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
nicoo
74054feb94
factor::factor: Remove extraneous call to the primality test
...
Another 6.97% runtime improvement
2020-05-24 15:41:23 +02:00
nicoo
e1a6dbe619
factor::table: Remove obsolete, commented code
2020-05-24 15:41:23 +02:00
nicoo
169740629b
factor::table: Remove extraneous calls to the primality test
...
50% performance improvement on factoring all numbers between 2 and 10⁶.
2020-05-24 15:41:23 +02:00
nicoo
418fd61759
factor::factor: Short-circuit the fallback to Pollard's rho
...
When the remainder is smaller than the max. entry in the table,
it is guaranteed to be prime.
2020-05-24 15:41:23 +02:00
nicoo
bc11e57962
factor::factor: Use u64::trailing_zero instead of iterated division
...
No significant performance impact (most of the time is spent elsewhere),
but an easy and satisfying fix nevertheless.
2020-05-24 15:41:23 +02:00
nicoo
a1b2522750
factor: Move each factorisation method to its own module
...
Also decoupled the factorisation methods; now factor::factor contains
the logic that chains the different algorithms and aggregates results.
As a side-effect, rho::factor now performs extraneous allocations (as each
recursive step creates a new `Factors` value, which is then aggregated into
the previous one) but there is no significant performance impact.
2020-05-24 15:41:23 +02:00