Skip to content
Permalink
Browse files Browse the repository at this point in the history
doc: remove CPU features from man pages
It doesn't really belong in the man page since it's an artifact of a
build/runtime configuration. Moreover, it inhibits reproducible builds.

Fixes #1441
  • Loading branch information
BurntSushi committed Mar 15, 2020
1 parent daa8319 commit 12e4180
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 19 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Expand Up @@ -57,6 +57,8 @@ Bug fixes:
Fixes a bug where ripgrep would panic when searching a symlinked directory.
* [BUG #1439](https://github.com/BurntSushi/ripgrep/issues/1439):
Improve documentation for ripgrep's automatic stdin detection.
* [BUG #1441](https://github.com/BurntSushi/ripgrep/issues/1441):
Remove CPU features from man page.
* [BUG #1445](https://github.com/BurntSushi/ripgrep/issues/1445):
ripgrep now respects ignore rules from .git/info/exclude in worktrees.
* [BUG #1485](https://github.com/BurntSushi/ripgrep/issues/1485):
Expand Down
2 changes: 1 addition & 1 deletion build.rs
Expand Up @@ -86,7 +86,7 @@ fn generate_man_page<P: AsRef<Path>>(outdir: P) -> io::Result<()> {

let githash = git_revision_hash();
let githash = githash.as_ref().map(|x| &**x);
tpl = tpl.replace("{VERSION}", &app::long_version(githash));
tpl = tpl.replace("{VERSION}", &app::long_version(githash, false));

File::create(&txt_path)?.write_all(tpl.as_bytes())?;
let result = process::Command::new("a2x")
Expand Down
42 changes: 24 additions & 18 deletions crates/core/app.rs
Expand Up @@ -66,7 +66,7 @@ pub fn app() -> App<'static, 'static> {
// 'static, but we need to build the version string dynamically. We can
// fake the 'static lifetime with lazy_static.
lazy_static! {
static ref LONG_VERSION: String = long_version(None);
static ref LONG_VERSION: String = long_version(None, true);
}

let mut app = App::new("ripgrep")
Expand All @@ -91,30 +91,36 @@ pub fn app() -> App<'static, 'static> {
/// If a revision hash is given, then it is used. If one isn't given, then
/// the RIPGREP_BUILD_GIT_HASH env var is inspected for it. If that isn't set,
/// then a revision hash is not included in the version string returned.
pub fn long_version(revision_hash: Option<&str>) -> String {
///
/// If `cpu` is true, then the version string will include the compiled and
/// runtime CPU features.
pub fn long_version(revision_hash: Option<&str>, cpu: bool) -> String {
// Do we have a git hash?
// (Yes, if ripgrep was built on a machine with `git` installed.)
let hash = match revision_hash.or(option_env!("RIPGREP_BUILD_GIT_HASH")) {
None => String::new(),
Some(githash) => format!(" (rev {})", githash),
};
// Put everything together.
let runtime = runtime_cpu_features();
if runtime.is_empty() {
format!(
"{}{}\n{} (compiled)",
crate_version!(),
hash,
compile_cpu_features().join(" ")
)
if !cpu {
format!("{}{}", crate_version!(), hash,)
} else {
format!(
"{}{}\n{} (compiled)\n{} (runtime)",
crate_version!(),
hash,
compile_cpu_features().join(" "),
runtime.join(" ")
)
let runtime = runtime_cpu_features();
if runtime.is_empty() {
format!(
"{}{}\n{} (compiled)",
crate_version!(),
hash,
compile_cpu_features().join(" ")
)
} else {
format!(
"{}{}\n{} (compiled)\n{} (runtime)",
crate_version!(),
hash,
compile_cpu_features().join(" "),
runtime.join(" ")
)
}
}
}

Expand Down

0 comments on commit 12e4180

Please sign in to comment.