Historical Clang Language WG Meeting Minutes (Apr 2023-Mar 2024)

Meeting Agenda - March 20, 2024

Agenda

Round Table

  • Aaron
    • Code reviews
    • Editorial review on TS6010 for pointer provenance, expect to be published by end of year. Will require some LLVM changes, may have performance impacts. Needs some implementation to evaluate.
  • Ariel
    • DWARF issues, investigating regressions
    • Investigating porting char conv to hex float
  • Isaac
  • Mariia
    • Focusing on embed, optimizing when embed is not the only element of initializer list. No codegen tests currently for embed, so looking into that.

Meeting Agenda - March 6, 2024

Agenda

Round Table

Meeting Agenda - Feb 21, 2024

Agenda

  • Changes to Sema.h
    • Currently ~15000 unstructured items in a class. Issue for new contributors. Would like to reign in some of the complexity in various stages.
      • Stage 1 rearranging structure in a more organized manner, would help with doxygen comments. Would also help with organizing potential new improvements. Long term potentially splitting sema.h. Intended to be a non-functional change.
      • Would result in changes in existing downstream patches and in progress PRs. Would recommend announcing this widely to make people aware of changes.
      • Make sure people are aware public vs private access specifiers. We will want to have each section will have it’s own public/private sections
      • There are some downstream implementations that have significant changes to sema.h. Will likely result in significant rework. Preliminary patch for review [clang][NFC] Regroup declarations in `Sema` by Endilll · Pull Request #82217 · llvm/llvm-project · GitHub
      • Restricting access may be problematic in some cases
      • Proposal for large change, then run clang-format. Request for smaller changes, more incremental. Challenges with the volume of change, first step is just to move things around, not to touch access specifiers.
      • Is there any tooling that can help with this? Something that could produce a report.
        • Doxygen generates a reference documentation.
        • But does Doxygen produce reference for private members?
        • Could write a tool based on Clang AST, libclang tool. Issue is that Doxygen is not available on all systems, or can’t be used.
      • When is the date for proposed changes? Not until after Clang 18, so probably a month or two out.
      • Might suggest restructuring around functional basis rather than language basis.
      • What happens when we run in to issues, will we revert? It may be an issue given the size of the patch, may need to fix forward.
    • Agree with general proposal, move forward at some point after LLVM 18. Will send out announcement of the proposal to Clang community. Will investigate the possibility of adding tooling, as long as it is low effort required.
      • Here’s a tool that can be used to dump all members with their respective access decls: commit, branch.

RoundTable

Meeting Agenda - Feb 7, 2024

Agenda

Round Table

Meeting Agenda - Jan 24, 2024

Agenda

Round Table

  • Ariel
    • Working on DWARF related issues
  • Corentin
    • Mostly working on C++ paper for C++26/29
    • Code reviews
  • Mariia
    • Bug fixes, C++23 relaxing constexpr
  • Sam
    • Coroutine lifetime bugs
    • Lazy loading bugs, reducing test cases
    • ftime-trace may look at some internal profiling tools later this year, aggregating with/across TUs to find slow template instantiation compile times
  • Shafik
    • Mostly code review, core issues
  • Tom
    • DFP meetings
    • PR under review for extended floating point naming, currently under review
  • Vlad
    • Looking after bug tracker, triaging and fixing some bugs
    • Some feedback on ftimetrace, will reach out over Discord

Meeting Agenda - Jan 10, 2024

Agenda

  • Next meeting will schedule for Jan 24, 2024. Following will be Feb 7, 2024.
  • Lost Phabricator, many PRs have been lost as a result
    • Update on GitHub pull requests - #178 by MaskRay haven’t received feedback yet
    • Mailing list archives should still be available, but not easily searchable
    • Are there any security issues with restarting the VM? Unsure, but should hopefully be recoverable.
    • Mehdi and Fangrui are trying to make progress, but still no clear outcome
  • Enabled warning for designated initializers, matching gcc. However have received a lot of feedback to revert. Another thought about changing for C only.
    • One complaint was around missing initializers, question was about the benefit
    • Will need to review the discussion, we don’t need to follow gcc behaviour
    • Gcc developers had some discussion about this as well, but has died down since the summer. They might be open to changing behaviour.
  • Release schedule - anyone heard from Tom about the timeline?
    • Expect that January 23 will be the release cutoff
  • Request for more clang-tidy reviewers. There is a significant backlog.
    • Are there priority reviews?
    • Suggest to focus on reviews for release-to-release regressions

