Pragma msg goes out of memory when supplied with large data.

realhet real_het at hotmail.com
Wed May 21 14:40:21 UTC 2025


On Wednesday, 21 May 2025 at 14:00:56 UTC, realhet wrote:
> Hi,

Small program to reproduce.
```d
import std;

string doit(string data)()
{
	static foreach(i; 0..256)
	{
		pragma(msg, i"Here goes lots of data: 
$(cast(ubyte[])data)".text);
	}
	return "dummy";
}

static immutable storedData = doit!("x".replicate(256));

void main(){ writeln(storedData.length, storedData.all!"a=='x'"); 
}
```

run with: `ldc2 testPragma.d > a.txt 2>&1`


This is not so fast but works.

If I remove the static foreach(i; 0..256), it will never 
complete, it exponentially runs out of memory.

I'm basically searching for the fastest version of the inverse of 
`import(file)`.

I think the operations inside the pragma(msg, xxx) construct has 
a really high cost. I will experiment more.




More information about the Digitalmars-d-learn mailing list