[m-rev.] diff: fix event set bugs

Ben Schmidt b.schmidt at ugrad.unimelb.edu.au
Fri Jan 12 17:21:04 AEDT 2007


Looks good, though I think it might be clearer if it were done in two 
commits rather than together. I got a bit confused with your reference 
to printing the null character and the addition of a newline character 
in the diff for the other file. Maybe say 'outputting' rather than 
'printing' in the log message, as it is more lexically similar to 
output_module_string_table_chars_driver.

Ben.



Zoltan Somogyi wrote:
> compiler/layout_out.m:
> 	Fix two bugs. The first was that a version number was out of sync
> 	with mercury_stack_layout.h and with reality. The second was that
> 	we were not printing the null character at the ends of event set
> 	descriptions.
> 
> compiler/prog_event.m:
> 	Fix a couple of bugs that caused event set descriptions to be
> 	syntactically invalid: the event set name was missing, and
> 	two tokens were missing a space between them.
> 
> Zoltan.
> 
> cvs diff: Diffing .
> Index: layout_out.m
> ===================================================================
> RCS file: /home/mercury/mercury1/repository/mercury/compiler/layout_out.m,v
> retrieving revision 1.86
> diff -u -b -r1.86 layout_out.m
> --- layout_out.m	6 Jan 2007 10:56:14 -0000	1.86
> +++ layout_out.m	11 Jan 2007 16:49:57 -0000
> @@ -1414,7 +1414,7 @@
>      %
>  :- func layout_version_number = int.
>  
> -layout_version_number = 1.
> +layout_version_number = 3.
>  
>  :- pred output_module_layout_data_defn(module_name::in, int::in,
>      string_with_0s::in, list(layout_name)::in, list(file_layout_data)::in,
> @@ -1729,7 +1729,7 @@
>      output_layout_name_storage_type_name(LayoutName, yes, !IO),
>      io.write_string(" = {", !IO),
>      string.length(EventSetDesc, EventSetDescSize),
> -    output_module_string_table_chars_driver(0, EventSetDescSize - 1,
> +    output_module_string_table_chars_driver(0, EventSetDescSize,
>          string_with_0s(EventSetDesc), !IO),
>      io.write_string("};\n", !IO),
>      decl_set_insert(decl_data_addr(layout_addr(LayoutName)), !DeclSet).
> Index: prog_event.m
> ===================================================================
> RCS file: /home/mercury/mercury1/repository/mercury/compiler/prog_event.m,v
> retrieving revision 1.7
> diff -u -b -r1.7 prog_event.m
> --- prog_event.m	22 Dec 2006 05:37:50 -0000	1.7
> +++ prog_event.m	12 Jan 2007 04:05:11 -0000
> @@ -717,8 +717,9 @@
>      EventSet = event_set(EventSetName, EventSpecMap),
>      map.values(EventSpecMap, EventSpecList),
>      list.sort(compare_event_specs_by_num, EventSpecList, SortedEventSpecList),
> -    DescStrings = list.map(describe_event_spec, SortedEventSpecList),
> -    string.append_list(DescStrings, Desc),
> +    EventDescStrings = list.map(describe_event_spec, SortedEventSpecList),
> +    string.append_list(EventDescStrings, EventDescs),
> +    Desc = "event set " ++ EventSetName ++ "\n" ++ EventDescs,
>      list.foldl(update_max_num_attr, EventSpecList, -1, MaxNumAttr),
>      EventSetData = event_set_data(EventSetName, Desc, SortedEventSpecList,
>          MaxNumAttr).
> @@ -742,7 +743,7 @@
>      Spec = event_spec(_EventNumber, EventName, _EventLineNumber,
>          Attrs, _SynthAttrNumOrder),
>      AttrDescs = string.join_list(",\n", list.map(describe_event_attr, Attrs)),
> -    Desc = "event " ++ EventName ++ "(" ++ AttrDescs ++ ")".
> +    Desc = "event " ++ EventName ++ "(" ++ AttrDescs ++ ")\n".
>  
>  :- func describe_event_attr(event_attribute) = string.
>  
> @@ -757,7 +758,7 @@
>          SynthCall = event_attr_synth_call(FuncAttrNameNum, ArgAttrNameNums,
>              _Order),
>          ArgAttrDesc = string.join_list(", ", assoc_list.keys(ArgAttrNameNums)),
> -        SynthCallDesc = "synthesized by " ++
> +        SynthCallDesc = " synthesized by " ++
>              fst(FuncAttrNameNum) ++ "(" ++ ArgAttrDesc ++ ")"
>      ),
>      Desc = Name ++ ": " ++ TypeDesc ++ SynthCallDesc.
> cvs diff: Diffing notes
> --------------------------------------------------------------------------
> mercury-reviews mailing list
> Post messages to:       mercury-reviews at csse.unimelb.edu.au
> Administrative Queries: owner-mercury-reviews at csse.unimelb.edu.au
> Subscriptions:          mercury-reviews-request at csse.unimelb.edu.au
> --------------------------------------------------------------------------
> 
--------------------------------------------------------------------------
mercury-reviews mailing list
Post messages to:       mercury-reviews at csse.unimelb.edu.au
Administrative Queries: owner-mercury-reviews at csse.unimelb.edu.au
Subscriptions:          mercury-reviews-request at csse.unimelb.edu.au
--------------------------------------------------------------------------



More information about the reviews mailing list