Round Table

  • Aaron
    • Working through review queue
    • Will get back to embed functionality afterwards
  • Ariel
    • Respond to comments from hex float RFC
  • Corentin
    • Code reviews
    • Pack indexing question for x86, synchronizing with MSVC. Will likely be next release. Recommend talking to Reid
  • David
    • Subbing in for Hubert
    • Currently looking into DFP, though not terribly actively. Tom will forward meeting invitation for DFP.
  • Mariia
    • Bug fixing
    • C23 constexpr needs review
    • C++23 relaxing constexpr restrictions, will push PR in a few days. Keeping as errors for lang level < 23
  • Shafik
  • Tom
    • DFP meeting scheduled right after
  • Tony
    • Will start working on underspecified object declarations for C23. Availability will be sporadic over the next while.
      • Gcc implementation for underspecified declarations is done, we can refer
    • Review of C23 constexpr feature
  • Utkarsh
    • Google moved up to C++20, focusing on coroutine adoption. Expect to have more focus on Clang, likely to be on improving coroutines.
      • Who should be cc’ed on coroutines? ChuanqiXu9
    • Static analysis checks
  • Vlad
    • Added more time profiler annotations in parser. Existing infrastructure not ready for parser. Tail call optimization concerns as well.
    • Using -f time trace with no threshold, if disabled the traces are very large. Working on another trace output format.
    • DR testing, have resurrected some old tests. Investigating code gen tests, there are many TODOs. Who would be the best person to help review. Suggest adding Eric, can also ask Aaron to find someone.

Meeting Agenda Dec 6, 2023

Agenda

  • Cancel Dec 20 and Jan 3 meeting
    • Jan 25 is the cut date
    • Reschedule following meeting to Jan 10
    • Will decide on Jan 10 if necessary to meet an additional time in January
  • If we want any features to land in Clang 18, we should try to land it this year

Round Table

Meeting Agenda Nov 15, 2023

Agenda

  • Opens
    • WG21 meetings were last week
      • Erroneous behavior was discussed extensively in core, making progress
      • UB annex is progressing, have direction and volunteers for help
      • SG12 is now mothballed but contents are being seen by EWG, starting to look at removing UB from the preprocessor where possible (mostly turning things into IFNDR or ill-formed)
    • What’s going on with attribute ignorability?
      • Situation still the same: C++ a bit different from C, C++ requires syntactic correctness for ignored attributes, C does not. Still open what’s happening with [[no_unique_address]]
    • Future meeting schedule
      • Will meet on Dec 6th for regularly scheduled meeting
      • Suggest canceling meetings Dec 20 and Jan 3 for holiday season, will make a decision at the next meeting

Round Table

  • Aaron

  • Working on #embed PR (https://github.com/llvm/llvm-project/pull/68620), going okay

  • Got initial code dump from the feature author

  • Implementation needs a fair amount of work for correctness and design considerations

  • Hitting implementation difficulties; #embed wants to be an expression sometimes and wants to be a series of tokens other times, this is awkward for our AST representation

  • Hit an open question about why we need -embed-dir= at all; asking Jean Heyd because it’s not clear where the recommended practice comes from

-Ariel

  • Tom

    • Was at WG21 remotely, mostly followed contracts and safety/security + tooling, with respect to modules
    • No DFP progress yet
  • Tony

    • No updates to report, will start working on underspecified object declarations
  • Vlad

    • Landed ~dozen NFC patches for preferred_type, so debugging experience should be improved for bit-fields in AST nodes
    • Still working on adding those annotations where possible

Meeting Agenda Oct 31, 2023

Agenda

  • Governance proposal
  • LLVM project close to 1000 open PRs, more than 200 are in Clang, ⅓ were created in September
    • Possibly due to bump to move to github
    • Need more people doing code review? Likely have more people contributing code than reviewing code.
    • LLVM foundation issue–market to corporate participants to spend more time/resources on the community
    • Challenge to know which PRs to focus on, due to large volume of notifications
  • WG14 meetings in October
    • Purely around administrative topics, no technical changes
    • Document numbering system and issue tracking, should be up and running by January

