www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - SAOC LLDB D integration: 7th Weekly Update

reply =?ISO-8859-1?Q?Lu=EDs?= Ferreira <contact lsferreira.net> writes:
Hi D community!

I'm here again, to describe what I've done during the seventh week of
Symmetry
Autumn of Code.



Some trivial changes about LLDB plugins got merged and a fix got raised
after
my investigation on https://bugs.llvm.org/show_bug.cgi?id=3D45856 .

I have some fresh news about the demangler being upstreamed. It appears
that
approval from official foundation members is not going forward, as
expected. At
this point, most of the code from libiberty got changed, at least on
the first
patches. This is unfortunate, but I'm going to do my best to push this
forward.
I have some experience with D demangling, so making a clean room
implementation
is not big of a deal, it is just time consuming.

Some of my considerations on this is to try to contact every single
contributor
in d-demangler.c file, which is roughly 5 contributors, but I still
need to
coordinate this with them and my mentor for the best option.

About the D plugin for LLDB, I also got news. They seems to accept new
language
plugins as long as there is enough maintainers. If someone wants to
volunteer
to co-maintain it, I would appreciate.



I pushed the refactor I was working on in the past week. You can find
more
about it here: https://github.com/dlang/dmd/pull/13237 . I'm probably
going to
freeze this until I fix the other issues that have much more priority
and work
on this when DWARF behaviour is more consistent.

During the refactor I accidentally discovered a double free after
rebasing with
andrea's change and reported some ASAN issues I found suitable to
report:

- https://issues.dlang.org/show_bug.cgi?id=3D22450
- https://issues.dlang.org/show_bug.cgi?id=3D22451
- https://issues.dlang.org/show_bug.cgi?id=3D22452





Previously, delegates was being generated with `_Delegate` naming and
now they
use the qualified name of the type, being something similar to `void
delegate()
 nogc`. You can find the patch and the associated issue here:

- https://issues.dlang.org/show_bug.cgi?id=3D22459
- https://github.com/dlang/dmd/pull/13241



When a `wchar` is used, the typedef generated by the compiler reports a
dummy
filename and line declarations. I fixed this on:
- https://github.com/dlang/dmd/pull/13247
- https://issues.dlang.org/show_bug.cgi?id=3D22467



When using `dchar` type, encoding is not correctly reported as UTF and
debuggers like LLDB doesn't show it properly. I fixed it on:
- https://issues.dlang.org/show_bug.cgi?id=3D22468
- https://github.com/dlang/dmd/pull/13254

During these various fixes, I ended up making the following trivial
minor
patches:

- https://github.com/dlang/dmd/pull/13240
- https://github.com/dlang/dmd/pull/13239
- https://github.com/dlang/dmd/pull/13246



I also reported the following issues:

- https://issues.dlang.org/show_bug.cgi?id=3D22469
- https://issues.dlang.org/show_bug.cgi?id=3D22471



I didn't have much time this week to make all the tasks I wanted to do,
which
was primarily fixing the compiler related issues. I'm currently in a
conference
and my productive is limited. I hope next week I can do a bit more
stuff and
hopefully fix most of the issues I have in mind to homogenize the DWARF
generation.

You can also read this on my blog, here:
https://lsferreira.net/posts/d-saoc-2021-07/ .

--=20
Sincerely,
Lu=C3=ADs Ferreira   lsferreira.net
Nov 03 2021
parent WebFreak001 <d.forum webfreak.org> writes:
Awesome!

On Thursday, 4 November 2021 at 02:50:24 UTC, Luís Ferreira wrote:
 [...]

 About the D plugin for LLDB, I also got news. They seems to 
 accept new
 language
 plugins as long as there is enough maintainers. If someone 
 wants to
 volunteer
 to co-maintain it, I would appreciate.

 [...]
I would be interested in that as I have before created a D python plugin already and dug a little in dmd's debug symbol generation code. I don't really have experience with the LLDB code base though and the python plugin was rather made with trial and error as the documentation did not contain many examples. I also haven't contributed any code to any LLVM projects before and don't really know the code layout. Would look at your code when you have it started first though.
Nov 04 2021