[m-rev.] for review: structured errors for getopt and getopt_io

Paul Bone paul at bone.id.au
Mon Jun 16 11:02:36 AEST 2014


On Mon, Jun 16, 2014 at 01:21:21AM +1000, Julien Fischer wrote:
>
>
> On Mon, 16 Jun 2014, Julien Fischer wrote:
>
>>
>>
>> On Mon, 16 Jun 2014, Paul Bone wrote:
>>
>>> On Sun, Jun 15, 2014 at 06:47:52PM +1000, Julien Fischer wrote:
>>>> On Sun, 15 Jun 2014, Paul Bone wrote:
>>>>
>>>>> On Tue, Jun 10, 2014 at 02:20:17PM +1000, Julien Fischer wrote:
>>>>>> diff --git a/library/getopt.m b/library/getopt.m
>>>>>> index 6287e3b..9fc647a 100644
>>>>>> --- a/library/getopt.m
>>>>>> +++ b/library/getopt.m
>>>>>> @@ -148,6 +148,27 @@
>>>>>>      option_table(OptionType)::in, maybe_option_table(OptionType)::out,
>>>>>>      set(OptionType)::out) is det.
>>>>>>
>>>>>> +% Variants of the above that return structured errors.
>>>>>> +% These behave as the above versions except that any error 
>>>>>> values returned are
>>>>>> +% members of the option_error/1 type rather than strings.
>>>>>> +
>>>>>> +:- pred  
>>>>>> getopt.process_options_se(option_ops(OptionType)::in(option_ops),
>>>>>> +    list(string)::in, list(string)::out,  
>>>>>> maybe_option_table_se(OptionType)::out)
>>>>>> +    is det.
>>>>>> +
>>>>>> +:- pred  
>>>>>> getopt.process_options_se(option_ops(OptionType)::in(option_ops),
>>>>>> +    list(string)::in, list(string)::out, list(string)::out,
>>>>>> +    maybe_option_table_se(OptionType)::out) is det.
>>>>>> +
>>>>>> +% getopt.process_options_track_se(OptionOps, Args, OptionArgs,
>>>>>> +%       NonOptionArgs, OptionTable0, Result, OptionsSet)
>>>>>> +
>>>>>
>>>>> What's this commented out code for?
>>>>
>>>> It's not commented out code; it's the docuemntation for
>>>> process_option_track_se.  (There's a similar thing for
>>>> process_options_track above -- arguably the documentation should be
>>>> better, but I don't intend to address that in this change.)
>>>>
>>>>>
>>>>>> +:- pred getopt.process_options_track_se(
>>>>>> +    option_ops_track(OptionType)::in(option_ops_track),
>>>>>> +    list(string)::in, list(string)::out, list(string)::out,
>>>>>> +    option_table(OptionType)::in,  
>>>>>> maybe_option_table_se(OptionType)::out,
>>>>>> +    set(OptionType)::out) is det.
>>>>>> +
>>>
>>> In that case I suggest placing it immediatly above the declration, and
>>> indenting it:
>>
>> That would be inconsistent with the way the rest of the interfaces of
>> these modules is documented.  (Since this is inconsistent with most of
>> the rest of the standard library it should be changed, but not as part
>> of this change.  I'll look into it separately.)

That's fine.

>
> On second thoughts, it's probably best to delete the comment in this
> case.  We've already said that the predicates in this section are
> identical to those in the previous one except that they return
> structured errors instead of strings.

That's also fine :-).

Thanks.


-- 
Paul Bone



More information about the reviews mailing list