Round Table

  • Plan to implement N306

  • Vlad

    • Progress on lldb
      • Made a number of enhancements
      • Currently refactoring around enums

Meeting Agenda Oct 4, 2023

Agenda

  • Opens
    • Shafik suggests reviewers be more strict with asking for good descriptions in PRs. Squash and merge behavior in GitHub may hinder us somewhat here by duplicating commit messages and descriptions.
    • Vlad mentioned reviewable.io needing permissions from the admins still. Aaron will talk to Tom Stellar to ask what’s needed here.

Vlad remains concerned with label duplication of PRs; in the bug tracker, we don’t want clang and clang:something labels, but just the clang:something label. Corentin posted some options but didn’t get any replies; some folks want to be able to subscribe to all of Clang and notifications are tied to labels. Vlad points out that we have pr-subscribers-clang as a team and that can be used to subscribe to all Clang notifications (instead of subscribing to the label). Shafik thought were discouraging people from using the team and using labels because the team can be automatically removed accidentally by GitHub. Vlad thinks this is no longer an issue. Multiple mechanisms for notifications is confusing and we need documentation explaining how to subscribe. Aaron will talk to Tom Stellar to alert him of the issues and start a wider discussion. Need to know what the current system is and how to achieve what you want with what we’ve got.

Round Table

  • Aaron – working on code reviews, focusing on Phab reviews. Got through deducing this, but need to focus on automatic type inference for C23 as another such large review. Struggling to see notifications after the switch to GitHub, so please ping me directly if you are waiting on me to weigh in on something.
  • Ariel – continuing to work on backend stuff, nothing language related. Wondering about updates on decimal floating point.
  • Corentin – landed deducing this, had some fallout but not a significant amount. No reverts so far! Otherwise focusing on committee work.
  • Hubert – not much on the FE side, working more on the backend and internal stuff. Running low on bandwidth for other work at the moment.
  • Shafik – DFP update. He and Tom are working together on this on Tom’s fork. Review work and discussion are ongoing. Getting to the point to have something to land, but not certain on the timeline. Progressing nicely. Interesting surprises from GCC extensions. Finding the GitHub workflow to be more work, reviews are not as nice as they were so reviews are slower to accomplish. Thinks the pace of review has picked up recently. Landed a fix for deduction guides hitting unreachable statements.
  • Tom – RFC: Decimal floating-point support (ISO/IEC TS 18661-2 and C23) has some info about DFP updates. Wants some explicit help from IBM to ensure that DFP is going in a direction that works for them. Tom will coordinate with Ariel on that. Part of this is an attempt to figure out how to make a stacked patch workflow in GitHub, but as part of Tom’s private fork. Working on basic AST support, driver options. Next focus will be on Shafik’s previous work, will have help working on this. Need to figure out the runtime support library; needs both a runtime library at compile time for constant evaluation and another one for the target for runtime operations. APDecimalFloat will be a light wrapper over the guts of the DFP functionality. Short-term, plan is to use libgcc as the runtime library and then introduce an encoding library into compiler-rt.
  • Tony – not a lot to report, waiting for feedback on his review.
  • Vlad – triaged a couple hundred issues in the past month. We’ve cleared all the so-called “new issues” that mentioned clang. Those spanned all the way back to 2021. Landed a couple of tests for DRs. Python directive in lit is still blocking some of the DR testing, but that review is starting to get attention again and consensus feels close. Made progress on lldb visualizers for PointerIntPair, PointerUnion, etc.
  • Yuri – nothing to report

Meeting Agenda Sept 6, 2023

Agenda

Round Table

Meeting Agenda Sept 6, 2023

Agenda

  • Github migration
    • Need to make sure that the github subscriber group to replace the current reviewer list. Recommendation was to go with a wider group, and then pare it down. Current list is too large.
    • Can go to LLVM github, and request access Sign in to GitHub · GitHub
    • Migrating old PRs will be labour intensive. Promise is that the old content will be available.
    • Discussion Update on GitHub pull requests - #73 by AaronBallman

Round Table

