[m-rev.] for review: use MR_Unsigned in trace code

Julien Fischer juliensf at csse.unimelb.edu.au
Tue Oct 2 13:35:41 AEST 2007


On Tue, 2 Oct 2007, Ian MacLarty wrote:

> On Tue, Oct 02, 2007 at 11:03:54AM +1000, Julien Fischer wrote:
>>
>> For review by Zoltan or Ian.
>>
>> Estimated hours taken: 5
>> Branches: main
>>
>> Fix up some places in the trace directory where there were (potential)
>> mismatches between the sizes of types used to represent natural numbers.
>> Much of the existing code in the trace directory assumed that sizeof(int)
>> == sizeof(MR_Unsigned), which is not true on our 64-bit
>> machines.  Zoltan's recent change to MR_trace_is_natural_number() broke
>> that assumption in a lot of places.  (I committed a workaround for that
>> yesterday.)
>>
>> This diff addresses the above problem by changing the types of many of
>> things that represent natural numbers from int to MR_Unsigned.
>> This should make the trace code more robust on 64-bit machines and
>> help avoid a recurrence of problems like the above.
>>
>> NOTE: this change does not change slot numbers into unsigned values since
>> they still use negative values as sentinels.  I will address slot numbers
>> in as part of a separate change.
>>
>> trace/mercury_trace.h:
>> 	Add typedefs for MR_Unsigned for several commonly used quantities
>> 	within the trace code.  For I/O action numbers we just re-use
>> 	the type MR_IoActionNum from the runtime, rather than defining
>> 	a adding a new typedef here.
>
> delete "a adding".

Fixed.

>> Index: trace/mercury_trace_cmd_browsing.c
>> ===================================================================
> ...
>> @@ -459,10 +461,10 @@
>>  MR_trace_cmd_stack(char **words, int word_count, MR_TraceCmdInfo *cmd,
>>      MR_EventInfo *event_info, MR_Code **jumpaddr)
>>  {
>> -    MR_bool     detailed;
>> -    int         frame_limit = 0;
>> -    int         line_limit = MR_stack_default_line_limit;
>> -    int         spec_line_limit;
>> +    MR_bool             detailed;
>> +    MR_FrameLimit       frame_limit = 0;
>> +    int                 line_limit = MR_stack_default_line_limit;
>
> I think this should change to MR_Unsigned too (here and elsewhere).

Yes, there are a number of others that can (probably) be changed.
I didn't do them as part of this change because they weren't
affect by MR_trace_is_natural_number().  I'll take a look at them
in a separate change.

Julien.
--------------------------------------------------------------------------
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