On Sun, 2020-05-10 at 11:10 +0200, Iain Buclaw via Gcc-patches wrote:
> Ping
> 
> On 03/05/2020 09:37, Iain Buclaw via Gcc-patches wrote:
> > Ping.
> > 
> > There is a new mangle string "Nm" in the abi to denote the @live attribute,
> > however will add support in a follow up patch.
> > 
> > 
> > On 15 April 2020 12:04:29 CEST, Iain Buclaw via Gcc-patches <
> > gcc-patches@gcc.gnu.org> wrote:
> > > Ping.
> > > 
> > > On 04/04/2020 13:33, Iain Buclaw wrote:
> > > > Hi,
> > > > 
> > > > Some small improvements and clarifications have been done in the D ABI
> > > > specification to remove all ambiguities found in the current grammar,
> > > > this implementation now more closely resembles the spec, whilst
> > > > maintaining compatibility with the old ABI.
> > > > 
> > > > Three new rules have been added to the ABI.
> > > > 
> > > > 1. Back references using 'Q', analogous to C++ substitutions, compresses
> > > >    repeated identifiers, types, and template symbol and value 
> > > > parameters.
> > > > 
> > > > 2. Template aliases to externally mangled symbols are prefixed with 'X'.
> > > >    This includes any symbol that isn't extern(D), or has its name
> > > >    overriden with pragma(mangle).  This fixes an ambiguity where it was
> > > >    not clear whether 'V' was an encoded calling convention, or the next
> > > >    template value parameter.
> > > > 
> > > > 3. Alias parameters, templates, and tuple symbols no longer encode the
> > > >    symbol length of its subpart.  Tuples are now terminated with 'Z'.
> > > >    This fixes another ambiguity where the first character of the mangled
> > > >    name can be a digit as well, so the demangler had to figure out where
> > > >    to split the two adjacent numbers by trying out each combination.
> > > > 
> > > > This patch was originally written by Rainer Schuetze, with clean-ups and
> > > > backwards compatibility added by myself.
> > > > 
> > > > Bootstrapped and regression tested on x86_linux-gnu, OK for mainline?
> > > > 
> > > > Regards
> > > > Iain.
> > > > 
> > > > ---
> > > > 
> > > > libiberty/ChangeLog:
> > > > 
> > > > 2019-04-04  Rainer Schuetze  <r.sagita...@gmx.de>
> > > >             Iain Buclaw  <ibuc...@gdcproject.org>
> > > > 
> > > >         * d-demangle.c (enum dlang_symbol_kinds): Remove enum.
> > > >         (struct dlang_info): New struct
> > > >         (dlang_decode_backref): New function.
> > > >         (dlang_backref): New function.
> > > >         (dlang_symbol_backref): New function.
> > > >         (dlang_type_backref): New function.
> > > >         (dlang_symbol_name_p): New function.
> > > >         (dlang_function_type_noreturn): New function.
> > > >         (dlang_function_type): Add 'info' parameter.  Decode function
> > > > type
> > > >         with dlang_function_type_noreturn.
> > > >         (dlang_function_args): Add 'info' parameter.
> > > >         (dlang_type): Add 'info' parameter.  Handle back referenced
> > > > types.
> > > >         (dlang_identifier): Replace 'kind' parameter with 'info'.  
> > > > Handle
> > > > back
> > > >         referenced symbols.  Split off decoding of plain identifiers
> > > > to...
> > > >         (dlang_lname): ...here.
> > > >         (dlang_parse_mangle): Replace 'kind' parameter with
> > > > 'info'.  Decode
> > > >         function type and return with dlang_type.
> > > >         (dlang_parse_qualified): Replace 'kind' parameter with 'info',
> > > > add
> > > >         'suffix_modifier' parameter.  Decode function type with
> > > >         dlang_function_type_noreturn.
> > > >         (dlang_parse_tuple): Add 'info' parameter.
> > > >         (dlang_template_symbol_param): New function.
> > > >         (dlang_template_args): Add 'info' parameter.  Decode symbol
> > > > parameter
> > > >         with dlang_template_symbol_param.  Handle back referenced 
> > > > values,
> > > > and
> > > >         externally mangled parameters.
> > > >         (dlang_parse_template): Add 'info' parameter.
> > > >         (dlang_demangle_init_info): New function.
> > > >         (dlang_demangle): Initialize and pass 'info' parameter.
> > > >         * testsuite/d-demangle-expected: Add new tests.
OK.  I think this would fall under your "D" maintainership status.  
jeff
> > > > 

Reply via email to