[Issue 14571] New: Large static arraus seem to lock up DMD

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Sun May 10 23:38:57 PDT 2015


https://issues.dlang.org/show_bug.cgi?id=14571

          Issue ID: 14571
           Summary: Large static arraus seem to lock up DMD
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Windows
            Status: NEW
          Severity: normal
          Priority: P1
         Component: DMD
          Assignee: nobody at puremagic.com
          Reporter: turkeyman at gmail.com

Large static arrays seem to lock up the compiler for some reason:

struct InputPoint
{
  double[3] position;
  ubyte[4] color;
  uint pad;
}

struct GrowableArray(T, size_t chunkSize)
{
  struct Chunk
  {
    T[chunkSize] data;
  }
}

alias X = GrowableArray!(InputPoint, 1024); // <-- this compiles quickly

//alias X = GrowableArray!(InputPoint, 128*1024); // <-- this is very slow,
appears to hang the compiler


I have to say, I'm kinda worried that Chunk.init is going to be some gigantic
statically allocated block of data, rather than a single instance of T that is
repeated 'chunkSize' times...

I use patterns like this in C quite a bit. Should this should be avoided in D?


DMD-Win64 0.67.1

--


More information about the Digitalmars-d-bugs mailing list