Meeting Agenda August 2, 2023

Agenda

  • Cleaning up labels in bug tracker.
    • Documentation label was updated . Use clang documentation labels instead of clang:documentation
    • ~70 bugs use ‘compile fail’ labels, is this useful at all? Recommend cleaning these up, either remove or replace with something more useful.
    • Cleaning up ‘beginner’ and ‘good first issue’
  • How far along are we in LLVM 17?
    • Working on RC3, scheduled to go out Aug 22. Expect that to be final unless there are any blocking issues on the issue tracker.
    • fenv_access issue, there is some work done but exposes more miscompiles. Understand that Sergey is working on a further fix. Preference is to revert, but unsure how easy a revert would be.

Round Table

  • Aaron
    • Codereveviews for LLVM 17
    • Working on deducing this https://reviews.llvm.org/D140828
      • Would appreciate some additional reviews on this one. Concerned about parameter counting, some additional reviews would be useful to drive out anything that hasn’t been concerned.
    • Radar link discussion has wound down, preparing a PR
  • Ariel
    • Continuing work on backend
  • Corentin
  • Hubert
    • Looking at unevaluated strings reviews
    • Reviewing diagnostics for displaying character literals of different types
      • Landed on both hex and decimal numeric values, question about whether display should have any indication about the type. Prefix is useful to tell the user the type information, as long as not too much information. Might be useful to have a concrete use case.
      • Patch potentially exposes diagnostic printing to non-printable characters. Might need an example.
  • Maria
  • Vlad
    • Triaging old Clang crashes, have made good progress
    • Cleaning up labels
    • Some assignees that haven’t responded for years
    • Some old issues that haven’t been triaged in years

Meeting Agenda August 2, 2023

Agenda

Round Table

  • Aaron
    • Working on cutting a release candidate, successful branch. Please ask if need help delivering to the v17 branch. Cherry picking reserved for critical bug fixes that are small in nature.
    • Converging on radar links, but will let that sit for a bit for consensus
  • Ariel
    • Working mostly on backend
  • Corentin
    • Finished the consteval can propagate set of PRs
    • Bugfix for static asserts, planning to add a warning for unevaluated in C++ 26. Hubert waiting for feedback.
    • C++ placeholder feature - generating bad debug info. Is this a blocking concern? Patch is currently incomplete, and may need some help with debug info.
    • https://github.com/llvm/llvm-project/issues/64317 builtin assume leads to worse codegen. Suggest taking conservative approach, hold off on full semantics for now.
  • Hubert
    • Fenv-access investigation is ongoing, no updates. There have been many abandoned attempts to fix in the past.
  • Lucile
  • Tony
    • C2x auto feature, fixed a few things including diagnostics. Will do an update in a couple of days. Will be traveling, that will complicate schedule.
  • Vlad

Meeting Agenda July 19, 2023

Agenda

Had to cancel due to a small snafu: nobody had permission to let people join the Google Meet session.

Meeting Agenda July 5, 2023

Agenda

  • Defect report testing isolation
    • Instead of compile test invocation, have a single invocation of cc1 for multiple actions
    • It could be good for reducing compile time, but it seems like it could be considerable effort. We should do some more investigation, it may be easier than expected.
    • We need to be cognizant that testing will continue to be expensive.
    • Also need to be aware that process creation is expensive on different platforms, ex. Windows is a pain point
    • Is this an issue with process creation or serialization?
    • Question: is it possible to change cc1 as a library?
    • At some point, should curate our tests. There is a lot of overlap currently.
      • The more urgent issue is lack of test coverage
    • Vlad will need some help with estimating the work
      • Guess that several weeks worth of work
    • Linux kernel asking about adding tests to LLVM post commit CI
      • Undefined behaviour could be a pain point
  • Q regarding placeholder with no name
    • How much investigation around debuggers, and how they are impacted.
    • Corentin will investigate
  • Shafix out the first 3 weeks of August

