March 23, 2023
https://issues.dlang.org/show_bug.cgi?id=23804

          Issue ID: 23804
           Summary: max total size of static arrays
           Product: D
           Version: D2
          Hardware: Other
                OS: Other
            Status: NEW
          Severity: normal
          Priority: P1
         Component: dlang.org
          Assignee: nobody@puremagic.com
          Reporter: kdevel@vogtner.de

https://dlang.org/spec/arrays.html

"2. The total size of a static array cannot exceed 16Mb"

Radio Yerevan was asked: "Is it true that in D static arrays cannot exceed 16Mb?"

Radio Yerevan answered: "In principle, yes. But it is not megabits (Mb) but
mebibytes (MiB). Furthermore the maximum size of static arrays is int.max bytes
(2,147,483,647 B = 2 GiB - 1 B) except for Windows where it is 16 MiB."

diff --git a/compiler/src/dmd/target.d b/compiler/src/dmd/target.d index 461e1e9..a3ab681 100644
--- a/compiler/src/dmd/target.d
+++ b/compiler/src/dmd/target.d
@@ -262,9 +262,9 @@ extern (C++) struct Target
             if (ptrsize == 4)
             {
                 /* Optlink cannot deal with individual data chunks
-                 * larger than 16Mb
+                 * larger than 16 MiB
                  */
-                maxStaticDataSize = 0x100_0000;  // 16Mb
+                maxStaticDataSize = 0x100_0000;  // 16 MiB
             }
         }
         else

--