<div dir="ltr">Hi,<div><br></div><div><div style="margin:0px;padding:0px;border:0px;font-variant-numeric:inherit;font-variant-east-asian:inherit;font-stretch:inherit;font-size:12pt;line-height:inherit;font-family:Calibri,Arial,Helvetica,sans-serif;vertical-align:baseline;color:black">At the upcoming LLVM Dev Conf, we will have a round table discussion for ASTImporter, right after the ASTImporter Tutorial.</div><div style="margin:0px;padding:0px;border:0px;font-variant-numeric:inherit;font-variant-east-asian:inherit;font-stretch:inherit;font-size:12pt;line-height:inherit;font-family:Calibri,Arial,Helvetica,sans-serif;vertical-align:baseline;color:black"><span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;color:inherit">The time slot for the round table is </span><span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;color:inherit">Wednesday, Oct 23 2:55-4:00.</span></div><div style="margin:0px;padding:0px;border:0px;font-variant-numeric:inherit;font-variant-east-asian:inherit;font-stretch:inherit;font-size:12pt;line-height:inherit;font-family:Calibri,Arial,Helvetica,sans-serif;vertical-align:baseline;color:black"><span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;color:inherit">I have gathered things about possible future work and improvements, bring your own topic to discuss!</span></div></div><div style="margin:0px;padding:0px;border:0px;font-variant-numeric:inherit;font-variant-east-asian:inherit;font-stretch:inherit;font-size:12pt;line-height:inherit;font-family:Calibri,Arial,Helvetica,sans-serif;vertical-align:baseline;color:black"><span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;color:inherit"><br></span></div><div style="margin:0px;padding:0px;border:0px;font-variant-numeric:inherit;font-variant-east-asian:inherit;font-stretch:inherit;font-size:12pt;line-height:inherit;font-family:Calibri,Arial,Helvetica,sans-serif;vertical-align:baseline;color:black"><span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;color:inherit">Thanks and see you at the conference,</span></div><div style="margin:0px;padding:0px;border:0px;font-variant-numeric:inherit;font-variant-east-asian:inherit;font-stretch:inherit;font-size:12pt;line-height:inherit;font-family:Calibri,Arial,Helvetica,sans-serif;vertical-align:baseline;color:black"><span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;color:inherit">Gabor</span></div><div style="margin:0px;padding:0px;border:0px;font-variant-numeric:inherit;font-variant-east-asian:inherit;font-stretch:inherit;font-size:12pt;line-height:inherit;font-family:Calibri,Arial,Helvetica,sans-serif;vertical-align:baseline;color:black"><span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;color:inherit"><br></span></div><div style="margin:0px;padding:0px;border:0px;font-variant-numeric:inherit;font-variant-east-asian:inherit;font-stretch:inherit;font-size:12pt;line-height:inherit;font-family:Calibri,Arial,Helvetica,sans-serif;vertical-align:baseline;color:black"><span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;color:inherit">Big stuff<br>- Error handling: rollback mechanism<br>- Replace `StructuralEquivalency` with ODRHash<br> - Step 0: StructuralEquivalency should not diagnose when called from the<br> Importer, diags should be coming from the importer.<br>- ODRViolation handling<br> - Class(Var)TemplateSpecializationDecl: Problem! We can't have more than 1 spec<br> (<a href="https://reviews.llvm.org/D66999">https://reviews.llvm.org/D66999</a>)<br> - VarTemplateSpecializationDecl: ODR violation is not even detected<br> - Renaming strategy<br>- Strategies for AccumulateChildErrors<br> Clients of the ASTImporter should be able to choose an<br> appropriate error handling strategy for their needs. For instance,<br> they may not want to mark an entire namespace as erroneous merely<br> because there is an ODR error with two typedefs. As another example,<br> the client may allow EnumConstantDecls with same names but with<br> different values in two distinct translation units.<br><br>Smaller issues/tasks/FIXMEs (techn debt)<br>- VisitFunctionDecl:<br> - Member function templates are not handled similarly to simple fun<br> specializations<br> - Merge function definitions of members<br> - Merge exception specifications<br>- Handling of inheritable attributes (<a href="https://reviews.llvm.org/D68634">https://reviews.llvm.org/D68634</a>)<br> - Use PrevDecl in `GetImportedOrCreateDecl` ?<br>- ObjC/ObjC++ support and stabilization<br> - No test cases (not interesting for E///, we don't have objc/c++ code)<br>- ClassTemplateSpecializationDecl: merge instantiated default arguments,<br> exceptions specifications<br>- Structural Eq:<br> - Polluted cache of nonequivalent declarations<br> - Some diagnostics are completely missing, this is misleading<br>- Several minor issues/fixmes with VarTemplateDecl<br>- Check visibility/linkage for ClassTemplateDecl, VarTemplateDecl<br>- Fix import of equivalent but repeated FriendDecls<br>- Handle redecl chain of TypeDefNameDecl<br>- Add Decls to their context in a unified way, and only if the "From"DC<br> contains it (`AddDeclToContexts`)<br>- VisitVarDecl:<br> - Check for ODR error if the two definitions have different initializers?<br> - Diagnose ODR error if the two initializers are different<br>- Remove obsolate FIXMEs and TODOs<br>- Import default arguments of templates<br></span></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jul 22, 2019 at 6:28 PM Gábor Márton <<a href="mailto:martongabesz@gmail.com">martongabesz@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi,<div><br></div><div>I am planning to submit a talk about ASTImporter to the upcoming Dev Meeting at October 22-23, 2019.</div><div>I'd like to talk about</div><div>- the API, </div><div>- how it is used in CTU analysis and in LLDB,</div><div>- internal subtleties and difficulties (Error handling, ExternalASTSource, ...)</div><div>The goal would be to attract more developers to use and improve ASTImporter related code, so perhaps this will be a tutorial.</div><div><br></div><div>Independently from the talk, I'd like to have a round table discussion if there is enough interest.</div><div>Some topics could cover future development ideas and existing problems we have.</div><div>Please get back to me if you are interested and think about the topics you have in mind, also don't forget to buy your ticket to the DevMeeting.</div><div><br></div><div>Thanks,</div><div>Gabor</div></div>
</blockquote></div>