digitalmars.D - SAOC LLDB D integration: 16th Weekly Update
- =?UTF-8?B?THXDrXM=?= Ferreira (73/73) Jan 06 2022 Hi D community!
Hi D community! I'm here again, to describe what I've done during the sixteenth week of Symmetry Autumn of Code. This week I continued my work on the demangler patches, including the next 3 patches related to minimal type parsing and symbol/type back referencing. I removed most of the types in this next patch, due to the fact that it requires other dependencies to be visually tested. Two more patches got merged into the upstream. The LLD one got reverted due to failures on PowerPC buildbots, although the error ended up being a missing dependency. The second one was about the other patch I worked last week about immutable type qualifier in the DWARF debug info: - https://reviews.llvm.org/D113633 - https://reviews.llvm.org/D116279 After adding support for boolean type I successfully extended type value dumping for the rest of the built-in types: ``` (lldb) ta v Global variables for app.d in app: (int) app.int42_gvar = -42 (ulong) app.ulong42_gvar = 42 (uint) app.uint_gvar = 0 (uint) app.uint42_gvar = 42 (double) app.double_42_gvar = -42 (real) app.real42_gvar = 42 (long) app.long42_gvar = -42 (dchar) app.d = U+0x00000064 (ulong) app.ulong_gvar = 0 (char) app.c = 0x63 (bool) app.true_gvar = true (ushort) app.ushort_gvar = 0 (byte) app.byte42_gvar = d6 (double) app.double_gvar = 0 (long) app.long_gvar = 0 (double) app.double42_gvar = 42 (float) app.float42_gvar = 42 (wchar) app.w = U+0077 ... ``` I have tested almost every built-in type including `real`. Thanks to some guidance on the previous weekly report, I made some basic logic to make `real` work according to the exported DWARF type name, although realizing that D should map directly to `long double`, I can later map the `real` bit size using the same interface used in the Clang DWARF Parser (`clang::TargetInfo`). From what I tested, at least one target that have support for 128bit `long double`, RISC-V, is not correctly mapped by the LDC compiler, so I decided to make a PR to fix that: https://github.com/ldc-developers/ldc/pull/3891 https://github.com/ldc-developers/ldc/pull/3892 After having support for basic built-in types functionality, I plan to implement some type modifiers, including `const` and add support for other derived types. I also plan to work in parallel to merge some more patches about the demangler.
Jan 06 2022