2014-06-28 16:24:20 +00:00
|
|
|
[package]
|
|
|
|
name = "exa"
|
2015-10-18 19:34:46 +00:00
|
|
|
version = "0.4.0"
|
2014-06-28 16:24:20 +00:00
|
|
|
authors = [ "ogham@bsago.me" ]
|
|
|
|
|
|
|
|
[[bin]]
|
2014-07-01 18:00:36 +00:00
|
|
|
name = "exa"
|
|
|
|
|
2015-01-12 00:20:28 +00:00
|
|
|
[dependencies]
|
2015-11-03 11:17:44 +00:00
|
|
|
ansi_term = "0.7.0"
|
2015-04-23 12:46:37 +00:00
|
|
|
bitflags = "0.1"
|
2015-09-20 23:15:07 +00:00
|
|
|
datetime = "0.4.1"
|
2015-11-04 17:01:05 +00:00
|
|
|
getopts = "0.2.14"
|
|
|
|
libc = "0.2.0"
|
2015-02-10 18:14:56 +00:00
|
|
|
locale = "0.1.2"
|
2015-02-04 01:34:21 +00:00
|
|
|
natord = "1.0.7"
|
2015-11-04 17:01:05 +00:00
|
|
|
num_cpus = "0.2.7"
|
2015-02-04 01:34:21 +00:00
|
|
|
number_prefix = "0.2.3"
|
Parallelise the details view!
This commit removes the threadpool in `main.rs` that stats each command-line argument separately, and replaces it with a *scoped* threadpool in `options/details.rs` that builds the table in parallel! Running this on my machine halves the execution time when tree-ing my entire home directory (which isn't exactly a common occurrence, but it's the only way to give exa a large running time)
The statting will be added back in parallel at a later stage. This was facilitated by the previous changes to recursion that made it easier to deal with.
There's a lot of large sweeping architectural changes. Here's a smattering of them:
- In `main.rs`, the files are now passed around as vectors of files rather than array slices of files. This is because `File`s aren't `Clone`, and the `Vec` is necessary to give away ownership of the files at the appropriate point.
- In the details view, files are now sorted *all* the time, rather than obeying the command-line order. As they're run in parallel, they have no guaranteed order anyway, so we *have* to sort them again. (I'm not sure if this should be the intended behaviour or not!) This means that the `Details` struct has to have the filter *all* the time, not only while recursing, so it's been moved out of the `recurse` field.
- We use `scoped_threadpool` over `threadpool`, a recent addition. It's only safely used on Nightly, which we're using anyway, so that's OK!
- Removed a bunch of out-of-date comments.
This also fixes #77, mainly by accident :)
2015-09-02 22:19:10 +00:00
|
|
|
scoped_threadpool = "*"
|
2015-11-04 17:01:05 +00:00
|
|
|
term_grid = "0.1.2"
|
|
|
|
unicode-width = "0.1.3"
|
|
|
|
users = "0.4.3"
|
2015-01-27 15:01:17 +00:00
|
|
|
|
|
|
|
[features]
|
2015-01-27 15:59:22 +00:00
|
|
|
default = [ "git" ]
|
2015-01-27 15:01:17 +00:00
|
|
|
git = [ "git2" ]
|
|
|
|
|
2015-02-23 01:05:21 +00:00
|
|
|
[profile.release]
|
|
|
|
opt-level = 3
|
|
|
|
debug = false
|
|
|
|
lto = true
|
|
|
|
|
2015-01-27 15:01:17 +00:00
|
|
|
[dependencies.git2]
|
2015-11-04 17:01:05 +00:00
|
|
|
version = "0.3.2"
|
2015-02-09 16:33:27 +00:00
|
|
|
optional = true
|