Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Slightly clarify multicall binary wording #5511

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion clap_builder/src/builder/command.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3125,7 +3125,7 @@ impl Command {
}
}

/// Multiple-personality program dispatched on the binary name (`argv[0]`)
/// Sets this program as a "multicall" executable, dispatched on the binary name (`argv[0]`)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel I'm missing something about this clarification as it basically changes it from being a semantic description to reusing the name of the function to identify what this does.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't find multiple-personality is any different unless you're familiar with a media trope; I'd rather just have the description of what it does there than try to summarize in a confusing way.

What about something like "Allows program functionality to be selected by argv[0] (the name of the binary or link this program is called by)"

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For myself, I feel like that says less that today with more words while also going into more detail on a specific point that is best left for the more detailed description.

When I read this (note that I don't think I wrote this as multicall support was contributed by someone else), it is familiar to me, not because of media's portrayal of mental health but because I've worked with products where the term "personality" was used to describe the behavior so saying something has "multiple personalities" implies it supports multiple concrete forms.

Busybox documents it as

BusyBox is a multi-call binary. A multi-call binary is an executable program that performs the same job as more than one utility program. That means there is just a single BusyBox binary, but that single binary acts like a large number of utilities. This allows BusyBox to be smaller since all the built-in utility programs (we call them applets) can share code for many common operations.

Instead of "personality" this is talking about "utility program". This feels too limited as we've found other uses for multicall than busybox like programs, like REPLs.

///
/// A "multicall" executable is a single executable
/// that contains a variety of applets,
Expand Down
Loading