RoundTable

  • Aaron
  • Ariel
    • Working on backend recently
  • Corentin
    • Add list of C++26 papers to the status page, started working on implementation
      • May need some help with reviews
    • A few bug fixes as well
  • Hubert
    • Still working on fenv-access, recently mentioned pre-existing fix is still not working. Investigating on a few fronts.
  • Mariya
    • Mostly on bug fixes
  • Shafik
  • Tony
    • Fixing issues on C2x auto keyword, still stuck on one case https://godbolt.org/z/saeKoT3zG
    • _atomic specifier
      • _Atomic __auto_type i = 12;
    • Fixed the over issue, but it would be better to t deduce auto type earlier.
  • Vlad

Meeting Agenda June 21, 2023

Agenda

  • WG14 meeting this week
  • For Clang bugs since Clang 3.x, please send them to Vlad if you need to reproduce on older Clang versions
  • Erich out on sabbatical for 2 months starting July 4

Round Table

  • Erich
    • Close to accepting Concepts as supported in LLVM17, no major bugs remaining
    • Hubert: are ranges well supported? Erich: yes, most issues have been resolved. GCC Ranges and Ranges V3 have been tested. Libc++ Ranges also have been tested.
  • Hubert
    • Standard committee meetings last week
    • Pragma fenv access, initial patch was identified and is being worked on. First patch is incomplete, have reached out to the author.
  • Sambit
    • Working on unit test for inheritance, will look to committing soon
  • Srikanth
  • Tony
  • Ariel
    • Primarily working on backend issues

Meeting Agenda June 7, 2023

Agenda

RoudTable

  • Aaron
    • Mostly code reviews
    • C committee working through CD comment reviews. May be a CD3, and uncertain if tracking to C23 or C24.
  • Ariel
    • Working mostly on the backend
  • Corentin
    • Propogation of const eval, should be able to merge this week. Fixed some bugs. To define feature macro, once the one last blocking issue is resloved. Memory leak needs to be resolved (likely a codegen bug, but needs quantifying), but we’re still functionally complete. To validate the Clang 17 release schedule, branch end of July.
    • Q. What’s happening with template arguments that aren’t integers https://reviews.llvm.org/D140996 ? Think we just have issues float issue remaining. May need some resolution on ABI issues.
  • Shafik
  • Tony
    • Will upload an update on C2x auto keyword, likely next week

Meeting Agenda May 17, 2023

Agenda

  • Problem with #pragma STDC FENV_ACCESS when template instantiation has changed state
    • Zahira Ammarguellat and John McCall were the last to touch, they would probably know best
  • Splitting of tests, problem with instantiation of templates if problem hit earlier in file. Issue would be increase in number of files.
    • Tradeoffs between disabling functionality and increasing large number of tests
    • Worthwhile looking into splitting the files
    • https://gist.github.com/Endilll/77b802d4fc093a19731c5583cb6136a2 current issue with unique filenames, need to think of naming convention. Would be an ongoing maintenance issue.
    • Leaning towards split files. Currently 58000 tests, so probably won’t have a huge impact to test run time

Round Table

  • Aaron
    • Code reviews, making progress
    • WG14 reflectors, gathering feedback for generic selection expressions
    • Added an extra set of office hours
  • Ariel
  • Corentin
  • Hubert
    • #pragma STDC FENV_ACCESS
    • Reviewing keeping statics patch, add attribute used to all statics
  • Tom
    • Continuing dfp, getting some patches together for local repo. Wider review to come later.
    • bf16 is being worked on by someone from Microsoft, thread on discourse and some patches are already available
  • Tony
    • Fixed issues on auto patch, seen comment but hasn’t responded yet. Will come to office hours to discuss.
  • Vlad
    • Looking in to various issues regarding DR testing
    • Waiting for Shafiks response for DR399

Meeting Agenda May 3, 2023

Agenda

Round Table

  • Aaron
    • Refreshing open projects page, had been stuck since 2013. Added improving documentation, defect reports, conformance testing. Discussion going on Discourse.
    • Getting caught up on code reviews
    • Addressing changes from C committee CD comments
  • Ariel
    • Floating point work in the backend
  • Corentin
  • Erich
    • Patch about comparing restraints, debugging issues
    • Getting caught up on reviews
  • Hubert
  • Shafik
  • Tom
    • Command line plumbing for DFP work
    • Patches for coverity related issues, expect those may be coming for a while. Will want to evaluate value of these patches.
  • Tony
    • C23 auto keyword, 3 things to fix prior to upstream