[m-rev.] for review: Use a better algorithm for unwinding version_arrays.

Julien Fischer jfischer at opturion.com
Tue Sep 9 15:17:15 AEST 2014



On Tue, 9 Sep 2014, Paul Bone wrote:

> On Tue, Sep 09, 2014 at 02:47:58PM +1000, Julien Fischer wrote:
>> Hi Paul,
>>
>> On Tue, Sep 9, 2014 at 2:24 PM, Paul Bone <paul at bone.id.au> wrote:
>>
>>> On Thu, Aug 07, 2014 at 12:49:52PM +1000, Paul Bone wrote:
>>>> On Wed, Aug 06, 2014 at 02:27:37PM +1000, Peter Wang wrote:
>>>>> I think it would be better to update the C# backend at the same time.
>>>>> If you can't test it then make a best effort and post an updated patch,
>>>>> then I can fix any minor compilation problems.
>>>>>
>>>>
>>>> Right now I can't even run the mono compiler.  So I'll have to fix this
>>>> before I can make any reasonable amount of progress.
>>>>
>>>
>>> The RTS for the C# backend is organised differently from the other
>>> backends.
>>> It seems to be contained within one file runtime/mercury_dotnet.cs.  Or is
>>> it? is this file used by the C# backend or just the old .net backend?
>>>
>>
>> The runtime modules for the C# grade are included directly in the stdlib,
>> From library/Mmakefile:363:
>>
>>     # For C# we include the runtime module directly into mer_std.dll.
>>     ifneq ("$(filter csharp%,$(GRADE))","")
>>     LINK_LIB_OPTS :=
>>     MLOBJS += ../runtime/mercury_dotnet.cs
>>     endif
>>
>
> Would anyone object to me putting MercuryBitmap at
> library/csharp/MercuryBitmap.cs and adding it to MLOBJS here?

Yes, I object.  If we are going to end up with multiple C# modules
forming part of the runtime / stdlib then they should be separated out
as per the Java backend.  Relying on developers to always update the
assignment to MLOBJS is very brittle.

> Other shared code that's not exactly runtime code could go into the same
> location.
>
> It seems to me that MercuryBitmap isn't runtime code because not all/most
> modules need it.

The bitmap code for C backends lives in runtime/mercury_bitmap.[ch]; I
don't see that this situation is any different.  Just put it in
runtime/mercury_dotnet.cs.

Cheers,
Julien.



More information about the reviews mailing list