Garrett D'Amore wrote: > 1) The commands increase the size of the text segment. Not only does > it add new parsing requirements (you have to at least have enough code > to handle --man, for example), but you also have the text of the man > pages themselves. While you might like to maintain the fiction that > this comes for free, it *is* a fiction. Run sum --man or some of the > other commands and you'll see content that was not automatically generated.
The minimum memory requirement for the release this is integrating into is 512Mb. A few k of memory, in a shared library that can be shared amongst all processes using it, is far down in the noise. > 2) We also have traditional manual pages. On a normal system, the > default installation will include now *two* copies of the manual page. > This is wasted space. We also install commands users never use, drivers for hardware they don't have (and could possibly never have), sample audio files they'll never listen to, etc. Text that helps them use a command is far more useful than any of those. > 3) Worse, the pages can be out of synch with each other. (The sum man > pages are again a good example of this.) Which is correct? (*Probably* > the --man command output.) This documentation is less likely to be out of sync with the implementation than the traditional man page. That's an improvement to the architecture, making sure the user always has at least a correct, if less detailed, source of documentation of the options. It will also always document the version the user is using - I've seen far too many questions on OpenSolaris e-mail and IRC from users confused because their PATH & MANPATH don't match and they're seeing /usr/gnu man pages but running /usr/bin commands, or vice versa. > 4) Furthermore, the --man output doesn't reflect standards required for > Sun man pages. For example, there is no > ATTRIBUTES table. That's a good reason why there should also be a traditional man page, and --man shouldn't replace it, just supplement it. > 5) Some users elect to *remove* manual pages (or not install them) to > save space. We've long offered this choice. However, putting the man > pages in the binary effectively removes this choice from the user. That choice was added when we shipped workstations with 105Mb hard disks. That choice makes no sense on today's computers and decreases system usability. Many of the install options added for 105Mb hard disks will be gone in the installer for the Solaris release this integrates to, since they make no sense in the day of 1Tb hard disks costing $100, and even embedded systems, like the cell phone in my pocket, having many times the disk space of that 105Mb SPARCstation 1. > 6) There has historically been different processes for man page content > generation than for software engineering. By putting the man page > content into the binary, you basically wind up skipping the editorial > review (and in many cases creation) of those man pages by our > professional documentation writers and editors. That's a good reason why there should also be a traditional man page, and --man shouldn't replace it, just supplement it. > 7) The rules for localization of documentation and commands have > historically often been different (based on funding levels, rules for > selling to different locales, and business priorities.) By putting > manual page content hard coded into the documentation, you wind up > creating a locked relationship where the two have to be localized > together, or not at all. This ultimately increases the cost of > localizing a command should such a localization be desired. > (Translators often charge by the word.) Translators don't have to translate every string in the application. > 9) Worse, if we keep *both* the man page and the command text, we might > wind up paying *double* the cost, by translating *both* versions. That argument, like the above, are Sun business decisions. If Sun wants to save money, it can make decisions about what it pays to translate, but that should not affect the architecture of the shared OpenSolaris code base. Please separate business considerations of one distro maker from the shared architecture of all distros. > 10) Whether we want to admit it or not, when many of our core utilities > start doing this, the request is going to be that the rest of our > utilities (e.g. dladm, ifconfig, maybe even the man command itself!) > support --man as well. (I admit at first blush its a nifty feature, and > many users are going to like it, without understanding or caring about > the the ramifications I've listed above.) So saying that this doesn't > set precedent is IMO akin to putting ones fingers in ones ears and > saying LALALALA... *THIS* case does not set precedent because this precedent was set in the previous cases shipping commands with --man/--html/--nroff options. This project team should not be penalized because you failed to raise objections to this architecture when those precedents were set. > Now, all that said I do understand why the AST/ksh93 team has gone down > this road. Indeed, if I was going to deliver an unbundled project, I > might make the same decisions. Many of the above concerns won't be > relevant to David Korn or Glenn Fowler, and this approach probably > *does* solve problems that the upstream cares about (no need to write > actual separate man pages for example). But they *are* relevant to Sun > and the Solaris project. This is the OpenSolaris ARC, not Sun business review. -- -Alan Coopersmith- alan.coopersmith at sun.com Sun Microsystems, Inc. - X Window System Engineering