[Dwarf-discuss] Question on "pascal property"

Martin dwarf@mfriebe.de
Fri May 3 08:08:00 GMT 2024

I had a look at the Apple properties extension. There is also a Borland 
one, but for that I could not find anything beyond just the names.

The apple one bears some similarities. There documentation is here

I don't have any Objective-C experience myself, but briefly consulted 
with someone who has.

1) ObjC apparently always has an "ivar" (field) - Pascal may not have one
2) In ObjC the "ivar" refers to the property - For Pascal the opposite 
direction would be desirable (though of course a debugger could perform 
a backward search)
3) InObjC getter and setter attributes are strings => Apparently the 
given names are used for some dispatch call. In Pascal getter/setter 
should have to be either -field, -procedure/function (no oop), 
-method(oop), -method on different object

There are a few other things to be added for Pascal.


Then next is the question, how to start an attempt to get it standardized?

What to submit and where?

How specific/generic should the specs be?

E.g. the above Apple extension appears to rely on the debugger knowing 
it is ObjC, and the debugger knowing how to invoke the dispatch (well, 
that is from what I understood on my brief consultation).
Adding a description for a getter/setter method:
- should this assume the debugger knows how to call it (where the 
parameter goes, etc)? Even if there could be different languages with 
different ways to call it?
- should it have some defaults? (e.g. where the _this param goes, 
default for the value param)
- should it give detailed instructions (describe how to compute each 

I don't know the full needs properties in other languages would have. 
But some provisions could be included (and maybe someone with additional 
knowledge will join).
Like C#, properties can have their own getter/setter instead of a 
reference to an existing, so that could be accommodated.

On 01/05/2024 23:46, Adrian Prantl wrote:
> Just a quick very general remark: For Objective-C, Clang (and presumably 
> also GCC) are producing a couple of property-related attributes in the 
> DW_AT_APPLE extension space
> https://github.com/llvm/llvm-project/blob/505f6da1961ab55c601d7239648c53ce863b5d70/llvm/include/llvm/BinaryFormat/Dwarf.def#L630 <https://github.com/llvm/llvm-project/blob/505f6da1961ab55c601d7239648c53ce863b5d70/llvm/include/llvm/BinaryFormat/Dwarf.def#L630>
> maybe these are useful for you. I also wouldn't be opposed to 
> standardizing a more generally useful mechanism for properties; we could 
> potentially also find use for them in the Swift compiler.

More information about the Dwarf-discuss mailing list