[m-rev.] for review: mangle symbols with a leading digit in java

Julien Fischer juliensf at csse.unimelb.edu.au
Mon Jun 22 11:32:05 AEST 2009


On Mon, 22 Jun 2009, Peter Wang wrote:

> 2009/6/21 Julien Fischer <juliensf at csse.unimelb.edu.au>:
>>> @@ -373,12 +379,27 @@ sym_name_mangle(qualified(ModuleName,
>>> PlainName)) = MangledName :-
>>>    MangledPlainName = name_mangle(PlainName),
>>>    MangledName = qualify_name(MangledModuleName, MangledPlainName).
>>>
>>> -name_mangle(Name) = MangledName :-
>>> +name_mangle(Name) = name_mangle_2(yes, Name).
>>> +
>>> +name_mangle_no_leading_digit(Name) = name_mangle_2(no, Name).
>>> +
>>> +:- func name_mangle_2(bool, string) = string.
>>> +
>>> +name_mangle_2(AllowLeadingDigit, Name) = MangledName :-
>>>    % Warning: any changes to the name mangling algorithm here may also
>>>    % require changes to extras/dynamic_linking/name_mangle.m,
>>>    % profiler/demangle.m, util/mdemangle.c and compiler/name_mangle.m.
>>
>> Presumably that comment only applies to the C name mangling stuff?
>> That needs to be made clear here.
>
> It's really the one algorithm with two slightly different ideas of what
> constitutes an invalid symbol, so the comment applies either way.
>
>> I think a better interface would be to parameterize all of the name
>> mangling functions in this module by the target language, for example:
>>
>>    :- func name_mangle(compilation_target, string) = string.
>>
>> etc.
>
> Perhaps, but the no leading digit rule applies to C as well, we just
> happen to not generate code where the mangled name is unprefixed by
> something else (I assume).

Correct, because identifiers in generated C code always have a mecury__
prefix.

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