commit 0609c12d75d3f721012696f2b3197b521e60e7b1
parent 3515963d01fe96025372950b3c8d1e6f50e23860
Author: Luís Ferreira <contact@lsferreira.net>
Date: Thu, 2 Dec 2021 18:54:46 +0000
posts: Add 'SAOC LLDB D integration: 11th Weekly Update'
Signed-off-by: Luís Ferreira <contact@lsferreira.net>
Diffstat:
2 files changed, 69 insertions(+), 1 deletion(-)
diff --git a/content/posts/d-saoc-2021-10.md b/content/posts/d-saoc-2021-10.md
@@ -58,4 +58,5 @@ You can also read this on the D programming language forum,
[here](https://forum.dlang.org/thread/mailman.1018.1637883198.11670.digitalmars-d@puremagic.com),
and discuss there, including your thoughts about the asked questions!
-Read about the [previous week](../d-saoc-2021-09/).
+Read about the [previous week](../d-saoc-2021-09/) and [next
+week](../d-saoc-2021-10/).
diff --git a/content/posts/d-saoc-2021-11.md b/content/posts/d-saoc-2021-11.md
@@ -0,0 +1,67 @@
+---
+title: 'SAOC LLDB D integration: 11th Weekly Update'
+date: '2021-12-02T16:31:00+01:00'
+tags: ['saoc', 'saoc2021', 'dlang', 'llvm', 'lldb', 'debug', 'debugging', 'dwarf']
+description: "This post describes what I've done on the 11th week of the
+Symmetry Autumn of Code 2021, including follow up updates on the LLVM patches
+decoupling of clang-specific code on LLDB interfaces and start implementation
+of D basic types."
+---
+
+Hi D community!
+
+I'm here again, to describe what I've done during the eleventh week of Symmetry
+Autumn of Code.
+
+## LLVM upstream follow up update
+
+Three more patches in the D demangling patch train got merged!
+
+- https://reviews.llvm.org/D111415
+- https://reviews.llvm.org/D114305
+- https://reviews.llvm.org/D114307
+
+I joined this week on the LLVM official team to help provide maintenance on the
+code I introduced and planning to introduce as well as general changes made for
+D in the official tree.
+
+I have 2 more patches already accepted about the demangling but I didn't merge
+them yet, as I'm having some problems on running the test suite locally.
+
+Currently, LLVM already supports special D main, simple multiple identifiers
+and anonymous symbols. Next step is to support basic and compound types,
+although I think this needs to be split up, as discussed in some patches.
+
+## Implementation of basic types and decoupling Clang-specific code
+
+I started this week implementing basic types on the D TypeSystem, although, in
+the meanwhile, I found that some decoupling is needed, since the current LLDB
+architecture for parsing debug info has some entanglement with clang-specific
+structures such as the AST Context and other TypeSystem and AST related
+structures. I though this was something already considered, but a lot of effort
+on this was left behind when other languages stop being supported, like Go.
+
+I made some patches to move that forward in the upstream:
+
+- https://reviews.llvm.org/D114668
+- https://reviews.llvm.org/D114719
+- https://reviews.llvm.org/D114746
+
+Still about the decoupling, I found out that only DWARF Parser is reasonably
+decoupled, but other debug info parsers like
+[PDB](https://github.com/llvm/llvm-project/blob/main/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp)
+are really entangled with the Clang TypeSystem. There is no generic interface
+at the moment, and I plan to decouple that as well, although, it is not really
+a priority for me, since my main development environment is Linux. That said,
+I'm probably going to left Windows support as a second priority, for now.
+
+I added those patches to the [PR](https://github.com/ljmf00/lldb-d/pull/1) I
+created last week and continued working on it.
+
+## What is next?
+
+I haven't finished the type wrapper to represent a D type, due to those
+decoupling issues. I will hopefully finish the implementation next week and try
+to have some simple output on the LLDB side.
+
+Read about the [previous week](../d-saoc-2021-10/).