[libcxx-commits] [libcxx] f0917e9 - [libc++][PSTL] Make the PSTL submodules only have one header

Ian Anderson via libcxx-commits libcxx-commits at lists.llvm.org
Sat May 13 23:02:44 PDT 2023


Author: Ian Anderson
Date: 2023-05-13T23:02:40-07:00
New Revision: f0917e92697d1a0157322e36557ccfa07df394ba

URL: https://github.com/llvm/llvm-project/commit/f0917e92697d1a0157322e36557ccfa07df394ba
DIFF: https://github.com/llvm/llvm-project/commit/f0917e92697d1a0157322e36557ccfa07df394ba.diff

LOG: [libc++][PSTL] Make the PSTL submodules only have one header

Module map generation for the private detail headers is easier done if each private header is by itself in a submodule. Move the __algorithm/pstl_backends into their own submodules.

Reviewed By: philnik, #libc

Differential Revision: https://reviews.llvm.org/D150503

Added: 
    

Modified: 
    libcxx/include/module.modulemap.in
    libcxx/test/libcxx/lint/lint_modulemap.sh.py

Removed: 
    


################################################################################
diff  --git a/libcxx/include/module.modulemap.in b/libcxx/include/module.modulemap.in
index e4b5dae5b8333..c4d680eda5936 100644
--- a/libcxx/include/module.modulemap.in
+++ b/libcxx/include/module.modulemap.in
@@ -320,13 +320,25 @@ module std [system] {
       module partition_point                 { private header "__algorithm/partition_point.h" }
       module pop_heap                        { private header "__algorithm/pop_heap.h" }
       module prev_permutation                { private header "__algorithm/prev_permutation.h" }
-      module pstl {
+      module pstl_backends_cpu_backend       {
         private header "__algorithm/pstl_backends/cpu_backend.h"
+        export *
+      }
+      module pstl_backends_cpu_backends_any_of {
         private header "__algorithm/pstl_backends/cpu_backends/any_of.h"
+      }
+      module pstl_backends_cpu_backends_backend {
         private header "__algorithm/pstl_backends/cpu_backends/backend.h"
-        private header "__algorithm/pstl_backends/cpu_backends/fill.h"
+        export *
+      }
+      module pstl_backends_cpu_backends_fill { private header "__algorithm/pstl_backends/cpu_backends/fill.h" }
+      module pstl_backends_cpu_backends_find_if {
         private header "__algorithm/pstl_backends/cpu_backends/find_if.h"
+      }
+      module pstl_backends_cpu_backends_for_each {
         private header "__algorithm/pstl_backends/cpu_backends/for_each.h"
+      }
+      module pstl_backends_cpu_backends_serial {
         private header "__algorithm/pstl_backends/cpu_backends/serial.h"
       }
       module push_heap                       { private header "__algorithm/push_heap.h" }

diff  --git a/libcxx/test/libcxx/lint/lint_modulemap.sh.py b/libcxx/test/libcxx/lint/lint_modulemap.sh.py
index 8bcd663eb8a04..85d2c4b012786 100755
--- a/libcxx/test/libcxx/lint/lint_modulemap.sh.py
+++ b/libcxx/test/libcxx/lint/lint_modulemap.sh.py
@@ -29,6 +29,9 @@
                 elif re.match(r'^\s*module (\w+)_fwd\s+[{] private header "__fwd/\1[.]h" [}]', line):
                     # It's a private submodule with forward declarations, such as <__fwd/span.h>.
                     pass
+                elif re.match(r'^\s*module (?:\w+_)*(\w+)\s+[{] private (textual )?header "__(\w+/)*\1[.]h" [}]', line):
+                    # It's a private pstl submodule, such as <__algorithm/pstl_backends/cpu_backend.h>
+                    pass
                 else:
                     okay = False
                     print("LINE DOESN'T MATCH REGEX in libcxx/include/module.modulemap.in!")


        


More information about the libcxx-commits mailing list