This is an archive of the discontinued LLVM Phabricator instance.

[libc++][Modules] Add missing submodules
ClosedPublic

Authored by iana on Jun 17 2023, 6:56 PM.

Details

Summary

Several headers that are included by the modular headers are missing from the module map, add those in.
The either/or implementation headers <__algorithm/pstl_backends/cpu_backends/serial.h>/<__algorithm/pstl_backends/cpu_backends/thread.h> need to be textual, as does <__undef_macros>.

Diff Detail

Event Timeline

iana created this revision.Jun 17 2023, 6:56 PM
Herald added a project: Restricted Project. · View Herald TranscriptJun 17 2023, 6:56 PM
iana requested review of this revision.Jun 17 2023, 6:56 PM
Herald added a project: Restricted Project. · View Herald TranscriptJun 17 2023, 6:56 PM
Herald added a reviewer: Restricted Project. · View Herald Transcript
iana updated this revision to Diff 532513.Jun 18 2023, 7:55 PM

Reordering in the stack

iana updated this revision to Diff 533366.EditedJun 21 2023, 12:51 PM

Reordering in the stack and adding comments to header_information.py

iana updated this revision to Diff 533751.Jun 22 2023, 1:12 PM

Add new pstl headers.

iana updated this revision to Diff 533820.Jun 22 2023, 5:13 PM

Add a missing include and export

iana updated this revision to Diff 534084.Jun 23 2023, 3:01 PM

Add a missing export

iana updated this revision to Diff 534100.Jun 23 2023, 3:48 PM

The __local_dir headers go with <locale> and should be in its module

iana added inline comments.Jun 23 2023, 3:53 PM
libcxx/include/__algorithm/pstl_replace.h
15

This include is necessary once pstl_replace.h gets a module because pstl_transform.h isn't even transitively included from this file. It works as a textual header only if the included includes pstl_transform.h first, but as a modular header it requires the include.

15

only if the *includer* includes pstl_transform.h

iana edited the summary of this revision. (Show Details)Jun 23 2023, 4:37 PM
ldionne added inline comments.Jul 3 2023, 12:11 PM
libcxx/utils/libcxx/test/header_information.py
73–86

What happens if you just drop this diff entirely? Does libcxx/test/libcxx/private_headers.gen.py start failing (and how)?

iana updated this revision to Diff 536897.Jul 3 2023, 2:20 PM

Try without changing header_information.py

iana added inline comments.Jul 3 2023, 10:02 PM
libcxx/utils/libcxx/test/header_information.py
73–86

Let me see, it was originally failing with __iterator/readable_traits.h on an earlier version of the stack and I just added these later.

iana updated this revision to Diff 536948.Jul 3 2023, 10:10 PM
iana marked an inline comment as done.

Restore the changes to header_information.py, but pare it down to just the headers that newly got modules and aren't standalone.

ldionne accepted this revision.Jul 4 2023, 12:14 PM
This revision is now accepted and ready to land.Jul 4 2023, 12:14 PM
iana updated this revision to Diff 537211.Jul 4 2023, 9:30 PM

Rebase

This revision was automatically updated to reflect the committed changes.