Garrett D'Amore wrote:
> Chris Pickett wrote:
>> On 7/25/09, Garrett D'Amore <gdamore at sun.com> wrote:
>>  
>>> Chris Pickett wrote:
>>>
>>>    
>>>> On 7/25/09, Garrett D'Amore <gdamore at sun.com> wrote:
>>>>
>>>>
>>>>      
>>>>> My main concern here is the integration of manual page functionality
>>>>>         
>>> into
>>>    
>>>>> the commands themselves.  I see both benefits and costs.  The 
>>>>> benefit is
>>>>> that the documentation is more likely to match the actual 
>>>>> command.  But
>>>>>         
>>> part
>>>    
>>>>> of the cost is a much higher cost to perform localization for 
>>>>> these, and
>>>>> (depending on implementation) a potentially larger minimum size of 
>>>>> the
>>>>> binaries.  (I'm assuming for the moment that the documentation is 
>>>>> stored
>>>>>         
>>> in
>>>    
>>>>> the binary, and the command is doing more than just executing some
>>>>>         
>>> pipeline
>>>    
>>>>> to access the manual content from /usr/share/man or whatever.)
>>>>>
>>>>>  Personally, I think --man, --html and --nroff and such is a 
>>>>> dangerous
>>>>> precedent to set.
>>>>>
>>>>>
>>>>>         
>>>> What about --help and --version? Do you object to those options, too?
>>>> Would you drop your concerns if Roland would rename --man to
>>>> --extended-help?
>>>>
>>>>
>>>>       
>>>  When the --man output really is a manual page, I still object.  It 
>>> doesn't
>>> matter what you call it -- the problem is that we have two copies of 
>>> the
>>> same information, the on-line manual page and the bits in the binary.
>>>
>>>  Actually, if --man were to generate an actual man page by reading 
>>> the man
>>> text from the on-disk file that is formatted by man(1) itself, then 
>>> I would
>>> probably answer all (or very nearly so) of my concerns about this.
>>>     
>>
>> If you would've ever researched the implementation you would come to
>> the conclusion that this is not possible. The same string used for
>> argument parsing is the same string used to generate the help,
>> version, man, nroff and html output. There is no space wasted
>> *anywhere*.
>>   
>
> That's unfortunate... there is a lot of text in the output from some 
> of this man output... its pretty obvious to me that the "SEE ALSO", 
> "IMPLEMENTATION",  and "DESCRIPTION" sections of the --man output are 
> not actually *required* for option parsing.  It may be that the text 
> is embedded in a way that makes it difficult or impossible to remove.  
> At some level that's an implementation detail, but it is one that the 
> committee will have to consider when the vote is taken.
>
> But I also think you might well be wrong.  For example, consider the 
> following in builtins.c (for sleep):
>
> *const* *char* sh_optsleep 
> <http://src.opensolaris.org/source/s?refs=sh_optsleep&project=/onnv>[] =
>   1478 "[-1c?\n@(#)$Id: sleep (AT&T Research) 1999-04-07 $\n]"
>   1479 USAGE_LICENSE 
> <http://src.opensolaris.org/source/s?defs=USAGE_LICENSE&project=/onnv>
>   1480 "[+NAME?sleep - suspend execution for an interval]"
>   1481 "[+DESCRIPTION?\bsleep\b suspends execution for at least the 
> time specified "
>   1482     "by \aseconds\a or until a \bSIGALRM\b signal is received.  "
>   1483     "\aseconds\a can be specified as a floating point number 
> but the "
>   1484     "actual granularity depends on the underlying system, 
> normally "
>   1485     "around 1 millisecond.]"
>   1486 "\n"
>   1487 "\nseconds\n"
>   1488 "\n"
>   1489 "[+EXIT STATUS?]{"
>   1490     "[+0?The execution was successfully suspended for at least 
> \atime\a "
>   1491     "seconds, or a \bSIGALRM\b signal was received.]"
>   1492     "[+>0?An error occurred.]"
>   1493 "}"
>   1494 "[+SEE ALSO?\btime\b(1), \bwait\b(1)]"
>   1495 ;
>
>
> Why couldn't I have simply #ifdef'd out lines 1479-1488, and 1489-1494?

Sorry, I mistakenly used the wrong numbers... I meant to say 1479-1485.  
I *suspect* that the parser needs lines 1486 thru 1488.  (Although I've 
not read the parser code to be certain.)

    - Garrett
>
> None of that text looks (at least to me) to be intrinsically necessary 
> as part of the options parser.
>
>>  
>>>  If you read my architectural concerns about this, then you'd 
>>> understand why
>>> I have problems with it.  (Right now it looks like I'm very much in the
>>> minority
>>>     
>>
>> Yes, you are.
>>   
>
> Well, we'll see.  I'll be satisfied if the the committee takes a vote, 
> no matter how the vote turns out.  At least then I'll know that the 
> concerns I've raised were properly considered.  It may be that the 
> concerns are no longer relevant, in which case I'll happily stand 
> aside.   So my requesting a vote on the issue (and pointing out the 
> concerns) should not be a problem for folks convinced that none of my 
> concerns matter anymore and that the other PSARC members will see the 
> foolishness of my thinking.
>
>>  
>>> -- maybe a minority of one on this -- but if so then a vote on the
>>> issue will be easy for the project team to achieve, and costs nobody
>>> anything except me -- and the cost to me is that I'll have to write the
>>> resulting opinion.)
>>>     
>>
>> Where and when is such a vote done? Where can I vote?
>>   
>
>
> On Wednesday at the PSARC meeting.  Only regular PSARC members can vote.
>
>     - Garrett
>


Reply via email to