[M3devel] aligned_procedures: suggest "closure_marker_size"

Olaf Wagner wagner at elegosoft.com
Thu Jan 28 11:31:56 CET 2010


Shouldn't we insert a short version of this warning into the source
code? Or is there no central location where it could be placed and
will be noticed?

This is a non-obvious dependency, and though Jay and Tony will remember
now, there may be others in a few years who don't.

Olaf

Quoting "Rodney M. Bates" <rodney_bates at lcwb.coop>:

> Before anybody fiddles with closure markers, *please* do *both* the   
> following:
>
> 1)  Let me know.  M3gdb needs to both recognize and construct closures
>     (and it currently does.)  Changing them will break it, unless it is
>     modified accordingly.
>
> 2)  Make sure there is some reasonable way m3gdb can tell by looking at
>     the object code being debugged, whether it was generated by a
>     compiler version that uses the old or the new closure marker
>     representation.
>
> I have worked hard to make m3gdb able to adapt to the various compilers
> and versions, but periodically I get undermined on 1) and/or 2) above
> by some quiet change somebody makes without thinking about m3gdb.
>
> Also, think about the implications on linking together code produced
> by different compiler versions.  I am quite sure changing the closure
> representation would mean *all* linked-in libraries would have to be
> recompiled, along with the main program, by the same compiler version.
>
> Right now, closure markers are always the same size as pointers, and I think
> there are multiple places in the compiler and runtime, in addition to m3gdb,
> that rely on this.  They would all have to be located and fixed.  And I
> don't think they all key off any single declaration, e.g.   
> closure_marker_size.
>
> Jay K wrote:
>> yes, but I think it is target-specific. IA64 would use 16 bytes.
>> It isn't even in library code, but generated code.
>>  - Jay
>>
>> ------------------------------------------------------------------------
>> From: hosking at cs.purdue.edu
>> Date: Wed, 27 Jan 2010 10:57:09 -0500
>> To: jay.krell at cornell.edu
>> CC: m3devel at elegosoft.com
>> Subject: Re: [M3devel] aligned_procedures: suggest "closure_marker_size"
>>
>> If we declare it as a 32-bit subrange it should just work, right?
>>
>> Antony Hosking | Associate Professor | Computer Science | Purdue University
>> 305 N. University Street | West Lafayette | IN 47907 | USA
>> Office +1 765 494 6001 | Mobile +1 765 427 5484
>>
>>
>>
>>
>> On 27 Jan 2010, at 09:01, Jay K wrote:
>>
>>    MIPS64, SPARC64 and maybe others could probably all benefit slightly
>>    from
>>      the closure marker being a 4 byte -1 instead of an INTEGER.
>>               That is: 64bit architectures with a fixed size 4 byte  
>>  instruction
>>    where alignment is checked
>>
>>          That is, we should probably make their be a per-target variable
>>    "closure marker size"
>>      that is 4 for all current targets (IA64 should probably be 16 though),
>>      though one would have to look into the various instruction encodings.
>>
>>
>>     - Jay
>>
>>



-- 
Olaf Wagner -- elego Software Solutions GmbH
                Gustav-Meyer-Allee 25 / Gebäude 12, 13355 Berlin, Germany
phone: +49 30 23 45 86 96  mobile: +49 177 2345 869  fax: +49 30 23 45 86 95
    http://www.elegosoft.com | Geschäftsführer: Olaf Wagner | Sitz: Berlin
Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194




More information about the M3devel mailing list